Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve docs for same name with different tags #5751

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions docs/modules/ROOT/pages/implementations/prometheus.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,26 @@ image::implementations/prometheus-long-task-timer.png[Grafana-rendered Prometheu
== Limitation on same name with different set of tag keys

The `PrometheusMeterRegistry` doesn't allow to create meters having the same name with a different set of tag keys, so you should guarantee that meters having the same name have the same set of tag keys.
Otherwise, subsequent meters having the same name with a different set of tag keys will not be registered silently by default.
You can change the default behavior by registering a meter registration failed listener.
Otherwise, subsequent meters having the same name with a different set of tag keys will not be registered. This means that you should not do things like:
[source,java]
----
// Please don't do this
registry.counter("test", "first", "1").increment();
registry.counter("test", "second", "2").increment();
----
This will result in the following warning and the second `Meter` will not be registered:
[source]
----
WARNING: The meter (MeterId{name='test', tags=[tag(second=2)]}) registration has failed: Prometheus requires that all meters with the same name have the same set of tag keys. There is already an existing meter named 'test' containing tag keys [first]. The meter you are attempting to register has keys [second]. Note that subsequent logs will be logged at debug level.
----
Instead you can do something like this:
[source,java]
----
registry.counter("test", "first", "1", "second", "none").increment();
registry.counter("test", "first", "none", "second", "2").increment();
----

You can change the default warning behavior by registering a meter registration failed listener.
For example, you can register a meter registration failed listener that throws an exception as follows:

[source,java]
Expand Down
Loading