All Projects → czerwonk → Ping_exporter

czerwonk / Ping_exporter

Licence: mit
Prometheus exporter for ICMP echo requests using https://github.com/digineo/go-ping

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ping exporter

Blackbox exporter
Blackbox prober exporter
Stars: ✭ 2,633 (+1864.93%)
Mutual labels:  icmp, prometheus, prometheus-exporter
Starlette exporter
Prometheus exporter for Starlette and FastAPI
Stars: ✭ 85 (-36.57%)
Mutual labels:  prometheus, prometheus-exporter
Sidekiq Prometheus Exporter
All the basic metrics of Sidekiq with pluggable contribs prepared for Prometheus
Stars: ✭ 129 (-3.73%)
Mutual labels:  prometheus, prometheus-exporter
Cassandra exporter
Apache Cassandra® metrics exporter for Prometheus
Stars: ✭ 133 (-0.75%)
Mutual labels:  prometheus, prometheus-exporter
Prometheus To Cloudwatch
Utility for scraping Prometheus metrics from a Prometheus client endpoint and publishing them to CloudWatch
Stars: ✭ 127 (-5.22%)
Mutual labels:  prometheus, prometheus-exporter
Systemd exporter
Exporter for systemd unit metrics
Stars: ✭ 82 (-38.81%)
Mutual labels:  prometheus, prometheus-exporter
Networkmanager
A powerful tool for managing networks and troubleshoot network problems!
Stars: ✭ 1,296 (+867.16%)
Mutual labels:  ping, icmp
Icmplib
Easily forge ICMP packets and make your own ping and traceroute.
Stars: ✭ 58 (-56.72%)
Mutual labels:  ping, icmp
Tomcat exporter
A Prometheus exporter for Apache Tomcat
Stars: ✭ 99 (-26.12%)
Mutual labels:  prometheus, prometheus-exporter
Jmeter Prometheus Plugin
A Prometheus Listener for Apache JMeter that exposes results in an http API
Stars: ✭ 101 (-24.63%)
Mutual labels:  prometheus, prometheus-exporter
Memcached exporter
Exports metrics from memcached servers for consumption by Prometheus.
Stars: ✭ 109 (-18.66%)
Mutual labels:  prometheus, prometheus-exporter
Windows exporter
Prometheus exporter for Windows machines
Stars: ✭ 1,230 (+817.91%)
Mutual labels:  prometheus, prometheus-exporter
Ansible Prometheus
Ansible playbook for installing Prometheus monitoring system, exporters such as: node, snmp, blackbox, thus alert manager and push gateway
Stars: ✭ 69 (-48.51%)
Mutual labels:  prometheus, prometheus-exporter
Script exporter
Prometheus exporter to execute scripts and collect metrics from the output or the exit status.
Stars: ✭ 84 (-37.31%)
Mutual labels:  prometheus, prometheus-exporter
Citrix Adc Metrics Exporter
Export metrics from Citrix ADC (NetScaler) to Prometheus
Stars: ✭ 67 (-50%)
Mutual labels:  prometheus, prometheus-exporter
Cloudprober
An active monitoring software to detect failures before your customers do.
Stars: ✭ 1,269 (+847.01%)
Mutual labels:  ping, prometheus
Jira Prometheus Exporter
Prometheus Exporter For JIRA
Stars: ✭ 113 (-15.67%)
Mutual labels:  prometheus, prometheus-exporter
Unifi exporter
Multiarch images for scraping Prometheus metrics from a Unifi Controller. Kubernetes / prometheus-operator compatible.
Stars: ✭ 54 (-59.7%)
Mutual labels:  prometheus, prometheus-exporter
Ebpf exporter
A Prometheus exporter which uses eBPF to measure block IO request latency / size
Stars: ✭ 56 (-58.21%)
Mutual labels:  prometheus, prometheus-exporter
Prometheus Hystrix
This is an implementation of a HystrixMetricsPublisher that publishes metrics using the Prometheus java client.
Stars: ✭ 91 (-32.09%)
Mutual labels:  prometheus, prometheus-exporter

