Как создать метрику с несколькими значениями? - PullRequest
0 голосов
/ 17 января 2019

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

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

{
  "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 - это String, а не String Array.

1 Ответ

0 голосов
/ 18 января 2019

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

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

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

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

...