Управление Grafana Advisor с помощью Grafana CLI
Note
Grafana Advisor выполняет регулярные проверки источников данных, плагинов и вашего экземпляра Grafana, но в будущих выпусках его возможности будут расширены для охвата других аспектов вашей среды Grafana. Вы можете предложить новые проверки и оставить отзыв через эту форму.
gcx — инструмент командной строки Grafana для управления ресурсами Grafana как кодом. Сведения об установке и настройке см. в
документации Grafana CLI.
С помощью gcx можно управлять ресурсами Advisor checks и checktypes.
Получение списка проверок
Чтобы получить список проверок, выполните:
gcx resources get checks -o wide
Для более подробного представления можно получить список проверенных и неуспешных элементов, изучив вывод JSON:
gcx resources get checks -o json | jq -r '
["TYPE","CHECKED","FAILURES"],
(
[.items[] | {
type: .metadata.labels["advisor.grafana.app/type"],
ts: .metadata.creationTimestamp,
count: (.status.report.count // 0),
failures: ((.status.report.failures // []) | length)
}]
| group_by(.type)
| map(sort_by(.ts) | last)
| sort_by(.type)
| .[]
| [.type, (.count | tostring), (.failures | tostring)]
)
| @tsv
' | column -t -s $'\t'
Получение списка типов проверок
Чтобы получить список типов проверок:
gcx resources get checktypes -o wide
Показать все сбои по всем типам проверок
Чтобы увидеть все сбои в вашем экземпляре:
gcx resources get checks -o json | jq -r '
["SEVERITY","ITEM","RULE","TYPE"],
(
[.items[] | {
type: .metadata.labels["advisor.grafana.app/type"],
ts: .metadata.creationTimestamp,
failures: (.status.report.failures // [])
}]
| group_by(.type)
| map(sort_by(.ts) | last)
| map(select((.failures | length) > 0))
| .[]
| .type as $t
| .failures[]
| [.severity, .item, .stepID, $t]
)
| @tsv
' | column -t -s $'\t'
Запуск проверок для типа
Чтобы запустить проверки для конкретного типа, создайте ресурс проверки и отправьте его:
mkdir -p resources/Check/
echo '{
"kind":"Check",
"metadata":{
"name":"check-manual",
"labels":{"advisor.grafana.app/type":"datasource"}, # Replace with the check type you want to run
"namespace":"<namespace>" # Replace with the namespace of your Grafana instance or "default" for on-premise
},
"apiVersion":"advisor.grafana.app/v0alpha1",
"spec":{"data":{}},
"status":{
"report":{
"count":0,
"failures":[]
}
}
}' > resources/Check/check-manual.json
gcx push checks/check-manual
Затем дождитесь выполнения проверки и появления результатов:
gcx resources get checks/check-manual -o json | jq '.status.report'
Получение списка плагинов, требующих обновления
Чтобы определить плагины, требующие обновления:
gcx resources get checks -o json | jq -r '
["PLUGIN","SEVERITY","PLUGIN PATH"],
(
[.items[] | select(.metadata.labels["advisor.grafana.app/type"] == "plugin")]
| sort_by(.metadata.creationTimestamp) | last
| .status.report.failures[]?
| select(.stepID == "update")
| [.item, .severity, (.links[0].url // "-")]
)
| @tsv
' | column -t -s $'\t'
Нездоровые источники данных
Чтобы найти нездоровые источники данных:
gcx resources get checks -o json | jq -r '
["DATASOURCE","SEVERITY","DATASOURCE PATH"],
(
[.items[] | select(.metadata.labels["advisor.grafana.app/type"] == "datasource")]
| sort_by(.metadata.creationTimestamp) | last
| .status.report.failures[]?
| select(.stepID == "health-check")
| [.item, .severity, (.links[0].url // "-")]
)
| @tsv
' | column -t -s $'\t'