Metrics Plugins
Configure Pinot's metrics system using pluggable metrics backends.
Apache Pinot uses a pluggable metrics factory to support multiple metrics backends. Each Pinot component (Server, Broker, Controller, Minion) can be independently configured with a metrics implementation.
Available Implementations
Yammer (default)
org.apache.pinot.plugin.metrics.yammer.YammerMetricsFactory
Lightweight, default metrics implementation
Dropwizard
org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactory
Full Dropwizard Metrics integration with sliding time window reservoirs
Compound
org.apache.pinot.plugin.metrics.compound.CompoundPinotMetricsFactory
Registers metrics in multiple backends simultaneously
Configuration
Configure the metrics factory for any component using:
pinot.<component>.metrics.factory.className=<factory-class-name>Where <component> is one of: server, broker, controller, minion.
Yammer Metrics (Default)
The default metrics backend. No additional configuration required.
pinot.server.metrics.factory.className=org.apache.pinot.plugin.metrics.yammer.YammerMetricsFactoryDropwizard Metrics
Provides full Dropwizard Metrics library integration with sliding 15-minute time window reservoirs, detailed histograms and timers, and JMX reporting.
pinot.server.metrics.factory.className=org.apache.pinot.plugin.metrics.dropwizard.DropwizardMetricsFactoryAdditional properties:
pinot.<component>.metrics.dropwizard.domain
org.apache.pinot.common.metrics
JMX domain name for metrics
Example:
Compound Metrics (Multi-Backend)
The Compound metrics plugin registers metrics in multiple backends simultaneously. This is useful for comparing metric implementations or reporting to multiple monitoring systems.
Additional properties:
pinot.<component>.metrics.compound.algorithm
CLASSPATH
Discovery algorithm: CLASSPATH, SERVICE_LOADER, or LIST
pinot.<component>.metrics.compound.ignored
(empty)
Comma-separated list of factory class names to exclude
pinot.<component>.metrics.compound.list
(empty)
Comma-separated list of factory class names to include (only with algorithm=LIST)
Example: Use both Yammer and Dropwizard:
Example: Classpath discovery excluding Yammer:
When using Compound metrics, ensure JMX MBean names don't conflict between registries. Conflicting MBean names may cause unpredictable metric values.
Metric Types
Pinot exposes the following metric primitives through all backends:
Counter
Discrete event counts
Total queries processed
Meter
Event rates
Queries per second
Timer
Latency and throughput
Query execution time
Histogram
Value distributions
Query result sizes
Gauge
Point-in-time values
Segment count, heap usage
JMX Reporting
All metrics implementations include a JMX reporter enabled by default. The JmxReporterMetricsRegistryRegistrationListener is automatically registered when the metrics system initializes.
To configure additional metrics reporting (e.g., Prometheus, Grafana), see Monitor Pinot Using Prometheus and Grafana.
Last updated
Was this helpful?

