From: Aleš Date: Tue, 15 Feb 2022 23:29:39 +0000 (+0100) Subject: datamodel: monitoring: types specification X-Git-Tag: v6.0.0a1~42^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7f6e66c794019cee65ee1979d830ca324e8ba655;p=thirdparty%2Fknot-resolver.git datamodel: monitoring: types specification --- diff --git a/manager/knot_resolver_manager/datamodel/monitoring_schema.py b/manager/knot_resolver_manager/datamodel/monitoring_schema.py index 6b0f41b42..80859b4c3 100644 --- a/manager/knot_resolver_manager/datamodel/monitoring_schema.py +++ b/manager/knot_resolver_manager/datamodel/monitoring_schema.py @@ -2,21 +2,17 @@ from typing import Union from typing_extensions import Literal -from knot_resolver_manager.datamodel.types import TimeUnit +from knot_resolver_manager.datamodel.types import DomainName, IPAddress, PortNumber, TimeUnit from knot_resolver_manager.utils.modelling import SchemaNode class GraphiteSchema(SchemaNode): - host: str - port: int = 2003 + host: Union[IPAddress, DomainName] + port: PortNumber = PortNumber(2003) prefix: str = "" - interval_sec: TimeUnit = TimeUnit("5s") + interval: TimeUnit = TimeUnit("5s") tcp: bool = False - def _validate(self): - if not 0 < self.port < 65_536: - raise ValueError("port must be between 0 and 65536 (both exclusive)") - class MonitoringSchema(SchemaNode): """ diff --git a/manager/knot_resolver_manager/statistics.py b/manager/knot_resolver_manager/statistics.py index 5e3b0168a..8f571678c 100644 --- a/manager/knot_resolver_manager/statistics.py +++ b/manager/knot_resolver_manager/statistics.py @@ -366,7 +366,7 @@ async def report_stats() -> bytes: async def _deny_turning_off_graphite_bridge(old_config: KresConfig, new_config: KresConfig) -> Result[None, str]: - if old_config.monitoring.graphite is not None and new_config.monitoring.graphite is None: + if old_config.monitoring.graphite and not new_config.monitoring.graphite: return Result.err( "You can't turn off graphite monitoring dynamically. If you really want this feature, please let the developers know." ) @@ -393,12 +393,12 @@ async def _configure_graphite_bridge(config: KresConfig) -> None: if config.monitoring.graphite is not False and _graphite_bridge is None: logger.info( "Starting Graphite metrics exporter for [%s]:%d", - config.monitoring.graphite.host, - config.monitoring.graphite.port, + str(config.monitoring.graphite.host), + int(config.monitoring.graphite.port), ) - _graphite_bridge = GraphiteBridge((config.monitoring.graphite.host, config.monitoring.graphite.port)) + _graphite_bridge = GraphiteBridge((str(config.monitoring.graphite.host), int(config.monitoring.graphite.port))) _graphite_bridge.start( # type: ignore - interval=config.monitoring.graphite.interval_sec.seconds(), prefix=config.monitoring.graphite.prefix + interval=config.monitoring.graphite.interval.seconds(), prefix=config.monitoring.graphite.prefix )