OpenTelemetry Prometheus Exporter¶
This library allows export of metrics data to Prometheus.
Usage¶
The OpenTelemetry Prometheus Exporter allows export of OpenTelemetry metrics to Prometheus.
from opentelemetry import metrics
from opentelemetry.ext.prometheus import PrometheusMetricsExporter
from opentelemetry.sdk.metrics import Counter, Meter
from opentelemetry.sdk.metrics.export.controller import PushController
from prometheus_client import start_http_server
# Start Prometheus client
start_http_server(port=8000, addr="localhost")
# Meter is responsible for creating and recording metrics
metrics.set_meter_provider(MeterProvider())
meter = metrics.meter()
# exporter to export metrics to Prometheus
prefix = "MyAppPrefix"
exporter = PrometheusMetricsExporter(prefix)
# controller collects metrics created from meter and exports it via the
# exporter every interval
controller = PushController(meter, exporter, 5)
counter = meter.create_metric(
"requests",
"number of requests",
"requests",
int,
Counter,
("environment",),
)
# Labels are used to identify key-values that are associated with a specific
# metric that you want to record. These are useful for pre-aggregation and can
# be used to store custom dimensions pertaining to a metric
labels = {"environment": "staging"}
counter.add(25, labels)
input("Press any key to exit...")
API¶
-
class
opentelemetry.ext.prometheus.
PrometheusMetricsExporter
(prefix='')[source]¶ Bases:
opentelemetry.sdk.metrics.export.MetricsExporter
Prometheus metric exporter for OpenTelemetry.
- Parameters
prefix (
str
) – single-word application prefix relevant to the domainmetric belongs to. (the) –
-
export
(metric_records)[source]¶ Exports a batch of telemetry data.
- Parameters
metric_records (
Sequence
[MetricRecord
]) – A sequence ofMetricRecord
s. AMetricRecord
contains the metric to be exported, the labels associated with that metric, as well as the aggregator used to export the current checkpointed value.- Return type
- Returns
The result of the export
-
class
opentelemetry.ext.prometheus.
CustomCollector
(prefix='')[source]¶ Bases:
object
CustomCollector represents the Prometheus Collector object https://github.com/prometheus/client_python#custom-collectors