Как создать метрику с несколькими значениями?

Уже прочитал это, но не повезло.

Все примеры, которые я нашел, просто показывают, как создать один тег значения следующим образом:

{
  "name" : "jvm.gc.memory.allocated",
  "measurements" : [ {
    "statistic" : "COUNT",
    "value" : 1.98180864E8
  } ],
  "availableTags" : [ {
    "tag" : "stack",
    "values" : [ "prod" ]
  }, {
    "tag" : "region",
    "values" : [ "us-east-1" ]
  } ]
}

Но мне нужно создать тег с несколькими значениями, например так:

availableTags: [
{
    tag: "method",
    values: [
        "POST",
        "GET"
    ]
},

Мой код до сих пор:

    List<Tag> tags = new ArrayList<Tag>();
    tags.add( Tag.of("test", "John") );
    tags.add( Tag.of("test", "Doo") );
    tags.add( Tag.of("test", "Foo Bar") );
    Metrics.gauge("my.metric", tags, new AtomicLong(3) );

Как вы видите, я думаю, что я могу просто повторить ключ, но это не тот случай, а второй параметр Tag.of является строковым, а не строковым массивом.

1 ответ

Я не думаю, что это было настоящей целью авторов этих библиотек измерений - предоставить многозначный тег для метрики.

Весь смысл тегов метрик заключается в том, чтобы предоставить "дискриминатор" - то, что может быть использовано позже для получения метрик, у тега которых есть конкретное единственное значение.

Обычно это значение используется в системах хранения метрик, таких как Prometheus, DataDog, InfluxDB и так далее. Кроме того, Grafana может включать одно значение тега в свои запросы.

Единственный возможный вариант использования такого запроса, который я вижу, состоит в том, что будет возможно увидеть значение метрик в приводе более удобным способом, но опять-таки, это не главное в этой возможности, поэтому линия я сомневаюсь, что это вообще возможно.

Другие вопросы по тегам