Retrieving Mlflow Traces

mlflow/skills/retrieving-mlflow-traces

作者 mlflowc55c66586a35f7e3f2a377bfc462ef9791fbc3f4無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Retrieves MLflow traces using CLI or Python API. Use when the user asks to get a trace by ID, find traces, filter traces by status/tags/metadata/execution time, query traces, or debug failed traces. Triggers on "get trace", "search traces", "find failed traces", "filter traces by", "traces slower than", "query MLflow traces".

AI 產生的概覽

指導透過 CLI 或 Python API 擷取 MLflow 追蹤,包括單筆取得、篩選搜尋和偵錯失敗追蹤。

功能
此技能提供使用 MLflow CLI 或 Python API 擷取 MLflow 追蹤的說明。涵蓋依 ID 取得單筆追蹤,以及依執行 ID、工作階段、使用者、狀態、時間範圍、執行時間、標籤、中繼資料、評估和全文進行搜尋,還包括分頁和輸出選項。文件也說明了篩選語法,並建議對 Unity Catalog 搜尋依時間限定範圍。
適用情境
當使用者要求依 ID 取得追蹤、尋找或篩選追蹤、依狀態、標籤、中繼資料或執行時間查詢追蹤,或偵錯失敗追蹤時使用。它也適用於驗證新加入的追蹤埋點。
執行需求
需要 MLflow CLI 或 Python API,並能存取 MLflow 追蹤伺服器或 Unity Catalog。查閱文件時可能需要網路存取。不包含指令碼,僅為說明文件。

Retrieving MLflow Traces

Bound Unity Catalog Searches by Time

When searching traces stored in Unity Catalog, include trace.timestamp_ms >= <start_time_ms> in the filter string, with an upper bound when known. This also applies when searching by experiment ID, run ID, session, or other filters: a small result limit does not prevent a scan across the full trace history. In Python, pass the time condition through filter_string; mlflow.search_traces() has no start_time argument.

Use the time window requested by the user or established by the run or incident. For setup verification, record the time immediately before the instrumented run. Do not silently restrict historical investigations to the last hour. If the relevant period cannot be determined, ask for it before starting a broad UC search. The examples below demonstrate individual filters; combine them with the relevant time bounds for UC.

Keep Setup Verification Brief

For verifying newly added instrumentation, follow the verification workflow in instrumenting-with-mlflow-tracing. Enforce a 60-second wall-clock deadline for readback, cancelling the verification command at the deadline even if a call is still retrying internally: make one fetch by a known trace ID, or one time-bounded search with --max-results 1 (Python: max_results=1). Retry at most once after a concrete, quick fix, within the same budget. Stop once one trace and its expected spans are confirmed.

If readback is slow or fails, report what was verified, what remains unverified, and the observed blocker and required user action (such as configuring a missing API key, logging in, obtaining permission, or resolving warehouse availability/capacity). Do not start parallel searches or fall back to direct SQL, raw REST, alternate authentication, or repeated agent runs just to complete setup verification. A dedicated retrieval or debugging request can require broader investigation; preserve the user's scope.

Single Fetch vs Search

Choose the right approach based on what you have:

You have...UseCommand
Trace IDSingle fetchmlflow traces get --trace-id <id>
Session/user/filtersSearchmlflow traces search --experiment-id <id> --filter-string "..."

Single fetch - Use when you have a specific trace ID (e.g., from UI, logs, or API response):

bash
mlflow traces get --trace-id tr-69f72a3772570019f2f91b75b8b5ded9

Search - Use when you need to find traces by criteria (session, user, status, time range, etc.):

bash
mlflow traces search --experiment-id 1 --filter-string "metadata.\`mlflow.trace.session\` = 'session_abc'"

Trace Data Structure

  • TraceInfo: trace_id, status (OK/ERROR), timestamp_ms, execution_time_ms, tags, metadata, assessments (human feedback, evaluation results)
  • Spans: Tree of operations with name, type, attributes, start_time, end_time

Workflow

  1. Check CLI usage (required): mlflow traces search --help
  2. Build filter query using syntax below
  3. Execute search with appropriate flags
  4. Retrieve details for specific traces if needed

Prerequisite: Check CLI Usage

bash
mlflow traces search --help

Always run this first to get accurate flags for the installed MLflow version.

Searching Traces

The mlflow traces search command is used to search for traces in an MLflow experiment.

