Переменная Grafana DataSet для преобразования значений легенды с помощью драйвера Postgres - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть нормализованный источник данных postgres в Графане, который ограничивает мою легенду о графической визуализации отображением только идентификатора (ха sh) моей записи. Я хочу сделать это понятным человеку, но отображение id -> name находится в другой базе данных источника / postgres.

Grafana поддерживает переменные-шаблоны, которые, как мне кажется, могут позволить мне загрузить мои идентификаторы -> именования справочных данных, но нет четкой документации о том, как получить доступ к label_values ​​в качестве справочной таблицы в драйвере postgres редактор запросов.

Есть ли способ настроить переменную шаблона для загрузки справочных данных (id -> name) и использовать ее для перевода моих метрик / идентификаторов легенды в драйвере grafana postgres?

Например (псевдо-графана postgres редактор запросов):

SELECT
  $__timeGroupAlias(start,$__interval),
  animal_names.__value AS metric,
  count(dog.chewed_bones) AS “# bones chewed“
FROM animals.dog dog
JOIN $TEMPLATE_VAR_REF_DATA animal_names ON dog.id = animal_names.__text
WHERE $__timeFilter(start_time)
GROUP BY 1,2
ORDER BY 1,2

Ближайший ответ, который я нашел, здесь, но не вдавался в подробности: комментарий johnymachine @ https://github.com/grafana/grafana/issues/1032

1 Ответ

0 голосов
/ 27 апреля 2020

Я понял, что комментарий github означал использование агрегатной функции jsonb в качестве переменной, как в следующем решении:

Переменная панели мониторинга (тип запроса): select jsonb_object_agg(id,name) from animal_names;

Графана Postgres Псевдо -Запрос:

SELECT
  $__timeGroupAlias(start,$__interval),
  animal_names::jsonb ->> dog.id::text AS metric,
  count(dog.chewed_bones) AS “# bones chewed“
FROM animals.dog
WHERE $__timeFilter(start_time)
...