記錄指標標籤

本頁面討論記錄指標預設標籤,並說明如何在記錄指標上建立及使用標籤。

如果您已對標籤很熟悉,可以直接參閱本頁面的建立標籤一文。

總覽

標籤允許記錄指標包含多個時間序列,每個標籤值有一個時間序列。所有記錄指標都隨附一些預設標籤

您可以指定擷取器運算式,以在計數器類型及分佈類型指標中建立其他使用者定義的標籤。擷取器運算式會告知 Stackdriver Logging 如何從記錄項目中擷取標籤的值。您可將值指定為以下任何一種:

  • 記錄項目中已命名欄位的完整內容。
  • 符合規則運算式的已命名欄位的一部分。

您可以從這兩種內建記錄項目欄位中擷取標籤,例如 httpRequest.status,或從酬載欄位 textPayloadjsonPayloadprotoPayload 中擷取。

使用者定義標籤的限制

擷取的標籤值不應太長,每個標籤也不應有太多不同的值:

  • 您最多可為每個指標建立 10 個使用者定義的標籤。

  • 建立標籤之後,就不能刪除標籤。

    • 如果是您已建立的標籤,您就可以修改標籤的擷取器運算式與說明。

    • 您無法變更已建立之標籤的名稱或值類型。

  • 系統只會保留標籤值的前 1,024 個字元。

  • 每個記錄指標都受限於約 30,000 個有效時間序列,這取決於每個標籤的可能值數目,包括預設標籤在內。

    舉例來說,如果您的記錄項目來自 100 項資源 (例如 VM 執行個體),且您為標籤定義了 20 種可能的值,則您的指標最多可能會有 2,000 個時間序列。

如果您的時間序列數或資料點數太多,您的成本將會上升,您的活動也可能會受到限制。如要進一步瞭解記錄指標的費用,請參閱 Stackdriver 定價一文。如要瞭解指標相關的配額與限制,請參閱配額與限制一文及疑難排解一文。

預設標籤

所有記錄指標,包括系統記錄指標在內,都隨附一些預先定義的標籤:

  • 資源標籤:所有指標都使用受控資源物件來識別時間序列資料的來源。每個資源類型都包含類型名稱與一或多個標籤。資源類型範例包括 VM 執行個體、CloudSQL 資料庫及負載平衡器等。

    在 Stackdriver Monitoring 中,資源及其標籤會與其他指標標籤分開列出,但它們的效果是相同的:它們都會在指標中建立額外的時間序列。詳情請參閱指標、時間序列和資源一文。

  • log (記錄):此標籤可在記錄項目中保存 LOG_ID 欄位 logName 部分的值。

  • severity (嚴重性):此標籤可在記錄項目中保存 severity 欄位的值。

範例

以下 Metrics Explorer 的螢幕擷取畫面顯示了其中一個系統記錄指標的標籤。您可以按一下 [Filter] (篩選器) 文字方塊內來取得標籤清單:

Metrics Explorer

螢幕擷取畫面顯示了下列資訊:

  • Metrics Explorer 正在使用來自 logging/log_entry_count 指標及 gce_instance 資源類型—Compute Engine VM 執行個體的時間序列。

    這個指標中也包含來自其他資源類型的時間序列,但 Metrics Explorer 只能讓您一次查看一個資源類型。

  • gce_instance 資源類型有三種資源標籤,分別是 project_idinstance_idzone

  • 指標有兩個指標標籤,分別是 logseverity。您的使用者定義標籤也顯示在此部分中。

建立標籤

您會在建立指標時建立使用者定義的標籤。計數器指標與分佈指標都可以有標籤。您不能將標籤新增至系統記錄指標

Logging 主控台

  1. 建立記錄指標時,「指標編輯工具」面板的部分包含新增標籤的選項:

    標籤選單

  2. 按一下 [Add item] (新增項目)。您會看見下列表單 (此表單已填入) 說明您的標籤:

    建立標籤

    提示:如要查看記錄項目內的所有欄位與值,請選擇記錄項目,按一下項目旁的展開圖示,然後按一下 [Expand all] (全部展開)

  3. 在 [Label] (標籤) 表單中填入下列欄位:

    1. 名稱:選擇標籤的名稱。例如,ID

      名稱必須符合下列條件:

      • 長度不可超過 100 個字元。
      • 符合規則運算式 [a-zA-Z][a-zA-Z0-9_]*。
      • 不只包含「log」字串。
    2. 說明:說明標籤。關於預期記錄值的格式,請試著儘可能具體說明,例如 Instance number

    3. 標籤類型:選擇 [String] (字串)、[Boolean] (布林值) 或 [Integer] (整數)

    4. 欄位名稱:輸入包含標籤值的記錄項目欄位名稱。您會在輸入時看到一些選擇。在此範例中,欄位為:

      labels."compute.googleapis.com/resource_id"
      
    5. 擷取規則運算式:如果您的標籤值包含欄位的完整內容,您可以將此欄位保留空白。否則,請指定從欄位值中擷取標籤值的規則運算式 (regexp)。例如,假設欄位通常包含類似以下這樣的文字:

      The instance number is 0123456789; the ID is my-test-instance22
      

      如果您希望標籤值是執行個體數,有許多規則運算式可以擷取正確的數目。以下即為一例:

      The instance number is ([0-9]+); .*
      

      圓括號,又稱為 regexp 擷取群組,可識別將擷取之文字比對的部分。如要進一步瞭解規則運算式,請參閱 RE2 語法一文。

  4. 按一下 [Done] (完成) 建立標籤。您可以重複以上步驟新增更多標籤。

Logging API

呼叫 Stackdriver Logging API projects.metrics.create 方法時,標籤會列在呼叫要求主體的 LogMetric 物件中。如要進一步瞭解完整的呼叫方法,請參閱建立計數器指標一文或建立分佈指標一文。

您必須在 LogMetric 中,為每個標籤的 metricDescriptorlabelExtractors 欄位加上區隔。

語法如下:

{
  ...
  metricDescriptor: {
      labels: [
        { key: [LABEL_NAME], valueType: [LABEL_TYPE],
          description: [LABEL_DESCRIPTION] },
        ...
      ]
  },
  labelExtractors: {
    [LABEL_NAME]: [EXTRACTOR_EXPRESSION],
    ...
  },
}

語法元素的意義如下:

  • [LABEL_NAME]:標籤做為字串的名稱。
  • [VALUE_TYPE]:標籤的類型:STRINGBOOLINT64
  • [LABEL_DESCRIPTION]:標籤的說明。
  • [EXTRACTOR_EXPRESSION]:將記錄項目欄位名稱與選用規則運算式組合在一起的字串,可能為下列其中之一:

    EXTRACT([FIELD])
    REGEXP_EXTRACT([FIELD], [REGEXP])
    

兩個標籤的範例如下:

{
  ...
  metricDescriptor: {
      labels: [
        { key: "label_name_a", valueType: STRING },
        { key: "label_name_b", valueType: INT64 },
      ]
  },
  labelExtractors: {
    "label_name_a":
      "REGEXP_EXTRACT(jsonPayload.field_a, \"before ([a-zA-Z ]+) after\"",
    "label_name_b": "EXTRACT(jsonPayload.field_b)",
  },
}

詳情請參閱 LogMetric 類型。

Cloud SDK

如需使用 Cloud SDK 建立含標籤之記錄指標的指示,請前往 gcloud beta logging metrics create

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Logging
需要協助嗎?請前往我們的支援網頁