public MetricSnapshotDatadogJsonWriter(
            Stream stream,
            TimeSpan flushInterval,
            Func <IDatadogMetricJsonWriter> metricPointTextWriter = null)
        {
            _stream        = stream ?? throw new ArgumentNullException(nameof(stream));
            _flushInterval = flushInterval;
            _series        = new DatadogSeries();

            _metricMetricJsonWriter = metricPointTextWriter != null?metricPointTextWriter() : DatadogFormatterConstants.GraphiteDefaults.MetricPointTextWriter();
        }
예제 #2
0
        public void SingleCounterTest()
        {
            var           metrics    = new Metrics();
            string        metricName = "CounterMetric";
            CounterMetric counter    = metrics.Counter("test", metricName);

            DataDogReporter reporter = CreateDefaultReporter(metrics);

            TestRequest request = new TestRequest();

            reporter.TransformMetrics(request, metrics, 0);

            IDictionary <string, DatadogSeries> convertedMetrics = request.Metrics;

            Assert.AreEqual(1, convertedMetrics.Count);
            DatadogSeries metric = convertedMetrics[APP + "." + DOMAIN + "." + metricName];

            Assert.NotNull(metric);
            Assert.IsTrue(metric is DatadogCounter);
            ValidateDefaultTags(metric.Tags);
        }
예제 #3
0
        public void SingleGaugeTest()
        {
            var         metrics     = new Metrics();
            string      metricName  = "GaugeMetric";
            GaugeMetric gaugeMetric = metrics.Gauge("test", metricName, GetNumberOfUsersLoggedIn);

            DataDogReporter reporter = CreateDefaultReporter(metrics);

            TestRequest request = new TestRequest();

            reporter.TransformMetrics(request, metrics, 0);

            IDictionary <string, DatadogSeries> convertedMetrics = request.Metrics;

            Assert.AreEqual(1, convertedMetrics.Count);
            DatadogSeries metric = convertedMetrics[APP + "." + DOMAIN + "." + metricName];

            Assert.NotNull(metric);
            Assert.IsTrue(metric is DatadogGauge);
            ValidateDefaultTags(metric.Tags);
        }
예제 #4
0
        public void SingleTimerTest()
        {
            var         metrics     = new Metrics();
            string      metricName  = "TimerMetric";
            TimerMetric timerMetric = metrics.Timer("test", metricName, TimeUnit.Seconds, TimeUnit.Seconds);

            DataDogReporter reporter = CreateDefaultReporter(metrics);

            TestRequest request = new TestRequest();

            reporter.TransformMetrics(request, metrics, 0);

            IDictionary <string, DatadogSeries> convertedMetrics = request.Metrics;

            Assert.AreEqual(8, convertedMetrics.Count);
            foreach (TimerMetrics timerName in TimerMetrics.AllMetrics)
            {
                DatadogSeries metric = convertedMetrics[APP + "." + DOMAIN + "." + metricName + "." + timerName.GetDatadogName()];
                Assert.NotNull(metric);
                Assert.IsTrue(metric is DatadogGauge);
                ValidateDefaultTags(metric.Tags);
            }
        }
예제 #5
0
        public void SingleHistogramTest()
        {
            var             metrics         = new Metrics();
            string          metricName      = "HistogramrMetric";
            HistogramMetric histogramMetric = metrics.Histogram("test", metricName);

            DataDogReporter reporter = CreateDefaultReporter(metrics);

            TestRequest request = new TestRequest();

            reporter.TransformMetrics(request, metrics, 0);

            IDictionary <string, DatadogSeries> convertedMetrics = request.Metrics;

            Assert.AreEqual(10, convertedMetrics.Count);
            foreach (HistogramMetrics histoName in HistogramMetrics.AllMetrics)
            {
                DatadogSeries metric = convertedMetrics[APP + "." + DOMAIN + "." + metricName + "." + histoName.GetDatadogName()];
                Assert.NotNull(metric);
                Assert.IsTrue(metric is DatadogGauge);
                ValidateDefaultTags(metric.Tags);
            }
        }