Skip to content

[Feature]Log Format Normalization and Trace Log Optimization#6370

Open
qwes5s5 wants to merge 1 commit intoPaddlePaddle:developfrom
qwes5s5:log_refactor
Open

[Feature]Log Format Normalization and Trace Log Optimization#6370
qwes5s5 wants to merge 1 commit intoPaddlePaddle:developfrom
qwes5s5:log_refactor

Conversation

@qwes5s5
Copy link
Collaborator

@qwes5s5 qwes5s5 commented Feb 5, 2026

Motivation

💡 If this PR is a Cherry Pick, the PR title needs to follow the format by adding the [Cherry-Pick] label at the very beginning and appending the original PR ID at the end. For example, [Cherry-Pick][CI] Add check trigger and logic(#5191)

💡 如若此PR是Cherry Pick,PR标题需遵循格式,在最开始加上[Cherry-Pick]标签,以及最后面加上原PR ID,例如[Cherry-Pick][CI] Add check trigger and logic(#5191)

Currently, the project utilizes highly fragmented logging formats. There are four primary log formats in use, which complicates unified log collection, parsing, and filtering:

1. Standard/Legacy Format

  • Format String: %(levelname)-8s %(asctime)s %(process)-5s %(filename)s[line:%(lineno)d] %(message)s
  • Example: INFO 2026-02-04 08:14:43,669 17777 serving_chat.py[line:697] release ...

2. Trace/Custom Format

  • Format String: [%(asctime)s] [%(levelname)-8s] (%(filename)s:%(funcName)s:%(lineno)d) %(message)s
  • Example: [2026-02-04 08:03:57,914] [INFO ] (engine_client.py:add_requests:296) [thread=140074076656064] ...

3. Uvicorn Access Format

  • Format String: [%(asctime)s] [%(process)d] [INFO] %(message)s
  • Example: [2026-02-04 08:03:57,914] [17777] [INFO] ...

4. Colorlog Uvicorn Format

  • Format String: [%(log_color)s%(asctime)s] [%(levelname)+8s] %(reset)s - %(message)s%(reset)s
  • Example: [2026-02-04 08:03:57,914] [ INFO] - ...

Furthermore, trace logs currently fail to capture the trace_id received from upstream requests. This leads to a lack of correlation between upstream and downstream logs, making end-to-end request tracking difficult.

Modifications

  • Standardize Log Formats: Unify all log outputs into the format %(levelname)-8s %(asctime)s %(process)-5s %(filename)s[line:%(lineno)d] %(message)s to facilitate efficient log collection and parsing.
  • Implement Distributed Tracing: Establish end-to-end trace context management and append trace_id metadata to all trace logs to enable request correlation across the entire lifecycle.

Usage or Command

Accuracy Tests

Checklist

  • Add at least a tag in the PR title.
    • Tag list: [[FDConfig],[APIServer],[Engine], [Scheduler], [PD Disaggregation], [Executor], [Graph Optimization], [Speculative Decoding], [RL], [Models], [Quantization], [Loader], [OP], [KVCache], [DataProcessor], [BugFix], [Docs], [CI], [Optimization], [Feature], [Benchmark], [Others], [XPU], [HPU], [GCU], [DCU], [Iluvatar], [Metax]]
    • You can add new tags based on the PR content, but the semantics must be clear.
  • Format your code, run pre-commit before commit.
  • Add unit tests. Please write the reason in this PR if no unit tests.
  • Provide accuracy results.
  • If the current PR is submitting to the release branch, make sure the PR has been submitted to the develop branch, then cherry-pick it to the release branch with the [Cherry-Pick] PR tag.

@paddle-bot
Copy link

paddle-bot bot commented Feb 5, 2026

Thanks for your contribution!

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 64.28571% with 40 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (develop@c4abb01). Learn more about missing BASE report.

Files with missing lines Patch % Lines
fastdeploy/metrics/trace.py 8.33% 21 Missing and 1 partial ⚠️
fastdeploy/worker/worker_process.py 82.22% 7 Missing and 1 partial ⚠️
fastdeploy/engine/common_engine.py 0.00% 4 Missing ⚠️
fastdeploy/__init__.py 88.88% 1 Missing and 2 partials ⚠️
fastdeploy/trace/trace_logger.py 60.00% 1 Missing and 1 partial ⚠️
fastdeploy/entrypoints/openai/api_server.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #6370   +/-   ##
==========================================
  Coverage           ?   68.37%           
==========================================
  Files              ?      391           
  Lines              ?    52268           
  Branches           ?     8145           
==========================================
  Hits               ?    35737           
  Misses             ?    13920           
  Partials           ?     2611           
Flag Coverage Δ
GPU 68.37% <64.28%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants