使用 Grafana 可視化指標

使用者可以存取 Grafana 中預先建立的儀表板上的指標,並將它們用於臨時報告。

關於 Grafana

Grafana 提供基於瀏覽器的儀表板。

請訪問 Grafana 網站 以獲取更多資訊。

開啟 Grafana

預設情況下,已部署 Grafana。

假設命令 minikube ip 返回 192.168.39.39,則可在 http://grafana.192.168.39.39.nip.io 上使用主控台。

每次重新建立 minikube 執行個體時,minikube 的 IP 位址都會變更。
grafana

新增自訂儀表板

使用使用者名稱 admin 和密碼 keycloak 或與您的部署相關的密碼(當匿名登入不足時)登入 Grafana。

自訂儀表板包含在 monitoring/dashboards 資料夾中。 在此處新增更多儀表板作為新檔案,並且 task 會在 minikube 叢集中安裝最新版本。

拍攝儀表板快照

使用使用者名稱 admin 和與部署相關的密碼登入 Grafana 後,使用者將能夠拍攝儀表板的快照,並將快照匯出為 json 檔案,以便將它們匯入獨立的 Grafana 執行個體以檢視儀表板並與之互動。

您可以閱讀更多關於如何拍攝快照以及其他分享儀表板的方式,請參閱這裡

自動化儀表板 PDF 下載

我們有一個 python 腳本 snapGrafana.py,它允許我們在給定的時間範圍、Grafana 執行個體和 Kubernetes 名稱空間中拍攝可用儀表板的 PDF 快照。

安裝所需的 python 程式庫

pip3 install -U -r requirements.txt

我們可以使用以下命令檢查是否滿足所有需求。

python3 -m pip check
如果未安裝,則導入的 playwright python 模組需要使用命令 playwright install 進行額外安裝,否則我們會看到類似的例外狀況。
if you see a missing playwright._impl._api_types.Error: Executable doesn't exist at  exception, just run the below command to download the needed browsers for the script to work.

用法

滿足腳本的要求後,您可以使用以下命令使用它,並且儀表板 PDF 會下載到您執行此腳本的目前目錄中。

python3 snapGrafana.py --grafana_domain ${GRAFANA_DOMAIN} \
--admin_password ${KEYCLOAK_MASTER_PASSWORD} \
--time_window "from=1694801561166&to=1694802033424" \
--keycloak_namespace "runner-keycloak"

snapGrafana.py cli 選項

CLI 選項 預設值 備註

--grafana_domain

(未設定)

Grafana 伺服器的網域,不含 http://

範例:--grafana_domain grafana.apps.gh-keycloak.abcd.xx.openshiftapps.com

--admin_password

(未設定)

這是 Grafana 管理員使用者的密碼,如果您使用 minikube 部署,則為 admin,如果您使用 openshift,則為針對 KEYCLOAK_MASTER_PASSWORD 設定的密碼

--keycloak_namespace

runner-keycloak

部署目標 Keycloak 的名稱空間,grafana 儀表板會使用它來篩選。

--time_window

(未設定)

儀表板用來篩選儀表板範圍的時間範圍。

當使用 Ansible 模組的 benchmark.sh 腳本時,您會在 playbook 執行結束時找到類似以下的訊息。

INFO: Input for snapGrafana.py is from=1695382925487&to=1695383025382

當直接使用 kcb.sh 時,使用者可以從基於 kcb.sh 的負載模擬後產生的 result_grafana_inputs.json 檔案中取得此值,並且可以在 keycloak-benchmark-0.XX-SNAPSHOT/results/ 目錄中找到。 以下是 result_grafana_inputs.json 檔案的範例輸出,並且所需的時間範圍值與 snap_grafana_time_window 鍵相關聯。

{
  "uuid": "108fdd0c-41b7-41d5-af66-8a41cff19a8f",
  "name": "Scenario 'keycloak.scenario.authentication.AuthorizationCode' with 2 users-per-sec",
  "grafana_input": {
    "start": {
      "epoch_seconds": 1695213772,
      "iso": "2023-09-20T08:42:52-04:00"
    },
    "end": {
      "epoch_seconds": 1695213810,
      "iso": "2023-09-20T08:43:30-04:00"
    },
    "input": {
      "scenario": "keycloak.scenario.authentication.AuthorizationCode",
      "snap_grafana_time_window": "from=1695213772731&to=1695213810554",
      "unit": "users-per-sec",
      "value": 2,
      "config": "-Drealm-name=test-realm"
    }
  }
}