全部產品
Search
文件中心

Simple Log Service:Log轉為Metric

更新時間:Aug 01, 2024

您在使用Logtail採集日誌時,可以使用processor_log_to_sls_metric外掛程式將採集到的日誌轉成SLS Metric。本文介紹processor_log_to_sls_metric外掛程式的參數說明和配置樣本。

功能入口

當您需要使用Logtail外掛程式處理日誌時,您可以在建立或修改Logtail採集配置時,添加外掛程式配置。具體操作,請參見處理外掛程式概述

配置說明

重要

Logtail 1.7.1及以上版本支援processor_log_to_sls_metric外掛程式。

表單配置方式

配置處理器類型Log轉Metric,相關參數說明如下表所示。

  • 參數說明

    參數

    說明

    MetricTimeKey

    指定日誌中的時間欄位,該欄位將與時序資料中的__time_nano__ 欄位對應。預設提取日誌中__time__欄位的值。

    確保指定的欄位是合法的、符合格式的時間戳記。目前支援以second(10位長度)、millisecond(13位長度)、microsecond(16位長度)、nanosecond(19位長度)為單位的Unix時間戳記。

    MetricLabelKeys

    指定__labels__欄位的Key列表,Key需遵循Regex ^[a-zA-Z_][a-zA-Z0-9_]*$。Value不能包含豎線(|)和 #$#。更多資訊,請參見時序資料(Metric)

    不支援在MetricLabelKeys參數中添加__labels__欄位。如果原始欄位中存在 __labels__ 欄位,該值將被追加到新的__labels__欄位中。

    MetricValues

    用於指定Metric名稱和Metric值。

    • Metric名稱對應__name__欄位,需遵循Regex^[a-zA-Z_:][a-zA-Z0-9_:]*$

    • Metric值對應__value__欄位,需為Double類型。

    更多資訊,請參見時序資料(Metric)

    CustomMetricLabels

    自訂的__labels__欄位, Key需遵循Regex ^[a-zA-Z_][a-zA-Z0-9_]*$,Value不能包含豎線(|)和 #$#。更多資訊,請參見時序資料(Metric)

    IgnoreError

    當沒有匹配日誌時是否輸出Error日誌。

  • 配置樣本

    • 原始日誌

      {
          "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"
        }
      • 第二條時序資料

        {
            "__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配置方式

配置typeprocessor_log_to_sls_metricdetail說明如下表所示。

  • 參數說明

    參數

    類型

    是否必選

    說明

    MetricTimeKey

    String

    指定日誌中的時間欄位,該欄位將與時序資料中的__time_nano__ 欄位對應。預設提取日誌中__time__欄位的值。

    確保指定的欄位是合法的、符合格式的時間戳記。目前支援以second(10位長度)、millisecond(13位長度)、microsecond(16位長度)、nanosecond(19位長度)為單位的Unix時間戳記。

    MetricLabelKeys

    []String

    指定__labels__欄位的Key列表,Key需遵循Regex ^[a-zA-Z_][a-zA-Z0-9_]*$。Value不能包含豎線(|)和 #$#。更多資訊,請參見時序資料(Metric)

    不支援在MetricLabelKeys參數中添加__labels__欄位。如果原始欄位中存在 __labels__ 欄位,該值將被追加到新的__labels__欄位中。

    MetricValues

    Map

    用於指定Metric名稱和Metric值。

    • Metric名稱對應__name__欄位,需遵循Regex^[a-zA-Z_:][a-zA-Z0-9_:]*$

    • Metric值對應__value__欄位,需為Double類型。

    更多資訊,請參見時序資料(Metric)

    CustomMetricLabels

    Map

    自訂的__labels__欄位, Key需遵循Regex ^[a-zA-Z_][a-zA-Z0-9_]*$,Value不能包含豎線(|)和 #$#。更多資訊,請參見時序資料(Metric)

    IgnoreError

    Boolean

    當沒有匹配日誌時是否輸出Error日誌。預設值為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"
        }
      • 第二條時序資料

        {
            "__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"
        }