package com.codahale.metrics.health.jvm;

import com.codahale.metrics.health.HealthCheck;
import com.codahale.metrics.jvm.ThreadDeadlockDetector;

import java.util.Set;

A health check which returns healthy if no threads are deadlocked.
/** * A health check which returns healthy if no threads are deadlocked. */
public class ThreadDeadlockHealthCheck extends HealthCheck { private final ThreadDeadlockDetector detector;
Creates a new health check.
/** * Creates a new health check. */
public ThreadDeadlockHealthCheck() { this(new ThreadDeadlockDetector()); }
Creates a new health check with the given detector.
Params:
  • detector – a thread deadlock detector
/** * Creates a new health check with the given detector. * * @param detector a thread deadlock detector */
public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) { this.detector = detector; } @Override protected Result check() throws Exception { final Set<String> threads = detector.getDeadlockedThreads(); if (threads.isEmpty()) { return Result.healthy(); } return Result.unhealthy(threads.toString()); } }