Skip to content

Add Tags.of method taking array of Pair #4960

@rafalh

Description

@rafalh

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()

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementA general enhancementhelp wantedAn issue that a contributor can help us withkotlinmodule: micrometer-coreAn issue that is related to our core module

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions