copr-fe: prometheus: get the data from nagios more frequently
But do not fail immediately if we can not get the results from Nagios.
This commit is contained in:
parent
6d82fba602
commit
001f60b8bd
2 changed files with 16 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
||||||
#! /usr/bin/python3
|
#! /usr/bin/python3
|
||||||
|
|
||||||
|
import time
|
||||||
import requests
|
import requests
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from prometheus_client import CollectorRegistry, write_to_textfile, Gauge
|
from prometheus_client import CollectorRegistry, write_to_textfile, Gauge
|
||||||
|
@ -10,8 +11,21 @@ def collect_nagios_service_state(url, name, documentation, filename):
|
||||||
gauge = Gauge(name, documentation, registry=registry)
|
gauge = Gauge(name, documentation, registry=registry)
|
||||||
state = 0
|
state = 0
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = requests.get(url)
|
# Give the Nagios (our our network) some time to recover before we
|
||||||
|
# pollute our Graphana metrics
|
||||||
|
attempt = 0
|
||||||
|
while True:
|
||||||
|
attempt += 1
|
||||||
|
try:
|
||||||
|
response = requests.get(url)
|
||||||
|
break
|
||||||
|
except Exception:
|
||||||
|
time.sleep(10)
|
||||||
|
if attempt >= 4:
|
||||||
|
raise
|
||||||
|
|
||||||
soup = BeautifulSoup(response.content, features="lxml")
|
soup = BeautifulSoup(response.content, features="lxml")
|
||||||
if soup.select_one("div.serviceOK"):
|
if soup.select_one("div.serviceOK"):
|
||||||
state = 1
|
state = 1
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
cron:
|
cron:
|
||||||
name: "generating prometheus metrics"
|
name: "generating prometheus metrics"
|
||||||
user: root
|
user: root
|
||||||
minute: 0
|
minute: "*/5"
|
||||||
job: "/usr/bin/python3 /usr/bin/copr-frontend-prometheus-monitoring.py"
|
job: "/usr/bin/python3 /usr/bin/copr-frontend-prometheus-monitoring.py"
|
||||||
tags:
|
tags:
|
||||||
- cron_tasks
|
- cron_tasks
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue