コード例 #1
0
        static void Main(string[] args)
        {
            //Initialize the metrics manager. This method should be called only once!
            MetricsManager.Initialize("SampleApp", "Development", "localhost");

            //Imitate long-running taks and get the timings
            //should be resolved in ~500ms
            using (var timer = MetricsManager.GetRootMetricsLogger().StartTimer("Timer"))
            {
                Task.Delay(500).Wait();
            }

            //service also allows you to extend the logging experience by grouping metrics
            //together via dimensions. The line below creates a new logger with additional
            //property `api`.
            var logger = MetricsManager.GetMetricsLogger("api=Counters");
            //and then extends an existing logger by adding more specifi property
            var extendedLogger = logger.ExtendDimensions("subApi=Recorders");

            //Imitate concurrent environment, create counter and record metrics and update them
            Parallel.For(0, 1000, (i) => {
                logger.IncrementCounter("MyCounter", 1);
                extendedLogger.Record("MyRecorder", 1.0M, Unit.Second);
            });

            //If the 'IsManualFlush' config key is set to false, then the next line is redundant
            //as metrics manager will automatically flush things
            // MetricsManager.FlushAll();

            Console.ReadKey();
        }
コード例 #2
0
        private static MetricsLogger CollectTestMetrics(string dimensions)
        {
            var logger = MetricsManager.GetMetricsLogger(dimensions);

            logger.IncrementCounter("NumOfExceptions", 1);
            logger.IncrementCounter("Invalid@Name@Will@Be@Ignored@Logged@Emit@ErrorMetric", 1);

            return(logger);
        }