Skip to content

Data-source connectors

Data-source connectors attach Shield360 to observability backends for reading traces, logs, and metrics. Each connector is atomic: one Tempo instance, one Loki instance, one Prometheus endpoint.

Configure them from Configuration → Connectors (/connectors) or manage bindings from Organisation → Project → Connectors. Select the correct project and environment before adding or binding connectors.

flowchart LR
subgraph org [Organisation]
proj[Project]
end
subgraph env [Environment]
bindT[traces binding]
bindL[logs binding]
bindM[metrics binding]
end
proj --> env
bindT --> C1[Connector A]
bindL --> C2[Connector B]
bindM --> C3[Connector C]
C1 --> Tempo[Tempo]
C2 --> Loki[Loki]
C3 --> Prom[Prometheus]
  • Atomic connectors — never a multi-backend blob. One Tempo instance, one Loki instance, one Prometheus endpoint.
  • Signal routing — each of traces / logs / metrics is bound independently. See Signal routing.
  • Database Config — ClickHouse lives as a Database Config and appears as the built-in connector. See Database Config.

Supported connectors (Shield360 + OpenPlait)

Section titled “Supported connectors (Shield360 + OpenPlait)”

These are the data-source connectors available in Shield360. OpenPlait packages power the portable query adapters for ClickHouse, Tempo, Loki, Prometheus, and Jaeger.

ConnectorPackage / implementationSignalsWhat it’s for
ClickHouseDatabase Config + @openplait/adapter-clickhousetraces, logs, metrics (+ intelligence)Default store; full correlation, raw SQL, evals metadata, vault
ConnectorPackage / implementationSignalsWhat it’s for
Grafana Tempo@openplait/adapter-tempotracesTraceQL search, trace tree, span events
Grafana Loki@openplait/adapter-lokilogsLogQL logs; correlate by trace id / service
Prometheus@openplait/adapter-prometheusmetricsPromQL HTTP API (also works with Prometheus-compatible endpoints such as Mimir when you point at their query URL)
Jaeger@openplait/adapter-jaegertracesJaeger Query HTTP API; sampled in-process aggregates
ConnectorSignalsTrace treeSpan eventsServer aggregationRaw SQLCross-signal correlation
ClickHousetraces, logs, metricsYesYesYesYesFull
TempotracesYesYesNo*Notrace / span / service
LokilogsNoNotrace id, service
PrometheusmetricsYesNo
JaegertracesYesYesNo*Notrace / span / service

* Aggregate graphs are reconstructed in-process from a bounded sample of full traces when the backend cannot aggregate server-side.

Add source dialog with the connector type menu open, including Jaeger
Select project and environment

Use the header selectors to pick the project and environment.

Open Connectors

Go to Configuration → Connectors and choose Add connector / Add source.

Pick Jaeger

Select Jaeger from the data-source connector list.

Configure endpoint

Set the Query URL (local all-in-one: http://localhost:16686) and auth if needed.

Bind traces

Bind traces to the connector under signal routing.

The connector registry is designed so actions attach to a connector type. Today’s data-source actions:

ActionWhen to use it
Add / edit connectorPoint Shield360 at a new endpoint or rotate settings
Store credentials in VaultAPI keys and tokens stay encrypted; decrypted only server-side
Health check / test connectionConfirm the endpoint is reachable with current auth
Validate AI signalConfirm recent AI telemetry exists (gen_ai.* / Shield360 markers)
Bind signalRoute traces, logs, or metrics to this connector for an environment
Unbind / rebindMove a signal to another connector without deleting history in the backend
Mark Database Config activeChoose which ClickHouse app store the UI uses
Share Database ConfigGrant edit / delete / re-share on a ClickHouse connection

Enterprise audit logs record connector create/update/delete/test plus bind/unbind (with signal, environment, and previous source when switching).

Backends hold all telemetry — not only AI. Shield360 applies a layered AI selector so reads stay focused:

  • Resource telemetry.sdk.name = shield360
  • Resource telemetry.distro.name = shield360-cli
  • Any gen_ai.* attribute
  • coding_agent.session.id, or Claude Code session markers
  • Known coding_agent.* span names
BackendTypical auth
Grafana Cloud (Tempo / Loki)Basic: instance ID + access policy token (traces:read / logs:read). Use query URLs from the Cloud Portal.
Self-hosted Tempo / Loki / Prometheus / JaegerNone, Basic, or Bearer; optional tenant / X-Scope-OrgID
ClickHouseUsername / password on the Database Config
  • Endpoints validated (http/https only); credentials in URLs rejected; private/metadata SSRF targets blocked where applicable.
  • Secrets live in Vault, redacted from errors, never logged.
  • Per-source concurrency caps, query budgets, short-lived cache + in-flight de-dupe, and backoff on transient 429/5xx.

Shield360 wraps these npm packages for portable reads:

npm packageUsed for
@openplait/coreQuery IR and normalized results
@openplait/adapter-sdkAdapter contracts
@openplait/adapter-clickhouseClickHouse / OTel
@openplait/adapter-tempoTempo / TraceQL
@openplait/adapter-lokiLoki / LogQL
@openplait/adapter-prometheusPrometheus / PromQL
@openplait/adapter-jaegerJaeger Query HTTP API
@openplait/runtimePlanning and execution helpers

See the OpenPlait repository for publishing and adapter docs.