建立與管理變數

在 IBM® Cloud Logs 中,變數是在查詢中使用的值的占位符。 在自訂儀表板中使用時,儀表板的查詢會更新以顯示該值的資料。

變數讓儀表板更具互動性和動態。 您可以使用變數來取代在查詢中加入伺服器、應用程式或感測器的特定名稱。 您可以輕鬆切換不同的資料檢視。 這表示如果您有複雜的高心數指標,您可以新增變數來放大您關心的特定值。 不論變數來源類型為何,所有資料類型的變數都可以跨 widget 使用。

變數類型

您可以選擇不同的變數類型。

靜態值變數
您可以手動定義變量值的固定清單,例如以逗號分隔的數字或數字字串。 例如,如果您的國家名稱永遠不會變,您可能會希望將其建立為靜態值變 數,而不是資料來源查詢變數。
查詢變數
變量值可從日誌或度量衡資料來源查詢擷取。 例如,查詢變數可以產生伺服器名稱、感測器 ID 或資料中心的清單,透過使用資料來源查詢取得選項,動態更新數值。 查詢變數在管理多個資料來源實體時非常有用,尤其是跨越不同的環境。

為自訂儀表板定義變數

  1. 登入您的 IBM Cloud 帳戶

  2. 存取您的 IBM Cloud Logs 範例

  3. 按一下儀表板圖示儀表板圖示 > Custom dashboards。

  4. 在新的或現有的儀表板中,按一下管理變數圖示。{ }.

  5. 按一下 + 變數

  6. 對於所有變數類型,設定下列欄位:

    • 變數類型。

    • 變數名稱。 在此欄位中輸入的文字決定變數名稱在查詢中的顯示方式,例如 {{ podvalues }}。 變數名稱中不允許使用大寫字母或空格。

    • 顯示名稱(可選)。 在此欄位中輸入的文字會出現在選擇中,成為下拉清單的一部分,例如「我的 Pods」。

    • 選擇選項。

      多值
      多值指定使用者可以在特定變數中選擇多個值。 某些查詢不支援多重值,例如 {{ variablename }}。 僅當您的查詢支援多重值時,才選擇此選項。
      併入全部
      啟用多值選項時,可以選擇包含全部。 不論您的特定選擇為何,查詢都會選擇特定時間範圍內的所有可用值和未來值。 選擇這兩個選項時,預設會選擇所有變數選項,也可以取消選擇一個或多個變數選項。 如果兩個選項都未指定,則一次只能選擇一個變量值。
  7. 對於 query 類型的變數:

    • 指定查詢來源 (logsmetrics)。

    • 對於 variable type,請指定 values,對於 logs. metrics 請指定 metric names, metric labels,或 label values。 如果選擇 metric labels,請選擇要用於顯示數值的標籤。

    • 對於 logs,請選擇要查詢的記錄鍵來定義欄位。 當前變量值的清單以字母數字順序顯示在數值預覽中。

    • 針對 metrics,在 Metrics regex 中輸入 regex 表達式,以取得您希望顯示的度量單位清單。 例如,^kube(.*) 會返回所有以 kube 開頭的公制名稱。

      • label values, 公制標籤,選擇顯示數值的標籤。 插入變數使標籤動態,例如 Pod Name = {{ pod }}

      • label values,對於 Label 過濾器,請為您的查詢建立一個或多個嵌套變數和額外的過濾層。 例如,您可以選擇依群集篩選標籤,選擇的值是 {{ podvalue }} 或硬編碼的群集名稱。

      • metrics變量值顯示名稱,定義值在下拉選單中的顯示方式。

        數值預覽中會顯示欄位的目前變量值清單。

    • 對於排序值,選擇如何在值預覽中排序資料。

  8. 按一下儲存

變數也可以從已定義變數的清單中編輯或刪除。

在查詢中使用變數

除了在自訂儀表板中使用變數外,您還可以在 Lucene、DataPrime, 和 PromQL 查詢中使用已定義的變數。

Lucene 查詢

您可以在 Lucene 查詢中使用定義的變數。 例如,product_id:{{ pid }},其中 pid 是變量名稱(不是顯示名稱)、

DataPrime 查詢

建立變數後,使用者選擇的變數值可以在 DataPrime 查詢中使用 $p.<variable_name> 作為 查詢參數

PromQL 查詢

在 PromQL 查詢語言中使用 {{ variable_name }}

例如,PromQL 查詢 sum(kube_pod_owner{pod=~"{{ pod }}"}) 用於彙集與 Kubernetes pod 相關的度量。{pod=~"{{ pod }}"} 是一個標籤選擇器,可過濾名稱與變量值相符的特定 pod 的 kube_pod_owner 度量。 {{ pod }} 占位符是模板變數,在執行查詢時會取代實際的 pod 名稱。

您也可以在 PromQL 查詢中使用預定義變數。

預先定義的 PromQL 變數
變數 說明 範例
${__range} 這個變數代表儀表板時間範圍的持續時間。 它會以 PromQL 支援的間隔字串呈現。 例如,如果選擇時間範圍從 13.0014.30,則 ${__range} 變數的計算方式為 90m 1d, 5m
${__range_s} 以選取時間範圍內的秒數計算。 60s, 180s
${__range_ms} 以選取時間範圍內的毫秒數計算。 60ms, 180ms

例如,您可以在 sum_over_time 中使用 __range variable

sum_over_time(kube_pod_owner[${__range}])