Prometheus.ex
Elixir Prometheus.io client based on Prometheus.erl.
Dashboard from Monitoring Elixir apps in 2016: Prometheus and Grafana by @skosch.
- IRC: #elixir-lang on Freenode;
- Slack: #prometheus channel - Browser or App(slack://elixir-lang.slack.com/messages/prometheus).
Example
defmodule ExampleInstrumenter do
use Prometheus.Metric
def setup do
Histogram.new([name: :http_request_duration_milliseconds,
labels: [:method],
buckets: [100, 300, 500, 750, 1000],
help: "Http Request execution time"])
end
def instrument(%{time: time, method: method}) do
Histogram.observe([name: :http_request_duration_milliseconds, labels: [method]], time)
end
end
Integrations / Collectors / Instrumenters
- Ecto collector
- Plugs Instrumenter/Exporter
- Elli middleware
- Fuse plugin
- Phoenix instrumenter
- Process Info Collector
- RabbitMQ Exporter
Installation
Available in Hex, the package can be installed as:
- Add
prometheus_exto your list of dependencies inmix.exs:
```elixir
def deps do
[{:prometheus_ex, "~> 1.1.0"}]
end
```
- Ensure
prometheus_exis started before your application:
```elixir
def application do
[applications: [:prometheus_ex]]
end
```