status-listener/

directory
v2.1.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2018 License: MIT

README

Status Listener Example

The IStatusListener interface allows you to hook into health check failures and recoveries as they occur. This example runs a dependency service, dependency.go, and a dependent service, service.go.

The web server in dependency.go will return a 200 status code for 10 contiguous requests, then return 500 for 5 contiguous requests. The request cycle then resets.

The web server in service.go uses go-health to check the dependency server. It also uses an implementation of IStatusListener, which includes functions

  • HealthCheckFailed(entry *health.State)
  • HealthCheckRecovered(entry *health.State, recordedFailures int64, failureDurationSeconds float64)

The function HealthCheckFailed is triggered when the health check fails for the first time. A count of contiguous failures will be kept until the dependency recovers. Once the dependency does recover, the function HealthCheckRecovered is triggered, which reports how many healthchecks failed, as well as how long (in seconds) the dependency was in an unhealthy state.

To run example

Within the project folder /examples/status_listener/dependency, run go run dependency.go on one terminal window, then from within /examples/status_listener/service, run go run service.go in another. You will observe the requests to the dependency, as well as the triggering and recovery of failed health checks.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL