django-pgpubsub
django-pgpubsub copied to clipboard
Adds metrics export using opentelemetry API for notifications queue processing
In order to monitor the listener process it makes sense to export metrics. This PR uses opentelemetry API that allows to export metrics in a generic way if the client opts-in.
I've tested this with two configurations:
- using
ConsoleExporter
described in README - using OTLP exporter to the DataDog agent (see here for details) using this factory:
class ListenerMeterProviderFactory(MeterProviderFactory):
def get_meter_provider(self) -> MeterProvider:
exporter = OTLPMetricExporter(endpoint="localhost:4317", insecure=True)
reader = PeriodicExportingMetricReader(exporter, export_interval_millis=5000)
metric_provider = MeterProvider(
resource=Resource(
attributes={SERVICE_NAME: "test-service", DEPLOYMENT_ENVIRONMENT: "dev"}
),
metric_readers=[reader],
)
return metric_provider