From 5e75df24b1a169bdf7f7e8920d8a450c97ad97b5 Mon Sep 17 00:00:00 2001 From: Marvin Preuss Date: Mon, 22 Nov 2021 12:32:42 +0100 Subject: [PATCH] feat: error metrics --- README.md | 33 +++++++++++++++++---------------- main.go | 3 +++ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index bb3fa29..e182a5a 100644 --- a/README.md +++ b/README.md @@ -116,19 +116,20 @@ You can specify a port for the iperf3 server target. If its not set, it will use ## Exposed metrics -| name | type | -| ---------------------------------------- | ----- | -| iperf3_download_sent_bits_per_second | gauge | -| iperf3_download_sent_seconds | gauge | -| iperf3_download_sent_bytes | gauge | -| iperf3_download_sent_retransmits | gauge | -| iperf3_download_received_bits_per_second | gauge | -| iperf3_download_received_seconds | gauge | -| iperf3_download_received_bytes | gauge | -| iperf3_upload_sent_bits_per_second | gauge | -| iperf3_upload_sent_seconds | gauge | -| iperf3_upload_sent_bytes | gauge | -| iperf3_upload_sent_retransmits | gauge | -| iperf3_upload_received_bits_per_second | gauge | -| iperf3_upload_received_seconds | gauge | -| iperf3_upload_received_bytes | gauge | +| name | type | +| ---------------------------------------- | ------- | +| iperf3_download_sent_bits_per_second | gauge | +| iperf3_download_sent_seconds | gauge | +| iperf3_download_sent_bytes | gauge | +| iperf3_download_sent_retransmits | gauge | +| iperf3_download_received_bits_per_second | gauge | +| iperf3_download_received_seconds | gauge | +| iperf3_download_received_bytes | gauge | +| iperf3_upload_sent_bits_per_second | gauge | +| iperf3_upload_sent_seconds | gauge | +| iperf3_upload_sent_bytes | gauge | +| iperf3_upload_sent_retransmits | gauge | +| iperf3_upload_received_bits_per_second | gauge | +| iperf3_upload_received_seconds | gauge | +| iperf3_upload_received_bytes | gauge | +| iperf3_errors | counter | diff --git a/main.go b/main.go index 3ee8291..012a1f0 100644 --- a/main.go +++ b/main.go @@ -89,6 +89,8 @@ var ( uploadReceivedBytes = metrics.NewFloatCounter("iperf3_upload_received_bytes") ) +var scrapeErrors = metrics.NewCounter("iperf3_errors") + //nolint:tagliatelle type iperfResult struct { End struct { @@ -255,6 +257,7 @@ func probeHandler(w http.ResponseWriter, r *http.Request) { // Extract port and host for target. t, err := NewTarget(trgt) if err != nil { + scrapeErrors.Inc() logger.Error().Err(err).Msg("could not determine target") http.Error(w, "could not determine target", http.StatusUnprocessableEntity) }