package com.meltmedia.dropwizard.etcd.json; import java.util.List; import com.codahale.metrics.health.HealthCheck; import com.meltmedia.dropwizard.etcd.json.WatchService.Watch; public class WatchServiceHealthCheck extends HealthCheck { private WatchService watchService; public WatchServiceHealthCheck( WatchService watchService ) { this.watchService = watchService; } @Override protected Result check() throws Exception { List<Watch> watchers = watchService.outOfSyncWatchers(); if( watchers.isEmpty() ) { return Result.healthy("all watches synchronized"); } else { return Result.unhealthy("%d unsynchronized watches", watchers.size()); } } }