すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ログをSimple Log Serviceメトリックに変換する

最終更新日:Aug 21, 2024

Logtailを使用してログを収集する場合、processor_log_to_sls_metricプラグインを使用して、収集したログをSLSメトリックに変換できます。 このトピックでは、processor_log_to_sls_metricプラグインのパラメーターについて説明し、プラグインの設定方法の例を示します。

エントリーポイント

Logtailプラグインを使用してログを処理する場合は、Logtail設定を作成または変更するときにLogtailプラグイン設定を追加できます。 詳細については、「データ処理用Logtailプラグインの概要」をご参照ください。

設定の説明

重要

Logtail V1.7.1以降は、processor_log_to_sls_metricプラグインをサポートしています。

フォーム設定

[プロセッサタイプ] パラメーターを [Log to Metric] に設定します。 次に、次の表に基づいて他のパラメーターを設定します。

  • パラメーター

    パラメーター

    説明

    MetricTimeKey

    ログの時間フィールドを指定します。 時間フィールドは、メトリックの __time_nano___ フィールドにマッピングされます。 デフォルトでは、ログの __time__ フィールドの値が抽出されます。

    timeフィールドの値が有効な形式のタイムスタンプであることを確認します。 秒、ミリ秒、マイクロ秒、ナノ秒の正確なタイムスタンプがサポートされています。 秒まで正確なタイムスタンプは、長さが10ビットである。 ミリ秒の精度のタイムスタンプは、長さが13ビットである。 マイクロ秒の精度のタイムスタンプは16ビット長である。 ナノ秒の精度のタイムスタンプは、長さが19ビットである。

    MetricLabelKeys

    メトリックで __labels__ フィールドのキーを指定します。 キーは、^[a-zA-Z_][a-zA-Z0-9_]*$ の正規表現と一致する必要があります。 キーの値には、縦棒 (|) または #$# を含めることはできません。 詳細については、「メトリック」をご参照ください。

    __labels__ フィールドをMetricLabelKeysパラメーターのキーとして指定することはできません。 生のログに __labels__ フィールドが含まれている場合、ログの__labels__フィールドの値がメトリックの __labels__ フィールドの値に追加されます。

    MetricValues

    メトリックの名前と値を指定します。

    • メトリックの __name__ フィールドは、メトリック名を指定します。 メトリック名は、^[a-zA-Z_:][a-zA-Z0-9_:]*$ の正規表現と一致する必要があります。

    • メトリックの __value__ フィールドは、メトリック値を指定します。 値はDouble型でなければなりません。

    詳細については、「メトリック」をご参照ください。

    CustomMetricLabels

    メトリックで __labels__ フィールドのカスタムキーを指定します。 フィールドのキーは、^[a-zA-Z_][a-zA-Z0-9_]*$ の正規表現と一致する必要があります。 キーの値には、縦棒 (|) または #$# を含めることはできません。 詳細については、「メトリック」をご参照ください。

    IgnoreError

    一致するログがない場合にエラーログを生成するかどうかを指定します。

  • 設定例

    • 生ログ

      {
          "script_md5":"8c6aebe9****c27f",
          "remote_addr":"123.XX.XX.123",
          "remote_user":"-",
          "time_local":"15/Aug/2023:12:03:20",
          "method":"GET",
          "url":"/www.a.com",
          "protocol":"HTTP/1.1",
          "status":"404",
          "body_bytes_sent":"4146",
          "http_referer":"-",
          "http_user_agent":"curl/7.74.0",
          "http_x_forwarded_for":"-",
          "__labels__":"field1#$#field1|field2#$#field2|tag1#$#tag1|tag2#$#tag2",
          "body_bytes_sent_name":"body_bytes_sent",
          "status_name":"status",
          "httptime":"1692101000",
          "__time__":"1692101000"
      }
    • データ処理用のLogtailプラグイン設定

      image

    • 結果

      • 最初のメトリック

        {
            "__labels__":"field1#$#field1|field2#$#field2|method#$#GET|nginx#$#test|tag1#$#tag1|tag2#$#tag2|url#$#/www.a.com",
            "__name__":"body_bytes_sent",
            "__value__":"4146",
            "__time_nano__":"1692101000000000000",
            "__time__":"1692101000"
        }
      • 2番目のメトリック

        {
            "__labels__":"field1#$#field1|field2#$#field2|method#$#GET|nginx#$#test|tag1#$#tag1|tag2#$#tag2|url#$#/www.a.com",
            "__name__":"status",
            "__value__":"404",
            "__time_nano__":"1692101000000000000",
            "__time__":"1692101000"
        }

JSONでのエディター設定

