fix node exporter to keep last data
Build and Push Docker Container / build-and-push (push) Successful in 1m37s

This commit is contained in:
2026-05-01 16:34:09 +02:00
parent 338ca43328
commit 317e8b6b16
+14 -9
View File
@@ -2,17 +2,17 @@
source /etc/borg_exporter.rc source /etc/borg_exporter.rc
source /variables.sh source /variables.sh
TMP_FILE="/tmp/prometheus-borg" TMP_FILE="/tmp/prometheus-borg.$$"
[ -e $TMP_FILE ] && rm -f $TMP_FILE [ -e "$TMP_FILE" ] && rm -f "$TMP_FILE"
#prevent "Attempting to access a previously unknown unencrypted repository" prompt #prevent "Attempting to access a previously unknown unencrypted repository" prompt
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes
HOSTNAME=$(hostname) HOSTNAME=$(hostname)
############################################################################################################################## ###################################################################################################
# Funktionen # Funktionen
############################################################################################################################## ###################################################################################################
function writeToFile() { function writeToFile() {
msg="$1" msg="$1"
local -n arr=$2 local -n arr=$2
@@ -191,13 +191,18 @@ function findRepositorysAndGetData() {
} }
function sendDataToGatewayOrNodeExplorer() { function sendDataToGatewayOrNodeExplorer() {
if ! grep -q '^borg_' "$TMP_FILE"; then
echo "No borg metric data collected; keeping previous metrics output untouched."
return 1
fi
if [ -n "${PUSHGATEWAY_URL}" ]; then if [ -n "${PUSHGATEWAY_URL}" ]; then
#send data via pushgateway #send data via pushgateway
cat $TMP_FILE | curl --data-binary @- ${PUSHGATEWAY_URL}/metrics/job/borg-exporter/host/$HOSTNAME/repository/$REPOSITORY curl --data-binary @"$TMP_FILE" "${PUSHGATEWAY_URL}/metrics/job/borg-exporter/host/$HOSTNAME/repository/${REPOSITORY:-auto}"
else else
#send data via node_exporter #send data via node_exporter
if [ -d "${NODE_EXPORTER_DIR}" ]; then if [ -d "${NODE_EXPORTER_DIR}" ]; then
cp $TMP_FILE ${NODE_EXPORTER_DIR}/borg_exporter.prom cp "$TMP_FILE" "${NODE_EXPORTER_DIR}/borg_exporter.prom"
else else
echo "Please configure either PUSHGATEWAY_URL or NODE_EXPORTER_DIR in /etc/borg_exporter.rc" echo "Please configure either PUSHGATEWAY_URL or NODE_EXPORTER_DIR in /etc/borg_exporter.rc"
fi fi
@@ -205,12 +210,12 @@ function sendDataToGatewayOrNodeExplorer() {
} }
function cleanup() { function cleanup() {
rm -f $TMP_FILE rm -f "$TMP_FILE"
} }
############################################################################################################################## ###################################################################################################
# Main Code # Main Code
############################################################################################################################## ###################################################################################################
writeDefinitionsToMetrics writeDefinitionsToMetrics
if [ -n "${REPOSITORY}" ]; then if [ -n "${REPOSITORY}" ]; then
getBorgDataForRepository "${REPOSITORY}" "${HOSTNAME}" getBorgDataForRepository "${REPOSITORY}" "${HOSTNAME}"