Owlpane Carbon · OpenTelemetry-native

See the carbon cost of every service. Forecast the bill.

Traces, logs, errors, background jobs, and releases in one product — priced by data, with a cap that samples instead of surprising you. Owlpane Carbon adds energy and CO₂e per service, endpoint and job on the same telemetry — on Team and above, each figure labelled measured or estimated, with its uncertainty.

Every new workspace starts with a 14-day Team trial: 50 GB of ingest a month and 30-day retention. No card to start.

Standard OTLP in, standard OTLP out — nothing proprietary to migrate away from later.
Standard OpenTelemetry, not a proprietary agent Alerts checked every minute Data isolated per tenant, hosted in the EU

Why Owlpane

Four reasons teams switch

One OpenTelemetry-native product where signals link to each other — with limits stated plainly on every comparison page.

01 · Forecast

A bill you can forecast

Priced by GB ingested, not per host, per seat or per indexed event. Team includes 50 GB; a spend cap samples instead of surprising you at month end.

Cost calculator →
02 · Linked

Logs, traces and metrics that meet

A log line opens the request that wrote it. Errors carry a sample trace. Releases sit on the same charts as latency and 5xx rate — so you follow one story, not five tabs.

See it working →
03 · Standard

OpenTelemetry in and out

OTLP and Prometheus remote write. Send a copy beside Datadog, Grafana or your self-hosted stack — nothing proprietary to undo if you leave.

Integrations →
04 · Operations

Kubernetes, SLOs and carbon on the same telemetry

Cluster inventory with pod-level drill-down, burn-rate SLO alerts, and CO₂e per service and job — measured or estimated, always labelled.

Owlpane Carbon →

Compare honestly: Grafana stack · OpenObserve · Bronto · Logz.io · Datadog · Checkly

Documentation

Guides, SDKs and ingest setup

Quickstart, OpenTelemetry ingest, Node.js and Kubernetes agent install — the same paths linked from the console setup wizard.

Browse documentation →
Works with

OpenTelemetry, Node.js, NestJS, Kubernetes, PostgreSQL, Redis, Prometheus, Grafana, Slack, PagerDuty, Opsgenie, Jira, and ServiceNow each have a documented connect path. See all integrations →

See it working

The real product, not a mock-up.

Every screen below is a screenshot of the Owlpane console. Watch what each one tells you, or click a step to jump to it.

Know how your API is doing the moment you open it.

Traffic, errors and latency for every back-end service, the map of who calls whom, and the errors grouped by what went wrong.

  1. Overview
  2. Service map
  3. Errors
Explore Applications →
Owlpane · Applications · Overview
Owlpane Applications overview: request, error and latency tiles, request and response-time charts, and a table of routes.

The problem

You're paying five vendors to answer one question

"What just broke, and why?" shouldn't take five browser tabs and a Slack thread to answer.

01

A different tool for every signal

APM here, log search there, uptime somewhere else, on-call in another tab. Nothing shares a trace ID.

02

Pricing that punishes growth

Per-host and per-seat bills that go up exactly when your product is finally getting traction.

03

A cluster you can bill but not see

You know what Kubernetes costs. You don't know why a pod OOMKilled at 2am until a customer tells you.

04

Alerts nobody trusts anymore

Too noisy to page on, too quiet to catch the thing that mattered. So everyone mutes the channel.

Investigate

Follow the incident, not the tabs.

A deploy, a latency jump, an error spike, a slow query and a backed-up queue are one story. In Owlpane each of them already links to the exact requests, errors and logs behind it.

  • Releases are marked on the charts, so you see what changed and when
  • Every chart and card opens the matching requests, errors, logs or traces
  • Alerts carry the evidence that fired them, and resolve when it clears

PreviewIllustrative incident. Each signal exists in the product today on its own page, linked to the requests behind it; the Incident timeline page puts deploys, alerts, uptime results and markers on one axis.

checkout-api · production
  1. 02:57checkout-api v2.14.0 deployedDeploy
  2. 03:01p95 latency 86 ms → 412 msLatency
  3. 03:025xx rate 0.04% → 6.8% · new error PaymentTimeoutErrors
  4. 03:03SELECT customers · p95 3× slowerDatabase
  5. 03:04job SyncInvoices · 12 failed runsJobs
  6. 03:04Alert fired · high 5xx rate · on-call pagedAlert
  7. 03:07v2.13.9 redeployed (rollback)Deploy
  8. 03:09p95 back to 91 ms · alert resolvedRecovered

Setup

Three lines. No config file to fight with.

