Class PersistingMetricsReporter

java.lang.Object
org.apache.polaris.extension.metrics.jdbc.PersistingMetricsReporter
All Implemented Interfaces:
org.apache.polaris.service.metrics.IcebergMetricsReporter

@RequestScoped @Identifier("persisting") public class PersistingMetricsReporter extends Object implements org.apache.polaris.service.metrics.IcebergMetricsReporter
Persisting implementation of IcebergMetricsReporter.

Selected when polaris.iceberg-metrics.reporting.type is set to "persisting". Requires a MetricsPersistence bean on the classpath (provided by the JdbcMetricsPersistence bean in this extension module).

Converts the Iceberg ScanReport/CommitReport carried by the MetricsReportEnvelope to backend-agnostic SPI records via MetricsRecordConverter, then delegates to MetricsPersistence for durable storage.

  • Constructor Summary

    Constructors
    Constructor
    Description
    PersistingMetricsReporter(org.apache.polaris.core.persistence.metrics.MetricsPersistence metricsPersistence, jakarta.enterprise.inject.Instance<org.apache.polaris.core.auth.PolarisPrincipal> polarisPrincipal, jakarta.enterprise.inject.Instance<org.apache.polaris.core.context.RequestIdSupplier> requestIdSupplier)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    reportMetric(@NonNull org.apache.polaris.service.metrics.MetricsReportEnvelope envelope)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PersistingMetricsReporter

      @Inject public PersistingMetricsReporter(org.apache.polaris.core.persistence.metrics.MetricsPersistence metricsPersistence, jakarta.enterprise.inject.Instance<org.apache.polaris.core.auth.PolarisPrincipal> polarisPrincipal, jakarta.enterprise.inject.Instance<org.apache.polaris.core.context.RequestIdSupplier> requestIdSupplier)
  • Method Details

    • reportMetric

      public void reportMetric(@NonNull org.apache.polaris.service.metrics.MetricsReportEnvelope envelope)
      Specified by:
      reportMetric in interface org.apache.polaris.service.metrics.IcebergMetricsReporter