Prometheus.ex v1.0.0-alpha5 Prometheus.Model
Helpers for working with Prometheus data model. For advanced users.
Probably will be used with Prometheus.Collector.
Summary
Macros
Creates counter metric with value and labels
Creates counter metrics from mdata {labels, value} tuple list
Create Metric Family of type, name and help.
collector.collect_metrics/2 callback will be called and expected to
return individual metrics list
Creates gauge metric with value and labels
Creates gauge metrics from mdata {label, value} tuple list
Creates histogram metric with buckets, count, sum, and labels
Creates histogram metrics from mdata {labels, buckets, count, sum} tuple list
Creates summary metric with count, sum and labels
Creates summary metrics from mdata {labels, count, sum} tuple list
Creates untyped metric with value and labels
Creates untyped metrics from mdata {label, value} tuple list
Macros
Creates counter metric with value and labels.
iex(15)> Prometheus.Model.counter_metric(100, [host: "example.com"])
{:Metric, [{:LabelPair, "host", "example.com"}], :undefined, {:Counter, 100},
:undefined, :undefined, :undefined, :undefined}
Creates counter metrics from mdata {labels, value} tuple list.
iex(14)> Prometheus.Model.counter_metrics([{[host: "example.com"], 100}])
[{:Metric, [{:LabelPair, "host", "example.com"}], :undefined, {:Counter, 100},
:undefined, :undefined, :undefined, :undefined}]
Create Metric Family of type, name and help.
collector.collect_metrics/2 callback will be called and expected to
return individual metrics list.
Creates gauge metric with value and labels
iex(13)> Prometheus.Model.gauge_metric(100, [host: "example.com"])
{:Metric, [{:LabelPair, "host", "example.com"}], {:Gauge, 100}, :undefined,
:undefined, :undefined, :undefined, :undefined}
Creates gauge metrics from mdata {label, value} tuple list.
iex(11)> Prometheus.Model.gauge_metrics([{[host: "example.com"], 100}])
[{:Metric, [{:LabelPair, "host", "example.com"}], {:Gauge, 100}, :undefined,
:undefined, :undefined, :undefined, :undefined}]
Creates histogram metric with buckets, count, sum, and labels.
iex(4)> Prometheus.Model.histogram_metric([{2, 1}, {5, 1}, {:infinity, 2}], 2, 10.5, [{:method, :get}])
{:Metric, [{:LabelPair, "method", "get"}], :undefined, :undefined, :undefined,
:undefined,
{:Histogram, 2, 10.5,
[{:Bucket, 1, 2}, {:Bucket, 1, 5}, {:Bucket, 2, :infinity}]}, :undefined}
Buckets is a list of pairs {upper_bound, cumulative_count}. Cumulative count is a sum of all cumulative_counts of previous buckets + counter of current bucket.
Creates histogram metrics from mdata {labels, buckets, count, sum} tuple list.
iex(2)> Prometheus.Model.histogram_metrics([{ [{:method, :get}], [{2, 1}, {5, 1}, {:infinity, 2}], 2, 10.5}])
[{:Metric, [{:LabelPair, "method", "get"}], :undefined, :undefined, :undefined,
:undefined,
{:Histogram, 2, 10.5,
[{:Bucket, 1, 2}, {:Bucket, 1, 5}, {:Bucket, 2, :infinity}]}, :undefined}]
Creates summary metric with count, sum and labels.
iex(3)> Prometheus.Model.summary_metric(2, 10.5, [{:method, :get}])
{:Metric, [{:LabelPair, "method", "get"}], :undefined, :undefined,
{:Summary, 2, 10.5, []}, :undefined, :undefined, :undefined}
Creates summary metrics from mdata {labels, count, sum} tuple list.
iex(7)> Prometheus.Model.summary_metrics([{[{:method, :get}], 2, 10.5}])
[{:Metric, [{:LabelPair, "method", "get"}], :undefined, :undefined,
{:Summary, 2, 10.5, []}, :undefined, :undefined, :undefined}]
Creates untyped metric with value and labels
iex(13)> Prometheus.Model.untyped_metric(100, [host: "example.com"])
{:Metric, [{:LabelPair, "host", "example.com"}], :undefined,
:undefined, :undefined, {:Untyped, 100}, :undefined, :undefined}