Summary for a reviewer
Privilege
The agent holds a named capability profile rather than root. Full detail, including what each capability is for, is on Capability profiles.What the agent can see
It hooks TLS library functions, so at that boundary it observes plaintext: HTTP headers includingAuthorization, cookies, request and response bodies,
and SQL statement text.
This is the sharpest question in any review and it deserves a direct answer:
the agent’s position lets it see credentials in flight. What follows is
what stops that becoming data anyone holds.
What the agent sends
Metadata only.Payload capture is off and there is no supported way to enable it here.
That is a property of this distribution’s configuration, not of the upstream
agent — which is exactly why the distribution exists. A reviewer should
verify it rather than take it on faith: the generated configuration is a
plain file, and the audit tool reports the running agent’s effective
settings.
Where the credential lives
The license key is a bearer credential for your ingest surface, and is handled as one:- Never written into any generated configuration file, systemd unit, Compose file or Helm values file. This is asserted by tests, not by policy.
- On Kubernetes it is a Secret, injected as an environment variable. It is never in the ConfigMap — so inspecting the ConfigMap remains a safe debugging step, which is also asserted by a test.
- On Linux it is in a root-owned environment file with mode
0600. - Redacted in every diagnostic the tooling prints, including support bundles.
- You can supply your own pre-existing Kubernetes Secret, in which case the chart never sees the value at all.
Scope the key
Kubernetes posture
The rendered DaemonSet:privileged: falsecapabilities: drop: [ALL], then adds exactly the profile’s setreadOnlyRootFilesystem: truehostPID: true— required. Without it the agent shares no PID namespace with the workloads it observes, sees only itself, and silently reports nothing.hostNetwork— only on profile C- RBAC:
listandwatchon pods, services, nodes and replicasets. Read-only, cluster-scoped, used solely to decorate telemetry.
SecurityContextConstraints ships with the chart. It
grants host PID access and the capability set, sets
allowPrivilegedContainer: false, and is bound to that release’s ServiceAccount
by name rather than to a group. The alternative — which is what happens without
it — is attaching the workload to the cluster’s privileged SCC. See
OpenShift.
Network
- Exactly one outbound destination: your configured OTLP endpoint, over TLS.
- No inbound listeners are opened by this distribution’s configuration.
- Egress-restricted networks need that one host allowed, plus one-time access to the upstream release host at install time.
What has not been reviewed
Two further limits worth stating to a reviewer:- TLS library coverage is unmeasured. The agent hooks OpenSSL. Statically linked TLS, BoringSSL, rustls, GnuTLS and NSS are each a potential gap. The consequence is not exposure but absence — those services are simply not observed. See Known limitations.
- Scale validation is single-node. Behaviour has been exercised on a real cluster, but not across a large fleet or under a soak test.
Verifying it yourself
A reviewer should not have to take this page’s word for any of it:Before installing
The preflight tool reads the host. It installs nothing, sends nothing and
loads no eBPF program — it reports kernel, BTF, architecture, capabilities
and the perf-event setting.
After installing
The audit tool reports the privilege the agent is actually running at, so
“we intended profile B” can be checked rather than assumed.
Next
Capability profiles
The three levels and how to choose.
Known limitations
Everything the agent does not do, stated plainly.
Compatibility
Where it is validated, expected, limited and unsupported.