kibana_prometheus_exporter.__main__   A
last analyzed

Complexity

Total Complexity 0

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 0
eloc 33
dl 0
loc 44
rs 10
c 0
b 0
f 0
1
import asyncio
2
import logging
3
import sys
4
5
from prometheus_client.core import REGISTRY
6
from prometheus_client.exposition import start_http_server
7
8
from .config import Config
9
from .kibana_collector import KibanaCollector
10
11
logger = logging.getLogger(__name__)
12
13
try:
14
    config = Config()
15
except ValueError as e:
16
    logger.critical(e)
17
    logger.critical("Invalid configuration. Exiting.")
18
    sys.exit(1)
19
20
21
logger.info("Starting Kibana Prometheus exporter version %s\n" % config.version + config.description())
22
23
REGISTRY.register(
24
    KibanaCollector(
25
        config.kibana_url,
26
        kibana_login=config.kibana_login,
27
        kibana_password=config.kibana_password,
28
        ignore_ssl=config.ignore_ssl,
29
    )
30
)
31
32
try:
33
    start_http_server(config.listen_port)
34
except PermissionError as e:
35
    logger.critical("Cannot bind to port %s. Permission denied.", config.listen_port)
36
    sys.exit(2)
37
38
loop = asyncio.new_event_loop()
39
try:
40
    loop.run_forever()
41
except KeyboardInterrupt:
42
    loop.stop()
43
    loop.close()
44