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プラグイン設定
結果
最初のメトリック
{ "__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" }