mirror of
https://github.com/thegeeklab/prometheus-pve-sd.git
synced 2024-11-21 17:00:40 +00:00
feat: add option to set output file mode (#184)
This commit is contained in:
parent
65afd4a6e5
commit
3ccb789bdd
@ -6,16 +6,18 @@ You can get all available CLI options by running `prometheus-pve-sd --help`:
|
||||
|
||||
```Shell
|
||||
$ prometheus-pve-sd --help
|
||||
usage: prometheus-pve-sd [-h] [-c CONFIG_FILE] [-o OUTPUT_FILE] [-d LOOP_DELAY] [--no-service] [-f LOG_FORMAT] [-v] [-q] [--version]
|
||||
usage: prometheus-pve-sd [-h] [-c CONFIG_FILE] [-o OUTPUT_FILE] [-m OUTPUT_FILE_MODE] [-d LOOP_DELAY] [--no-service] [-f LOG_FORMAT] [-v] [-q] [--version]
|
||||
|
||||
Prometheus Service Discovery for Proxmox VE
|
||||
|
||||
optional arguments:
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-c CONFIG_FILE, --config CONFIG_FILE
|
||||
location of configuration file
|
||||
-o OUTPUT_FILE, --output OUTPUT_FILE
|
||||
output file
|
||||
-m OUTPUT_FILE_MODE, --mode OUTPUT_FILE_MODE
|
||||
output file mode
|
||||
-d LOOP_DELAY, --loop-delay LOOP_DELAY
|
||||
delay between discovery runs
|
||||
--no-service run discovery only once
|
||||
|
@ -16,6 +16,8 @@ metrics:
|
||||
port: 8000
|
||||
|
||||
output_file:
|
||||
output_file_mode: "0640"
|
||||
|
||||
loop_delay: 300
|
||||
# Run pve sd in a loop and discover hosts every n seconds (as defined in loop_delay).
|
||||
# Can be disabled to run disovery only once.
|
||||
|
@ -15,6 +15,8 @@ PROMETHEUS_PVE_SD_METRICS_ADDRESS=127.0.01
|
||||
PROMETHEUS_PVE_SD_METRICS_PORT=8000
|
||||
|
||||
PROMETHEUS_PVE_SD_OUTPUT_FILE=
|
||||
PROMETHEUS_PVE_SD_OUTPUT_FILE_MODE=0640
|
||||
|
||||
PROMETHEUS_PVE_SD_LOOP_DELAY=300
|
||||
|
||||
# Run PVE SD in a loop and discover hosts every n seconds (as defined in PROMETHEUS_PVE_SD_LOOP_DELAY).
|
||||
|
@ -6,6 +6,7 @@ import json
|
||||
import shutil
|
||||
import signal
|
||||
import tempfile
|
||||
from os import chmod
|
||||
from time import sleep
|
||||
|
||||
from prometheus_client import start_http_server
|
||||
@ -65,6 +66,9 @@ class PrometheusSD:
|
||||
parser.add_argument(
|
||||
"-o", "--output", dest="output_file", action="store", help="output file"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-m", "--mode", dest="output_file_mode", action="store", help="output file mode"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-d",
|
||||
"--loop-delay",
|
||||
@ -170,6 +174,7 @@ class PrometheusSD:
|
||||
json.dump(output, tf, indent=4)
|
||||
|
||||
shutil.move(temp_file.name, self.config.config["output_file"])
|
||||
chmod(self.config.config["output_file"], self.config.config["output_file_mode"])
|
||||
|
||||
def _terminate(self, signal, frame):
|
||||
self.log.sysexit_with_message("Terminating", code=0)
|
||||
|
@ -70,6 +70,12 @@ class Config():
|
||||
"file": True,
|
||||
"type": environs.Env().str
|
||||
},
|
||||
"output_file_mode": {
|
||||
"default": "0644",
|
||||
"env": "OUTPUT_FILE_MODE",
|
||||
"file": True,
|
||||
"type": environs.Env().str
|
||||
},
|
||||
"loop_delay": {
|
||||
"default": 300,
|
||||
"env": "LOOP_DELAY",
|
||||
|
@ -9,6 +9,7 @@ metrics:
|
||||
port: 8000
|
||||
|
||||
output_file: dummy
|
||||
output_file_mode: "0640"
|
||||
loop_delay: 300
|
||||
service: true
|
||||
|
||||
|
7
prometheuspvesd/test/fixtures/fixtures.py
vendored
7
prometheuspvesd/test/fixtures/fixtures.py
vendored
@ -45,6 +45,12 @@ def builtins():
|
||||
"file": True,
|
||||
"type": environs.Env().str
|
||||
},
|
||||
"output_file_mode": {
|
||||
"default": "0640",
|
||||
"env": "OUTPUT_FILE_MODE",
|
||||
"file": True,
|
||||
"type": environs.Env().str
|
||||
},
|
||||
"loop_delay": {
|
||||
"default": 300,
|
||||
"env": "LOOP_DELAY",
|
||||
@ -125,6 +131,7 @@ def defaults():
|
||||
"port": 8000
|
||||
},
|
||||
"output_file": "dummy",
|
||||
"output_file_mode": "0640",
|
||||
"pve": {
|
||||
"auth_timeout": 5,
|
||||
"password": "",
|
||||
|
Loading…
Reference in New Issue
Block a user