typeパラメーターをprocessor_log_to_sls_metricに設定します。 次に、次の表に基づいて、detailパラメーターで他のパラメーターを設定します。

  • パラメーター

    パラメーター

    データ型

    必須

    説明

    MetricTimeKey

    String

    課金されません

    ログの時間フィールドを指定します。 時間フィールドは、メトリックの __time_nano___ フィールドにマッピングされます。 デフォルトでは、ログの __time__ フィールドの値が抽出されます。

    timeフィールドの値が有効な形式のタイムスタンプであることを確認します。 秒、ミリ秒、マイクロ秒、ナノ秒の正確なタイムスタンプがサポートされています。 秒まで正確なタイムスタンプは、長さが10ビットである。 ミリ秒の精度のタイムスタンプは、長さが13ビットである。 マイクロ秒の精度のタイムスタンプは16ビット長である。 ナノ秒の精度のタイムスタンプは、長さが19ビットである。

    MetricLabelKeys

    [] 文字列

    課金されます

    メトリックで __labels__ フィールドのキーを指定します。 キーは、^[a-zA-Z_][a-zA-Z0-9_]*$ の正規表現と一致する必要があります。 キーの値には、縦棒 (|) または #$# を含めることはできません。 詳細については、「メトリック」をご参照ください。

    __labels__ フィールドをMetricLabelKeysパラメーターのキーとして指定することはできません。 生のログに __labels__ フィールドが含まれている場合、ログの__labels__フィールドの値がメトリックの __labels__ フィールドの値に追加されます。

    MetricValues

    Map

    課金されます

    メトリックの名前と値を指定します。

    • メトリックの __name__ フィールドは、メトリック名を指定します。 メトリック名は、^[a-zA-Z_:][a-zA-Z0-9_:]*$ の正規表現と一致する必要があります。

    • メトリックの __value__ フィールドは、メトリック値を指定します。 値はDouble型でなければなりません。

    詳細については、「メトリック」をご参照ください。

    CustomMetricLabels

    地図

    課金されません

    メトリックで __labels__ フィールドのカスタムキーを指定します。 フィールドのキーは、^[a-zA-Z_][a-zA-Z0-9_]*$ の正規表現と一致する必要があります。 キーの値には、縦棒 (|) または #$# を含めることはできません。 詳細については、「メトリック」をご参照ください。

    IgnoreError

    ブール値

    課金されません

    一致するログがない場合にエラーログを生成するかどうかを指定します。 デフォルト値:false 値falseは、エラーログがエクスポートされないことを示します。

  • 設定例

    • 生ログ

      {
          "script_md5":"8c6aebe9****c27f",
          "remote_addr":"123.XX.XX.123",
          "remote_user":"-",
          "time_local":"15/Aug/2023:12:03:20",
          "method":"GET",
          "url":"/www.a.com",
          "protocol":"HTTP/1.1",
          "status":"404",
          "body_bytes_sent":"4146",
          "http_referer":"-",
          "http_user_agent":"curl/7.74.0",
          "http_x_forwarded_for":"-",
          "__labels__":"field1#$#field1|field2#$#field2|tag1#$#tag1|tag2#$#tag2",
          "body_bytes_sent_name":"body_bytes_sent",
          "status_name":"status",
          "httptime":"1692101000",
          "__time__":"1692101000"
      }
    • データ処理用のLogtailプラグイン設定

      {
          "processors":[
              {
                  "detail":{
                      "CustomMetricLabels":{
                          "nginx":"test"
                      },
                      "IgnoreError":false,
                      "MetricLabelKeys":[
                          "url",
                          "method"
                      ],
                      "MetricTimeKey":"httptime",
                      "MetricValues":{
                          "body_bytes_sent_name":"body_bytes_sent",
                          "status_name":"status"
                      }
                  },
                  "type":"processor_log_to_sls_metric"
              }
          ]
      }
    • 結果

      • 最初のメトリック

        {
            "__labels__":"field1#$#field1|field2#$#field2|method#$#GET|nginx#$#test|tag1#$#tag1|tag2#$#tag2|url#$#/www.a.com",
            "__name__":"body_bytes_sent",
            "__value__":"4146",
            "__time_nano__":"1692101000000000000",
            "__time__":"1692101000"
        }
      • 2番目のメトリック

        {
            "__labels__":"field1#$#field1|field2#$#field2|method#$#GET|nginx#$#test|tag1#$#tag1|tag2#$#tag2|url#$#/www.a.com",
            "__name__":"status",
            "__value__":"404",
            "__time_nano__":"1692101000000000000",
            "__time__":"1692101000"
        }