Skip to main content
These connectors let the agent investigate operational data — logs, search indices, distributed traces, monitoring metrics, and cloud spend — alongside your business data. None of them speak SQL natively, so Bag of words maps each platform onto a catalog the agent can reason about and issues queries in the platform’s own language.

Splunk

The Splunk connector is part of the Enterprise Edition, and is currently in beta.
Bag of words talks to the Splunk REST API on the management port (https://<host>:8089). There is no SQL endpoint — queries are SPL run as oneshot search jobs. Tables are index::sourcetype pairs, enumerated with one cheap tstats call that reads tsidx metadata rather than raw events, so discovery cost does not grow with the number of sourcetypes. Columns cost a real search, so fields are sampled only for the top sourcetypes by volume; the rest stay thin and the agent samples their fields on demand.

Fields

Authentication modes

Both modes support system and user scope. Authentication Token — token (the default) Username / Password — userpass

Elasticsearch

The Elasticsearch connector is in beta.
Indices, aliases and data streams map to catalog objects, and the index mapping is the schema — discovery is a single bulk GET /_mapping, with no document sampling. Daily or rolling time-series indices (logs-app-2026.07.10, …07.09, …) are collapsed into one logs-app-* object holding the union of their fields, so the catalog stays a handful of patterns instead of one entry per day. Queries use the native query DSL wrapped in a JSON envelope, with POST /_sql and ES|QL (POST /_query, Elasticsearch 8.11+) available as escape hatches.

Fields

Authentication modes

API Key — apikey (the default; scopes: system and user) Username / Password — userpass (scopes: system and user) No Authentication — none (scope: system, no fields). For clusters with security disabled or gated purely at the network layer.

OpenSearch

The OpenSearch connector is in beta.
OpenSearch behaves like Elasticsearch: indices map to catalog objects, the mapping is the schema (one GET /_mapping, no document sampling), and time-series indices collapse into patterns. Queries are the native query DSL, with an SQL escape hatch via the bundled plugin (/_plugins/_sql).

Fields

Authentication modes

Username / Password — userpass (the default; scopes: system and user) No Authentication — none (scope: system, no fields). For clusters with security disabled or network-gated.

Jaeger

The Jaeger connector is in beta.
Jaeger has no query language — it is a parameterized trace search — so instead of discovering tables Bag of words presents a fixed catalog that mirrors the Query API: services, operations, spans and dependencies. Span rows are flattened to identity, topology, timing and status columns, plus the span’s own tags.

Fields

Authentication modes

No Auth (network-gated) — none (the default; scope: system, no fields). Jaeger Query typically has no auth of its own. Username / Password (Basic) — basic (scopes: system and user) Bearer Token — bearer (scopes: system and user)

Zabbix

The Zabbix connector is part of the Enterprise Edition.
Bag of words talks to the Zabbix JSON-RPC 2.0 API (the /api_jsonrpc.php endpoint is appended to your frontend URL automatically). Queries are JSON specs that map one-to-one onto Zabbix API methods — host.get, item.get, problem.get, history.get, and so on. The catalog is a fixed set of virtual tables — hosts, items, triggers, problems, events, history, trends — because Zabbix’s data model is stable. The items table is enriched from a live item.get so the agent sees the value types actually present.

Fields

Authentication modes

Both modes support system and user scope. API Token — token (the default) Username / Password — userpass
Zabbix’s SAML/OIDC SSO governs the frontend only — the API never accepts an external identity provider’s token. An SSO user should mint a personal API token in the UI and use the token mode.

Prometheus

The Prometheus connector is in beta.
Bag of words talks to the Prometheus HTTP API and queries in PromQL. Each metric becomes a table whose columns are that metric’s labels, so the agent can filter and group without knowing the label set in advance. Metric type matters for correct queries — a counter read without rate() returns a meaningless monotonic total — so each metric carries its type from /api/v1/metadata. Histogram and summary components are typed from their base metric: _bucket resolves to a histogram (use histogram_quantile), _sum and _count to counters. Schema discovery is bounded to a recent window rather than the whole retention period, so a long-lived instance does not materialize every series it has ever seen. Widen it with discovery_lookback_hours only if a metric is scraped less often than the window. The connector works against any Prometheus-compatible API, including Thanos, Cortex and Grafana Mimir — set org_id for the multi-tenant header those back-ends expect.

Fields

Authentication modes

No Auth (network-gated) — none (the default; scope: system, no fields). For an instance reachable only over a VPN or internal network. Username / Password (Basic) — basic (scopes: system and user) Bearer Token — bearer (scopes: system and user)

AWS CloudWatch

The AWS CloudWatch connector is in beta.
Logs and metrics on one connection, because an investigation crosses both halves — the function erroring in Logs is the one whose duration lives in Metrics. Splitting them across two connectors would put them on separate connections with no way for the agent to correlate. Tables are namespaced by prefix, the way Splunk namespaces index::sourcetype:
Log discovery is schema-on-read: CloudWatch has no field catalog, so a log group’s columns come from sampling recent events and parsing JSON out of @message. Only the largest groups by stored bytes are sampled; the rest stay thin and the agent inspects them on demand. Metrics are grouped by namespace and metric name, with their dimension names unioned — the API returns one entry per dimension-set variant.
Logs Insights bills on bytes scanned, and a limit clause does not reduce that — the time window is the only real cost control. Keep discovery_window_hours tight and set log_group_prefix on a busy account.

Fields

Authentication modes

All three modes are system scope. AWS Access Key — aws_keys (the default) AWS Assume Role (STS) — aws_role AWS Default Chain — aws_default (no fields). Resolves credentials the way boto3 normally does — environment variables, shared config, EC2 instance profile, or EKS IRSA. This is the mode for a deployment running inside AWS, where no secret should be stored at all.

AWS Cost Explorer

The AWS Cost Explorer connector is in beta.
Bag of words queries the AWS Cost Explorer API (ce) so the agent can analyze spend and usage over time — by service, account, tag, or any other Cost Explorer dimension.

Fields

Authentication

AWS Keys — key (scopes: system and user) The credential needs permission to call the Cost Explorer read APIs (ce:GetCostAndUsage and related). Because the mode is also available at user scope, individual users can supply their own keys instead of sharing the admin’s — per-user credentials on a database-style connection require an Enterprise license. See Authentication and access.