docs/sources/administration/grafana-advisor/advisor-cli/_index.md
{{< admonition type="note" >}} Grafana Advisor performs regular checks on data sources, plugins, and your Grafana instance, but will expand its capabilities in future releases to cover more aspects of your Grafana environment. You can suggest new checks and provide feedback through this form. {{< /admonition >}}
gcx, the Grafana CLI tool, is a command-line tool for managing Grafana resources as code. To install and configure it, refer to the Grafana CLI documentation.
You can use gcx to manage Advisor checks and checktypes.
To get the list of checks, run:
gcx resources get checks -o wide
For a more detailed view, you can get the list of elements checked and failing inspecting the JSON output:
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'
To get the list of check types:
gcx resources get checktypes -o wide
To see all failures in your instance:
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'
To run checks for a specific type, create the check resource and push it:
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
Next, wait for the check to run and the results to be available:
gcx resources get checks/check-manual -o json | jq '.status.report'
To identify the plugins that need an update:
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'
To look for unhealthy data sources:
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'