grafana-wtf — grep по всем сущностям Grafana в духе git-wtf.
Внимание!
Эта программа может создать значительную нагрузку на ваш экземпляр Grafana и базовую базу данных. Обращайтесь осторожно!
Найдите в Grafana (панели мониторинга и источники данных) строку «база погоды».
grafana-wtf найти базу погоды
Отображение 50 последних изменений на всех информационных панелях.
журнал графаны-wtf --number=50
Изучите панели мониторинга и источники данных более подробно.
grafana-wtf изучить информационные панели grafana-wtf изучить источники данных
Изучите плагины.
список плагинов grafana-wtf Статус плагинов grafana-wtf
Запустите с помощью Docker:
# Доступ к экземпляру Grafana на локальном хосте без аутентификации. докер запустить --rm -it --env GRAFANA_URL="http://host.docker.internal:3000" ghcr.io/grafana-toolbox/grafana-wtf информация о графане-wtf # Доступ к экземпляру Grafana с аутентификацией. докер запустить --rm -it --env GRAFANA_URL="https://grafana.example.org/grafana" --env GRAFANA_TOKEN="eyJrIjoiWHg...dGJpZCI6MX0=" ghcr.io/grafana-toolbox/grafana-wtf информация о графане-wtf
grafana-wtf find
grafana-wtf log
grafana-wtf
pip установить графану-wtf
Пожалуйста, выполните следующие действия, чтобы создать ключ API для вашего экземпляра Grafana:
https://daq.example.org/grafana/org/apikeys
.curl -H "Authorization: Bearer eyJrIjoiWHg...dGJpZCI6MX0=" ...
обратите внимание на токен Bearer. Это ваш ключ API Grafana. Чтобы настроить, к какому экземпляру Grafana подключаться и как проходить аутентификацию, используйте параметры командной строки --grafana-url
и --grafana-token
.
Альтернативно, перед запуском grafana-wtf
вы можете определить URL-адрес и токен доступа вашего экземпляра Grafana, используя переменные среды:
экспортировать GRAFANA_URL=https://daq.example.org/grafana/ экспорт GRAFANA_TOKEN=eyJrIjoiWHg...dGJpZCI6MX0=
Чтобы принять ненадежные сертификаты SSL, добавьте строку запроса ?verify=no
к GRAFANA_URL
:
экспортировать GRAFANA_URL=https://daq.example.org/grafana/?verify=no
grafana-wtf
по умолчанию кэширует HTTP-ответы в течение 60 минут, чтобы сэкономить ресурсы, не обращаясь к каждому серверу. Вы можете настроить этот параметр, используя параметр --cache-ttl
или переменную среды CACHE_TTL
.
При вызове программы с опцией --drop-cache
она заранее удаляет свой кеш.
# Отобразить кучу метаинформации и статистики. информация о графане-wtf --format=yaml # Отображение версии Grafana. графана-wtf информация --format=json | jq -r '.grafana.version'
Как найти неиспользуемые источники данных?
# Отображение всех источников данных и использующих их информационных панелей, а также неиспользуемых источников данных. grafana-wtf изучить источники данных --format=yaml # Отображать имена неиспользуемых источников данных в виде плоского списка. grafana-wtf изучить источники данных --format=json | jq -r '.unused[].datasource.name'
Как найти панели мониторинга, которые используют несуществующие источники данных?
# Отобразить некоторые сведения обо всех информационных панелях, включая имена отсутствующих источников данных. grafana-wtf изучить информационные панели --format=yaml # Отображать только информационные панели, в которых отсутствуют источники данных, вместе с их именами. grafana-wtf изучить информационные панели --format=json | jq '.[] | выберите(.datasources_missing) | .dashboard + {ds_missing: .datasources_missing[] | [.имя]}'
Как найти информационные панели, используя определенные источники данных?
# Отобразить все информационные панели, использующие определенный источник данных, отфильтрованные по имени источника данных. grafana-wtf изучить информационные панели --format=json | jq '.[] | select(.datasources | .[].type=="<имя_источника_данных>")' # Отобразить все информационные панели, используя источники данных определенного типа. Здесь: InfluxDB. grafana-wtf изучить информационные панели --format=json | jq '.[] | select(.datasources | .[].type=="influxdb")'
Как составить список всех запросов, используемых во всех информационных панелях?
grafana-wtf изучить информационные панели --data-details --queries-only --format=json | jq '.[].подробнее | значения[] | .[] | .expr,.jql,.query,.rawSql | select( . != null и . != "" )'
Найдите строку weatherbase
во всех информационных панелях и источниках данных:
grafana-wtf найти базу погоды
Замените все вхождения ldi_v2
на ldi_v3
на панели управления с UID _JJ22OZZk
:
grafana-wtf --select-dashboard=_JJ22OZZk заменить ldi_v2 ldi_v3
Чтобы просмотреть изменения, вам следует заранее использовать опцию --dry-run
:
grafana-wtf --select-dashboard=_JJ22OZZk replace ldi_v2 ldi_v3 --dry-run
Следите за недавними действиями по редактированию на каких-либо панелях мониторинга?
# Отображение 50 последних изменений на всех информационных панелях. журнал графаны-wtf --number=50
Чтобы узнать больше параметров командной строки и их аргументов, вызовите grafana-wtf --help
и просмотрите примеры grafana-wtf.
клон git https://github.com/grafana-toolbox/grafana-wtf компакт-диск графана-wtf # Запускаем все тесты. сделать тест # Запуск выбранных тестов. pytest --keepalive -vvv -k test_find_textual