Skip to content

Latest commit

 

History

History
451 lines (278 loc) · 15.9 KB

prometheus_gauge.md

File metadata and controls

451 lines (278 loc) · 15.9 KB

Module prometheus_gauge

Gauge metric, to report instantaneous values.

Behaviours: prometheus_collector, prometheus_metric.

Description

Gauge is a metric that represents a single numerical value that can arbitrarily go up and down.

A Gauge is typically used for measured values like temperatures or current memory usage, but also "counts" that can go up and down, like the number of running processes.

Example use cases for Gauges:

  • Inprogress requests

  • Number of items in a queue

  • Free memory

  • Total memory

  • Temperature

Example:

  -module(my_pool_instrumenter).
  -export([setup/0,
           set_size/1]).
  setup() ->
    prometheus_gauge:declare([{name, my_pool_size},
                              {help, "Pool size."}]),
    prometheus_gauge:declare([{name, my_pool_checked_out},
                              {help, "Number of checked out sockets"}]).
  set_size(Size) ->
    prometheus_gauge:set(my_pool_size, Size)
  track_checked_out_sockets(CheckoutFun) ->
    prometheus_gauge:track_inprogress(my_pool_checked_out, CheckoutFun)..

Function Index

dec/1Equivalent to inc(default, Name, [], -1).
dec/2If the second argument is a list, equivalent to inc(default, Name, LabelValues, -1) otherwise equivalent to inc(default, Name, [], -1 * Value).
dec/3Equivalent to inc(default, Name, LabelValues, -1 * Value).
dec/4Equivalent to inc(Registry, Name, LabelValues, -1 * Value).
declare/1Creates a gauge using Spec.
deregister/1Equivalent to deregister(default, Name).
deregister/2 Removes all gauge series with name Name and removes Metric Family from Registry.
inc/1Equivalent to inc(default, Name, [], 1).
inc/2If the second argument is a list, equivalent to inc(default, Name, LabelValues, 1) otherwise equivalent to inc(default, Name, [], Value).
inc/3Equivalent to inc(default, Name, LabelValues, Value).
inc/4Increments the gauge identified by Registry, Name and LabelValues by Value.
new/1Creates a gauge using Spec.
remove/1Equivalent to remove(default, Name, []).
remove/2Equivalent to remove(default, Name, LabelValues).
remove/3Removes gauge series identified by Registry, Name and LabelValues.
reset/1Equivalent to reset(default, Name, []).
reset/2Equivalent to reset(default, Name, LabelValues).
reset/3Resets the value of the gauge identified by Registry, Name and LabelValues.
set/2Equivalent to set(default, Name, [], Value).
set/3Equivalent to set(default, Name, LabelValues, Value).
set/4Sets the gauge identified by Registry, Name and LabelValues to Value.
set_duration/2Equivalent to set_duration(default, Name, [], Fun).
set_duration/3Equivalent to set_duration(default, Name, LabelValues, Fun).
set_duration/4Sets the gauge identified by Registry, Name and LabelValues to the the amount of time spent executing Fun.
set_to_current_time/1Equivalent to set_to_current_time(default, Name, []).
set_to_current_time/2Equivalent to set_to_current_time(default, Name, LabelValues).
set_to_current_time/3Sets the gauge identified by Registry, Name and LabelValues to the current unixtime.
track_inprogress/2Equivalent to track_inprogress(default, Name, [], Fun).
track_inprogress/3Equivalent to track_inprogress(default, Name, LabelValues, Fun).
track_inprogress/4Sets the gauge identified by Registry, Name and LabelValues to the number of currently executing Funs.
value/1Equivalent to value(default, Name, []).
value/2Equivalent to value(default, Name, LabelValues).
value/3Returns the value of the gauge identified by Registry, Name and LabelValues.
values/2

Function Details

dec/1

dec(Name) -> any()

Equivalent to inc(default, Name, [], -1).

dec/2

dec(Name, LabelValues) -> any()

If the second argument is a list, equivalent to inc(default, Name, LabelValues, -1) otherwise equivalent to inc(default, Name, [], -1 * Value).

dec/3

dec(Name, LabelValues, Value) -> any()

Equivalent to inc(default, Name, LabelValues, -1 * Value).

dec/4

dec(Registry, Name, LabelValues, Value) -> any()

Equivalent to inc(Registry, Name, LabelValues, -1 * Value).

declare/1

declare(Spec) -> any()

Creates a gauge using Spec. If a gauge with the same Spec exists returns false.

Raises {missing_metric_spec_key, Key, Spec} error if required Soec key is missing.
Raises {invalid_metric_name, Name, Message} error if metric Name is invalid.
Raises {invalid_metric_help, Help, Message} error if metric Help is invalid.
Raises {invalid_metric_labels, Labels, Message} error if Labels isn't a list.
Raises {invalid_label_name, Name, Message} error if Name isn't a valid label name.
Raises {invalid_value_error, Value, MessagE} error if duration_unit is unknown or doesn't match metric name.

deregister/1

deregister(Name) -> any()

Equivalent to deregister(default, Name).

