{"slug":"api-observability-axiom-pino-sentry","title":"api-observability-axiom-pino-sentry","summary":"Pino logging, Sentry error tracking, Axiom - structured logging with correlation IDs, error boundaries, performance monitoring, alerting","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-29T15:28:01.391731Z","repo":{"url":"https://github.com/agents-inc/skills","stars":24,"forks":8,"license":"MIT","updatedAt":"2026-09-07T17:50:55Z"},"bodyHtml":"<hr>\n<h2>name: api-observability-axiom-pino-sentry\ndescription: Pino logging, Sentry error tracking, Axiom - structured logging with correlation IDs, error boundaries, performance monitoring, alerting</h2>\n<h1>Observability Patterns (Logging, Tracing, Error Handling)</h1>\n<blockquote>\n<p><strong>Quick Guide:</strong> Structured logging with Pino (debug/info/warn/error). Correlation IDs for request tracing. Sentry error boundaries in React. Attach user context after auth. Filter expected errors (404s). Create Axiom monitors for alerts.</p>\n</blockquote>\n<hr>\n<p>&lt;critical_requirements&gt;</p>\n<h2>CRITICAL: Before Using This Skill</h2>\n<blockquote>\n<p><strong>All code must follow project conventions in CLAUDE.md</strong> (kebab-case, named exports, import ordering, <code>import type</code>, named constants)</p>\n</blockquote>\n<p><strong>(You MUST include correlation ID in ALL log statements for request tracing)</strong></p>\n<p><strong>(You MUST use structured logging with required fields: level, message, correlationId, timestamp)</strong></p>\n<p><strong>(You MUST filter expected errors (404, validation) from Sentry to avoid quota waste)</strong></p>\n<p><strong>(You MUST attach user context to Sentry AFTER authentication completes)</strong></p>\n<p><strong>(You MUST use child loggers with context instead of repeating fields in every log call)</strong></p>\n<p>&lt;/critical_requirements&gt;</p>\n<hr>\n<p><strong>Auto-detection:</strong> log, logger, pino, Sentry, error boundary, correlation ID, trace, span, observability, monitoring, alerting</p>\n<p><strong>When to use:</strong></p>\n<ul>\n<li>Adding logging to new feature code</li>\n<li>Implementing error handling patterns</li>\n<li>Setting up request tracing with correlation IDs</li>\n<li>Creating custom traces and spans for performance debugging</li>\n<li>Configuring Sentry error boundaries in React components</li>\n<li>Creating Axiom monitors and alerts</li>\n</ul>\n<p><strong>When NOT to use:</strong></p>\n<ul>\n<li>Initial project setup and dependency installation (one-time setup; follow official docs)</li>\n<li>Framework-specific configuration files (follow framework SDK docs)</li>\n</ul>\n<p><strong>Key patterns covered:</strong></p>\n<ul>\n<li>Log levels decision tree (when to use debug/info/warn/error)</li>\n<li>Structured logging with required fields</li>\n<li>Correlation IDs: generating, propagating, attaching to logs</li>\n<li>Custom traces/spans with OpenTelemetry</li>\n<li>Sentry error boundaries in React</li>\n<li>Attaching user context to Sentry after auth</li>\n<li>Creating Axiom monitors and alerts</li>\n<li>Filtering noise (expected errors like 404s)</li>\n<li>Performance monitoring patterns</li>\n<li>Debugging guide: tracing a request through the system</li>\n</ul>\n<p><strong>Detailed Resources:</strong></p>\n<ul>\n<li>For code examples, see <a href=\"examples/core.md\">examples/core.md</a> (essential patterns always loaded)</li>\n<li>For decision frameworks and anti-patterns, see <a href=\"reference.md\">reference.md</a></li>\n</ul>\n<p><strong>Extended Examples:</strong></p>\n<ul>\n<li><a href=\"examples/correlation-ids.md\">examples/correlation-ids.md</a> - Middleware for request tracing</li>\n<li><a href=\"examples/tracing.md\">examples/tracing.md</a> - OpenTelemetry spans and custom instrumentation</li>\n<li><a href=\"examples/error-boundaries.md\">examples/error-boundaries.md</a> - React error boundaries with Sentry</li>\n<li><a href=\"examples/sentry-config.md\">examples/sentry-config.md</a> - User context and error filtering</li>\n<li><a href=\"examples/axiom.md\">examples/axiom.md</a> - Monitors, alerts, and debugging queries</li>\n<li><a href=\"examples/performance.md\">examples/performance.md</a> - Query and API call tracking</li>\n</ul>\n<hr>\n\n<hr>\n\n<hr>\n<p>&lt;red_flags&gt;</p>\n<h2>RED FLAGS</h2>\n<p>For comprehensive anti-patterns and red flags, see <a href=\"reference.md#red-flags\">reference.md</a>.</p>\n<p><strong>Quick Reference - High Priority Issues:</strong></p>\n<ul>\n<li>Missing correlation ID in logs - Impossible to trace requests</li>\n<li>Using <code>console.log</code> instead of structured logger - Not searchable, no levels</li>\n<li>Logging sensitive data - Security vulnerability</li>\n<li>Not filtering expected errors in Sentry - Wastes quota, buries real issues</li>\n<li>Error logs without stack traces - Can't debug without knowing where error occurred</li>\n</ul>\n<p>&lt;/red_flags&gt;</p>\n<hr>\n<p>&lt;critical_reminders&gt;</p>\n<h2>CRITICAL REMINDERS</h2>\n<blockquote>\n<p><strong>All code must follow project conventions in CLAUDE.md</strong></p>\n</blockquote>\n<p><strong>(You MUST include correlation ID in ALL log statements for request tracing)</strong></p>\n<p><strong>(You MUST use structured logging with required fields: level, message, correlationId, timestamp)</strong></p>\n<p><strong>(You MUST filter expected errors (404, validation) from Sentry to avoid quota waste)</strong></p>\n<p><strong>(You MUST attach user context to Sentry AFTER authentication completes)</strong></p>\n<p><strong>(You MUST use child loggers with context instead of repeating fields in every log call)</strong></p>\n<p><strong>Failure to follow these rules will result in untraceable requests, wasted Sentry quota, and impossible debugging.</strong></p>\n<p>&lt;/critical_reminders&gt;</p>\n","files":[{"path":"examples/axiom.md","sizeBytes":2945,"isText":true},{"path":"examples/core.md","sizeBytes":3343,"isText":true},{"path":"examples/correlation-ids.md","sizeBytes":5884,"isText":true},{"path":"examples/error-boundaries.md","sizeBytes":6402,"isText":true},{"path":"examples/performance.md","sizeBytes":2997,"isText":true},{"path":"examples/sentry-config.md","sizeBytes":4829,"isText":true},{"path":"examples/tracing.md","sizeBytes":2222,"isText":true},{"path":"reference.md","sizeBytes":11836,"isText":true},{"path":"SKILL.md","sizeBytes":10616,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-29T15:29:30.329979Z","sha256":"16189A9F3C36FBB6027F012578112F888FE9F4AE5CF871E19B7FCEFC210FDE77","sizeBytes":19998},"review":null,"source":{"repositoryUrl":"https://github.com/agents-inc/skills","path":"dist/plugins/api-observability-axiom-pino-sentry/skills/api-observability-axiom-pino-sentry","license":"MIT","commit":"3a51ef571e996b18294bf776d53dbdad26de0617","subtreeSha":"E5709C2BE0E89B95413F1A3D0CFDB6B4BA38E95D33098912FC249BD6514A24D7","lastSyncedAt":"2026-09-29T15:27:48.914434Z"},"reviewedAt":"2026-09-29T15:32:47.060687Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/agents-inc/skills/tree/main/dist/plugins/api-observability-axiom-pino-sentry/skills/api-observability-axiom-pino-sentry"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install agents-inc-skills@llmmart"},{"target":"git","command":"git clone https://github.com/agents-inc/skills.git"}]}