ログベースの指標ラベル

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

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

概要

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

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

  • ログエントリの名前付きフィールドの内容全体。
  • 正規表現に一致する名前付きフィールドの一部。

ラベルは、httpRequest.status などのログエントリの組み込みフィールドから抽出することも、ペイロード フィールド textPayloadjsonPayloadprotoPayload から抽出することもできます。

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

抽出されたラベル値は長くなりすぎないようにしてください。また、ラベルごとに過度に多くの異なる値を使用しないでください。

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

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

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

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

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

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

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

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

デフォルト ラベル

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

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

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

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

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

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

Metrics Explorer

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

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

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

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

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

ラベルの作成

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

Logging コンソール

  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

ラベルは Stackdriver 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])
    

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

Cloud SDK

現在、gcloud logging コマンドは、ラベル付きログベースの指標の作成をサポートしていません。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。