/telemetry_metrics_prometheus_core

Core Prometheus Telemetry.Metrics Reporter package for telemetry_metrics_prometheus

Primary LanguageElixirApache License 2.0Apache-2.0

TelemetryMetricsPrometheus.Core

CircleCI codecov Hex Hexdocs

TelemetryMetricsPrometheus.Core is a Telemetry.Metrics Reporter for aggregating and exposing Prometheus metrics based on Telemetry.Metrics definitions. This package does not provide a built-in web server. TelemetryMetricsPrometheus provides a server out of the box exposing a /metrics endpoint, making setup a breeze.

Web Server

This library is the core for the TelemetryMetricsPrometheus project. The TelemetryMetricsPrometheus libary is a standalone implementation leveraging TelemetryMetricsPrometheus.Core which ships with its own web server. Using TelemetryMetricsPrometheus allows a quick way to get started with a Cowboy web server that runs along side your application. TelemetryMetricsPrometheus.Core should be used if your use case is outside the scope of the TelemetryMetricsPrometheus web server.

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.

Installation

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

def deps do
  [
    {:telemetry_metrics_prometheus_core, "~> 0.4"}
  ]
end

See the documentation on Hexdocs for more information.

Contributing

Contributors are highly welcome!

Additional documentation, tests, and benchmarking are all welcome.

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