Provides a Prometheus format reporter and server for Telemetry.Metrics definitions.

elixir, metrics, monitoring, observability, prometheus, reporter, telemetry



CircleCI codecov Hex Hexdocs

TelemetryMetricsPrometheus is a Telemetry.Metrics Reporter for aggregating and exposing Prometheus metrics based on Telemetry.Metrics definitions. TelemetryMetricsPrometheus provides a server out of the box exposing a /metrics endpoint, making setup a breeze.

Is this the right Prometheus package for me?

If you want to take advantage of consuming :telemetry events with the ease of defining and managing metrics Telemetry.Metrics brings for Prometheus, then yes! This package provides a simple and straightforward way to aggregate and report Prometheus metrics. Whether you're using Prometheus servers, Datadog, or any other monitoring solution which supports scraping, you're in luck!

If you're not interested in taking advantage of Telemetry.Metrics but still want to implement Prometheus or use :telemetry in your project, have a look at something like the OpenCensus project and see if it better meets your needs.

What if I don't want the bundled server?

TelemetryMetricsPrometheus.Core is the core implementation. You can run Core directly, however you will need to do all of the plumbing to expose a /metrics route.


The package can be installed by adding telemetry_metrics_prometheus to your list of dependencies in mix.exs:

def deps do
    {:telemetry_metrics_prometheus, "~> 0.4"}

See the documentation on Hexdocs for more information.


Contributors are highly welcome!

Additional documentation and tests are welcome.

Please open an issue for discussion before undertaking anything non-trivial before jumping in and submitting a PR.