Coverage for custom_components/remote_logger/otel/const.py: 100%

15 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2026-02-18 22:41 +0000

1import voluptuous as vol 

2 

3from custom_components.remote_logger.const import ( 

4 CONF_BATCH_MAX_SIZE, 

5 CONF_ENCODING, 

6 CONF_HOST, 

7 CONF_PORT, 

8 CONF_RESOURCE_ATTRIBUTES, 

9 CONF_USE_TLS, 

10 DEFAULT_BATCH_MAX_SIZE, 

11) 

12 

13# OTLP endpoint path 

14OTLP_LOGS_PATH = "/v1/logs" 

15 

16# Severity mapping: HA log level string -> (OTLP severityNumber, OTLP severityText) 

17SEVERITY_MAP: dict[str, tuple[int, str]] = { 

18 "DEBUG": (5, "DEBUG"), 

19 "INFO": (9, "INFO"), 

20 "WARNING": (13, "WARN"), 

21 "ERROR": (17, "ERROR"), 

22 "CRITICAL": (21, "FATAL"), 

23} 

24 

25DEFAULT_SEVERITY = (9, "INFO") 

26 

27# OTel defaults 

28DEFAULT_PORT = 4318 

29DEFAULT_USE_TLS = False 

30DEFAULT_RESOURCE_ATTRIBUTES = "" 

31ENCODING_JSON = "json" 

32ENCODING_PROTOBUF = "protobuf" 

33DEFAULT_ENCODING = ENCODING_PROTOBUF 

34 

35 

36# Integration metadata (used in InstrumentationScope) 

37SCOPE_NAME = "homeassistant" 

38SCOPE_VERSION = "1.0.0" 

39 

40# Default resource attribute 

41DEFAULT_SERVICE_NAME = "core" 

42 

43OTEL_DATA_SCHEMA = vol.Schema({ 

44 vol.Required(CONF_HOST): str, 

45 vol.Optional(CONF_PORT, default=DEFAULT_PORT): int, 

46 vol.Optional(CONF_USE_TLS, default=DEFAULT_USE_TLS): bool, 

47 vol.Optional(CONF_ENCODING, default=DEFAULT_ENCODING): vol.In([ENCODING_JSON, ENCODING_PROTOBUF]), 

48 vol.Optional(CONF_BATCH_MAX_SIZE, default=DEFAULT_BATCH_MAX_SIZE): vol.All(int, vol.Range(min=1, max=10000)), 

49 vol.Optional(CONF_RESOURCE_ATTRIBUTES, default=DEFAULT_RESOURCE_ATTRIBUTES): str, 

50})