Skip to content
Open
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
1 change: 1 addition & 0 deletions .agents/skills/connector-pr-review
385 changes: 385 additions & 0 deletions .claude/skills/connector-pr-review/SKILL.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions .claude/skills/connector-runtime/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ Fatal errors propagate to `main` and exit. Per-connector / per-message errors ar

All families labeled by `connector_key` + `connector_type` (histogram adds `stage`):

- **Counters**: `iggy_connector_messages_{produced,sent,consumed,processed,filtered}_total` and `iggy_connector_errors_total`. These are the *rendered* names; each is registered without the `_total`, which the OpenMetrics encoder appends.
- **Counters**: `iggy_connector_messages_{produced,sent,consumed,processed,filtered,errors}_total`.
- `messages_filtered_total` - intentional drops via transform `Ok(None)`.
- `errors_total` - unexpected drops (decode/encode/build failure, missing field, ...) + batch-level failures, one per failed run.
- `sink_runs_total` - FFI `consume()` calls for sink batches, one per contiguous payload-variant run. Divide by `stage_duration_seconds_count{stage="total"}` for runs per batch.
Expand All @@ -224,7 +224,7 @@ All families labeled by `connector_key` + `connector_type` (histogram adds `stag

When adding a metric:

- Add family to `Metrics` struct + `init`, register with name + help text. Never end a `Counter` family's registered name in `_total`: the encoder appends it and the series renders `_total_total`. Gauges get no suffix, so a gauge name may end in `_total` literally.
- Add family to `Metrics` struct + `init`, register with name + help text.
- New label sets define `EncodeLabelSet` struct + label enum (hand-impl `EncodeLabelValue` for snake_case values - the derive emits PascalCase).
- Histograms: pass `fn() -> Histogram` to `Family::new_with_constructor`.
- Add unit tests under `mod tests` with `given_*_when_*_should_*` BDD names.
Expand Down
3 changes: 2 additions & 1 deletion .claude/skills/connector-sink/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ for getting them to the external system reliably and efficiently.

## Quick reference

- Skeleton: [TEMPLATE.md](TEMPLATE.md) (load on demand when authoring).
- Skeleton: [TEMPLATE.md](TEMPLATE.md) (fill-in-the-blank kit — implement only `TODO(ConnectorDeveloper)`).
- PR pre-flight: [connector-pr-review](../connector-pr-review/SKILL.md).
- Exemplars: `stdout_sink` (minimal), `postgres_sink` (DB + transient detection), `http_sink` (validation, batch modes, retry middleware), `mongodb_sink` (atomic counters), `elasticsearch_sink` / `iceberg_sink` (backend-specific idioms).

## Hard rules
Expand Down
Loading
Loading