Telemetry & Compatibility
Canonical reference for FleetForge's OpenTelemetry integration, semantic-versioning policy, and collector settings. Pair this page with
docs/roadmap/roadmap-and-status.mdto track delivery of new telemetry capabilities.
GenAI semantic conventions
- FleetForge instruments every runtime hop with the GenAI semantic conventions plus the FleetForge-specific
trust.*attribute family (trust.capability_token_id,trust.attestation_id,trust.policy_decision_id,trust.subject,trust.semconv.version). Seecore/runtime/src/otel.rsfor the canonical list. - Set
OTEL_SEMCONV_STABILITY_OPT_IN=gen-aion collectors/exporters so they decode the GenAI schema and avoid “unknown attribute” warnings while the spec iterates. trust.semconv.versionrecords the proposal version emitted during a run. Operators can pin older dashboards to that version while shimming queries for the upcoming release.
Dual emission & pinning
- During upgrades, the runtime dual-emits the current and previous semantic convention sets. Translators in
core/telemetry/handle the downgrade path so collectors never see incomplete spans. - Use
FLEETFORGE_TRUST_SEMCONV_PIN=vX.Y(or the Helm equivalent) to force a workspace onto a specific schema while downstream dashboards catch up. The runtime logs the pin at startup and annotates spans withtrust.semconv.pinned=truefor auditing. - When the pin is removed, the runtime automatically promotes the workspace to the latest version and stops emitting the compat layer after one release cycle.
Collector checklist
- Metrics + traces – Export both
metricsandtracespipelines so budgets, replay drift, and attestation metadata stay correlated. The default Grafana dashboards indeploy/otel/dashboards/expect both. - Attribute allowlists – If you are stripping attributes for PII compliance, make sure the allowlist includes every
trust.*key; otherwise receipts and policy IDs will disappear downstream. - Testing – The
how-to/clickhouse-grafanaguide covers local validation against the demo collector. Re-run that guide whenever OTEL dependencies change to ensure the shim + pin flags still work.
References
- Implementation:
core/runtime/src/otel.rs,core/telemetry/. - Demos:
docs/quickstart/hello-fleet.md(Hello Fleet exposes the same spans you see in/demo). - Roadmap commitments:
Telemetry versioning policy.