Coverage for app/core/observability.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-06-16 20:06 +0000

1from typing import Any 

2 

3from app.core.events import ProbeEvents, ProbeMetrics 

4from app.core.logging import Logger 

5 

6 

7class Observability: 

8 @classmethod 

9 def emit( 

10 cls, 

11 event: ProbeEvents, 

12 **payload: Any, 

13 ): 

14 Logger.log(event.value, status="started", **payload) 

15 

16 if event == ProbeEvents.PROBE_CREATED: 

17 ProbeMetrics.inc_probe_created() 

18 elif event == ProbeEvents.PROBE_INVALID_SETUP: 

19 ProbeMetrics.inc_probe_invalid_setup() 

20 elif event == ProbeEvents.PROBE_COMMAND_SENT: 

21 ProbeMetrics.inc_probe_command_sent() 

22 elif event == ProbeEvents.PROBE_INVALID_COMMAND: 

23 ProbeMetrics.inc_probe_invalid_command() 

24 

25 Logger.log(event.value, status="finished", **payload)