One call, before your app boots. It does nothing until you point it at an ingest URL — so it's safe to leave in code that hasn't gone live yet.

  • Auto-instruments HTTP, your database driver, and outgoing calls
  • Traces NestJS @Cron and BullMQ jobs with one install line, and any other job through owlpane.job()
  • Tags traces with the signed-in user (an opaque id you pass with owlpane.setUser()), for per-customer debugging
import { owlpane } from "@owlpane/node";

owlpane.start({
  service: "payments-api",
  release: process.env.GIT_SHA,
});

// that's it — every request, query,
// and outgoing call is now traced.

Ask, don't hunt

Ask your telemetry a question.

Plain-language search, saved investigations and a read-only MCP server for your own assistants. They answer and link to the evidence; they never change anything in your systems.

Ask

The charts under each answer are the same aggregates as the rest of the console, so you can check the answer instead of trusting it.

Investigations

Save notes, console links and search URLs for an incident or a root-cause write-up, in one board your team can reopen.

Read-only MCP

Let a coding assistant query topology, flows, incidents and carbon. Read-only by design: there is no auto-remediation.

LLM and agent usage

Calls, tokens, latency and cost from OpenTelemetry gen_ai spans. Prompt and completion text are not read or shown.

See AI & MCP →

How it works

From your code to your dashboard

Your apps

Spans, logs and metrics over standard OTLP.

Node SDKOTel SDKsK8s agent
Ingest gateway

Key resolves the tenant. Secrets scrubbed before storage.

rate limitsquotasampling
Isolated storage

Per-tenant rules enforced in the database, in the EU.

row policiesretention
Console

Drill from any chart to the requests behind it.

alertsSLOsuptime
01

Instrument

Drop in the SDK, or point any existing OpenTelemetry exporter at Owlpane's ingest URL. No proprietary agent to install.

02

Ingest

Telemetry lands in a tenant-isolated cell, scrubbed of tokens and secrets before it is stored.

03

Understand

Dashboards, traces, and alerts are there immediately — no query language to learn, no dashboard to build first.

04

Attribute carbon

The carbon layer joins the same telemetry with node energy and hourly grid intensity to attribute CO₂e per service, endpoint and job.

What you need

A free workspace and an ingest key from Setup. Then either @owlpane/node, any OpenTelemetry SDK or Collector, or the Kubernetes agent.

What is scrubbed

Auth headers, cookies, query strings, emails, bearer tokens, card-like numbers and password or token values are removed before anything is stored. The Kubernetes agent has no permission to read Secrets, and the console shows ConfigMap key names only.

If you send more than your plan

Starter samples above 10 GB a month and stops at 20 GB. Team keeps to the spend cap you set by sampling, so the bill can't jump.

Where it lives, and for how long

In the EU, isolated per tenant in the database. 7 days on Starter; 30 days for traces and logs and 90 days for metrics on Team. Standard OTLP out if you ever leave.

Owlpane Carbon · on every plan

Energy and CO₂ are engineering signals too

Monitoring shows latency, errors and cost. Nothing tells a developer that this endpoint or this job made the software use more energy. Owlpane Carbon adds exactly that — on the telemetry you already send.

Per service, endpoint and job

CO₂e per request and per run, following the ISO-standardised Software Carbon Intensity method (ISO/IEC 21031:2024). Version 1 is duration-weighted — the bias is stated on the figure, not hidden.

Carbon regression alerts

Each service is compared with the previous equal window. When its energy or CO₂e rises past your threshold (20% by default) an alert fires, like an error regression. A window comparison, not a per-deploy attribution.

Waste separated from work

Reserved-but-idle capacity reported as its own figure, with the workloads responsible — energy you pay for that does no work.

Measured or estimated, always labelled

Hardware counters where they exist, published factors where they don't. Mode, factor-set version and uncertainty band on every number.

Carbon-aware timing

Grid intensity by hour (hourly for EU zones where ENTSO-E data is available) shows when the grid is cleaner. Hints only — Owlpane does not schedule your workloads.

Telemetry diet

How much telemetry you keep and the storage energy it implies — monitoring's own footprint, as an order-of-magnitude estimate rather than a measurement.

The method: SCI = (E × I + M) per R — energy times grid intensity, plus embodied hardware, per request. Grid intensity from hourly ENTSO-E when configured, with a versioned static factor table as fallback. The methodology is published and linked from the console Factors view.

Available on every plan, Free included, in the product console (/observability/carbon). Metered hardware validation on your own cluster is recommended before operational targets — see the published methodology. The Carbon product page →

Switching

