Class OpenTelemetryMetricSink

java.lang.Object
io.grpc.opentelemetry.OpenTelemetryMetricSink
All Implemented Interfaces:
io.grpc.MetricSink

final class OpenTelemetryMetricSink extends Object implements io.grpc.MetricSink
  • Field Details

    • logger

      private static final Logger logger
    • lock

      private final Object lock
    • openTelemetryMeter

      private final io.opentelemetry.api.metrics.Meter openTelemetryMeter
    • enableMetrics

      private final Map<String,Boolean> enableMetrics
    • disableDefaultMetrics

      private final boolean disableDefaultMetrics
    • optionalLabels

      private final Set<String> optionalLabels
    • measures

      private volatile List<OpenTelemetryMetricSink.MeasuresData> measures
  • Constructor Details

    • OpenTelemetryMetricSink

      OpenTelemetryMetricSink(io.opentelemetry.api.metrics.Meter meter, Map<String,Boolean> enableMetrics, boolean disableDefaultMetrics, List<String> optionalLabels)
  • Method Details

    • getEnabledMetrics

      public Map<String,Boolean> getEnabledMetrics()
      Specified by:
      getEnabledMetrics in interface io.grpc.MetricSink
    • getOptionalLabels

      public Set<String> getOptionalLabels()
      Specified by:
      getOptionalLabels in interface io.grpc.MetricSink
    • getMeasuresSize

      public int getMeasuresSize()
      Specified by:
      getMeasuresSize in interface io.grpc.MetricSink
    • getMeasures

    • addDoubleCounter

      public void addDoubleCounter(io.grpc.DoubleCounterMetricInstrument metricInstrument, double value, List<String> requiredLabelValues, List<String> optionalLabelValues)
      Specified by:
      addDoubleCounter in interface io.grpc.MetricSink
    • addLongCounter

      public void addLongCounter(io.grpc.LongCounterMetricInstrument metricInstrument, long value, List<String> requiredLabelValues, List<String> optionalLabelValues)
      Specified by:
      addLongCounter in interface io.grpc.MetricSink
    • recordDoubleHistogram

      public void recordDoubleHistogram(io.grpc.DoubleHistogramMetricInstrument metricInstrument, double value, List<String> requiredLabelValues, List<String> optionalLabelValues)
      Specified by:
      recordDoubleHistogram in interface io.grpc.MetricSink
    • recordLongHistogram

      public void recordLongHistogram(io.grpc.LongHistogramMetricInstrument metricInstrument, long value, List<String> requiredLabelValues, List<String> optionalLabelValues)
      Specified by:
      recordLongHistogram in interface io.grpc.MetricSink
    • recordLongGauge

      public void recordLongGauge(io.grpc.LongGaugeMetricInstrument metricInstrument, long value, List<String> requiredLabelValues, List<String> optionalLabelValues)
      Specified by:
      recordLongGauge in interface io.grpc.MetricSink
    • registerBatchCallback

      public io.grpc.MetricSink.Registration registerBatchCallback(Runnable callback, io.grpc.CallbackMetricInstrument... metricInstruments)
      Specified by:
      registerBatchCallback in interface io.grpc.MetricSink
    • updateMeasures

      public void updateMeasures(List<io.grpc.MetricInstrument> instruments)
      Specified by:
      updateMeasures in interface io.grpc.MetricSink
    • shouldEnableMetric

      private boolean shouldEnableMetric(io.grpc.MetricInstrument instrument)
    • createAttributes

      private io.opentelemetry.api.common.Attributes createAttributes(List<String> requiredLabelKeys, List<String> optionalLabelKeys, List<String> requiredLabelValues, List<String> optionalLabelValues, BitSet bitSet)