File size: 623 Bytes
3831e97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"""Local telemetry — default OFF (design Observability)."""
from __future__ import annotations

from typing import Any, Dict, List

class Telemetry:
    def __init__(self, enabled: bool = False):
        self.enabled = bool(enabled)
        self.events: List[Dict[str, Any]] = []

    def emit(self, name: str, payload: Dict[str, Any] | None = None) -> None:
        if not self.enabled:
            return
        self.events.append({"name": name, "payload": payload or {}})

    def set_enabled(self, value: bool) -> None:
        self.enabled = bool(value)
        if not self.enabled:
            self.events.clear()