Dash0 acquires Polar Signals

Last updated: September 6, 2026

Filter Out Spam

Drop noisy, low-value logs, metrics, spans, and web events at the first pipeline stage before they cost anything downstream.

Filtering out spam is the first stage every signal passes through. Spam filter rules permanently drop noisy, low-value telemetry before it costs anything downstream. Because they run before conversion, sampling, and aggregation, dropping a record here removes it from every later stage and from your stored volume entirely.

Spam filters apply to logs, metrics, spans, and web events. You manage them per signal type from the SignalControl pipeline by opening the Spam filter stage for the signal you want to reduce.

Dash0 Filter out spam panel for Logs showing Volume in, Kept, and Dropped totals and two rules that drop error and debug logs by matching otel.log.body

How a Rule Works

Each spam filter rule matches telemetry by a set of conditions and drops everything that matches. A rule can have several conditions, which are combined with a logical AND, so telemetry must satisfy all of them to be dropped. In the example above, two rules act on the otel.log.body attribute:

  • drop error logs: Matches log records whose body contains error.
  • drop debug logs: Matches log records whose body contains debug.

The panel header summarizes the rule set for the selected signal:

  • Volume in: The volume entering the spam filter stage.
  • Kept: The volume that passes through after all rules are applied.
  • Dropped: The volume removed by the rules.

Each row shows the rule name, its match conditions, the volume it evaluated, the percentage it dropped, and a toggle to enable or disable it without deleting it. Every rule evaluates all telemetry entering the stage, so the volume in for each rule is always the same as the stage's Volume in.

Add a Rule

  1. Open the Spam filter stage for the signal type you want to reduce (Logs, Metrics, Spans, or Web Events).
  2. Click Add rule.
  3. Define one or more match conditions, each using an attribute, an operator such as contains, and a value. When a rule has several conditions, they are combined with a logical AND, so telemetry must satisfy all of them.
  4. Enable the rule to activate it.

Use the search box to find existing rules by name, attributes, match, or effect.

Warning

Data dropped by a spam filter cannot be recovered. Test your match condition carefully before enabling a rule, especially in production datasets.

Relationship to Cost Control Spam Filters

SignalControl's spam filter stage is the same spam-filtering capability described in Spam Filters under Cost Control, surfaced inside the pipeline alongside the other reduction stages. You can also manage spam filters as code.

Filtering on the Edge

When you run SignalControl Edge, the dash0filter processor drops noisy telemetry per dataset before it leaves your network. Rules are authored through the API as spam filters and delivered to the collector by the settings extension. This section covers the standalone edge deployment.

Authoring Rules via the API

Send API requests to your region's API endpoint from the endpoint table, with an Authorization: Bearer <token> header. See Dash0 API for the general conventions.

Create a filter with POST /api/spam-filters?dataset=<dataset>. Each filter names one context and a filter of attribute criteria (see Filter Operators) that the server compiles into an OTTL condition; matching records are dropped. The context selects the signal type and maps to the UI as follows:

  • log: Logs.
  • datapoint: Metrics. A filter drops individual metric data points.
  • span: Spans.
  • web_event: Web Events.

Drop debug logs from a noisy component:

json
12345678910111213141516171819202122
{
"apiVersion": "v1alpha2",
"kind": "Dash0SpamFilter",
"metadata": {
"name": "drop-debug-logs"
},
"spec": {
"context": "log",
"filter": [
{
"key": "otel.log.severity.text",
"operator": "is",
"value": "DEBUG"
},
{
"key": "service.name",
"operator": "is",
"value": "chatty-service"
}
]
}
}

Processor Configuration

dash0filter handles traces, logs, and metrics, so the same processor instance can sit in all three pipelines. Its knobs:

YAML keyDefaultDescription
apply_positive_filters_onlyfalseWhen true, rules containing negative operators (is_not, does_not_contain, and so on) are skipped. Set true at the edge so an over-broad negative rule cannot silently drop everything.
cache_expiration60sHow long compiled filter expressions are cached; edits take effect within this window without a restart. Range 10s–1h.

Further Reading