Croway opened a new pull request, #24689:
URL: https://github.com/apache/camel/pull/24689
## Summary
_Claude Code on behalf of Croway_
New `camel-test-infra-observability` module providing a local
Apache-2.0-only observability stack via `camel infra run observability`.
Composes 4 containers on a shared Docker network:
- **Prometheus** (`:9090`) — scrapes Camel metrics at `:9876/observe/metrics`
- **VictoriaTraces** (`:10428`) — receives OTLP traces
- **VictoriaLogs** (`:9428`) — receives OTLP logs
- **Perses** (`:3000`) — dashboard UI, auto-provisioned with Camel project
and overview dashboard
### Changes
- **New module**: `test-infra/camel-test-infra-observability/` with 4
container classes, service interface, multi-container orchestrator
- **New export target**: `--open-telemetry-agent-export=observability`
enables traces + logs export to the stack
- **Deprecated**: `--open-telemetry-agent-export=jaeger` in favor of `otlp`
(backward compatible)
- **Generalized**: `OpenTelemetryTracer.exportTarget` check accepts any
non-empty value instead of hardcoded `"jaeger"`
- **Fixed**: Fork version propagation in `Run.java` — forked JBang processes
now inherit the CLI's catalog version
- **OOB dashboard**: Perses auto-provisioned with Camel Overview dashboard
(exchanges, throughput, failure rate, processing time, JVM memory/threads/GC,
CPU, load average)
### Usage
```bash
# Start the observability stack
camel infra run observability
# Run a Camel app with full observability (metrics + traces + logs)
camel run MyRoute.java --observe \
--open-telemetry-agent --open-telemetry-agent-export=observability
```
### Verified
- Prometheus scrapes Camel metrics (zero-config with `--observe`)
- VictoriaTraces receives OTel agent spans (Kafka, JDBC, HTTP
auto-instrumented)
- VictoriaLogs receives logs with trace_id/span_id correlation
- Perses dashboard shows exchanges, throughput, processing time, JVM metrics
- Multiple Camel instances supported via `--management-port`
## Test plan
- [ ] `camel infra run observability` starts all 4 containers
- [ ] `camel infra get observability` returns JSON with all endpoint URLs
- [ ] `camel run --observe` sends metrics to Prometheus
- [ ] `camel run --observe --open-telemetry-agent
--open-telemetry-agent-export=observability` sends traces and logs
- [ ] Perses dashboard at `:3000/projects/camel/dashboards/overview` shows
data
- [ ] `camel infra stop observability` stops all containers
- [ ] `--open-telemetry-agent-export=jaeger` still works (backward
compatible)
- [ ] `--open-telemetry-agent-export=otlp` works as new generic external
export
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]