diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/Metrics/MetricsStore.cs b/src/Microsoft.Diagnostics.Monitoring.WebApi/Metrics/MetricsStore.cs index 1ebfdbef892..5d3b01425cd 100644 --- a/src/Microsoft.Diagnostics.Monitoring.WebApi/Metrics/MetricsStore.cs +++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/Metrics/MetricsStore.cs @@ -200,8 +200,8 @@ private static string GetMetricType(EventType eventType) { switch (eventType) { + // In Prometheus, rates are treated as gauges due to their non-monotonic nature case EventType.Rate: - return "counter"; case EventType.Gauge: return "gauge"; case EventType.Histogram: diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/MetricsFormattingTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/MetricsFormattingTests.cs index 22fa08055e2..ae4712896c1 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/MetricsFormattingTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/MetricsFormattingTests.cs @@ -99,7 +99,7 @@ public async Task CounterFormat_Test() Assert.Equal(3, lines.Count); Assert.Equal($"# HELP {metricName}{payload.Unit} {payload.DisplayName}", lines[0]); - Assert.Equal($"# TYPE {metricName} counter", lines[1]); + Assert.Equal($"# TYPE {metricName} gauge", lines[1]); Assert.Equal($"{metricName} {payload.Value} {new DateTimeOffset(payload.Timestamp).ToUnixTimeMilliseconds()}", lines[2]); }