genesis commit
This commit is contained in:
Executable
+77
@@ -0,0 +1,77 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
PROM_FILE=/output/metrics
|
||||
TMP_FILE=$PROM_FILE.$$
|
||||
|
||||
LIST=$(borg list | awk '{print $1}')
|
||||
COUNTER=0
|
||||
|
||||
for i in $LIST; do
|
||||
COUNTER=$((COUNTER+1))
|
||||
done
|
||||
|
||||
BORG_INFO=$(borg info "::$i")
|
||||
|
||||
ARCHIVE_PREFIX=$(echo "$BORG_INFO" | grep "Archive name" | awk '{print $3}' | awk -F- '{print $1}')
|
||||
|
||||
echo "backup_count{archive=\"${ARCHIVE_PREFIX}\"} $COUNTER" > "$TMP_FILE"
|
||||
|
||||
{
|
||||
echo "backup_files{archive=\"${ARCHIVE_PREFIX}\"} $(echo "$BORG_INFO" | grep "Number of files" | awk '{print $4}')"
|
||||
echo "backup_chunks_unique{archive=\"${ARCHIVE_PREFIX}\"} $(echo "$BORG_INFO" | grep "Chunk index" | awk '{print $3}')"
|
||||
echo "backup_chunks_total{archive=\"${ARCHIVE_PREFIX}\"} $(echo "$BORG_INFO" | grep "Chunk index" | awk '{print $4}')"
|
||||
} >> "$TMP_FILE"
|
||||
|
||||
function calc_bytes {
|
||||
NUM=$1
|
||||
UNIT=$2
|
||||
|
||||
case "$UNIT" in
|
||||
B)
|
||||
echo "$NUM" | awk '{ print $1 }'
|
||||
;;
|
||||
kB)
|
||||
echo "$NUM" | awk '{ print $1 * 1024 }'
|
||||
;;
|
||||
MB)
|
||||
echo "$NUM" | awk '{ print $1 * 1024 * 1024 }'
|
||||
;;
|
||||
GB)
|
||||
echo "$NUM" | awk '{ print $1 * 1024 * 1024 * 1024 }'
|
||||
;;
|
||||
TB)
|
||||
echo "$NUM" | awk '{ print $1 * 1024 * 1024 * 1024 * 1024 }'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# timings
|
||||
LAST_START=$(echo "$BORG_INFO" | grep "Time (start)" | awk '{print $4" "$5}')
|
||||
LAST_END=$(echo "$BORG_INFO" | grep "Time (end)" | awk '{print $4" "$5}')
|
||||
|
||||
LAST_START_TIMESTAMP=$(date -d "$LAST_START" +"%s")
|
||||
LAST_END_TIMESTAMP=$(date -d "$LAST_END" +"%s")
|
||||
|
||||
# byte sizes
|
||||
LAST_SIZE=$(calc_bytes $(echo "$BORG_INFO" | grep "This archive" | awk '{print $3}') $(echo "$BORG_INFO" | grep "This archive" | awk '{print $4}'))
|
||||
LAST_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" | grep "This archive" | awk '{print $5}') $(echo "$BORG_INFO" | grep "This archive" | awk '{print $6}'))
|
||||
LAST_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" | grep "This archive" | awk '{print $7}') $(echo "$BORG_INFO" | grep "This archive" | awk '{print $8}'))
|
||||
|
||||
TOTAL_SIZE=$(calc_bytes $(echo "$BORG_INFO" | grep "All archives" | awk '{print $3}') $(echo "$BORG_INFO" | grep "All archives" | awk '{print $4}'))
|
||||
TOTAL_SIZE_COMPRESSED=$(calc_bytes $(echo "$BORG_INFO" | grep "All archives" | awk '{print $5}') $(echo "$BORG_INFO" | grep "All archives" | awk '{print $6}'))
|
||||
TOTAL_SIZE_DEDUP=$(calc_bytes $(echo "$BORG_INFO" | grep "All archives" | awk '{print $7}') $(echo "$BORG_INFO" | grep "All archives" | awk '{print $8}'))
|
||||
|
||||
{
|
||||
echo "backup_last_start{archive=\"${ARCHIVE_PREFIX}\"} $LAST_START_TIMESTAMP"
|
||||
echo "backup_last_end{archive=\"${ARCHIVE_PREFIX}\"} $LAST_END_TIMESTAMP"
|
||||
echo "backup_last_size{archive=\"${ARCHIVE_PREFIX}\"} $LAST_SIZE"
|
||||
echo "backup_last_size_compressed{archive=\"${ARCHIVE_PREFIX}\"} $LAST_SIZE_COMPRESSED"
|
||||
echo "backup_last_size_dedup{archive=\"${ARCHIVE_PREFIX}\"} $LAST_SIZE_DEDUP"
|
||||
echo "backup_total_size{archive=\"${ARCHIVE_PREFIX}\"} $TOTAL_SIZE"
|
||||
echo "backup_total_size_compressed{archive=\"${ARCHIVE_PREFIX}\"} $TOTAL_SIZE_COMPRESSED"
|
||||
echo "backup_total_size_dedup{archive=\"${ARCHIVE_PREFIX}\"} $TOTAL_SIZE_DEDUP"
|
||||
} >> "$TMP_FILE"
|
||||
|
||||
mv "$TMP_FILE" "$PROM_FILE"
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
echo "$CRON_SCHEDULE /usr/bin/borg-exporter.sh" >> /var/spool/cron/crontabs/$(whoami)
|
||||
|
||||
crond -f
|
||||
Reference in New Issue
Block a user