prometheus_summary (prometheus v6.0.1)
View SourceSummary metric, to track the size of events.
Example use cases for Summaries:
- Response latency;
- Request size;
- Response size.
This keeps track of the number of events, and the sum of their values. This allows you to calculate the average value of each event, and with enough datapoints, to keep track of its average.
Example:
-module(my_proxy_instrumenter).
setup() ->
prometheus_summary:declare([{name, request_size_bytes},
{help, \"Request size in bytes.\"}]),
prometheus_summary:declare([{name, response_size_bytes},
{help, \"Response size in bytes.\"}]).
observe_request(Size) ->
prometheus_summary:observe(request_size_bytes, Size).
observe_response(Size) ->
prometheus_summary:observe(response_size_bytes, Size).
Summary
Functions
Creates a summary using Spec
. If a summary with the same Spec
exists returns false
.
Equivalent to deregister(default, Name)
.
Removes all summary series with name Name
and removes Metric Family from Registry
.
Creates a summary using Spec
.
Equivalent to observe(default, Name, [], Value)
.
Observes the given Value
.
Equivalent to observe_duration(default, Name, LabelValues, Fun)
.
Tracks the amount of time spent executing Fun
.
Equivalent to remove(default, Name, [])
.
Equivalent to remove(default, Name, LabelValues)
.
Removes summary series identified by Registry
, Name
and LabelValues
.
Equivalent to reset(default, Name, [])
.
Equivalent to reset(default, Name, LabelValues)
.
Resets the value of the summary identified by Registry
, Name
and LabelValues
.
Equivalent to value(default, Name, [])
.
Equivalent to value(default, Name, LabelValues)
.
Returns the value of the summary identified by Registry
, Name
and LabelValues
.
If there is no summary for LabelValues
, returns undefined
.
Functions
-spec declare(prometheus_metric:spec()) -> boolean().
Creates a summary using Spec
. If a summary with the same Spec
exists returns false
.
Raises:
{missing_metric_spec_key, Key, Spec}
error if requiredSpec
key is missing.{invalid_metric_name, Name, Message}
error if metricName
is invalid.{invalid_metric_help, Help, Message}
error if metricHelp
is invalid.{invalid_metric_labels, Labels, Message}
error ifLabels
isn't a list.{invalid_label_name, Name, Message}
error ifName
isn't a valid label name.{invalid_value_error, Value, MessagE}
error ifduration_unit
is unknown or doesn't match metric name.
-spec deregister(prometheus_metric:name()) -> {boolean(), boolean()}.
Equivalent to deregister(default, Name)
.
-spec deregister(prometheus_registry:registry(), prometheus_metric:name()) -> {boolean(), boolean()}.
Removes all summary series with name Name
and removes Metric Family from Registry
.
After this call new/1 for Name
and Registry
will succeed.
Returns {true, _}
if Name
was a registered summary. Otherwise returns {false, _}
.
-spec new(prometheus_metric:spec()) -> ok.
Creates a summary using Spec
.
Raises:
{missing_metric_spec_key, Key, Spec}
error if requiredSpec
key is missing.{invalid_metric_name, Name, Message}
error if metricName
is invalid.{invalid_metric_help, Help, Message}
error if metricHelp
is invalid.{invalid_metric_labels, Labels, Message}
error ifLabels
isn't a list.{invalid_label_name, Name, Message}
error ifName
isn't a valid label name.{invalid_value_error, Value, Message}
error ifduration_unit
is unknown or doesn't match metric name.{mf_already_exists, {Registry, Name}, Message}
error if a summary with the sameSpec
already exists.
-spec observe(prometheus_metric:name(), number()) -> ok.
Equivalent to observe(default, Name, [], Value)
.
-spec observe(prometheus_metric:name(), prometheus_metric:label_values(), number()) -> ok.
Equivalent to observe(default, Name, LabelValues, Value)
.
-spec observe(Registry, Name, LabelValues, Value) -> ok when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values(), Value :: number().
Observes the given Value
.
Raises:
{invalid_value, Value, Message}
ifValue
isn't an integer.{unknown_metric, Registry, Name}
error if summary with namedName
can't be found inRegistry
.{invalid_metric_arity, Present, Expected}
error if labels count mismatch.
-spec observe_duration(prometheus_metric:name(), fun(() -> dynamic())) -> dynamic().
Equivalent to observe_duration(default, Name, [], Fun)
.
-spec observe_duration(Name, LabelValues, Fun) -> dynamic() when Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values(), Fun :: fun(() -> dynamic()).
Equivalent to observe_duration(default, Name, LabelValues, Fun)
.
-spec observe_duration(Registry, Name, LabelValues, Fun) -> dynamic() when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values(), Fun :: fun(() -> dynamic()).
Tracks the amount of time spent executing Fun
.
Raises:
{unknown_metric, Registry, Name}
error if summary with namedName
can't be found inRegistry
.{invalid_metric_arity, Present, Expected}
error if labels count mismatch.{invalid_value, Value, Message}
ifFun
isn't a function.
-spec remove(prometheus_metric:name()) -> boolean().
Equivalent to remove(default, Name, [])
.
-spec remove(prometheus_metric:name(), prometheus_metric:label_values()) -> boolean().
Equivalent to remove(default, Name, LabelValues)
.
-spec remove(Registry, Name, LabelValues) -> boolean() when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values().
Removes summary series identified by Registry
, Name
and LabelValues
.
Raises:
{unknown_metric, Registry, Name}
error if summary with nameName
can't be found inRegistry
.{invalid_metric_arity, Present, Expected}
error if labels count mismatch.
-spec reset(prometheus_metric:name()) -> boolean().
Equivalent to reset(default, Name, [])
.
-spec reset(prometheus_metric:name(), prometheus_metric:label_values()) -> boolean().
Equivalent to reset(default, Name, LabelValues)
.
-spec reset(Registry, Name, LabelValues) -> boolean() when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values().
Resets the value of the summary identified by Registry
, Name
and LabelValues
.
Raises:
{unknown_metric, Registry, Name}
error if summary with nameName
can't be found inRegistry
.{invalid_metric_arity, Present, Expected}
error if labels count mismatch.
-spec value(prometheus_metric:name()) -> {integer(), number()} | undefined.
Equivalent to value(default, Name, [])
.
-spec value(prometheus_metric:name(), prometheus_metric:label_values()) -> {integer(), number()} | undefined.
Equivalent to value(default, Name, LabelValues)
.
-spec value(Registry, Name, LabelValues) -> {integer(), number()} | undefined when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:label_values().
Returns the value of the summary identified by Registry
, Name
and LabelValues
.
If there is no summary for LabelValues
, returns undefined
.
If duration unit set, sum will be converted to the duration unit. Read more here.
Raises:
{unknown_metric, Registry, Name}
error if summary namedName
can't be found inRegistry
.{invalid_metric_arity, Present, Expected}
error if labels count mismatch.
-spec values(prometheus_registry:registry(), prometheus_metric:name()) -> [prometheus_model:'Summary'()].