"""
Configuration management for network performance exporter.
"""
import argparse
import os
from dataclasses import dataclass
NATS_TOPIC_PREFIX = "metrics.network"
@dataclass
class Config:
"""Configuration for network performance exporter."""
prometheus_port: int
prometheus_host: str
collect_interval: int
node_name: str
def create_argument_parser() -> argparse.ArgumentParser:
"""Create and return the argument parser."""
parser = argparse.ArgumentParser(
description="Network Performance Exporter"
)
parser.add_argument(
'--web-listen-port',
type=int,
default=8000,
help='HTTP server listen port (default: %(default)s)'
)
parser.add_argument(
'--collector-interval',
type=int,
default=15,
help='Metrics collection interval in seconds (default: %(default)s)'
)
return parser
def get_config() -> Config:
"""Parse command-line arguments and return Config."""
parser = create_argument_parser()
args = parser.parse_args()
return Config(
prometheus_port=args.web_listen_port,
prometheus_host="0.0.0.0",
collect_interval=args.collector_interval,
node_name=os.getenv("NODE_NAME", "")
)