public void CounterWillCopyTelemetryContextFromTelemetryClient() { TelemetryConfiguration configuraiton = new TelemetryConfiguration(); TelemetryClient client = new TelemetryClient(configuraiton); client.Context.Properties["a"] = "b"; client.Context.Component.Version = "10"; client.Context.InstrumentationKey = "ikey"; var simpleCounter = client.Counter("test"); var counters = configuraiton.GetCounters(); Assert.AreEqual(1, counters.Count); MetricTelemetry metric = counters[0].GetValueAndReset(); client.Context.Device.Id = "device.id"; // validate that copy was made at the moment of creation Assert.AreNotEqual(client.Context, metric.Context); Assert.AreNotEqual("device.id", metric.Context.Device.Id); Assert.AreEqual("b", metric.Context.Properties["a"]); Assert.AreEqual("10", metric.Context.Component.Version); Assert.AreEqual("ikey", metric.Context.InstrumentationKey); }
public void SimpleCounterUsageExample() { TelemetryConfiguration configuraiton = new TelemetryConfiguration(); TelemetryClient client = new TelemetryClient(configuraiton); client.Context.Properties["a"] = "b"; var simpleCounter = client.Counter("test"); var counters = configuraiton.GetCounters(); Assert.AreEqual(1, counters.Count); for (int i = 0; i < 10; i++) { simpleCounter.Increment(); } MetricTelemetry metric = counters[0].GetValueAndReset(); Assert.AreEqual(10, metric.Value); Assert.AreEqual(null, metric.Count); Assert.AreEqual("test", metric.Name); Assert.AreEqual("b", metric.Context.Properties["a"]); }
static void Main(string[] args) { var telemetryClient = new TelemetryClient(); //API one: //telemetryClient.RegisterAggregateMetric("MetricsGenerator", "City", percentileCalculation: PercentileCalculation.OrderByLargest); //for (double i = -50; i < 10000000; i += new Random().NextDouble()) //{ // telemetryClient.TrackAggregateMetric("MetricsGenerator", i, "Seattle"); // telemetryClient.TrackAggregateMetric("MetricsGenerator", i, "New York"); //} //API two: Random rand = new Random(); telemetryClient.Gauge("active processes", () => { return(rand.Next(10, 15)); }); var counter = telemetryClient.Counter("# of items"); var meter = telemetryClient.Meter("rate of items"); var aMeter = telemetryClient.Meter("rate of char a"); while (true) { var queue = new ConcurrentQueue <char>(); var a = Console.ReadKey().KeyChar; queue.Enqueue(a); counter.Increment(); meter.Mark(); if (a == 'a') { aMeter.Mark(); } else { aMeter.Mark(0); } new Task(() => { Thread.Sleep(100); char ch; if (queue.TryDequeue(out ch)) { counter.Decrement(); Console.Write(ch); } }).Start(); } }