API reference

class nameko_prometheus.dependencies.MetricsServer[source]

Serves metrics in a format readable by Prometheus scraper.

Call expose_metrics() from a service method decorated with @http entrypoint to present metrics to Prometheus over HTTP.

expose_metrics(request: werkzeug.wrappers.request.Request) werkzeug.wrappers.response.Response[source]

Returns metrics as a HTTP response in Prometheus text format.

class nameko_prometheus.dependencies.PrometheusMetrics(*args, **kwargs)[source]

Dependency provider which measures RPC, event handler and HTTP endpoint latency.

On service start, a few default metrics are declared. These are:

  • <prefix>_http_requests_total

  • <prefix>_http_request_latency_seconds

  • <prefix>_rpc_requests_total

  • <prefix>_rpc_request_latency_seconds

  • <prefix>_events_total

  • <prefix>_events_latency_seconds

  • <prefix>_timer_total

  • <prefix>_timer_latency_seconds

  • <prefix>_consumer_total

  • <prefix>_consumer_latency_seconds

where prefix is either derived from name attribute of the service class, or configured manually.

get_dependency(worker_ctx: nameko.containers.WorkerContext) nameko_prometheus.dependencies.MetricsServer[source]

Returns an instance of MetricsServer to be injected into the worker.

setup() None[source]

Configures the dependency provider and declares default metrics.

worker_result(worker_ctx: nameko.containers.WorkerContext, result=None, exc_info=None) None[source]

Called after service worker completes.

At this point the default metrics such as worker latency are observed, regardless of whether the worker finished successfully or raised an exception.

worker_setup(worker_ctx: nameko.containers.WorkerContext) None[source]

Called before service worker starts.

class nameko_prometheus.dependencies.WorkerSummary(duration: float, result: Any, exc_info: Optional[Tuple])[source]

Represents the final result (or error) of a worker, including duration.

This simplifies method signatures for singledispatch overrides.