Skip to content

Datasources & connectors

Rounds reads metrics, logs, and change events from your existing infrastructure, and talks to ops systems (Kubernetes today, more planned) through connectors. Every dashboard panel, alert rule, and investigation query talks to a configured datasource — there's no second copy of the data.

Datasources can be added through the setup wizard, the Settings page, the REST API, or by chatting with the agent (e.g. "connect my prod Prometheus at http://..."). The agent uses the AI-first config tools to validate the URL, test connectivity, and save under your RBAC.

Supported backends

Metrics

BackendCompatibilityNotes
PrometheusNativePromQL via /api/v1/query and /api/v1/query_range
VictoriaMetricsNativeUse MetricsQL extensions where supported
MimirVia Prometheus protocolSet the tenant ID via X-Scope-OrgID header in datasource config
ThanosVia Prometheus protocolQuerier endpoint works as-is
CortexVia Prometheus protocolSame as Mimir

Any backend exposing the Prometheus HTTP API works.

Logs

BackendCompatibilityNotes
LokiNativeLogQL via /loki/api/v1/query and /query_range

Change events

SourceStatusNotes
Manual entryAvailableUI for recording deploys, config flips, infra changes
GitHub releasesPlannedAuto-import from release events
ArgoCD / FluxPlannedWatch for sync events
CI/CD systemsPlannedBuild / deploy webhooks

Ops connectors

Ops connectors let Rounds read state and (with approval) act on the systems running your workloads.

ConnectorStatusUsed for
Kubernetes (kubectl, allowlisted)AvailableInvestigation reads + plan execution. See Auto-remediation.
GitHub PRsPlannedOpen remediations as PRs instead of direct kubectl writes
Jira / PagerDuty / OpsgeniePlannedIncident sync + on-call routing
Database read connectorsPlannedSlow-query logs, schema state
Distributed tracingPlannedTrace-aware investigation

How to use it

Add a datasource

UI: Admin → Datasources → + New datasource → pick the type → fill in URL + auth.

Or via API:

bash
curl -X POST https://your-rounds-host/api/datasources \
  -H "Authorization: Bearer openobs_sa_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "prod-prometheus",
    "type": "prometheus",
    "url": "http://prometheus.monitoring.svc:9090",
    "access": "proxy",
    "isDefault": true
  }'

Test connectivity

After adding, click Save & test in the UI. Rounds hits GET /api/v1/labels (Prometheus) or GET /loki/api/v1/labels (Loki) and shows the response.

Use it in chat

Once a datasource is configured, the agent automatically discovers it via datasources.list. No prompt change needed:

Show me memory usage across all hosts

The agent picks the appropriate metrics datasource and runs queries.

Multiple datasources

You can have many. The agent will:

  • Filter by signalType (metrics / logs / changes) when relevant
  • Pick the default datasource for each signal type unless you specify ("query the staging Prometheus instead")
  • Suggest specifying when ambiguous

Datasource permissions

By default, all org members can query all datasources (their org role determines write access). For sensitive sources:

UI: Admin → Datasources → click datasource → Permissions tab → Add → pick user/team/role → level (View / Edit / Admin) → Save.

View = datasources:query (read data). Edit = modify config. Admin = manage permissions on this datasource.

Examples

Connect a dev Prometheus + a prod Mimir

bash
# Dev — local prometheus
curl -X POST .../api/datasources -d '{
  "name": "dev-prometheus",
  "type": "prometheus",
  "url": "http://localhost:9090"
}'

# Prod — Mimir with tenant
curl -X POST .../api/datasources -d '{
  "name": "prod-mimir",
  "type": "prometheus",
  "url": "https://mimir.prod.example.com/prometheus",
  "jsonData": { "httpHeaderName1": "X-Scope-OrgID" },
  "secureJsonData": { "httpHeaderValue1": "tenant-foo" }
}'
bash
curl -X POST .../api/datasources -d '{
  "name": "logs",
  "type": "loki",
  "url": "http://loki.monitoring.svc:3100"
}'

After this, the agent picks it up and you can ask: "Search logs for OOM kills in the last hour".

Limits

  • Auth methods supported: bearer token, basic auth, custom headers, mTLS (via cert + key in secureJsonData).
  • The agent caps result-set size at 20 series per metric query to keep the conversation snappy. Override per-call if needed.
  • No write-back to datasources — Rounds reads only. Recording rules and alerting rules live in Rounds's own database.
  • Datasource configs are stored encrypted (SECRET_KEY for credentials). Datasource definitions are org-scoped — separate orgs cannot see each other's connections.

Released under the AGPL-3.0-or-later License.