Please describe the feature request.
I would like to be able to provide metric tags as array of Pair objects
Rationale
Currently I have two ways to pass tags:
meterRegistry.counter(path, "foo", foo, "bar", bar).increment() // 1
meterRegistry.counter(path, Tags.of(Tag.of("foo", foo), Tag.of("bar", bar))).increment() // 2
First method may lead to runtime errors if someone forgets to provide key or value resulting in uneven number of tag arguments.
Second method is too verbose.
I would like to be able to write in Kotlin:
meterRegistry.counter(path, Tags.of("foo" to foo, "bar" to bar)).increment()
Note: to operator in Kotlin creates a Pair object so this is equivalent to:
meterRegistry.counter(path, Tags.of(Pair("foo", foo), Pair("bar", bar))).increment()
Nice to have: additional methods in MeterRegistry class allowing to avoid dealing with Tags class - probably a breaking change?
meterRegistry.counter(path, "foo" to foo, "bar" to bar).increment()
Additionally it would be nice if Micrometer allowed passing values of any type and converting them to String automatically, e.g.:
meterRegistry.counter(path, Tags.of("foo" to 10)).increment()
Please describe the feature request.
I would like to be able to provide metric tags as array of
PairobjectsRationale
Currently I have two ways to pass tags:
First method may lead to runtime errors if someone forgets to provide key or value resulting in uneven number of tag arguments.
Second method is too verbose.
I would like to be able to write in Kotlin:
Note:
tooperator in Kotlin creates aPairobject so this is equivalent to:Nice to have: additional methods in
MeterRegistryclass allowing to avoid dealing withTagsclass - probably a breaking change?Additionally it would be nice if Micrometer allowed passing values of any type and converting them to
Stringautomatically, e.g.: