Linking Confluent Cloud as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

The Confluent Cloud connector syncs operational metrics from the Confluent Cloud Metrics API into the PostHog Data warehouse: Kafka throughput, consumer lag, connector activity, ksqlDB, Schema Registry, and Flink compute pool utilization. Confluent only retains this data for about 7 days, so warehousing it lets you do capacity planning and cost analysis over longer time ranges.

Prerequisites

You need a Confluent Cloud service account with the MetricsViewer role and a Cloud API key owned by it. Cluster-scoped API keys don't work with the Metrics API, so make sure you create a Cloud (resource management) key.

  1. In the Confluent Cloud console, go to Administration → Accounts & access and create a service account.
  2. Grant it the MetricsViewer role for the resources you want to collect metrics for.
  3. Go to Administration → API keys and create a Cloud API key owned by that service account. Note the key and secret.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

When linking Confluent Cloud, you'll need:

  • Cloud API key and Cloud API secret – from the steps above.
  • Resource IDs – the IDs of the resources to collect metrics for, as comma-separated lists. For example, Kafka cluster IDs (lkc-...) are shown under Cluster settings, connector IDs (lcc-...) under the connector's settings. Leave a resource type blank to skip it.

Sync modes

The metrics tables sync incrementally on the timestamp column: each sync only queries the time window since the last one, plus a small overlap to pick up late-arriving data. Because the Metrics API retains roughly 7 days of data, keep a frequent sync schedule so no window is missed.

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

Configuration

OptionTypeRequired
Cloud API keytextYes
Cloud API secretpasswordYes
Kafka cluster IDstextNo
Connector IDstextNo
ksqlDB cluster IDstextNo
Schema Registry cluster IDstextNo
Flink compute pool IDstextNo

Supported tables

The metrics tables contain one row per metric, resource, and UTC hour, with the metric's aggregated value. Values are aggregated per resource, so per-topic or per-consumer-group detail isn't included. The metric_descriptors table documents every metric name, its unit, and its data type.

TableDescriptionSync methodIncremental fieldPrimary key
metric_descriptors

Metadata catalog for every metric available in the Metrics API 'cloud' dataset, including its data type, unit, and lifecycle stage.

Full refresh
resource_descriptors

Metadata catalog for the resource types that metrics can be scoped to, such as Kafka clusters, connectors, and Flink compute pools.

Full refresh
kafka_metrics

Hourly time-series values for every kafka metric in the Metrics API catalog, aggregated per resource. The API retains about 7 days of data, so the first sync backfills that window and regular syncs keep history beyond it.

Incremental, Full refreshtimestamp
connector_metrics

Hourly time-series values for every connector metric in the Metrics API catalog, aggregated per resource. The API retains about 7 days of data, so the first sync backfills that window and regular syncs keep history beyond it.

Incremental, Full refreshtimestamp
ksqldb_metrics

Hourly time-series values for every ksql metric in the Metrics API catalog, aggregated per resource. The API retains about 7 days of data, so the first sync backfills that window and regular syncs keep history beyond it.

Incremental, Full refreshtimestamp
schema_registry_metrics

Hourly time-series values for every schema_registry metric in the Metrics API catalog, aggregated per resource. The API retains about 7 days of data, so the first sync backfills that window and regular syncs keep history beyond it.

Incremental, Full refreshtimestamp
compute_pool_metrics

Hourly time-series values for every compute_pool metric in the Metrics API catalog, aggregated per resource. The API retains about 7 days of data, so the first sync backfills that window and regular syncs keep history beyond it.

Incremental, Full refreshtimestamp

Troubleshooting

  • If you see an authentication error, the API key or secret is invalid or has been revoked. Create a new Cloud API key and reconnect.
  • If you see a permissions error, the key authenticated but isn't authorized for the configured resources. Make sure it's a Cloud API key (not a cluster-scoped key) owned by a service account with the MetricsViewer role for those resources.
  • If a metrics table syncs no rows, check that the matching resource IDs are filled in on the source settings and that the resources produced data in the last 7 days.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Community questions

Was this page useful?