Skip to content

Observer is a tool that runs on blackbox probes in our network to e2e test our services.

Notifications You must be signed in to change notification settings

dhtech/observer

Repository files navigation

observer

A lightweight network observer written in Go that monitors network interfaces, performs ICMP and DNS health checks, and exposes Prometheus metrics.

features

  • Periodically samples DHCPv4 and DHCPv6 addresses on a specified interface.
  • Performs ICMP pings to one or more target hosts.
  • Performs DNS health checks for specified DNS servers and query names.
  • Dynamically adds and removes IP addresses on the interface during checks.
  • Exposes Prometheus metrics via an HTTP endpoint.
  • Supports toggling IPv4 or IPv6 monitoring independently.
  • Verbose logging for debugging and operational insight.

installation

git clone [email protected]:dhtech/observer.git cd observer go build . ./observer

configuration

FlagDefaultDescription
-interface""Network interface to operate on
-icmp-targets""Comma-separated list of ICMP targets
-icmp-count3Number of ICMP packets to send per target
-interval5sInterval for collecting Prometheus metrics
-verbosefalseEnable verbose logging
-disable4falseDisable all IPv4 client behavior (DHCPv4 & ICMPv4)
-disable6falseDisable all IPv6 client behavior (DHCPv6 & ICMPv6)
-qnamehealthcheck.event.dreamhack.se.DNS health check query name
-dns""Comma-separated DNS servers to probe
-host-port9023HTTP port to serve Prometheus metrics

example:

./observer \ -interface eth0 \ -icmp-targets 8.8.8.8,1.1.1.1 \ -icmp-count 5 \ -dns 8.8.8.8,1.1.1.1 \ -interval 10s \ -verbose

About

Observer is a tool that runs on blackbox probes in our network to e2e test our services.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages