mirror of
https://github.com/XRPLF/rippled.git
synced 2026-03-04 03:42:27 +00:00
deleted todo file
Signed-off-by: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com>
This commit is contained in:
@@ -1,78 +0,0 @@
|
||||
# OpenTelemetry Implementation
|
||||
|
||||
## POC Tasks (Phase 1 - Core Infrastructure)
|
||||
|
||||
- [x] Write plan to tasks/todo.md
|
||||
- [x] Task 0: Create Docker observability stack (docker-compose, otel-collector-config, grafana datasource)
|
||||
- [x] Task 1: Add OpenTelemetry C++ SDK dependency (conanfile.py + CMakeLists.txt + XrplCore.cmake)
|
||||
- [x] Task 2: Create Core Telemetry interface (Telemetry.h, SpanGuard.h, NullTelemetry.cpp)
|
||||
- [x] Task 3: Implement OTel-backed TelemetryImpl and TelemetryConfig
|
||||
- [x] Task 5: Create instrumentation macros (TracingInstrumentation.h)
|
||||
- [x] Task 4: Integrate Telemetry into Application lifecycle (ServiceRegistry.h, Application.cpp, xrpld-example.cfg)
|
||||
- [x] Task 6: Instrument RPC ServerHandler
|
||||
- [x] Task 7: Instrument RPC command execution (RPCHandler)
|
||||
- [ ] Task 8: Build, run, and verify end-to-end (manual)
|
||||
- [ ] Task 9: Document POC results and next steps (manual)
|
||||
|
||||
## Phase 2 Tasks (RPC Tracing Completion)
|
||||
|
||||
- [x] Task 2.2: Add XRPL_TRACE_PEER and XRPL_TRACE_LEDGER macros
|
||||
- [x] Task 2.3: Add shouldTraceLedger() to Telemetry interface + all implementations
|
||||
- [x] Task 2.5: Enhanced RPC span attributes (duration_ms, error_message)
|
||||
- [x] Task 2.4: Unit test for telemetry config parser (TelemetryConfig_test.cpp)
|
||||
- [ ] Task 2.6: Build verification
|
||||
|
||||
## Phase 3 Tasks (Transaction Tracing) — see OpenTelemetryPlan/Phase3_taskList.md
|
||||
## Phase 4 Tasks (Consensus Tracing) — see OpenTelemetryPlan/Phase4_taskList.md
|
||||
## Phase 5 Tasks (Documentation & Deployment) — see OpenTelemetryPlan/Phase5_taskList.md
|
||||
|
||||
## Dependency Order
|
||||
- Tasks 0, 1 (parallel, no deps)
|
||||
- Tasks 2, 5 (parallel, after 1)
|
||||
- Task 3 (after 1, 2)
|
||||
- Task 4 (after 2, 3)
|
||||
- Tasks 6, 7 (parallel, after 4, 5)
|
||||
|
||||
## Key Design Decisions
|
||||
- New CMake module: `add_module(xrpl telemetry)` in XrplCore.cmake
|
||||
- `#ifdef XRPL_ENABLE_TELEMETRY` guards OTel SDK types in interface headers
|
||||
- NullTelemetry always compiles; TelemetryImpl only when OTel SDK available
|
||||
- Macros expand to `((void)0)` when disabled
|
||||
- Section::value_or<T> used for config parsing (matches existing patterns)
|
||||
- getTelemetry() added to ServiceRegistry (not Application.h) since it's a service accessor
|
||||
|
||||
## New Files Created
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| docker/telemetry/docker-compose.yml | OTel Collector + Jaeger + Grafana stack |
|
||||
| docker/telemetry/otel-collector-config.yaml | Collector receivers/processors/exporters |
|
||||
| docker/telemetry/grafana/provisioning/datasources/jaeger.yaml | Grafana Jaeger datasource |
|
||||
| include/xrpl/telemetry/Telemetry.h | Abstract Telemetry interface + Setup struct |
|
||||
| include/xrpl/telemetry/SpanGuard.h | RAII span guard (OTel-enabled only) |
|
||||
| src/libxrpl/telemetry/NullTelemetry.cpp | No-op implementation (always compiles) |
|
||||
| src/libxrpl/telemetry/TelemetryConfig.cpp | Config parser (setup_Telemetry) |
|
||||
| src/libxrpl/telemetry/Telemetry.cpp | OTel SDK implementation (OTel-enabled only) |
|
||||
| src/xrpld/telemetry/TracingInstrumentation.h | XRPL_TRACE_* convenience macros |
|
||||
|
||||
## Modified Files
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| conanfile.py | Added `telemetry` option + opentelemetry-cpp dependency |
|
||||
| CMakeLists.txt | Added `telemetry` option + find_package + compile definition |
|
||||
| cmake/XrplCore.cmake | Added `telemetry` module + conditional OTel linking |
|
||||
| include/xrpl/core/ServiceRegistry.h | Added getTelemetry() pure virtual + forward decl |
|
||||
| src/xrpld/app/main/Application.cpp | Added telemetry_ member, init, start/stop, accessor |
|
||||
| src/xrpld/rpc/detail/ServerHandler.cpp | Added XRPL_TRACE_RPC to onRequest, processRequest, WS |
|
||||
| src/xrpld/rpc/detail/RPCHandler.cpp | Added per-command tracing in callMethod |
|
||||
| cfg/xrpld-example.cfg | Added [telemetry] config section documentation |
|
||||
|
||||
## Expected Trace Hierarchy
|
||||
```
|
||||
rpc.request (HTTP entry point - ServerHandler::onRequest)
|
||||
└── rpc.process (ServerHandler::processRequest)
|
||||
└── rpc.command.<name> (RPCHandler::callMethod)
|
||||
xrpl.rpc.command = "account_info"
|
||||
xrpl.rpc.version = 2
|
||||
xrpl.rpc.role = "user"
|
||||
xrpl.rpc.status = "success"
|
||||
```
|
||||
Reference in New Issue
Block a user