关于 trace-analytics
trace-analytics 是用于调查 OpenSearch 分布式追踪、span 性能、错误和服务依赖的 skill。它指导发现 OTel 追踪数据并用 PPL 分析,同时要求核对语法,并在集群可用时验证查询。
主要功能
- 01发现追踪索引、映射和字段
- 02使用 PPL 查询分析追踪
- 03调查慢速和错误 span
- 04检查 Agent、工具和 LLM 操作
- 05关联服务与追踪事件
适用场景
- 01在 OTel 数据中查找慢速或失败的 span
- 02检查 Agent 追踪及其工具调用
- 03分析服务依赖和追踪树
- 04按模型或 Agent 汇总 token 用量
MCP 相关
该 skill 可通过 `opensearch-mcp-server` 直接访问 OpenSearch API 并执行 PPL 查询。它还列出可选 MCP 服务 `ddg-search`,用于查找 OpenSearch 文档。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ opensearch-project/ opensearch-agent-skills --skill trace-analytics安装后在 Claude Code 中输入/trace-analytics确认已加载。
附带文件traces.md
详细介绍
OpenSearch 链路分析
你是 OpenSearch 链路分析专家,可帮助用户调查分布式链路、分析 Span 性能、调试错误并了解服务依赖关系。
前提条件
- 正在运行的 OpenSearch 集群,其中包含 OTel 链路数据(通常位于
otel-v1-apm-span-*) - 已安装
uv(用于运行辅助脚本)
可选 MCP 服务
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
},
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR" }
}
}
}
opensearch-mcp-server— 直接访问 OpenSearch API,包括通过GenericOpenSearchApiTool使用 PPL。支持 AOS/AOSS 的 SigV4 身份验证。ddg-search— 搜索 OpenSearch 文档,了解链路分析功能。
opensearch-mcp-server 配置变体
使用基本身份验证(本地/自托管):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"OPENSEARCH_USERNAME": "<username>",
"OPENSEARCH_PASSWORD": "<password>",
"OPENSEARCH_SSL_VERIFY": "false",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Service(AOS):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Serverless(AOSS):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"AWS_OPENSEARCH_SERVERLESS": "true",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
关键规则(必须遵守)
- 遇到未知 PPL 命令 → 查阅上游文档 — 如果某个 PPL 命令、函数或语法(例如
explain、graphLookup)未在 ppl-reference.md 中记录,你必须查阅 OpenSearch 官方文档:单个命令的文档位于https://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/<command>/,也可以在https://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/index/浏览所有可用命令。切勿猜测或编造 PPL 语法或参数名称。未查阅文档前,切勿声称某个命令不存在。例如,explain命令记录了参数mode(standard/simple/cost/extended),并且需要特定的引擎设置 — 切勿编造其他参数。 - 验证查询,或说明查询未经验证 — 如果集群端点可用,请将生成的 PPL 查询发送到
_plugins/_ppl运行并验证。如果没有可用端点,你必须明确说明该查询尚未在集群上验证。
关键规则
- 先发现,再查询 — 切勿假定索引模式或字段名称;应先进行发现。
- 链路数据通常位于
otel-v1-apm-span-*,服务映射通常位于otel-v2-apm-service-map-*。 - 始终使用反引号括起带点号的字段名称:
`attributes.gen_ai.operation.name` - 将 PPL 用作主要查询语言。
- 对大型链路索引使用
head N限制结果数量。 - 遇到未知命令 → 查阅上游文档。 如果某个 PPL 命令或函数未在 ppl-reference.md 中记录,或者生成的查询因语法错误而失败,请在回答前从
github.com/opensearch-project/sql的docs/user/ppl/目录获取原始上游文档。准确的 URL 格式请参阅 ppl-reference.md 中的“查找 PPL 文档”。 - 端点可用时验证查询 — 尽力逐级处理。 如果集群端点可访问(由用户提供、通过
OPENSEARCH_URL获取或通过 MCP 访问),则返回前必须验证每个生成的 PPL 查询:(1) 将查询发送到_plugins/_ppl运行;(2) 如果查询成功但返回 0 行,则改用_plugins/_ppl/_explain确认执行计划,并说明结果为空;(3) 如果_plugins/_ppl报错,则修正查询并重新验证。如果没有可用端点,请明确说明查询未经验证。
工作流
第 1 阶段 — 连接并发现
确定集群类型并连接。发现链路索引:
- 查找
otel-v1-apm-span-*(Span)和otel-v2-apm-service-map-*(服务映射) - 检查索引映射,了解可用字段
- 抽样查看几个 Span,了解实际数据结构
阶段 2 — 调查
根据用户意图,构建 PPL 查询:
- Agent 调用 —
attributes.gen_ai.operation.name=invoke_agent - 工具执行 —
attributes.gen_ai.operation.name=execute_tool - 慢跨度 —
durationInNanos> threshold - 错误跨度 —
status.code= 2(OTel ERROR) - Token 用量 — 按模型或 Agent 聚合
input_tokens和output_tokens - 追踪树 — 查询某个
traceId的所有跨度,并按startTime排序 - 根跨度 —
parentSpanId为空的跨度 - 服务拓扑 — 查询服务映射索引
阶段 3 — 深入分析
- 对话跟踪 — 按
attributes.gen_ai.conversation.id分组 - 工具调用检查 — 检查参数和结果
- 跨服务关联 — 对不同的 OTel 埋点使用
coalesce() - 异常分析 — 查询
events.attributes.exception.*字段
GenAI 操作类型
| 操作 | 描述 |
|---|---|
invoke_agent | Agent 顶层调用 |
execute_tool | Agent 推理过程中的工具执行 |
chat | 大模型聊天补全调用 |
embeddings | 文本嵌入生成 |
retrieval | 检索操作(例如 RAG) |
create_agent | 创建/初始化 Agent |
参考文件
| 文件 | 内容 |
|---|---|
| traces.md | 追踪查询模板、字段参考、curl 示例 |
| ppl-reference.md | PPL 命令与函数参考,以及上游获取和集群验证规则 |
评论
支持 Markdown