Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace OpenTelemetry.Exporter.Prometheus
/// </summary>
internal static partial class PrometheusSerializer
{
private static readonly string[] MetricTypes = new string[] { "untyped", "counter", "gauge", "histogram", "summary" };
private static readonly string[] MetricTypes = new string[] { "untyped", "counter", "gauge", "untyped", "histogram", "histogram", "histogram", "histogram", "summary" };
Comment thread
cijothomas marked this conversation as resolved.
Outdated

public static int WriteMetric(byte[] buffer, int cursor, Metric metric)
{
Expand All @@ -35,7 +35,7 @@ public static int WriteMetric(byte[] buffer, int cursor, Metric metric)
int metricType = (int)metric.MetricType >> 4;
cursor = WriteTypeInfo(buffer, cursor, metric.Name, metric.Unit, MetricTypes[metricType]);

if (metric.MetricType != MetricType.Histogram)
if (!metric.MetricType.IsHistogram())
{
foreach (ref var metricPoint in metric.GetMetricPoints())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void
OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.DoubleGauge = 45 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.DoubleSum = 29 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.Histogram = 48 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.Histogram = 64 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.LongGauge = 42 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.LongSum = 26 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricTypeExtensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void
OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.DoubleGauge = 45 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.DoubleSum = 29 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.Histogram = 48 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.Histogram = 64 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.LongGauge = 42 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricType.LongSum = 26 -> OpenTelemetry.Metrics.MetricType
OpenTelemetry.Metrics.MetricTypeExtensions
Expand Down
9 changes: 6 additions & 3 deletions src/OpenTelemetry/Metrics/MetricType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,11 @@ public enum MetricType : byte
Type:
0x10: Sum
0x20: Gauge
0x30: Histogram
0x40: Summary (reserved)
0x40: Histogram
0x50: HistogramWithMinMax (reserved)
0x60: ExponentialHistogram (reserved)
0x70: ExponentialHistogramWithMinMax (reserved)
0x80: Summary (reserved)
Comment thread
cijothomas marked this conversation as resolved.
Outdated

Point kind:
0x04: I1 (signed 1-byte integer)
Expand Down Expand Up @@ -64,6 +67,6 @@ public enum MetricType : byte
/// <summary>
/// Histogram.
/// </summary>
Histogram = 0x30,
Histogram = 0x40,
}
}
6 changes: 3 additions & 3 deletions src/OpenTelemetry/Metrics/MetricTypeExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ public static class MetricTypeExtensions

internal const MetricType METRIC_TYPE_SUM = (MetricType)0x10;
internal const MetricType METRIC_TYPE_GAUGE = (MetricType)0x20;
internal const MetricType METRIC_TYPE_HISTOGRAM = (MetricType)0x30;
/* internal const byte METRIC_TYPE_SUMMARY = 0x40; // not used */
internal const MetricType METRIC_TYPE_HISTOGRAM = (MetricType)0x40;
/* internal const byte METRIC_TYPE_SUMMARY = 0x80; // not used */

internal const MetricType POINT_KIND_MASK = (MetricType)0x0f;

Expand Down Expand Up @@ -59,7 +59,7 @@ public static bool IsGauge(this MetricType self)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsHistogram(this MetricType self)
{
return (self & METRIC_TYPE_MASK) == METRIC_TYPE_HISTOGRAM;
return self.HasFlag(METRIC_TYPE_HISTOGRAM);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
Expand Down