deregister/2

deregister(Registry, Name) -> any()

Removes all gauge 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 gauge. Otherwise returns {false, _}.

inc/1

inc(Name) -> any()

Equivalent to inc(default, Name, [], 1).

inc/2

inc(Name, LabelValues) -> any()

If the second argument is a list, equivalent to inc(default, Name, LabelValues, 1) otherwise equivalent to inc(default, Name, [], Value).

inc/3

inc(Name, LabelValues, Value) -> any()

Equivalent to inc(default, Name, LabelValues, Value).

inc/4

inc(Registry, Name, LabelValues, Value) -> any()

Increments the gauge identified by Registry, Name and LabelValues by Value.

Raises {invalid_value, Value, Message} if Value isn't an integer.
Raises {unknown_metric, Registry, Name} error if gauge with named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

new/1

new(Spec) -> any()

Creates a gauge using Spec.

Raises {missing_metric_spec_key, Key, Spec} error if required Soec key is missing.
Raises {invalid_metric_name, Name, Message} error if metric Name is invalid.
Raises {invalid_metric_help, Help, Message} error if metric Help is invalid.
Raises {invalid_metric_labels, Labels, Message} error if Labels isn't a list.
Raises {invalid_label_name, Name, Message} error if Name isn't a valid label name.
Raises {invalid_value_error, Value, Message} error if duration_unit is unknown or doesn't match metric name.
Raises {mf_already_exists, {Registry, Name}, Message} error if a gauge with the same Spec already exists.

remove/1

remove(Name) -> any()

Equivalent to remove(default, Name, []).

remove/2

remove(Name, LabelValues) -> any()

Equivalent to remove(default, Name, LabelValues).

remove/3

remove(Registry, Name, LabelValues) -> any()

Removes gauge series identified by Registry, Name and LabelValues.

Raises {unknown_metric, Registry, Name} error if gauge with name Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

reset/1

reset(Name) -> any()

Equivalent to reset(default, Name, []).

reset/2

reset(Name, LabelValues) -> any()

Equivalent to reset(default, Name, LabelValues).

reset/3

reset(Registry, Name, LabelValues) -> any()

Resets the value of the gauge identified by Registry, Name and LabelValues.

Raises {unknown_metric, Registry, Name} error if gauge with name Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

set/2

set(Name, Value) -> any()

Equivalent to set(default, Name, [], Value).

set/3

set(Name, LabelValues, Value) -> any()

Equivalent to set(default, Name, LabelValues, Value).

set/4

set(Registry, Name, LabelValues, Value) -> any()

Sets the gauge identified by Registry, Name and LabelValues to Value.

Raises {invalid_value, Value, Message} if Value isn't a number or undefined.
Raises {unknown_metric, Registry, Name} error if gauge with named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

set_duration/2

set_duration(Name, Fun) -> any()

Equivalent to set_duration(default, Name, [], Fun).

set_duration/3

set_duration(Name, LabelValues, Fun) -> any()

Equivalent to set_duration(default, Name, LabelValues, Fun).

set_duration/4

set_duration(Registry, Name, LabelValues, Fun) -> any()

Sets the gauge identified by Registry, Name and LabelValues to the the amount of time spent executing Fun.

Raises {unknown_metric, Registry, Name} error if gauge with named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch. Raises {invalid_value, Value, Message} if Fun isn't a function.

set_to_current_time/1

set_to_current_time(Name) -> any()

Equivalent to set_to_current_time(default, Name, []).

set_to_current_time/2

set_to_current_time(Name, LabelValues) -> any()

Equivalent to set_to_current_time(default, Name, LabelValues).

set_to_current_time/3

set_to_current_time(Registry, Name, LabelValues) -> any()

Sets the gauge identified by Registry, Name and LabelValues to the current unixtime.

Raises {unknown_metric, Registry, Name} error if gauge with named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

track_inprogress/2

track_inprogress(Name, Fun) -> any()

Equivalent to track_inprogress(default, Name, [], Fun).

track_inprogress/3

track_inprogress(Name, LabelValues, Fun) -> any()

Equivalent to track_inprogress(default, Name, LabelValues, Fun).

track_inprogress/4

track_inprogress(Registry, Name, LabelValues, Fun) -> any()

Sets the gauge identified by Registry, Name and LabelValues to the number of currently executing Funs.

Raises {unknown_metric, Registry, Name} error if gauge with named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch. Raises {invalid_value, Value, Message} if Fun isn't a function.

value/1

value(Name) -> any()

Equivalent to value(default, Name, []).

value/2

value(Name, LabelValues) -> any()

Equivalent to value(default, Name, LabelValues).

value/3

value(Registry, Name, LabelValues) -> any()

Returns the value of the gauge identified by Registry, Name and LabelValues. If there is no gauge for LabelValues, returns undefined.

If duration unit set, value will be converted to the duration unit. Read more here.

Raises {unknown_metric, Registry, Name} error if gauge named Name can't be found in Registry.
Raises {invalid_metric_arity, Present, Expected} error if labels count mismatch.

values/2

values(Registry, Name) -> any()