By Run ID

Filter traces associated with a specific MLflow run:

bash
# All traces for a runmlflow traces search --run-id <run_id>
# Failed traces for a runmlflow traces search --run-id <run_id> --filter-string "trace.status = 'ERROR'"
# Can combine with experiment-idmlflow traces search --experiment-id 1 --run-id <run_id>

By Session or User (Common for Debugging)

When debugging an issue from the MLflow UI, filter by session or user ID to get all related traces:

bash
# All traces for a specific session (use backticks for special characters in key)mlflow traces search --experiment-id 1 --filter-string "metadata.\`mlflow.trace.session\` = 'session_abc123'"
# All traces for a specific usermlflow traces search --experiment-id 1 --filter-string "metadata.\`mlflow.trace.user\` = 'user_456'"
# Failed traces in a session (for root cause analysis)mlflow traces search --experiment-id 1 --filter-string "metadata.\`mlflow.trace.session\` = 'session_abc123' AND trace.status = 'ERROR'"
# Session traces ordered by time (to see sequence of events)mlflow traces search --experiment-id 1 --filter-string "metadata.\`mlflow.trace.session\` = 'session_abc123'" --order-by "timestamp_ms ASC"

By Status

bash
mlflow traces search --experiment-id 1 --filter-string "trace.status = 'ERROR'"mlflow traces search --experiment-id 1 --filter-string "trace.status = 'OK'"

By Time Range

bash
# Timestamps are in milliseconds since epoch# Get current time in ms: $(date +%s)000# Last hour: $(( $(date +%s)000 - 3600000 ))
mlflow traces search --experiment-id 1 --filter-string "trace.timestamp_ms > $(( $(date +%s)000 - 3600000 ))"

By Execution Time (Slow Traces)

bash
# Traces slower than 1 secondmlflow traces search --experiment-id 1 --filter-string "trace.execution_time_ms > 1000"

By Tags and Metadata

bash
# By tagmlflow traces search --experiment-id 1 --filter-string "tag.environment = 'production'"
# By metadatamlflow traces search --experiment-id 1 --filter-string "metadata.user_id = 'user_123'"
# Escape special characters in key names with backticksmlflow traces search --experiment-id 1 --filter-string "tag.\`model-name\` = 'gpt-4'"mlflow traces search --experiment-id 1 --filter-string "metadata.\`user.id\` = 'abc'"

By Assessment/Feedback

bash
mlflow traces search --experiment-id 1 --filter-string "feedback.rating = 'positive'"

Full Text Search

bash
mlflow traces search --experiment-id 1 --filter-string "trace.text LIKE '%error%'"

Pagination

Control result count and iterate through pages:

bash
# Limit results per pagemlflow traces search --experiment-id 1 --max-results 50
# Output includes "Next page token: <token>" if more results exist# Use --page-token to fetch next pagemlflow traces search --experiment-id 1 --max-results 50 --page-token "eyJvZmZzZXQiOiA1MH0="

Output Options

bash
# Output format (table or json)mlflow traces search --experiment-id 1 --output json
# Include span details in outputmlflow traces search --experiment-id 1 --include-spans
# Order resultsmlflow traces search --experiment-id 1 --order-by "timestamp_ms DESC"

Retrieving Single Trace

When you need to retrieve details about a specific trace, use the mlflow traces get command.

bash
mlflow traces get --trace-id <trace_id>

Filter Syntax

For detailed syntax, fetch from documentation:

WebFetch(  url: "https://mlflow.org/docs/latest/genai/tracing/search-traces.md",  prompt: "Extract the filter syntax table showing supported fields, operators, and examples.")

Common filters:

  • trace.status: OK, ERROR, IN_PROGRESS
  • trace.execution_time_ms, trace.timestamp_ms: numeric comparison
  • metadata.\mlflow.trace.session`, metadata.`mlflow.trace.user``: session/user filtering
  • tag.<key>, metadata.<key>: exact match or pattern
  • span.name, span.type: exact match or pattern
  • feedback.<name>, expectation.<name>: assessments

Pattern operators: LIKE, ILIKE (case-insensitive), RLIKE (regex)

Python API

For mlflow.search_traces(), see: https://mlflow.org/docs/latest/genai/tracing/search-traces.md

來源與署名

來源:mlflow/skills位於retrieving-mlflow-traces提交c55c665

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架