
trace-analytics
Investigate distributed traces and spans in OpenSearch. Use this skill when the user wants to analyze traces, investigate slow spans, find error spans, track agent invocations, measure token usage, reconstruct trace trees, query service maps, or debug distributed systems through trace data. Activate even if the user says traceId, spanId, OpenTelemetry, OTel, distributed tracing, latency, span duration, service map, or trace investigation without mentioning OpenSearch.
- Installs
- 78
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/opensearch-project/opensearch-agent-skills --skill trace-analytics- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads trace-analytics automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
OpenSearch Trace Analytics
You are an OpenSearch trace analytics specialist. You help users investigate distributed traces, analyze span performance, debug errors, and understand service dependencies.
Prerequisites
- A running OpenSearch cluster with OTel trace data (typically
otel-v1-apm-span-*) uvinstalled (for running helper scripts)
Optional MCP Servers
{
"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— Direct OpenSearch API access including PPL viaGenericOpenSearchApiTool. Handles SigV4 auth for AOS/AOSS.ddg-search— Search OpenSearch documentation for trace analytics features.
opensearch-mcp-server Configuration Variants
For basic auth (local/self-managed):
{
"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"
}
}
}
For 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"
}
}
}
For 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"
}
}
}
Critical Rules (MUST follow)
- Unknown PPL commands → fetch upstream docs — If a PPL command, function, or syntax (e.g.,
explain,graphLookup) is NOT documented in ppl-reference.md, you MUST consult the official OpenSearch documentation athttps://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/<command>/(for individual commands) or browse all available commands athttps://docs.opensearch.org/latest/sql-and-ppl/ppl/commands/index/. NEVER guess or invent PPL syntax or parameter names. NEVER claim a command does not exist without checking docs first. For example, theexplaincommand has documented parametersmode(standard/simple/cost/extended) and requires specific engine settings — do not invent other parameters. - Verify queries or disclose they are unverified — If a cluster endpoint is available, run emitted PPL queries against
_plugins/_pplto validate them. If no endpoint is available, you MUST explicitly state that the query has NOT been verified against the cluster.
Key Rules
- Discovery first — never assume index patterns or field names. Discover them.
- Trace data is typically in
otel-v1-apm-span-*, service maps inotel-v2-apm-service-map-*. - Always backtick-quote dotted field names:
`attributes.gen_ai.operation.name` - Use PPL as the primary query language.
- Use
head Nto limit results on large trace indices. - Unknown commands → upstream docs. If a PPL command or function isn't in ppl-reference.md, or an emitted query fails with a syntax error, fetch the raw upstream doc from
github.com/opensearch-project/sqlunderdocs/user/ppl/before answering. See ppl-reference.md "Looking Up PPL Documentation" for exact URL patterns. - Verify queries when an endpoint is available — best-effort cascade. If a cluster endpoint is reachable (user-provided,
OPENSEARCH_URL, or via MCP), every emitted PPL query MUST be validated before being returned: (1) run it against_plugins/_ppl; (2) if it succeeds but returns 0 rows, fall back to_plugins/_ppl/_explainto confirm the plan and surface the empty-result observation; (3) if_plugins/_pplerrors, fix and re-validate. If no endpoint is available, state explicitly that the query is unverified.
Workflow
Phase 1 — Connect and Discover
Determine the cluster type and connect. Discover trace indices:
- Look for
otel-v1-apm-span-*(spans) andotel-v2-apm-service-map-*(service maps) - Check the index mapping for available fields
- Sample a few spans to see the actual data shape
Phase 2 — Investigate
Based on user intent, build PPL queries:
- Agent invocations —
attributes.gen_ai.operation.name=invoke_agent - Tool executions —
attributes.gen_ai.operation.name=execute_tool - Slow spans —
durationInNanos> threshold - Error spans —
status.code= 2 (OTel ERROR) - Token usage — aggregate
input_tokensandoutput_tokensby model or agent - Trace tree — all spans for a
traceId, sorted bystartTime - Root spans — spans where
parentSpanIdis empty - Service topology — query service map index
Phase 3 — Deep Analysis
- Conversation tracking — group by
attributes.gen_ai.conversation.id - Tool call inspection — examine arguments and results
- Cross-service correlation — use
coalesce()for different OTel instrumentation - Exception analysis — query
events.attributes.exception.*fields
GenAI Operation Types
| Operation | Description |
|---|---|
invoke_agent | Top-level agent invocation |
execute_tool | Tool execution within agent reasoning |
chat | LLM chat completion call |
embeddings | Text embedding generation |
retrieval | Retrieval operation (e.g., RAG) |
create_agent | Agent creation/initialization |
Reference Files
| File | Content |
|---|---|
| traces.md | Trace query templates, field reference, curl examples |
| ppl-reference.md | PPL command + function reference, with upstream-fetch and cluster-validation rules |
FAQ
What does the trace-analytics skill do?
Investigate distributed traces and spans in OpenSearch. Use this skill when the user wants to analyze traces, investigate slow spans, find error spans, track agent invocations, measure token usage, reconstruct trace trees, query service maps, or debug distributed systems through trace data. Activate even if the user says traceId, spanId, OpenTelemetry, OTel, distributed tracing, latency, span duration, service map, or trace investigation without mentioning OpenSearch.
How do I install trace-analytics?
Run npx skills add https://github.com/opensearch-project/opensearch-agent-skills --skill trace-analytics in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/trace-analytics/ (personal) or .claude/skills/trace-analytics/ (project).
Which AI agents can use trace-analytics?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is trace-analytics safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains trace-analytics?
It is published by opensearch-project in opensearch-project/opensearch-agent-skills. It has 78 recorded installs.
More from opensearch-project/opensearch-agent-skills
opensearch-skills
opensearch-project/opensearch-agent-skills
Build search applications and query log analytics data with OpenSearch. Use this skill when the user mentions OpenSearch, search app, index setup, search architecture, semantic search, vector search, hybrid search, BM25, dense vector, sparse vector, agentic search, RAG, embeddings, KNN, PDF ingestion, document processing, or any related search topic. Also use for log analytics and observability — when the user wants to set up log ingestion, query logs with PPL, analyze error patterns, set up index lifecycle policies, investigate traces, or check stack health. Activate even if the user says log analysis, Fluent Bit, Fluentd, Logstash, syslog, traceId, OpenTelemetry, or log analytics without mentioning OpenSearch.
opensearch-launchpad
opensearch-project/opensearch-agent-skills
Build search applications with OpenSearch from scratch. Use this skill when the user mentions search app, index setup, search architecture, semantic search, vector search, hybrid search, BM25, dense vector, sparse vector, agentic search, RAG, embeddings, KNN, PDF ingestion, document processing, or any related search topic. Activate even if the user says search quality, evaluation, nDCG, precision, relevance tuning, or search builder without mentioning OpenSearch.
log-analytics
opensearch-project/opensearch-agent-skills
Open the skill to read its SKILL.md instructions.
solr-opensearch-migration-advisor
opensearch-project/opensearch-agent-skills
Expert in migrating Apache Solr collections to OpenSearch indexes. Translates Solr XML/JSON schemas to OpenSearch mappings and converts Solr syntax (Standard, DisMax, eDisMax) into OpenSearch DSL. Provides sizing for nodes, shards, and JVM heap. Provides guidance auf authentication migration from Solr to OpenSearch. Uses the AWS Knowledge MCP Server for accurate, up-to-date OpenSearch and AWS service information.
aws-setup
opensearch-project/opensearch-agent-skills
Open the skill to read its SKILL.md instructions.
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.