ping_exporter

Test results Docker Build Statu Go Report Card

Prometheus exporter for ICMP echo requests using https://github.com/digineo/go-ping

This is a simple server that scrapes go-ping stats and exports them via HTTP for Prometheus consumption. The go-ping library is build and maintained by Digineo GmbH. For more information check the source code.

Getting Started

Config file

Targets can be specified in a YAML based config file:

targets:
  - 8.8.8.8
  - 8.8.4.4
  - 2001:4860:4860::8888
  - 2001:4860:4860::8844
  - google.com

dns:
  refresh: 2m15s
  nameserver: 1.1.1.1

ping:
  interval: 2s
  timeout: 3s
  history-size: 42
  payload-size: 120

Note: domains are resolved (regularly) to their corresponding A and AAAA records (IPv4 and IPv6). By default, ping_exporter uses the system resolver to translate domain names to IP addresses. You can override the resolver address by specifying the --dns.nameserver flag when starting the binary, e.g.

$ # use Cloudflare's public DNS server
$ ./ping_exporter --dns.nameserver=1.1.1.1:53 [other options]

Exported metrics

  • ping_rtt_best_ms: Best round trip time in millis
  • ping_rtt_worst_ms: Worst round trip time in millis
  • ping_rtt_mean_ms: Mean round trip time in millis
  • ping_rtt_std_deviation_ms: Standard deviation in millis
  • ping_loss_percent: Packet loss in percent

Each metric has labels ip (the target's IP address), ip_version (4 or 6, corresponding to the IP version), and target (the target's name).

Additionally, a ping_up metric reports whether the exporter is running (and in which version).

Different time unit

The *_ms metrics actually violate the recommendations by Prometheus, whereby time values should be expressed in seconds (not milliseconds).

To accomodate for this, we've added a command line switch to select the proper scale:

$ # keep using millis
$ ./ping_exporter --metrics.rttunit=ms [other options]
$ # use seconds instead
$ ./ping_exporter --metrics.rttunit=s [other options]
$ # use both millis and seconds
$ ./ping_exporter --metrics.rttunit=both [other options]

For the foreseeable future, the default is --metrics.rttunit=ms.

If you used the ping_exporter in the past, and want to migrate, start using --metrics.rttunit=both now. This gives you the opportunity to update all your alerts, dashboards, and other software depending on ms values to use proper scale (you "just" need to apply a factor of 1000 on everything). When you're ready, you just need to switch to --metrics.rttunit=s.

Deprecated metrics

  • ping_rtt_ms: Round trip trim in millis

This metric has a label type with one of the following values:

  • best denotes best round trip time
  • worst denotes worst round trip time
  • mean denotes mean round trip time
  • std_dev denotes standard deviation

These metrics are exported by default, but this may change with a future release of this exporter.

To ensure forward- or backward compatability, use the --metrics.deprecated flag:

$ # also export deprecated metrics
$ ./ping_exporter --metrics.deprecated=enable [other options]
$ # or omit deprecated metrics
$ ./ping_exporter --metrics.deprecated=disable [other options]

Shell

To run the exporter:

$ ./ping_exporter [options] target1 target2 ...

or

$ ./ping_exporter --config.path my-config-file [options]

Help on flags:

$ ./ping_exporter --help

Getting the results for testing via cURL:

$ curl http://localhost:9427/metrics

Docker

https://hub.docker.com/r/czerwonk/ping_exporter

To run the ping_exporter as a Docker container, run:

$ docker run -p 9427:9427 -v /path/to/config/directory:/config:ro --name ping_exporter czerwonk/ping_exporter

Contribute

Simply fork and create a pull-request. We'll try to respond in a timely fashion.

License

MIT License, Copyright (c) 2018 Philip Berndroth pberndro Daniel Czerwonk dan_nrw

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].