View Source prometheus_summary (prometheus v4.13.0)
Summary 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 requiredSpeckey is missing.{invalid_metric_name, Name, Message}error if metricNameis invalid.{invalid_metric_help, Help, Message}error if metricHelpis invalid.{invalid_metric_labels, Labels, Message}error ifLabelsisn't a list.{invalid_label_name, Name, Message}error ifNameisn't a valid label name.{invalid_value_error, Value, MessagE}error ifduration_unitis 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 requiredSpeckey is missing.{invalid_metric_name, Name, Message}error if metricNameis invalid.{invalid_metric_help, Help, Message}error if metricHelpis invalid.{invalid_metric_labels, Labels, Message}error ifLabelsisn't a list.{invalid_label_name, Name, Message}error ifNameisn't a valid label name.{invalid_value_error, Value, Message}error ifduration_unitis unknown or doesn't match metric name.{mf_already_exists, {Registry, Name}, Message}error if a summary with the sameSpecalready exists.
-spec observe(prometheus_metric:name(), number()) -> ok.
Equivalent to observe(default, Name, [], Value).
-spec observe(prometheus_metric:name(), prometheus_metric:labels(), 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:labels(), Value :: number().
Observes the given Value.
Raises:
{invalid_value, Value, Message}ifValueisn't an integer.{unknown_metric, Registry, Name}error if summary with namedNamecan't be found inRegistry.{invalid_metric_arity, Present, Expected}error if labels count mismatch.
-spec observe_duration(prometheus_metric:name(), fun(() -> term())) -> term().
Equivalent to observe_duration(default, Name, [], Fun).
-spec observe_duration(prometheus_metric:name(), prometheus_metric:labels(), fun(() -> term())) -> term().
Equivalent to observe_duration(default, Name, LabelValues, Fun).
-spec observe_duration(Registry, Name, LabelValues, Fun) -> any() when Registry :: prometheus_registry:registry(), Name :: prometheus_metric:name(), LabelValues :: prometheus_metric:labels(), Fun :: fun(() -> any()).
Tracks the amount of time spent executing Fun.
Raises:
{unknown_metric, Registry, Name}error if summary with namedNamecan't be found inRegistry.{invalid_metric_arity, Present, Expected}error if labels count mismatch.{invalid_value, Value, Message}ifFunisn't a function.
-spec remove(prometheus_metric:name()) -> boolean().
Equivalent to remove(default, Name, []).
-spec remove(prometheus_metric:name(), prometheus_metric:labels()) -> boolean().
Equivalent to remove(default, Name, LabelValues).
-spec remove(prometheus_registry:registry(), prometheus_metric:name(), prometheus_metric:labels()) -> boolean().
Removes summary series identified by Registry, Name and LabelValues.
Raises:
{unknown_metric, Registry, Name}error if summary with nameNamecan'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:labels()) -> boolean().
Equivalent to reset(default, Name, LabelValues).
-spec reset(prometheus_registry:registry(), prometheus_metric:name(), prometheus_metric:labels()) -> boolean().
Resets the value of the summary identified by Registry, Name and LabelValues.
Raises:
{unknown_metric, Registry, Name}error if summary with nameNamecan'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:labels()) -> {integer(), number()} | undefined.
Equivalent to value(default, Name, LabelValues).
-spec value(prometheus_registry:registry(), prometheus_metric:name(), prometheus_metric:labels()) -> {integer(), number()} | undefined.
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 namedNamecan'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'()].