Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 2.04 KB

HealthCheckManual.md

File metadata and controls

55 lines (37 loc) · 2.04 KB

Health Check support

Metrics also has the ability to centralize your service’s health checks with the metrics-healthchecks module.

Health check setup

Extend DefaultInstrumented to get access to the healthCheck builder:

import nl.grons.metrics4.scala.DefaultInstrumented

class ExampleWorker extends DefaultInstrumented {
  healthCheck("alive") { workerThreadIsActive() }
}

This creates and registers a health check named com.example.ExampleWorker.alive that is healthy when workerThreadIsActive() returns true, and unhealthy with the default message Health check failed when it returns false. You can override the unhealthy message as follows:

healthCheck("alive", unhealthyMessage = "Ouch!") { workerThreadIsActive() }

The code block may also return a Try, a Unit, a Future, an Either or a com.codahale.metrics.health.HealthCheck.Result. In these cases the unhealthyMessage parameter is always ignored.

For more details see the scaladoc in CheckedBuilder.

See custom registries to see how how to configure a custom health check registry.

Health check names

Each health check has a unique name. In metrics-scala the name starts with a name derived from the owner class. The owner class is the class that extends the DefaultInstrumented trait.

The health check name is build from:

  • Metric base name By default this is set to the owner class name (e.g., com.example.proj.auth.SessionStore).
  • Name: A short name describing the health check (e.g., alive).

The metric base name can be overridden as follows:

import nl.grons.metrics4.scala.{DefaultInstrumented, MetricName}

class Example extends DefaultInstrumented {
  override lazy val metricBaseName = MetricName("Overridden.Base.Name")
  ....
}

Previous: Manual Up: Manual Next: Instrumenting Futures