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
« prev ^ index » next coverage.py v7.10.6, created at 2026-02-18 22:41 +0000
1import voluptuous as vol
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)
13# OTLP endpoint path
14OTLP_LOGS_PATH = "/v1/logs"
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}
25DEFAULT_SEVERITY = (9, "INFO")
27# OTel defaults
28DEFAULT_PORT = 4318
29DEFAULT_USE_TLS = False
30DEFAULT_RESOURCE_ATTRIBUTES = ""
31ENCODING_JSON = "json"
32ENCODING_PROTOBUF = "protobuf"
33DEFAULT_ENCODING = ENCODING_PROTOBUF
36# Integration metadata (used in InstrumentationScope)
37SCOPE_NAME = "homeassistant"
38SCOPE_VERSION = "1.0.0"
40# Default resource attribute
41DEFAULT_SERVICE_NAME = "core"
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})