debug-issue-with-datadog

작성자: langfuse

사용자가 보고한 이슈, Linear 티켓 또는 인시던트 보고서를 디버깅하여 Datadog(APM, 로그, 메트릭)과 Langfuse 리포를 결합해 근본 원인을 파악합니다. 사용…

npx skills add https://github.com/langfuse/langfuse --skill debug-issue-with-datadog

Debug Issue with Datadog

Use this skill whenever the task is investigative rather than implementational: a user, customer, or oncall has surfaced a problem and you need to figure out what is actually happening in production and where in the code it lives. The deliverable is an analysis, not a patch — though the analysis should make the right patch obvious.

When to Apply

  • A Linear issue (typically with an LFE-XXXX ID) describes a production failure, error spike, or customer report.
  • A GitHub issue or pasted incident/error report needs triage.
  • A monitor alerted and you need to understand why before deciding what to fix.
  • Existing tickets under the "Make monitoring useful again" project (parent LFE-8837) and similar — these expect the structured analysis output below.

If the task is "implement this fix" rather than "figure out what's broken", this is the wrong skill — go to backend-dev-guidelines or the relevant package guide.

Workflow

Read the inputs first, then plan the Datadog sweep, then read the code, then write the analysis. Do not skip ahead to suggested patches before the data supports them.

  1. Intake. Pull every signal already available in the report. See references/intake.md. For a Linear URL/ID, fetch the issue and its comments via the Linear MCP — the description is often updated inline as triage proceeds. For a GitHub issue, use gh issue view. For pasted text, treat it as the description. If intake contains an alert identity (a Datadog monitor ID or title, an incident.io alert/INC reference, or an on-call page), first apply incident-alert-tickets — a documented cause section may resolve the investigation before any sweep.

  2. Scope the sweep. From the intake, pick the affected subsystem and time window. Use references/repo-debug-map.md to translate "PostHog integration", "ingestion failures", "evals stuck", etc. into the Datadog filters and source files you should be looking at.

  3. Run the broad Datadog sweep. Default to the full sweep in references/datadog-playbook.md: APM spans, error logs, metrics, and monitors — split across prod-eu and prod-us (and prod-hipaa / prod-jp when relevant). Always check regional disparity first; it usually rules whole hypotheses in or out. Use datadog-query-recipes for reusable tenant, public API, queue consumer, and cross-environment query shapes.

  4. Cluster the errors. Group by (projectId, error.message) or (error.type, error.message). Treat each distinct cluster as its own hypothesis — Langfuse incidents commonly have multiple coexisting root causes, not one.

  5. Map clusters to code. For each cluster, open the relevant handler file from the repo-debug map and read enough of it to confirm or refute the hypothesis. Cite specific files and line ranges in the output.

  6. Write the analysis using references/output-template.md.

  7. Deliver. Default: print the analysis in chat. If the user asked for it, also save under the workflow they specified (file, Linear comment via, etc.). If the investigation was anchored to an alert identity, also offer the human-gated write-back from incident-alert-tickets: append the established root cause as a dated cause section, or create the monitor's ticket.

Datadog MCP Usage Notes

Two Datadog MCP servers are typically available — one bound to the EU site (datadoghq.eu) and one to the US site (datadoghq.com). Always run region-relevant queries against both unless intake clearly localizes the incident. The prod-eu / prod-us env tags live on each side respectively.

  • Span search filter pattern: service:worker resource_name:"process posthog-integration-project" status:error
  • Log search filter pattern: service:worker env:prod-eu @langfuse.project.id:cm1r6u… status:error
  • For high-volume queries, prefer aggregate_spans / aggregate_events grouped by (error.message, projectId) over fetching individual traces.
  • Always link to the Datadog UI for the queries you ran (final section of the output template).

See references/datadog-playbook.md for the full set of starter queries and parameter shapes.

Output Expectations

From the output template:

  • Header: data source, time window, region split (EU vs US table).
  • Hotspots: per-projectId (or per-cluster) error counts.
  • Root cause by error class: each cluster gets a short hypothesis with reasoning, distinguishing primary causes from symptoms.
  • Suggested patches: P0/P1/P2 grouped, with concrete file paths and short code sketches. Reference the actual handler in worker/src/features/** or web/src/**.
  • Dashboards: paste the Datadog query URLs at the end.

Findings come first, recommendations last. If the data is thin, say so explicitly and propose what would need to be true to confirm each hypothesis — do not invent root causes.

Cross-References

  • Per-monitor knowledge base — look up documented causes before the sweep, record new ones after (human-gated): incident-alert-tickets
  • Production telemetry query recipes, tenant/public API usage, and queue consumer measurements: datadog-query-recipes
  • Backend layout, queue contracts, instrumentation patterns: backend-dev-guidelines
  • ClickHouse-related findings (memory ceilings, JOIN spills, slow queries): clickhouse-best-practices
  • Once a fix is identified and you switch to implementation, hand off to the package AGENTS.md for the affected directory.

langfuse의 다른 스킬

clickhouse-best-practices
langfuse
ClickHouse 스키마, 쿼리 또는 구성을 검토할 때 반드시 사용해야 합니다. 권장 사항을 제공하기 전에 반드시 확인해야 하는 28개의 규칙이 포함되어 있습니다. 항상 읽어보세요…
official
skill-creator
langfuse
효과적인 스킬을 만들기 위한 가이드입니다. 사용자가 Claude의 기능을 확장하는 새 스킬을 만들거나 기존 스킬을 업데이트하려 할 때 이 스킬을 사용해야 합니다.
official
vercel-react-best-practices
langfuse
Vercel Engineering의 React 및 Next.js 성능 최적화 가이드라인입니다. 이 스킬은 React/Next.js를 작성, 검토 또는 리팩토링할 때 사용해야 합니다…
official
add-model-price
langfuse
Use when editing worker/src/constants/default-model-prices.json, packages/shared/src/server/llm/types.ts, pricing tiers, tokenizer IDs, or matchPattern regexes…
official
analyze-cloud-costs
langfuse
Metabase cost marts를 사용하여 Langfuse Cloud 인프라 비용 구조를 분석합니다. 클라우드 지출, AWS 대 ClickHouse 비용 분할, 비용…에 대해 질문받을 때 사용합니다.
official
backend-dev-guidelines
langfuse
Build or review Langfuse backend code. Use for tRPC routers, public REST APIs, BullMQ processors, services, middleware, Prisma or ClickHouse access,…
official
clickhouse-best-practices
langfuse
ClickHouse 스키마, 쿼리 또는 구성을 검토할 때 반드시 사용해야 합니다. 권장사항을 제공하기 전에 확인해야 하는 28가지 규칙이 포함되어 있습니다. 항상 읽으세요…
official
code-review
langfuse
Review Langfuse code changes for correctness, regressions, and best practices.
official