Skip to main content
Squasher natively accepts OpenTelemetry data via the OTLP/HTTP protocol. This means you can send traces, logs, and metrics from any language that OTel supports — Node.js, Python, Go, Java, Ruby, .NET, Rust, PHP, Elixir, and more — without installing a Squasher-specific SDK. Squasher automatically extracts error events from your telemetry, so you get full error monitoring with zero custom instrumentation. If you use the Log Connectors screen in Squasher, create the OTLP HTTP connector first and copy the managed endpoint and ingest key from there. The endpoints below map to the same OTLP entry points. For AI workflows, spans with gen_ai.* attributes can be classified into AI observations. Use the Agent telemetry SDK when you want richer session, generation, cost, and tool-call capture without manually shaping OTel attributes.

AI span conventions

Squasher routes AI spans from /v1/traces into the AI observability dataset when they include one of these markers:
  • OpenTelemetry GenAI attributes such as gen_ai.operation.name, gen_ai.request.model, gen_ai.provider.name, gen_ai.system, and gen_ai.usage.*
  • Vercel AI SDK telemetry attributes such as operation.name=ai.streamText.doStream, ai.model.id, ai.model.provider, and ai.usage.*
  • Langfuse-compatible attributes such as langfuse.observation.type=generation, langfuse.observation.model.name, langfuse.observation.usage_details, and langfuse.observation.cost_details
  • OpenInference markers such as openinference.span.kind=LLM or openinference.span.kind=TOOL
For token and cost accuracy, send provider-reported usage when available. Squasher reads prompt/input tokens, completion/output tokens, total tokens, cached input tokens, and explicit USD cost from these conventions before falling back to model-rate cost calculation.

How It Works

Squasher’s OTLP endpoints accept standard trace, log, and metric payloads. From these, Squasher extracts:
  • Exception events from trace spans (the exception span event with exception.type, exception.message, and exception.stacktrace attributes)
  • Error spans — any span with status.code = ERROR
  • Error/fatal log records — log records with severity ERROR or higher
  • Metric points — gauges, sums, histograms, and exponential histograms sent to /v1/metrics
Error telemetry creates error groups. Non-error OTLP logs are still stored as log context and counted against your log quota, so you can keep the surrounding trail that explains what happened before and after an error.

Endpoint Configuration

Authentication

Pass your Squasher API key using either method:
  • Custom header: x-squasher-key: sq_pk_your_api_key
  • Standard auth: Authorization: Bearer sq_pk_your_api_key
Both are supported. Use whichever your OTel SDK makes easier.
Your API key is available in the Dashboard under Settings > API Keys.

Quick Start with Environment Variables

Most OTel SDKs support configuration via environment variables. Set these and your SDK will send data to Squasher automatically:

Language-Specific Setup

Install packages:
Create tracing.ts:
tracing.ts
Run your app:

Resource Attributes

Squasher extracts these standard OTel resource attributes automatically: All other resource and span attributes are preserved as tags on the error event.

Supported Formats

Both are fully supported. Most OTel SDKs default to protobuf — no configuration needed.

Delivery behavior

A successful OTLP response means Squasher has stored the batch in the active telemetry store or in durable regional recovery storage. If the active store is unavailable, Squasher accepts the batch into recovery storage and replays it without placing the backlog ahead of new telemetry. Replayed data can appear later than live data. The recovery path provides at-least-once delivery. A failure near the storage boundary can produce a duplicate row. Keep stable trace IDs, span IDs, timestamps, and other OpenTelemetry identities so repeated data remains identifiable. Retry 5xx and 429 responses with bounded exponential backoff. Do not retry other 4xx responses without correcting the request.

Combining with Squasher SDKs

You can use OpenTelemetry alongside Squasher’s native SDKs. For example, use the Squasher Next.js SDK for your frontend and OpenTelemetry for your backend microservices in Go or Python. All errors appear in the same dashboard.

Collector deployment guides

Agent handoff

Limitations

  • Error-focused grouping: Only error-level telemetry creates error groups, but non-error OTLP logs can still be stored as context.
  • Metric read paths: General OTLP metrics are queryable through the Metrics API. Browser vitals continue to have their own dedicated dashboards and APIs.
  • Trace workflows: Distributed traces and waterfalls are available through the Traces API and trace views in the dashboard.