ログベースの指標ラベル

このページでは、ログベースの指標のデフォルト ラベルについて説明するとともに、ログベースの指標にラベルを作成し、使用する方法について説明します。

ラベルについてすでに理解している場合は、このページのラベルの作成に直接進むことができます。

概要

ラベルを使用すると、ログベースの指標に、ラベル値ごとに 1 つずつの複数の時系列を含めることができます。すべてのログベースの指標には、デフォルトのラベルがあります。

抽出式を指定すると、カウンタタイプと分布タイプの両方の指標で追加のラベルを作成できます。抽出式によって、Cloud Logging に、ログエントリからラベルの値を抽出する方法が指示されます。ラベルの値は、次のいずれかを指定できます。

  • LogEntry オブジェクトの名前付きフィールドの内容全体。
  • 正規表現(regexp)に一致する名前付きフィールドの一部。

ラベルは、httpRequest.status などの LogEntry の組み込みフィールドから抽出することも、textPayloadjsonPayloadprotoPayload のいずれかのペイロード フィールドから抽出することもできます。

正規表現の詳細については、RE2 構文をご覧ください。

ユーザー定義ラベルの制限

ユーザー定義ラベルには次の制限があります。

  • 指標 1 つあたり最大 10 個のユーザー定義ラベルを作成できます。

  • ラベルを作成した後にそれを削除することはできません。

    • 作成したラベルの抽出式と説明は変更できます。

    • 作成したラベルの名前と値の型は変更できません。

  • ラベル値の最初の 1,024 文字だけが保持されます。

  • ログベースの各指標は、約 30,000 個のアクティブ時系列に制限されています。これは、デフォルト ラベルを含む各ラベルの有効な値の数に依存します。

    たとえば、ログエントリの取得元が VM インスタンスなどの 100 個のリソースで、20 個の有効な値でラベルを定義する場合、指標に対して最大 2,000 個の時系列を格納できます。

時系列が多すぎたり、データポイントが多すぎたりすると、コストが上昇し、アクティビティが抑制される可能性があります。ログベースの指標の費用についての詳細は、Google Cloud のオペレーション スイート料金をご覧ください。指標関連の割り当てと上限については、割り当てと上限トラブルシューティングをご覧ください。

デフォルト ラベル

すべてのログベースの指標には、定義済みのラベルがあります(システム ログベースの指標を含む)。

  • リソースラベル: すべての指標は、モニタリング対象のリソース オブジェクトを使用して、時系列データのソースを識別します。リソースタイプは、タイプ名と 1 つ以上のラベルから構成されます。リソースのタイプとしては、たとえば VM インスタンス、Cloud SQL データベース、ロードバランサなどがあります。

    リソースとそのラベルは、Cloud Monitoring の他の指標ラベルとは別に表示されますが、効果は同じです。指標に追加の時系列が作成されます。詳細については、指標、時系列、リソースをご覧ください。

  • ログ: このラベルは、ログエントリの logName フィールドの LOG_ID 部分に含まれる値を保持します。

  • 重大度: このラベルは、ログエントリの severity フィールドの値を保持します。

Metrics Explorer の次のスクリーンショットは、システム ログベースの指標の 1 つのラベルを示しています。[フィルタ] テキスト ボックス内をクリックすると、ラベルリストが表示されます。

Metrics Explorer

スクリーンショットには、次の情報が表示されます。

  • Metrics Explorer は、logging/log_entry_count 指標と gce_instance リソースタイプ(Compute Engine VM インスタンス)の時系列を使用しています。

    この指標には他のリソースタイプの時系列も含まれますが、Metrics Explorer では一度に 1 つのリソースタイプのみを表示できます。

  • gce_instance リソースタイプには、3 つのリソースラベルproject_idinstance_idzone)があります。

  • この指標には 2 つの指標ラベルlogseverity)があります。このセクションには、ユーザー定義のラベルも表示されます。

ラベルの作成

指標を作成するときに、ユーザー定義のラベルを作成します。カウンタ指標と分散指標の両方にラベルを付けることができます。システム ログベースの指標にラベルを追加することはできません。

コンソール

  1. ログベースの指標を作成する場合、[指標エディタ] パネルの一部に、ラベルを追加するオプションが含まれています。

    [ラベル] メニュー

  2. [項目を追加] をクリックします。ラベルを説明するための次のフォーム(これはすでに記入済みです)が表示されます。

    ラベルを作成

    ヒント: ログエントリ内のすべてのフィールドと値を表示するには、ログエントリを選択し、その横の展開アイコンをクリックして、[すべてを展開] をクリックします。

  3. [ラベル] フォームの次のフィールドに入力します。

    1. 名前: ラベルの名前を選択します。例: ID

      名前は、次の条件を満たす必要があります。

      • 長さが 100 文字以下である。
      • 正規表現 [a-zA-Z][a-zA-Z0-9_]* と一致する。
      • 文字列「log」以外も含まれる。
    2. 説明: ラベルを説明します。想定されるログ値の形式について、できるだけ具体的に指定してください。例: Instance number

    3. ラベルのデータ型: [文字列]、[ブール値]、または [整数] を選択します。

    4. フィールド名: ラベルの値を含むログエントリ フィールドの名前を入力します。入力時に選択肢が表示されます。このサンプルでは、次のフィールドになります。

      labels."compute.googleapis.com/resource_id"
          
    5. 抽出の正規表現: ラベルの値によってフィールドのコンテンツ全体が構成されている場合は、このフィールドを空のままにしておくことができます。 それ以外の場合は、フィールド値からラベル値を抽出する正規表現(regexp)を指定します。 たとえば、フィールドには通常、次のようなテキストが含まれているとします。

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

      ラベル値をインスタンス番号にする場合は、正しい番号を抽出する多くの正規表現があります。次に 1 つ示します。

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

      正規表現のキャプチャ グループと呼ばれる括弧は、抽出されるテキスト一致の部分を識別します。正規表現の詳細については、RE2 構文をご覧ください。

  4. [完了] をクリックして、ラベルを作成します。これらの手順を繰り返して、さらにラベルを追加できます。

Logging API

ラベルは Logging API の projects.metrics.create メソッド呼び出しリクエストの本文で、LogMetric オブジェクトの一部として指定します。完全なメソッド呼び出しの詳細については、カウンタ指標の作成または分布指標の作成をご覧ください。

各ラベルについて、LogMetricmetricDescriptor フィールドと labelExtractors フィールドの両方にセグメントを追加する必要があります。

構文は次のとおりです。

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

構文要素の意味は次のとおりです。

  • [LABEL_NAME]: 文字列としてのラベルの名前。
  • [VALUE_TYPE]: ラベルのタイプ: STRINGBOOL、または INT64
  • [LABEL_DESCRIPTION]: ラベルの説明。
  • [EXTRACTOR_EXPRESSION]: ログエントリ フィールド名と任意の正規表現を組み合わせた文字列。次のいずれかです。

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

正規表現の詳細については、RE2 構文をご覧ください。

2 つのラベルの例を次に示します。

{
      ...
      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 タイプをご覧ください。

gcloud

gcloud コマンドライン ツールを使用してラベル付きのログベースの指標を作成する手順については、gcloud beta logging metrics create をご覧ください。