You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Set the global OTEL error handler only when telemetry is enabled
- Correct finishTelemetry doc comment (handles are nil only when uninitialized)
- Restore the previous tracer provider in gitops/actions attribute tests
- Document the telemetry config block in docs/config.md
@@ -397,6 +399,38 @@ gitte run up --discover # discover, then sync, then run actions
397
399
398
400
---
399
401
402
+
## telemetry
403
+
404
+
Gitte can export OpenTelemetry traces over OTLP/HTTP to an OTLP-compatible backend (e.g. Elastic APM) to help debug failures. Telemetry is enabled whenever an endpoint is resolved.
| `endpoint` | OTLP/HTTP endpoint to export spans to. Telemetry is enabled when this resolves to a non-empty value. |
416
+
| `headers` | Map of HTTP headers attached to every export request — typically authentication (`Authorization`). |
417
+
418
+
Each invocation produces one trace: a root span for the command, child spans for each repo sync (branch, commit SHA, dirty flag) and each action task (command, exit code), with errors recorded on the relevant span. The OS username (`user.name`) and hostname (`host.name`) are attached to every trace to identify which developer and machine produced it.
419
+
420
+
The gitte CLI arguments and each action's command line are exported as span attributes. Keep secrets out of action command definitions and CLI arguments — pass them via environment variables, which are not exported. Full remote URLs are never collected (repos are identified by name only).
421
+
422
+
Environment variables override or disable telemetry:
| `OTEL_EXPORTER_OTLP_ENDPOINT` / `OTEL_EXPORTER_OTLP_HEADERS` | Standard OTEL env vars, honored as a fallback when no gitte endpoint is set |
429
+
430
+
Precedence: `GITTE_TELEMETRY=off`> `GITTE_TELEMETRY_URL` > config `endpoint` > `OTEL_EXPORTER_OTLP_*`. Telemetry is best-effort and never blocks or slows gitte; export failures are silently ignored and flushing on exit is time-bounded.
431
+
432
+
---
433
+
400
434
## Remote configuration
401
435
402
436
Gitte can load its configuration from a remote git repository. Create a `.gitte-env` file alongside `.gitte.yml`:
0 commit comments