全部產品
Search
文件中心

Application Real-Time Monitoring Service:Python應用業務日誌關聯調用鏈TraceId

更新時間:Oct 14, 2025

您可以在Python應用的業務日誌中關聯調用鏈的TraceId資訊,從而在應用出現問題時,能夠通過調用鏈的TraceId快速關聯到業務日誌,及時定位、分析並解決問題。

前提條件

背景資訊

ARMS在業務日誌中關聯調用鏈TraceId的功能是基於對日誌架構的埋點,目前支援Python官方日誌架構Logging。

開啟關聯業務日誌與TraceId開關

  1. 登入ARMS控制台,在左側導覽列選擇應用監控 > 應用列表

  2. 應用列表頁面頂部選擇目標地區,然後單擊目標應用程式名稱。

    說明

    語言列的表徵圖含義如下:

    Java表徵圖:接入應用監控的Java應用。

    image:接入應用監控的Golang應用。

    image:接入應用監控的Python應用。

    -:接入Managed Service for OpenTelemetry的應用。

  3. 在上方導覽列選擇應用配置 > 自訂配置

  4. 自訂配置頁簽的應用日誌關聯配置地區,選擇日誌源為Log ServiceSLS,選擇Log Service所在地區,然後綁定Project和Logstore。

    image

  5. 配置Python探針。

    1. 設定如下環境變數,在探針中開啟關聯業務日誌與TraceId功能。

      # 預設為false
      OTEL_PYTHON_LOG_CORRELATION=true   
      說明

      環境變數OTEL_PYTHON_LOG_CORRELATION設定為true則開啟關聯業務日誌與TraceId,不設定或設定為false則關閉業務日誌與TraceId關聯。

    2. 通過以下環境變數設定需要關聯TraceId的業務記錄層級。

      #  設定需要關聯traceId的記錄層級,可選值為:debug、info、warning、error
      OTEL_PYTHON_LOG_LEVEL=warning
      說明

      環境變數OTEL_PYTHON_LOG_LEVEL設定為warning則記錄層級為warning及以上的日誌會關聯TraceId。

    3. 通過以下環境變數設定關聯TraceId後的日誌格式,您可以根據需求自行增減格式內容。

      #   設定日誌格式, 以下是預設格式。可以根據需求增減。
      OTEL_PYTHON_LOG_FORMAT="%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s] - %(message)s"
      • otelTraceID:TraceId

      • otelSpanID:當前日誌產生所屬的SpanId

      • otelTraceSampled:採樣標識

      • otelServiceName:應用程式名稱

    4. 日誌關聯TraceId只支援自動關聯root logger,如需自動關聯自訂handler中日誌,請手動設定formatter格式。

      formatter = logging.Formatter(os.getenv('OTEL_PYTHON_LOG_FORMAT'))
      my_handler.setFormatter(formatter)

    以上環境變數配置完成後,列印的日誌格式如下。

    2025-01-03_11-02-42

  6. (可選)配置SLS日誌採集接入,將應用日誌上傳至上述步驟綁定的Project和Logstore中。

    ARMS Python探針預設不會採集應用日誌。