Skip to content

Instantly share code, notes, and snippets.

@cu12
Created September 26, 2018 13:41
Show Gist options
  • Save cu12/401e306d31bc7ab945efc76776f35feb to your computer and use it in GitHub Desktop.
Save cu12/401e306d31bc7ab945efc76776f35feb to your computer and use it in GitHub Desktop.
#!/bin/sh
while /bin/true; do
echo "$(date) $0 run started"
LVS_DATA=$(lvs --reportformat json)
# lvm_lv_size_bytes
echo '# HELP lvm_lv_size_bytes Size of logical volume in bytes.' > /monit/lvm_lv_size_bytes.prom
echo '# TYPE lvm_lv_size_bytes gauge' >> /monit/lvm_lv_size_bytes.prom
echo "$LVS_DATA" \
| jq -r --compact-output '.report[].lv[] | "lvm_lv_size_bytes{lv_name=\"\(.lv_name)\",vg_name=\"\(.vg_name)\",pool_lv=\"\(.pool_lv)\"}" + " " + (.lv_size | ascii_upcase)' \
| numfmt --field 2 --from=auto \
>> /monit/lvm_lv_size_bytes.prom
# lvm_lv_data_percent
echo '# HELP lvm_lv_data_percent Percent of logical volume used.' > /monit/lvm_lv_data_percent.prom
echo '# TYPE lvm_lv_data_percent gauge' >> /monit/lvm_lv_data_percent.prom
echo "$LVS_DATA" \
| jq -r --compact-output '.report[].lv[] | "lvm_lv_data_percent{lv_name=\"\(.lv_name)\",vg_name=\"\(.vg_name)\",pool_lv=\"\(.pool_lv)\"}" + " " + ((.data_percent | tonumber / 100) | tostring)' \
>> /monit/lvm_lv_data_percent.prom
sleep 60
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment