Package io.prometheus.client
Class Enumeration
- All Implemented Interfaces:
Collector.Describable
public class Enumeration
extends SimpleCollector<Enumeration.Child>
implements Collector.Describable
Enumeration metric, to track which of a set of states something is in.
The first provided state will be the default.
Example Enumeration:
class YourClass {
static final Enumeration taskState = Enumeration.build()
.name("task_state").help("State of the task.")
.states("stopped", "starting", "running")
.register();
void stop() {
// Your code here.
taskState.state("stopped")
}
}
You can also use a Java Enum:
class YourClass {
public enum yourEnum {
STOPPED,
STARTING,
RUNNING,
}
static final Enumeration taskState = Enumeration.build()
.name("task_state").help("State of the task.")
.states(yourEnum.class)
.register();
void stop() {
// Your code here.
taskState.state(yourEnum.STOPPED)
}
}
}
- Since:
- 0.10.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classThe value of a single Enumeration.Nested classes/interfaces inherited from class io.prometheus.client.Collector
Collector.Describable, Collector.MetricFamilySamples, Collector.Type -
Field Summary
FieldsFields inherited from class io.prometheus.client.SimpleCollector
children, fullname, help, labelNames, noLabelsChild, unitFields inherited from class io.prometheus.client.Collector
MILLISECONDS_PER_SECOND, NANOSECONDS_PER_SECOND -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Enumeration.Builderbuild()Return a Builder to allow configuration of a new Enumeration.static Enumeration.BuilderReturn a Builder to allow configuration of a new Enumeration.collect()Return all metrics of this Collector.describe()Provide a list of metric families this Collector is expected to return.get()Get the value of the Enumeration.protected Enumeration.ChildnewChild()Return a new child, workaround for Java generics limitations.voidSet the state on the enum with no labels.voidSet the state on the enum with no labels.Methods inherited from class io.prometheus.client.SimpleCollector
clear, familySamplesList, initializeNoLabelsChild, labels, remove, setChildMethods inherited from class io.prometheus.client.Collector
checkMetricLabelName, checkMetricName, collect, doubleToGoString, register, register, sanitizeMetricName
-
Field Details
-
states
-
-
Constructor Details
-
Enumeration
Enumeration(Enumeration.Builder b)
-
-
Method Details
-
build
Return a Builder to allow configuration of a new Enumeration. Ensures required fields are provided.- Parameters:
name- The name of the metrichelp- The help string of the metric
-
build
Return a Builder to allow configuration of a new Enumeration. -
newChild
Description copied from class:SimpleCollectorReturn a new child, workaround for Java generics limitations.- Specified by:
newChildin classSimpleCollector<Enumeration.Child>
-
state
Set the state on the enum with no labels. -
state
Set the state on the enum with no labels. -
get
Get the value of the Enumeration. -
collect
Description copied from class:CollectorReturn all metrics of this Collector. -
describe
Description copied from interface:Collector.DescribableProvide a list of metric families this Collector is expected to return. These should exclude the samples. This is used by the registry to detect collisions and duplicate registrations. Usually custom collectors do not have to implement Describable. If Describable is not implemented and the CollectorRegistry was created with auto describe enabled (which is the case for the default registry) thenCollector.collect()will be called at registration time instead of describe. If this could cause problems, either implement a proper describe, or if that's not practical have describe return an empty list.- Specified by:
describein interfaceCollector.Describable
-