printer/epson/et-2720/metrics: Add serial number
Distinguish between two printers of the same model without having to rely on URL, which can change over time.master
parent
0ec4219d91
commit
16108f0c2e
|
@ -38,14 +38,27 @@ et-usage-status()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Add host and URL to metric.
|
# Printer serial number.
|
||||||
#
|
et-serial()
|
||||||
# WARNING: This does _not_ sanitize the URL; do not include double quotes.
|
|
||||||
add-host()
|
|
||||||
{
|
{
|
||||||
local -r url="${1?Missing URL}"
|
local -r url="${1?Missing URL}"
|
||||||
|
|
||||||
sed 's|}|, url="'"$url"'", model="ET-2720"}|; s/{, /{/'
|
et-product-status "$url" \
|
||||||
|
| grep -oP 'Serial Number.*?</div>' \
|
||||||
|
| awk -F'[<>]' '{print $9}'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Add URL and serial number to metric.
|
||||||
|
#
|
||||||
|
# WARNING: This does _not_ sanitize the URL; do not include double quotes.
|
||||||
|
add-labels()
|
||||||
|
{
|
||||||
|
local -r url="${1?Missing URL}"
|
||||||
|
local -r serial="${2?Missing serial number}"
|
||||||
|
|
||||||
|
sed 's|}|, url="'"$url"'", serial="'"$serial"'", model="ET-2720"}|;
|
||||||
|
s/{, /{/'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,11 +69,10 @@ main()
|
||||||
|
|
||||||
local -ri start=$( date +%s%3N )
|
local -ri start=$( date +%s%3N )
|
||||||
|
|
||||||
# printer_ink_level
|
local -r serial=$( et-serial "$url" )
|
||||||
et-product-status "$url" | awk -f ink.awk | add-host "$url"
|
|
||||||
|
|
||||||
# printer_pages_count
|
et-product-status "$url" | awk -f ink.awk | add-labels "$url" "$serial"
|
||||||
et-usage-status "$url" | awk -f usage.awk | add-host "$url"
|
et-usage-status "$url" | awk -f usage.awk | add-labels "$url" "$serial"
|
||||||
|
|
||||||
local -ri end=$( date +%s%3N )
|
local -ri end=$( date +%s%3N )
|
||||||
local -ri duration_s=$(( ( end - start ) / 1000 ))
|
local -ri duration_s=$(( ( end - start ) / 1000 ))
|
||||||
|
@ -68,11 +80,13 @@ main()
|
||||||
|
|
||||||
echo '# HELP printer_scrape_time_seconds Timestamp of last scrape.'
|
echo '# HELP printer_scrape_time_seconds Timestamp of last scrape.'
|
||||||
echo '# TYPE printer_scrape_time_seconds counter'
|
echo '# TYPE printer_scrape_time_seconds counter'
|
||||||
echo "printer_scrape_time_seconds $(date +%s)"
|
echo "printer_scrape_time_seconds{} $(date +%s)" | add-labels "$url" "$serial"
|
||||||
|
|
||||||
echo '# HELP printer_scrape_duration_seconds Number of seconds spent scraping data from web interface.'
|
echo '# HELP printer_scrape_duration_seconds Number of seconds spent scraping data from web interface.'
|
||||||
echo '# TYPE printer_scrape_duration_seconds gauge'
|
echo '# TYPE printer_scrape_duration_seconds gauge'
|
||||||
printf 'printer_scrape_duration_seconds %0.3f\n' "$duration_s.$duration_ms"
|
printf 'printer_scrape_duration_seconds{} %0.3f\n' \
|
||||||
|
"$duration_s.$duration_ms" \
|
||||||
|
| add-labels "$url" "$serial"
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
|
Loading…
Reference in New Issue