public void MetricBatchAllowsCommonAndSpecificSameNamedFields() { var currentUtcTime = DateTimeOffset.UtcNow; var commonTimestamp = currentUtcTime.ToUnixTimeMilliseconds(); var commonInterval = 125L; var metricTimestamp = currentUtcTime.AddMinutes(1).ToUnixTimeMilliseconds(); var metricInterval = 312L; var countValue = 88d; var metricBatch = new NewRelicMetricBatch( commonProperties: new NewRelicMetricBatchCommonProperties( timestamp: commonTimestamp, intervalMs: commonInterval, attributes: new Dictionary <string, object> { { "Attr1Key", "comAttr1Value" }, }), metrics: new[] { NewRelicMetric.CreateCountMetric( name: "CountMetric", timestamp: metricTimestamp, attributes: new Dictionary <string, object>() { { "Attr1Key", "metAttr1Value" }, }, value: countValue, intervalMs: metricInterval), }); var actualMetrics = metricBatch.Metrics.ToArray(); Assert.Equal(commonTimestamp, metricBatch.CommonProperties.Timestamp); Assert.Equal(commonInterval, metricBatch.CommonProperties.IntervalMs); Assert.Equal("comAttr1Value", metricBatch.CommonProperties.Attributes["Attr1Key"]); Assert.Equal(metricTimestamp, actualMetrics[0].Timestamp); Assert.Equal(metricInterval, actualMetrics[0].IntervalMs); Assert.Equal("metAttr1Value", actualMetrics[0].Attributes?["Attr1Key"]); }
public void MetricBatchWithCommonPropertiesAndMetrics() { var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); var interval = 125L; var commonAttrs = new Dictionary <string, object>() { { "attr1Key", "attr1Value" } }; var countValue = 88d; var gaugeValue = 213d; var metricBatch = new NewRelicMetricBatch( commonProperties: new NewRelicMetricBatchCommonProperties( timestamp: timestamp, intervalMs: interval, attributes: new Dictionary <string, object>() { { "attr1Key", "attr1Value" }, }), metrics: new[] { NewRelicMetric.CreateCountMetric( name: "CountMetric", timestamp: null, attributes: null, value: countValue, intervalMs: interval), NewRelicMetric.CreateGaugeMetric( name: "GaugeMetric", timestamp: null, attributes: null, value: gaugeValue), }); var actualMetrics = metricBatch.Metrics.ToArray(); Assert.Equal(timestamp, metricBatch.CommonProperties.Timestamp); Assert.Equal(interval, metricBatch.CommonProperties.IntervalMs); Assert.Equal(2, actualMetrics.Length); Assert.Equal("count", actualMetrics[0].Type); Assert.Equal("gauge", actualMetrics[1].Type); }
public void BuildCountMetric() { var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); var interval = 33L; var value = 22; var metric = NewRelicMetric.CreateCountMetric( name: "metricName", timestamp: timestamp, attributes: new Dictionary <string, object> { { "attrKey", "attrValue" }, { "adsfasdf", 12 }, }, value: value, intervalMs: interval); Assert.Equal("metricName", metric.Name); Assert.Equal("count", metric.Type); Assert.Equal(value, metric.Value); Assert.Equal(timestamp, metric.Timestamp); Assert.Equal(interval, metric.IntervalMs); Assert.Equal("attrValue", metric.Attributes?["attrKey"]); }
public void ToJson_NonEmptyMetricBatch() { // Arrange var metricBatch = new NewRelicMetricBatch( commonProperties: new NewRelicMetricBatchCommonProperties( timestamp: _timestampL, intervalMs: _interval, attributes: null), metrics: new[] { NewRelicMetric.CreateCountMetric( name: "metric1", timestamp: null, attributes: _customAttributes, value: _countValue, intervalMs: _interval), NewRelicMetric.CreateSummaryMetric( name: "metric2", timestamp: null, attributes: null, interval: _interval, summaryValue: _summaryValue), }); // Act var jsonString = metricBatch.ToJson(); // Assert var resultMetricBatches = TestHelpers.DeserializeArray(jsonString); TestHelpers.AssertForCollectionLength(resultMetricBatches, 1); // CountMetric var resultMetricBatch = resultMetricBatches.First(); var resultCommonProps = TestHelpers.DeserializeObject(resultMetricBatch["common"]); TestHelpers.AssertForAttribValue(resultCommonProps, "timestamp", _timestampL); TestHelpers.AssertForAttribValue(resultCommonProps, "interval.ms", _interval); var resultMetrics = TestHelpers.DeserializeArray(resultMetricBatch["metrics"]); TestHelpers.AssertForCollectionLength(resultMetrics, 2); var countMetric = resultMetrics.First(); TestHelpers.AssertForAttribCount(countMetric, 5); TestHelpers.AssertForAttribValue(countMetric, "name", "metric1"); TestHelpers.AssertForAttribValue(countMetric, "type", "count"); TestHelpers.AssertForAttribValue(countMetric, "value", _countValue); TestHelpers.AssertForAttribValue(countMetric, "interval.ms", _interval); var countMetricAttribs = TestHelpers.DeserializeObject(countMetric["attributes"]); TestHelpers.AssertForAttribCount(countMetricAttribs, 1); TestHelpers.AssertForAttribValue(countMetricAttribs, "attr1Key", "attr1Value"); // SummaryMetric var summaryMetric = resultMetrics[1]; TestHelpers.AssertForAttribCount(summaryMetric, 4); TestHelpers.AssertForAttribValue(summaryMetric, "name", "metric2"); TestHelpers.AssertForAttribValue(summaryMetric, "type", "summary"); TestHelpers.AssertForAttribValue(summaryMetric, "value", _summaryValue); TestHelpers.AssertForAttribValue(countMetric, "interval.ms", _interval); }