Merge branch 'yaml' into 'master'

yaml config

See merge request sum7/ejabberd-metrics!4
This commit is contained in:
Martin/Geno 2020-03-07 11:06:17 +01:00
commit 1a3782ce97
4 changed files with 36 additions and 24 deletions

1
.gitignore vendored
View File

@ -114,3 +114,4 @@ venv
# config # config
config.json config.json
config.yml

View File

@ -1,20 +1,23 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import json
import sys import sys
from os import environ from os import environ
from pathlib import Path from pathlib import Path
from ruamel.yaml import YAML
from ruamel.yaml.parser import ParserError
from ruamel.yaml.scanner import ScannerError
class Config: class Config:
def __init__(self): def __init__(self):
# class variables # class variables
self.content = None self.content = None
self.conf_file = Path('/etc/ejabberd-metrics.conf') self.conf_file = Path('/etc/ejabberd-metrics.yml')
# dev config overwrite # dev config overwrite
if environ.get('ejabberd_metrics_dev'): if environ.get('ejabberd_metrics_dev'):
self.conf_file = Path('config.json') self.conf_file = Path('config.yml')
# read config file # read config file
self._read() self._read()
@ -23,13 +26,13 @@ class Config:
"""init the config object with this method""" """init the config object with this method"""
self._check() self._check()
# open and load json content from config # open file as an iostream
with open(self.conf_file, 'r', encoding='utf-8') as f: with open(self.conf_file, 'r', encoding='utf-8') as f:
try: try:
self.content = json.load(f) self.content = YAML(typ='safe').load(f)
# catch json decoding errors # catch json decoding errors
except json.JSONDecodeError as err: except (ParserError, ScannerError) as err:
print(err, file=sys.stderr) print(err, file=sys.stderr)
exit(1) exit(1)

View File

@ -1,18 +0,0 @@
{
"url": "http://[::1]:5280/api",
"login": {
"user": "metric-user",
"server": "chat.sum7.eu",
"password": "password"
},
"api": "rest",
"--comment": "influxdb",
"influxdb_host": "localhost",
"influxdb_port": 8086,
"influxdb_db": "ejabberd",
"--comment": "prometheus",
"prometheus_port": 8080,
"prometheus_refresh": 10
}

View File

@ -0,0 +1,26 @@
---
# endpoint url
url: "http://[::1]:5280/api"
# user credentials to the endpoint url
login:
user: "metric-user"
server: "chat.sum7.eu"
password: "password"
# muc subdomain
# default : "conference"
muc_host: "chat"
# api configuration
# default : rpc
api: "rest"
# influx db configuration
influxdb_host: "localhost"
influxdb_port: 8086
influxdb_db: "example"
# prometheus configuration
prometheus_port: 8080
prometheus_refresh: 10