grafana-wtf - 本著 git-wtf 的精神 grep 所有 Grafana 實體.
注意力!
該程式可能會為您的 Grafana 執行個體和底層資料庫機器帶來巨大的負載。小心處理!
在 Grafana(儀表板和資料來源)中搜尋字串「weatherbase」。
grafana-wtf 查找weatherbase
顯示所有儀表板中的 50 個最新變更。
grafana-wtf 日誌 --number=50
更詳細地探索儀表板和資料來源。
grafana-wtf 探索儀表板 grafana-wtf 探索資料來源
探索插件。
grafana-wtf 外掛程式列表 grafana-wtf 插件狀態
使用 Docker 運行:
# 存取本機上的 Grafana 實例,無需身份驗證。 docker run --rm -it --env GRAFANA_URL="http://host.docker.internal:3000" ghcr.io/grafana-toolbox/grafana-wtf grafana-wtf 訊息 # 透過身份驗證存取 Grafana 實例。 docker run --rm -it --env GRAFANA_URL="https://grafana.example.org/grafana" --env GRAFANA_TOKEN="eyJrIjoiWHg...dGJpZCI6MX0=" ghcr.io/grafana-toolbox/grafana-wtf grafana-wtf 訊息
grafana-wtf find
grafana-wtf log
grafana-wtf
pip 安裝 grafana-wtf
請依照下列步驟使用您的 Grafana 實例建立 API 金鑰:
https://daq.example.org/grafana/org/apikeys
。curl -H "Authorization: Bearer eyJrIjoiWHg...dGJpZCI6MX0=" ...
,請記下 Bearer 令牌。這是您的 Grafana API 金鑰。 若要設定要連接的 Grafana 實例以及如何進行身份驗證,請使用--grafana-url
和--grafana-token
命令列選項。
或者,在執行grafana-wtf
之前,您可以使用環境變數定義 Grafana 執行個體的 URL 和存取權杖:
導出 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
選項呼叫程式時,它將預先刪除其快取。
# 顯示一堆元資訊和統計資料。 grafana-wtf 訊息 --format=yaml # 顯示Grafana版本。 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=="<datasource_name>")' # 顯示使用特定類型資料來源的所有儀表板。這裡: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 查找weatherbase
將儀表板中所有出現的ldi_v2
替換為ldi_v3
並使用 UID _JJ22OZZk
:
grafana-wtf --select-dashboard=_JJ22OZZk 取代 ldi_v2 ldi_v3
為了預覽更改,您應該事先使用--dry-run
選項:
grafana-wtf --select-dashboard=_JJ22OZZk 取代 ldi_v2 ldi_v3 --dry-run
留意任何儀表板上最近的編輯活動嗎?
# 在所有儀表板上顯示 50 個最新變更。 grafana-wtf 日誌 --number=50
若要發現更多命令列參數及其參數,請呼叫grafana-wtf --help
並查看 grafana-wtf 範例。
git 克隆 https://github.com/grafana-toolbox/grafana-wtf cd grafana-wtf # 運行所有測試。 進行測試 # 運行選定的測試。 pytest --keepalive -vvv -k test_find_textual