Giter Club home page Giter Club logo

iperf3_exporter's People

Contributors

edgard avatar himura2la avatar matejbizjak avatar morganyandow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iperf3_exporter's Issues

Feature Request - Export iperf retransmits / error

Would it be possible to add the iperf retransmit / errors to prometheus as well? I see it in the metrics page but not my prometheus instance.

# HELP iperf3_exporter_errors_total Errors raised by the iperf3 exporter.
# TYPE iperf3_exporter_errors_total counter
iperf3_exporter_errors_total 10

cannot get iperf3 metrics

# HELP iperf3_success Was the last iperf3 probe successful.
# TYPE iperf3_success gauge
iperf3_success 0

metrics not collected when server is down

  • build user: "ecastro"
  • build date: "2020-02-25T18:49:45Z"
  • go version: go1.13.8

When collecting data from a server, the iperf3_received_bytes & iperf3_received_seconds are stored in prometheus but if the server is stopped or goes down (or connectivity issues) these metrics are no longer stored in prometheus, only the "e.success" metric is stored with a 0 value.

The problem with this behaviour is that it creates gaps with no measure at all. I believe it would be better to include the
iperf3_received_bytes, iperf3_received_seconds both with 0 value.

if err != nil {
     ch <- prometheus.MustNewConstMetric(e.success, prometheus.GaugeValue, 0)
     ch <- prometheus.MustNewConstMetric(e.receivedSeconds, prometheus.GaugeValue, 0) //iperf3_received_bytes = 0
     ch <- prometheus.MustNewConstMetric(e.receivedBytes, prometheus.GaugeValue, 1)//iperf3_received_seconds = 1
     iperfErrors.Inc()
     log.Errorf("Failed to run iperf3: %s", err)
     return
}

Check the image attached, in red the resulting measure if the iperf3_received_bytes, iperf3_received_seconds are always stored
image

Timeout cannot go above 30 seconds

I tried to set an duration of 60 seconds (thanks for the hint from earlier), but cannot get the timeout to go above 30 seconds. It looks like you have code to limit it to 30 seconds on line 193. Is there a reason for this? Thanks!

can't get /probe metrics from iperf3

Browser message:

# HELP iperf3_success Was the last iperf3 probe successful.
# TYPE iperf3_success gauge
iperf3_success 0

image

Log of container:

ben@k8s-worker:~/Desktop/test$ sudo docker logs 198b3035030f
time="2024-05-11T13:28:03Z" level=info msg="Starting iperf3 exporter(version=0.1.3, branch=v0.1.3, revision=3ec09efe6175e6a8eab46e5c762288a922a29f5c)" source="iperf3_exporter.go:218"
time="2024-05-11T13:28:03Z" level=info msg="Build context(go=go1.13.8, user=\"ecastro\", date=\"2020-02-25T18:49:55Z\")" source="iperf3_exporter.go:219"
time="2024-05-11T13:28:03Z" level=info msg="Listening on :9579" source="iperf3_exporter.go:248"
time="2024-05-11T14:39:56Z" level=error msg="Failed to run iperf3: signal: killed" source="iperf3_exporter.go:117"
time="2024-05-11T14:43:47Z" level=error msg="Failed to run iperf3: signal: killed" source="iperf3_exporter.go:117"
time="2024-05-12T07:31:42Z" level=error msg="Failed to run iperf3: exit status 1" source="iperf3_exporter.go:117"
time="2024-05-12T07:31:45Z" level=error msg="Failed to run iperf3: exit status 1" source="iperf3_exporter.go:117"

image

Error message of container:

ben@k8s-worker:~/Desktop/test$ sudo docker exec -it 198b3035030f sh
/ # iperf3_exporter --log.level=debug 
INFO[0000] Starting iperf3 exporter(version=0.1.3, branch=v0.1.3, revision=3ec09efe6175e6a8eab46e5c762288a922a29f5c)  source="iperf3_exporter.go:218"
INFO[0000] Build context(go=go1.13.8, user="ecastro", date="2020-02-25T18:49:55Z")  source="iperf3_exporter.go:219"
INFO[0000] Listening on :9579                            source="iperf3_exporter.go:248"
FATA[0000] listen tcp :9579: bind: address already in use  source="iperf3_exporter.go:249"
/ # 

image

Bitrate log

Hi Edgard,

I would like to know if there is a way to log directly the bitrate that is normally shown by iperf3 logs, instead of the bit transferred and the duration. Is it possible to include it easily in the code? Would appreciate some tips for that.

Thanks!

Support reverse mode

It would be nice to collect data not only for upload speed, but also for download speed (-R iperf3 parameter)

Specify Duration for Iperf test tor un

I looked at the code (do not know Golang that well) and it looks like you have the ability to pass in var for iperf to run for different lengths; for example say I want to run each test for 60 seconds. I dont know if i'm missing how to pass it via CLI or Prometheus config or if its just a feature request. It would be very helpful if I could modify it with a parameter. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.