Already on something else? Keep it. Try Owlpane beside it.

Because ingest is standard OpenTelemetry, you can send a copy of your telemetry to Owlpane without touching your current tool. Here is what that looks like, including what you would give up.

Coming from

Datadog

Keep

Any OpenTelemetry instrumentation you already have. Your Datadog agent and account can stay in place while you compare.

Gain

One bill priced by data, with a cap that samples instead of surprising you. No per-host or per-module line items.

Give up

Breadth. Datadog has a much larger integration catalogue, plus network and security products we do not offer. Apps on the proprietary tracer need OpenTelemetry first.

Coming from

Sentry

Keep

Sentry for what it does best, if you like. Send your backend traces and logs to Owlpane next to it.

Gain

Errors grouped by the release that introduced them, with a sample trace, beside your database calls, jobs, Kubernetes state and uptime checks.

Give up

Depth on the front end. Session replay and mobile crash reporting are thinner here, and in beta.

Coming from

Grafana, Loki, Tempo

Keep

Prometheus remote write works today, and Grafana can read Owlpane metrics through a Prometheus-compatible endpoint.

Gain

One managed product instead of four to operate, with logs, traces and metrics that link to each other.

Give up

Ecosystem. PromQL support is a read endpoint, not full parity, and there is no library of community dashboards.

Datadog, Sentry, Grafana, Loki and Tempo are trademarks of their respective owners. Owlpane is not affiliated with or endorsed by them. Comparisons reflect publicly available information as of September 2026 and our own product today, and may change.

Send a copy. Change nothing else.

Add one exporter to your OpenTelemetry Collector. Your current tool keeps working, and Owlpane receives the same data.

Start with one service or ten percent of traffic, compare the answers you get during a real incident, then decide.

collector.yaml
exporters:
  otlphttp/owlpane:
    endpoint: https://ingest.example.com
    headers:
      Authorization: "Bearer ${env:OWLPANE_INGEST_KEY}"

service:
  pipelines:
    traces:
      exporters: [your_current_exporter, otlphttp/owlpane]

Pricing

Priced by data, not by how many people you hire

No per-seat charge. No per-host tier. One meter: gigabytes ingested.

Prices exclude VAT and other taxes. Billed in the currency you choose.

Every plan: unlimited users, projects, hosts, Kubernetes clusters and alert channels. You pay for data, and nothing else.

Starter
$0forever
Side projects and trying it out for real. No card, no expiry.
  • 10 GB ingested per month
  • Sampled above 10 GB, stopped at 20 GB (2×)
  • 7-day retention for traces, logs and metrics
  • Unlimited projects and teammates
  • Every alert channel, unlimited Kubernetes clusters and hosts
  • Carbon: energy and CO₂e per service, endpoint, job and release

New workspaces start with a 14-day Team trial: 50 GB of ingest a month, 30-day retention and Team's alert channels. It ends on the free plan: your workspace and projects stay, and retention goes back to 7 days.

Get started free
Team
$29/ month
One flat monthly number you can plan around, on the shared EU cell.
  • 50 GB included, then $0.35/GB ($0.25/GB past 1 TB)
  • A spend cap you set: your bill can't surprise you
  • No per-seat or per-host fee
  • 30-day traces and logs, 90-day metrics
  • Unlimited projects
  • Email, Slack, PagerDuty, Opsgenie, Jira and ServiceNow alerts
  • Sampled above 2 TB a month, stopped at 4 TB

Billed monthly by Stripe. Usage is the data our ingest gateway receives, measured as it arrives (compressed, before scrubbing).

Get started
Scale
$0.20/ GB
Per-GB volume pricing on a committed monthly volume, with a dedicated cell for compliance, residency or scale. A typical 5 TB a month starts around $1,024 a month.
  • Committed volume (typically 5 TB a month or more), invoiced monthly
  • Dedicated cell and ingest hostname
  • SSO (OIDC, SAML) and SCIM, audit log export
  • Unmetered ingest in the product
  • Direct line to the team

Final rate depends on your committed volume and is agreed with you.

Book a sizing call
Enterprise
Custom
Everything in Scale, on your procurement and security terms.
  • Everything in Scale
  • Retention set to your contract
  • DPA, security review and custom contract terms
  • Named contact and agreed support levels

Terms are agreed per customer.

Contact sales
Estimate your bill

Starter is free up to 10 GB a month. Team is $29 a month including 50 GB, then $0.35 for every extra GB (and $0.25 past 1 TB). Scale and Enterprise are quoted for a dedicated cell.

