package org.kairosdb.core.health;
import com.codahale.metrics.health.HealthCheck;
import com.google.inject.Inject;
import org.kairosdb.core.datastore.Datastore;
import org.kairosdb.core.exception.DatastoreException;
import static com.google.common.base.Preconditions.checkNotNull;
public class DatastoreQueryHealthCheck extends HealthCheck implements HealthStatus
{
static final String NAME = "Datastore-Query";
private final Datastore datastore;
@Inject
public DatastoreQueryHealthCheck(Datastore datastore)
{
this.datastore = checkNotNull(datastore);
}
@Override
public String getName()
{
return NAME;
}
@Override
protected Result check() throws Exception
{
try
{
datastore.getMetricNames();
return Result.healthy();
}
catch (DatastoreException e)
{
return Result.unhealthy(e);
}
}
}