Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions test/e2e/playwright/iterate-all-dashboards.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,22 @@ const EXPECTED_EMPTY_EXPR_SUBSTRINGS: ReadonlyArray<{
// stream count is correctly 0.
why: 'cerberus produces no ERROR-level logs on a healthy compose stack',
},
{
match: 'clickhouse_event{name=~"Query',
// clickhouse-observability "Query rate by type" reads
// `clickhouse_event{name=~"Query|SelectQuery|InsertQuery|...|FailedInsertQuery"}`
// — ClickHouse's per-event counters exposed by its built-in
// prometheus endpoint and scraped via the prometheus/clickhouse
// receiver. On a fresh compose stack the seed warmup against
// cerberus drives a few SELECTs through CH, but the
// ProfileEvents → event counter mapping CH publishes only ticks
// the matched-named events; the 5m rate window can land entirely
// before any matching event fires (warmup phase is ~30s, the
// CH-side ProfileEvents flush cadence is on the order of seconds
// but the scrape is 15s). The panel renders empty by design when
// the cluster is genuinely idle on these event classes.
why: 'clickhouse_event Query/Insert counters tick only on matching events; the 5m window can be empty on a fresh stack',
},
];

/**
Expand Down
21 changes: 21 additions & 0 deletions test/e2e/playwright/iterate-metrics-explorer.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,27 @@ const EXPECTED_EMPTY: ReadonlyArray<{ prefix: string; why: string }> = [
// returns 0 even though the catalog enumerates them.
why: 'kubeletstats per-container gauges; emission cadence leaves the 5m window empty on a fresh stack',
},
{
prefix: 'otelcol_',
// OpenTelemetry Collector self-observability metrics
// (`otelcol_exporter_*`, `otelcol_processor_*`, `otelcol_receiver_*`,
// `otelcol_scraper_*`, `otelcol_connector_*`, `otelcol_process_*`)
// are emitted by the collector's prometheus/self receiver every
// 15s and shipped through the OTLP -> clickhouseexporter pipeline.
// The catalog endpoint sees these as soon as the first push lands,
// but most of them are cumulative-temporality counters that only
// tick when their underlying event fires (a refused span, a
// failed export attempt, a queue capacity change). On a fresh
// compose stack with no overload + clean pipeline, the bulk of the
// counters legitimately have 0 samples in the 5m window even though
// the catalog enumerates them. Sister-spec panel-kiosk surfaces the
// same emission-cadence behaviour on the otelcol-observability
// dashboard. Cover the whole namespace rather than ~30 individual
// entries: every otelcol_* metric shares the same "collector
// self-telemetry, emit-only-on-event" cadence story, so the
// rationale doesn't change per metric.
why: 'otelcol_* collector self-telemetry; counters emit only on the underlying event, leaving the 5m window empty on a fresh stack',
},
];

/**
Expand Down
Loading