100% Open Source • Apache 2.0 • Go-Powered OTel Proxy

Chop the noise before your vendor bills you for it. See what you save, in dollars.

Telemetry Chopper is an open-source OpenTelemetry proxy that drops health checks, debug logs and other noise at the edge, redacts PII inside your perimeter, and prices every dropped byte at your own contract rates.

$git clone https://github.com/PRIYAM232/telemetry-chopper.git && cd telemetry-chopper && docker compose -f deploy/docker/docker-compose.yaml up -d --build
Demo data
prod-us-east-1 · 12 collectors

Ingested

18,432.6 GB

Dropped

8,127.4 GB

Saved (MTD)

$14,629.32

Throughput · last 30s

ForwardedChopped

Rule hits

44.1% volume reduction

  • DROPGET /healthz×1,200
  • DROPseverity=DEBUG×1,517
  • REDACTssn → [REDACTED_PATTERN]×1,834
  • SAMPLEcheckout.span @ 10%×2,151

Built natively for the OpenTelemetry ecosystem

OTLP Compliant

gRPC :4317 · HTTP :4318

Low-Latency Overhead

Zero-alloc regex matching

Self-Hosted Security

Runs inside your cluster

Deterministic Engine

Explicit rules, no ML

Cost calculator

See what your noise is costing you.

Plug in your daily volume and vendor for a quick estimate. It's a simplified version of the dashboard's model: one blended price per GB plus cloud egress. The dashboard prices each signal and indexed events separately, at your own contract rates.

1.0 TB/day

~$1.80/GB · Blended ingest + 15-day indexing estimate

40%

Estimates use illustrative list rates plus $0.09/GB cloud egress. Configure your exact contract in the Rate Card engine.

Estimated monthly savings

$22,680

Annual savings

$272,160

Cloud egress savings / mo

$1,080
Data chopped per month12 TB
Forwarded to DatadogChopped at the edge

Overage headroom

If your commitment equals today's volume, this reduction leaves room for a +67% traffic spike before overage billing.

Features

A FinOps control plane for your telemetry pipeline.

Everything you need to shrink vendor bills without flying blind during an incident.

Deterministic Rule Engine

No black-box ML magic. You retain 100% explicit control over what gets dropped: nothing disappears unless a rule you wrote says so.

DROPTHROTTLEREDACTSAMPLE

Custom Vendor Rate Cards & Split-Metric Calculations

Configure your exact enterprise contract rates. Model savings across raw ingestion vs. indexed search events.

Logs ingest$0.10 / GB
Indexed log events$1.70 / M
Indexed spans$1.70 / M

Overage & Egress Protection

Cap noisy-tenant spikes with THROTTLE rules and track billable volume against your commitment, so you see overage risk before the invoice does, while cutting outbound cloud network transfer fees.

RawAfter ChopperContract commit

In-Cluster PII Scrubbing

Redact credit card numbers, SSNs, and authorization tokens before they ever leave your Kubernetes cluster.

- ssn=078-05-1120

+ ssn=[REDACTED_PATTERN]

- card=4111 1111 1111 1111

+ card=[REDACTED_PATTERN]

+ authorization=[REDACTED]

How it works

One hop between your apps and your bill.

Telemetry Chopper drops in as a standard OTLP endpoint. The data plane touches your telemetry; the control plane never does.

01

App / OTel SDKs

Your services emit logs, traces, and metrics over OTLP — no code changes, just point the exporter at Chopper.

LogsTracesMetrics
02

Telemetry Chopper Proxy

Edge filtering and redaction in a Go-powered collector. Rules sync from the control plane in seconds, with zero restarts.

DROPSAMPLEREDACTTHROTTLE
03

Datadog, Splunk, New Relic or any OTLP backend

A smaller, cleaner stream reaches your vendor: the signals you keep, without the noise your rules remove.

Noise removedPII redacted
Control Plane (Next.js + Postgres)poll rules every 10s · push match/drop stats · fails open on last-known ruleset

Comparison

Telemetry Chopper vs. alternatives

Collectors move data. Enterprise pipelines charge for it. AI reducers guess. Chopper gives you explicit rules and a dollar figure for every one of them.

Feature comparison of Telemetry Chopper and alternative telemetry pipelines
FeatureTelemetry ChopperVector / OTelCriblGreprSawmills
100% Open Source
Yes
Yes
No
NoTools only
NoSome components
Real-Time Dollar Dashboard
Yes
No
PartialAdd-on pack
No
PartialMonthly reports
Explicit Deterministic Rules
Yes
Yes
Yes
Partial
PartialAI-recommended
Custom Rate Card Engine
Yes
No
No
No
No
Free / Self-Hosted
Yes
Yes
PartialFree ≤1 TB/day
PartialSaaS-first
NoFrom $2,500/mo
  • YesSupported out of the box
  • PartialLimited, add-on, or with conditions (see note)
  • NoNot offered or not publicly documented
Based on public vendor documentation as of September 2026. View sources

Product names are trademarks of their respective owners and are used for identification only. Capabilities change: verify with each vendor before making a purchasing decision. Spot an error? Open an issue.

Developer quickstart

From zero to chopping in five minutes.

Run it anywhere you run containers. Create rules in the dashboard, and every collector picks them up within seconds, with no restarts.

Chopper receives telemetry over OTLP: point your OpenTelemetry SDKs or Collector at it. Data sent through a vendor's own agent goes straight to the vendor and bypasses it.

terminal
1$ git clone https://github.com/PRIYAM232/telemetry-chopper.git
2$ cd telemetry-chopper
3
4# Postgres → migrate + seed → Control Plane (:3000) → Collector (:4317/:4318)
5$ docker compose -f deploy/docker/docker-compose.yaml up -d --build
6
7# Dashboard: http://localhost:3000
GET /api/v1/policies/{fleetId} synced every 10s

Rules you create in the dashboard, as every collector in the fleet receives them (abridged).

1{
2 "fleet_id": "3f0c…",
3 "rules": [
4 {
5 "name": "drop-health-checks",
6 "isActive": true,
7 "actionType": "DROP",
8 "targetSignal": "TRACES",
9 "conditionField": "http.route",
10 "conditionOp": "REGEX_MATCH",
11 "conditionValue": "^/(health|healthz|ready)$"
12 },
13 {
14 "name": "redact-ssn",
15 "isActive": true,
16 "actionType": "REDACT",
17 "targetSignal": "LOGS",
18 "conditionField": "log.body",
19 "conditionOp": "REGEX_MATCH",
20 "conditionValue": "\\b\\d{3}-\\d{2}-\\d{4}\\b"
21 },
22 {
23 "name": "drop-debug-logs",
24 "isActive": true,
25 "actionType": "DROP",
26 "targetSignal": "LOGS",
27 "conditionField": "log.severity",
28 "conditionOp": "EQUALS",
29 "conditionValue": "DEBUG"
30 }
31 ]
32}