Skip to Content
Connectors

Connectors

A connector defines how a source produces events. A source’s config is the connector’s fields plus a universal labels array. Every connector can be set up three ways — all paths normalize to the same stored config:

  • With an agent — ask a connected agent to set it up; it calls the setup tools (discover_source, test_source, create_source).
  • In the consoleSources → Add source, pick the connector, fill the form.
  • As YAML / API — declare it in the catalog YAML or POST /api/sources.

Each connector page shows all three.

Modes

  • Pollnavflowd fetches from the upstream every poll interval (e.g. 5s, 1m).
  • Push — producers send events to navflowd over HTTP. A push source has a generated ingest_key; producers POST JSON or NDJSON to /ingest/<ingest_key>. OTLP uses /v1/{logs,traces,metrics}.

Labels

Every connector accepts a labels array (the label model). Each entry is { name, const | field, primary? }:

labels: - { name: service, field: service, primary: true } # the key - { name: env, const: prod }

Connectors that synthesize a normalized event advertise the fields they provide — e.g. Vercel provides project, environment, source, path, host, deployment, branch. The console’s label editor offers these; a source’s Fields view shows each field’s actual coverage.

Discovery

Some connectors support discover: given partial config they introspect the upstream and return a proposed config (e.g. GitHub validates the repo and finds the default branch; Postgres reads information_schema to pick a cursor and key column). Discovery powers both the console’s form and an agent’s discover_source call. GET /api/connectors lists every connector’s fields and whether it supports discovery.

Reference

connectormodediscoveringests
githubpollyesrepo commits
postgrespollyesnew/changed table rows
prometheuspollyesPromQL instant-query snapshots
docker_logspollyesa running container’s logs
claude_codepoll or pushClaude Code session transcripts
vercelpushVercel log drain
otlppushOpenTelemetry logs/traces/metrics
webhookpusharbitrary JSON
alertspolla synthesized alert from a PromQL ratio
staticpollone-time inline records
memorypushagent observations (via remember)
Last updated on