# Unhandled > Observability for AdonisJS, Node.js and any OpenTelemetry app: traces, logs, metrics, errors grouped into issues, uptime, alerts and product analytics, with an MCP server that coding agents use to read production data and fix issues. Every link below is the page as Markdown. Any docs URL also returns Markdown when you send `Accept: text/markdown` or append `.md` under `/docs/raw`. All pages in one file: https://unhandled.net/llms-full.txt. MCP server: https://unhandled.net/mcp/x/debug (every tool: https://unhandled.net/mcp). ## Agents - [AI and agents](https://unhandled.net/docs/raw/agents.md): Connect your coding agent to Unhandled in one copy-paste, then let it set up a service, fix issues and verify deploys. - [MCP server](https://unhandled.net/docs/raw/features/mcp-server.md): Connect Claude, Cursor and other MCP clients to Unhandled over OAuth and let them query and act on your telemetry. - [Quickstart](https://unhandled.net/docs/raw/quickstart.md): Create a service, install the SDK for your stack, set the DSN and see your first trace and issue in Unhandled. - [Install for your stack](https://unhandled.net/docs/raw/install.md): Pick your language or framework and copy the install and config steps that connect it to Unhandled. ## Getting started - [Introduction](https://unhandled.net/docs/raw/introduction.md): What Unhandled records from your services in any language, which pages fill in on their own, and where to start reading. - [Core concepts](https://unhandled.net/docs/raw/concepts.md): How organizations, projects, services and environments fit together, what a DSN contains, and how keys, roles and the time scope decide what you see. - [Troubleshooting](https://unhandled.net/docs/raw/troubleshooting.md): Why telemetry does not reach Unhandled or lands in the wrong place, and how to check each cause in order. - [Support](https://unhandled.net/docs/raw/support.md): Where to find help with Unhandled, what to include when you ask, and how to keep up with changes. - [Pricing and usage](https://unhandled.net/docs/raw/pricing-and-usage.md): Unhandled's plans, the free trial, how usage is metered per billing period, how long each kind of data is kept, and what the Plan and Usage tabs of Plan & usage show. - [Data retention](https://unhandled.net/docs/raw/data-retention.md): How long Unhandled keeps each kind of data, how admins shorten it per category, what happens when a plan changes, and when deleted projects and organizations are erased. ## AI and agents - [Set up with Claude Code](https://unhandled.net/docs/raw/agents/setup-with-claude-code.md): Connect Claude Code to Unhandled with one command, or install the plugin that adds skills for fixing errors and verifying deploys. - [Set up with Cursor](https://unhandled.net/docs/raw/agents/setup-with-cursor.md): Add Unhandled to Cursor with one click or one config entry, and start the cursor-agent CLI on an issue. - [Set up with Codex](https://unhandled.net/docs/raw/agents/setup-with-codex.md): Connect the Codex CLI to Unhandled with one command, and give Codex cloud or CI a token instead of a browser sign-in. - [Set up with VS Code](https://unhandled.net/docs/raw/agents/setup-with-vscode.md): Add Unhandled to VS Code with one click, one command or one workspace config file. - [Set up with GitHub Copilot](https://unhandled.net/docs/raw/agents/setup-with-copilot.md): Give the GitHub Copilot cloud agent read access to Unhandled with an agent identity, and hand an issue to Copilot from the issue page. - [Set up with other agents](https://unhandled.net/docs/raw/agents/setup-with-other-agents.md): Connect opencode, Gemini CLI, Amp, Zed or Windsurf to Unhandled with one command or one config entry. - [Fix issues with your agent](https://unhandled.net/docs/raw/agents/fix-issues.md): Start your coding agent on an issue from the issue page or the CLI, hand it off to an agent running elsewhere, or watch for new issues. - [Verify a deploy with your agent](https://unhandled.net/docs/raw/agents/verify-a-deploy.md): Have your agent judge a production deploy, check that the fixes it shipped held and confirm a new service reports everything. - [Prompts for your agent](https://unhandled.net/docs/raw/agents/prompts.md): Copy-paste prompts to set up a service, fix an issue and verify a deploy, and the AGENTS.md section that keeps every agent on the same rules. - [Agent security](https://unhandled.net/docs/raw/agents/security.md): Why a coding agent that reads production telemetry treats it as untrusted text, and the scopes, approvals and isolation that bound what it can do. ## AdonisJS agent - [AdonisJS agent](https://unhandled.net/docs/raw/adonisjs.md): Install @unhandled/agent-adonisjs, connect it to a service with a DSN, and see what it records without extra code. - [Configuration](https://unhandled.net/docs/raw/adonisjs/configuration.md): Every option of config/unhandled.ts with its real default, the DSN format, environment variables, extra destinations and how export is turned off. - [HTTP tracing](https://unhandled.net/docs/raw/adonisjs/http.md): How the AdonisJS agent names request spans, which URLs it skips, how it redacts URLs, and how to capture request and response bodies. - [Custom tracing](https://unhandled.net/docs/raw/adonisjs/custom-tracing.md): Wrap your own business logic in spans with record, the span and spanAll decorators, and the attribute, event and propagation helpers. - [Mail, queue and Ace commands](https://unhandled.net/docs/raw/adonisjs/mail-queue-cli.md): The built-in mail, queue and Ace command instrumentations of the AdonisJS agent, what each records and how to configure or turn it off. - [Users and exceptions](https://unhandled.net/docs/raw/adonisjs/users-and-exceptions.md): Attach the signed-in user to traces, understand automatic exception capture, and report errors and messages yourself with the Unhandled object. - [Migrate from @adonisjs/otel](https://unhandled.net/docs/raw/adonisjs/migrate-from-adonisjs-otel.md): Point @adonisjs/otel at Unhandled with standard OTLP variables, or move to the Unhandled agent and keep your existing options, helpers and decorators. ## Application monitoring - [Overview](https://unhandled.net/docs/raw/features/overview.md): The project dashboard, its health cards and attention tables, and the scope controls every telemetry page shares. - [Services](https://unhandled.net/docs/raw/features/services.md): Register each deployable as a service, get its DSN, and read per-service activity, exceptions and last seen times. - [Traces](https://unhandled.net/docs/raw/features/traces.md): Search traces, read the segment chart, and follow one request across services in the waterfall view. - [Logs](https://unhandled.net/docs/raw/features/logs.md): Search and filter log records, read volume by level, and jump from a log line to its trace and its neighbours. - [Metrics](https://unhandled.net/docs/raw/features/metrics.md): Browse every OpenTelemetry metric your services report and chart one with aggregations, grouping and filters. - [Requests](https://unhandled.net/docs/raw/features/requests.md): Throughput, error rates, latency and Apdex for every endpoint your servers handle, with per-endpoint detail and recent requests. - [Web Vitals](https://unhandled.net/docs/raw/features/web-vitals.md): LCP, INP, CLS, FCP and TTFB from real visits at the 75th percentile per route, a 0 to 100 score, and the elements behind slow interactions and paints. - [Clicks](https://unhandled.net/docs/raw/features/click-signals.md): Rage, dead and error clicks from real visits, by CSS selector and route, linked to the issues and traces they caused and to session replays. - [Queries](https://unhandled.net/docs/raw/features/queries.md): Database queries grouped into normalized patterns per service, with slow-query counts, N+1 detection and recent executions. - [External Calls](https://unhandled.net/docs/raw/features/external-calls.md): Outbound HTTP calls grouped by host, with error rates, latency, URL patterns and detection of calls to your own services. - [Jobs](https://unhandled.net/docs/raw/features/jobs.md): Background job throughput, failures, retries, processing time and queue time, grouped by job name. - [Job sampling](https://unhandled.net/docs/raw/features/job-sampling.md): Decide per job which background job traces to keep, drop or rate-limit, and keep failed runs even when you sample successes away. - [Cache](https://unhandled.net/docs/raw/features/cache.md): Cache hit rate, latency and operations for every sanitized cache key pattern. - [Emails](https://unhandled.net/docs/raw/features/emails.md): Emails your application sends, grouped by template or subject, with failures, send times and transports. - [Commands](https://unhandled.net/docs/raw/features/commands.md): CLI commands and scheduled tasks, their executions, failures, duration, and the arguments each run received. - [Users](https://unhandled.net/docs/raw/features/users.md): Identified users of your app, their request volume and errors, and the requests each one made, keyed by user.id. - [System Metrics](https://unhandled.net/docs/raw/features/system-metrics.md): CPU, memory and runtime charts for each instance, with panels that match the language the instance runs. - [Custom Dashboards](https://unhandled.net/docs/raw/features/custom-dashboards.md): Build your own dashboards of OpenTelemetry metric widgets, with queries, grouping, filters and six visualizations. ## Errors and releases - [Issues](https://unhandled.net/docs/raw/features/issues.md): How Unhandled groups exceptions and performance problems into issues, the issue lifecycle, triage actions, regressions, retention and notifications. - [User feedback](https://unhandled.net/docs/raw/features/user-feedback.md): Let the people using your app tell you what went wrong, with the error and trace they hit attached. The browser SDK's feedback API and widget, where feedback shows up, and how it is kept. - [AI issue summaries, alert investigations and fix prompts](https://unhandled.net/docs/raw/features/ai-summaries.md): Copy a fix prompt for any issue, summarize it, or explain a firing alert with your own Anthropic, OpenAI, Azure OpenAI, Amazon Bedrock or Google Vertex AI account. What each sends, where it goes, how long it is kept and how to turn it off. - [Deployments](https://unhandled.net/docs/raw/features/deployments.md): How Unhandled detects releases from service.version, accepts declarations from CI, merges the two, and marks deployments on charts. - [Deployments API](https://unhandled.net/docs/raw/features/deployments/api.md): Declare deployments over HTTP with a deploy key, including request fields, limits, status updates, merging and response codes. - [Deploy from the CLI](https://unhandled.net/docs/raw/features/deployments/cli.md): Declare deployments from CI with unhandled deploy, including flags, environment variables, CI auto-detection, exit codes and examples. ## Uptime and alerting - [Uptime monitoring](https://unhandled.net/docs/raw/features/uptime.md): HTTP, TCP, DNS and heartbeat monitors that check your services every minute, including health mode, assertions, thresholds, maintenance, outages, notifications and retention. - [Status pages](https://unhandled.net/docs/raw/features/status-pages.md): Public status pages built from your uptime monitors, with incidents, scheduled maintenance and 90-day history. Custom domains are coming soon. - [Alerts](https://unhandled.net/docs/raw/features/alerts.md): Alerts on endpoints, metrics, log counts, SLO burn rates, AI usage, web vitals, click signals and product analytics, with fixed thresholds or anomaly detection, evaluation timing, the alert state machine, previews, limits and notifications. - [SLOs](https://unhandled.net/docs/raw/features/slos.md): Service level objectives on HTTP availability, HTTP latency or a metric, with the error budget, a burndown over a rolling window, burn rates and multi-window burn-rate alerts. - [Notifications](https://unhandled.net/docs/raw/features/notifications.md): Where Unhandled sends notifications, how channels, defaults, exception rules, email preferences and batching work, and the webhook format. ## Product analytics and AI - [Analytics](https://unhandled.net/docs/raw/features/analytics.md): Cookieless page views, custom events, revenue, a realtime view, visits, sessions, funnels, insights, retention, experiments and opt-in user profiles, stored next to your traces and errors. - [Session replay](https://unhandled.net/docs/raw/features/session-replay.md): Opt-in, masked-by-default recordings of real visits, played back in a sandbox and linked from sessions, issues, traces and rage clicks. - [AI Agents](https://unhandled.net/docs/raw/features/ai-agents.md): Track LLM calls, tool usage, token spend, estimated cost, conversations and evaluation scores from your AI features. - [MCP Monitoring](https://unhandled.net/docs/raw/features/mcp-monitoring.md): See which tools your own MCP server handles, which clients and users call them, how fast they answer and how often they fail. ## Workspace - [Access and permissions](https://unhandled.net/docs/raw/features/access-and-permissions.md): Organization roles, teams, project access, invitations, and the keys Unhandled issues for telemetry and deployments. - [Account and organization settings](https://unhandled.net/docs/raw/features/account-and-organization.md): Your profile, sign-in methods, sessions and email preferences, plus renaming, leaving, deleting and creating organizations. - [Single sign-on and SCIM](https://unhandled.net/docs/raw/features/single-sign-on.md): Sign members in through your OpenID Connect identity provider, require it, and provision or remove members with SCIM 2.0. - [Ingest domains](https://unhandled.net/docs/raw/features/ingest-domains.md): Coming soon. Send telemetry to a subdomain you own, such as errors.acme.example, instead of the default Unhandled host. - [Integrations](https://unhandled.net/docs/raw/features/integrations.md): Connect GitHub and Linear to turn Unhandled issues into tickets, add Slack, Discord or webhook channels for notifications, and import Google Search Console data. - [Slack](https://unhandled.net/docs/raw/features/integrations/slack.md): Post uptime, endpoint alert, exception and faulty deploy notifications to a Slack channel through an incoming webhook, and answer in alert threads with the Unhandled Slack app. - [Discord](https://unhandled.net/docs/raw/features/integrations/discord.md): Post uptime, endpoint alert, exception and faulty deploy notifications to a Discord channel through a channel webhook. - [GitHub](https://unhandled.net/docs/raw/features/integrations/github.md): Create GitHub issues from Unhandled issues or link existing ones, and resolve the Unhandled issue when the GitHub issue closes. - [Linear](https://unhandled.net/docs/raw/features/integrations/linear.md): Create Linear issues from Unhandled issues or link existing ones, and resolve the Unhandled issue when the Linear issue is completed. - [Google Search Console](https://unhandled.net/docs/raw/features/integrations/search-console.md): Import Google Search clicks, impressions, CTR and average position for your sites and see them next to pages and sources in Analytics. - [Admin console](https://unhandled.net/docs/raw/features/admin-console.md): For self-hosted installations. How to make someone staff, what the /admin console shows and changes, the Unlimited plan, and the audit log. ## SDKs - [Node.js SDK](https://unhandled.net/docs/raw/sdks/node.md): Install @unhandled/node in any Node.js app, start it with --import or init(), and look up every option, export and default. - [Express](https://unhandled.net/docs/raw/sdks/express.md): Install @unhandled/express in an Express 5 app to get route-named requests, signed-in users, request bodies and server errors in Unhandled. - [Fastify](https://unhandled.net/docs/raw/sdks/fastify.md): Register the @unhandled/fastify plugin in a Fastify 5 app to get route-named requests, signed-in users, request bodies and server errors in Unhandled. - [Hono](https://unhandled.net/docs/raw/sdks/hono.md): Add the @unhandled/hono middleware to a Hono app on Node.js to get route-named requests, signed-in users, request bodies and server errors in Unhandled. - [NestJS](https://unhandled.net/docs/raw/sdks/nestjs.md): Import UnhandledModule in a NestJS 11 app on the Express platform to get route-named requests, signed-in users, request bodies and server errors in Unhandled. - [Next.js](https://unhandled.net/docs/raw/sdks/nextjs.md): Start @unhandled/nextjs from instrumentation.ts to send traces, logs, metrics and server errors from a Next.js 15+ app to Unhandled. - [Browser SDK](https://unhandled.net/docs/raw/sdks/browser.md): Install @unhandled/browser to send network spans, errors, logs, page views and custom events from a web frontend. - [React Native SDK](https://unhandled.net/docs/raw/sdks/react-native.md): Install @unhandled/react-native to report JS errors with Hermes source maps, queue telemetry offline, and record screen, network and app start spans from an Expo or React Native app. - [Swift SDK](https://unhandled.net/docs/raw/sdks/swift.md): API reference for the Unhandled Swift SDK for Apple platforms, which is in the Unhandled repository but not released yet. - [Kotlin SDK](https://unhandled.net/docs/raw/sdks/kotlin.md): API reference for the Unhandled Kotlin SDK for Android and the JVM, which is in the Unhandled repository but not released yet. - [CLI](https://unhandled.net/docs/raw/sdks/cli.md): Use @unhandled/cli to declare deployments and upload source maps from CI, sign in, list issues and connect your coding agent, with its commands, flags, environment variables and exit codes. - [Performance and safety](https://unhandled.net/docs/raw/sdks/performance-and-safety.md): What the Unhandled SDKs do while your code runs, how much they keep in memory, and what your app sees when Unhandled is slow, rejecting requests or down. ## Frameworks - [Astro](https://unhandled.net/docs/raw/guides/astro.md): Send browser errors, page views and web vitals from an Astro site, plus Worker traces from Cloudflare, with releases and source maps set in Workers Builds. ## OpenTelemetry - [Send data from any OpenTelemetry SDK](https://unhandled.net/docs/raw/opentelemetry/any-sdk.md): Point any OpenTelemetry SDK or Collector at Unhandled over OTLP/HTTP, with the endpoint paths, headers, encodings, limits and error codes. - [Semantic conventions](https://unhandled.net/docs/raw/opentelemetry/semantic-conventions.md): The span kinds, attribute names and unhandled.* keys that decide how Unhandled classifies, groups and displays your telemetry. - [Background spans](https://unhandled.net/docs/raw/opentelemetry/background-spans.md): What Unhandled flags as a background span, where you see the flag, and how to attach that work to a request, job or command. ## Instrumentations - [AdonisJS queue](https://unhandled.net/docs/raw/instrumentations/adonisjs-queue.md): How the AdonisJS agent traces @adonisjs/queue and @boringnode/queue jobs, the queue option, span linking and job sampling. - [BullMQ](https://unhandled.net/docs/raw/instrumentations/bullmq.md): Trace BullMQ 5 queues, flows and workers with @unhandled/instrumentation-bullmq, including job sampling through the AdonisJS agent. - [Bentocache](https://unhandled.net/docs/raw/instrumentations/bentocache.md): Trace Bentocache and @adonisjs/cache operations with @unhandled/instrumentation-bentocache, including keys, hits and tiers. - [Drizzle](https://unhandled.net/docs/raw/instrumentations/drizzle.md): Trace Drizzle ORM queries as database spans with @unhandled/instrumentation-drizzle, wrapping either the Drizzle client or the node-postgres driver. - [Kysely](https://unhandled.net/docs/raw/instrumentations/kysely.md): Trace Kysely queries, streams and transactions and export pg pool gauges with @unhandled/instrumentation-kysely. - [Vercel AI SDK](https://unhandled.net/docs/raw/instrumentations/vercel-ai.md): Turn Vercel AI SDK telemetry into GenAI spans with @unhandled/instrumentation-vercel-ai, with recording options and conversation IDs. - [Mastra](https://unhandled.net/docs/raw/instrumentations/mastra.md): Reshape Mastra's OpenTelemetry bridge spans for Unhandled's AI views with @unhandled/instrumentation-mastra, including model metadata and evaluations. - [MCP server](https://unhandled.net/docs/raw/instrumentations/mcp-server.md): Trace the MCP server your app exposes with @unhandled/instrumentation-mcp-server, covering requests, notifications, tool results and errors.