$76.95/ month
about 6.2 GB per dayTeam · $29 includes 50 GB, then $0.35 / GB

You are billed for what arrives at the ingest gateway, not for what is stored afterwards, so scrubbing and retention never change the meter.

Questions

Straight answers

Is this a proprietary agent, or standard OpenTelemetry?
Standard OTLP end to end. Our SDK is a thin, opinionated wrapper over the official OpenTelemetry libraries — anything that already speaks OTLP can send to Owlpane today, and everything Owlpane sends can be read by any other OTel backend if you ever leave. No format lock-in. The Node SDK samples production traffic at 10% by default, and you set the rate.
Where is my data stored?
In the EU today. Every tenant's data is isolated at the database level, not just filtered in application code, with retention you control per plan.
What counts as a gigabyte on the bill?
The meter is the size of the telemetry requests our ingest gateway receives, as your SDK or collector sent them: compressed, and before scrubbing or storage. Traces, logs and metrics are counted the same way. A gigabyte here is 1,073,741,824 bytes. There is no charge per seat or per host, and retention never changes the meter.
What does a Team bill look like?
Team is $29 a month and includes 50 GB. If you send 150 GB in a month, the 100 GB above the allowance cost 100 × $0.35 = $35, so the bill is $29 + $35 = $64. Beyond 1,024 GB the extra gigabytes cost $0.25 each instead of $0.35. These are USD figures before VAT; EUR and GBP prices are set separately and shown by the currency toggle in the pricing section, and the estimator there does this sum for any volume.
What happens if I send more than my plan includes?
On Starter, ingest is sampled above 10 GB a month and stopped at 20 GB. On Team you can set a monthly spend cap in the console (at least the base fee) and choose what happens when it is reached: keep a 10% sample and pay only for what is kept, or pause ingest until next month. Without a cap, Team keeps accepting data and bills the usage; it is sampled above 2 TB a month and stopped at 4 TB.
What happens when the 14-day trial ends?
The workspace moves to the free plan: 10 GB of ingest a month, 7-day retention, and email and webhook alerts. Projects are unlimited on the free plan; billing is by data volume only. Your workspace and its projects stay. No card is needed to start the trial, and nothing is charged unless you choose Team.
Do you support Kubernetes?
Application-level tracing works today for any service in a cluster. The Kubernetes agent (node and pod health, OOMKills, rollout status via a minimal Helm chart) is in beta — install from the console setup guide.
Is there a browser / RUM SDK?
Yes, in beta: the @owlpane/browser SDK sends Core Web Vitals, errors and fetch spans that link to server traces when you propagate trace headers.
What languages and frameworks are supported?
Node.js and NestJS have a first-class SDK today (@owlpane/node), with tracing for NestJS @Cron and BullMQ jobs and an owlpane.job() wrapper for other background work. A browser SDK (@owlpane/browser) is in beta. For Java, Go, Python, Ruby and anything else, use the standard OpenTelemetry SDK pointed at your ingest URL — it works with Owlpane right now; thin Owlpane wrappers for Python, Go, Java and Ruby are still in progress.
How is this different from Datadog or Dynatrace?
Both are mature, broad platforms. Owlpane is built on the open OpenTelemetry standard instead of a proprietary agent, prices by data volume instead of hosts or seats, and is built for teams who want one tool instead of five.
Can we self-host it?
Scale and Enterprise include a dedicated cell, your own ingest endpoint, and residency options. Starter and Team run on the shared EU cell. Talk to us about dedicated or self-hosted deployment.
Is carbon live?
Yes, on every plan, Free included. Open Impact → Carbon in the console once your agent or SDK sends node metrics and server spans. How far back you can look follows your plan's retention. Every figure shows whether it was measured or estimated, with its uncertainty. We still recommend validating against your own meters before using the numbers as hard targets.
Which workloads will carbon cover at general availability?
Kubernetes, VM/Docker hosts and serverless/FaaS — the same surfaces the agent and SDKs already observe. Estimated energy on virtual machines is less accurate than measured energy on bare metal, and every figure will show which mode produced it.
How accurate is per-endpoint carbon?
Version 1 attributes a service's energy across its requests by duration, not per-span CPU time — endpoints that mostly wait on I/O are over-credited, and the UI says so. Request totals come from an unsampled counter, never from sampled traces. The methodology, factor tables and validation results are published, and every figure carries an uncertainty band.

Ready when you are

Stop stitching together five dashboards at 3am.

Create a free workspace in minutes. Need Scale, Enterprise, yearly billing or help onboarding Carbon on a large fleet? Email hello@owlpane.com and tell us about your stack.