Implement OpenTelemetryConstructor and all telemetry interfaces
Estimation
Estimated focus duration (perfect conditions): 6 days
Estimated pessimistic duration (worst case scenario): 8 days
Description
Click to expand
Who
- @kikokhaledu implementation and design suggestions
- @kabir.kbr design and architecture
- @0xPravar advice and support regarding specifications
What
- Implement the telemetry interface as proposed by the specifications:
- https://gitlab.com/nunet/device-management-service/-/blob/proposed/telemetry/README.md
- https://gitlab.com/nunet/test-suite/-/tree/proposed/stages/functional_tests/features/device-management-service/telemetry?ref_type=heads
- https://gitlab.com/nunet/device-management-service/-/blob/proposed/telemetry/README.md
- Implement OpenTelemetryConstructor and showcase how instrumented events are send to ElasticSearch collector
- Propose further specifications for discussion and coordination with other packages and discuss with
How
- Telemetry is responsible for enabling developers to instrument chosen events in code;
- The telemetry package design is tracked via this issue: Initial telemetry interface design;
- The initially proposed design may change based on the learnings from implementation;
Why
- We want to all telemetry (traces, logs, heartbeats, etc.) to be shipped via the unified interface, which respect logging levels, which is important for the the overall functionality of the nunet platform on many levels, including accounting, management dashboard, etc;
- The main functionality that is the subject of this issue and is needed for testing and debugging while refactoring the DMS and proceeding with Public Alpha Solutions is shipping open-telemetry traces and logs into Elasticsearch index for later access and analysis;
When
- While in principle this issue can be implemented separately, it is related to Elasticsearch infrastructure tracked via this issue: nunet-infra#198, which belongs to the Public Alpha Solution milestone, through which the whole process of observing issues via ElasticSearch logs can be done;
- The implementation of the process when events from running dms are sent and indexed in Elastisearch will be further used for designing and implementing Management Dashboard Interface;
Acceptance Criteria
Click to expand
- All interfaces proposed in https://gitlab.com/nunet/device-management-service/-/blob/proposed/telemetry/README.md#interfaces-and-types correctly implemented and their design adjusted as needed;
- The following functionalities correctly implemented:
- Register Collector (with OpenTelemetryCollector as parameter);
- Observe Events;
- Other methods and functionalities as needed;
- All implemented functions have unit tests covering them; all tests pass;
- All implemented functionality have Gherkin descriptions for inclusion into the functional tests; all tests pass or specify issues needed to be implemented in other packages;
Work Breakdown Structure (WBS)
Task | Description | Duration | Status | Start Date | End Date | Comment |
---|---|---|---|---|---|---|
A | reading the docs and readme | 8 Hrs | Done | 10.04.2024 | 11.04.2024 | |
B | reading about open telemetry | 8 Hrs | Done | 11.04.2024 | 14.04.2024 | |
C | planning the implemntation & reviewing what is already done | 8 Hrs | Done | 15.04.2024 | 15.04.2024 | |
D | making the initial implemntation for testing | 16 Hrs | Done | 16.04.2024 | 23.04.2024 | i was off for a few days sorry for the delay |
E | testing and fixing erros | 8 Hrs | InProgress | 23.04.2024 | check the comment below for more details | |
F | making the changes suggested by Dagim | 8 Hrs | In Progress | 04.06.2024 |
Edited by khaled yasser