com.palantir.atlasdb.CassandraTopologyValidationMetrics Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of atlasdb-cassandra Show documentation
Show all versions of atlasdb-cassandra Show documentation
Palantir open source project
The newest version!
package com.palantir.atlasdb;
import com.codahale.metrics.Counter;
import com.codahale.metrics.Histogram;
import com.google.errorprone.annotations.CheckReturnValue;
import com.palantir.logsafe.Preconditions;
import com.palantir.tritium.metrics.registry.MetricName;
import com.palantir.tritium.metrics.registry.TaggedMetricRegistry;
/**
* Metrics which provide insight on the cassandra topology validation check.
*/
public final class CassandraTopologyValidationMetrics {
private static final String JAVA_VERSION = System.getProperty("java.version", "unknown");
private static final String LIBRARY_NAME = "atlasdb";
private static final String LIBRARY_VERSION = "0.1152.0";
private static final MetricName validationFailuresMetricName = MetricName.builder()
.safeName("com.palantir.atlasdb.cassandra.topology.validationFailures")
.putSafeTags("libraryName", LIBRARY_NAME)
.putSafeTags("libraryVersion", LIBRARY_VERSION)
.putSafeTags("javaVersion", JAVA_VERSION)
.build();
private static final MetricName validationLatencyMetricName = MetricName.builder()
.safeName("com.palantir.atlasdb.cassandra.topology.validationLatency")
.putSafeTags("libraryName", LIBRARY_NAME)
.putSafeTags("libraryVersion", LIBRARY_VERSION)
.putSafeTags("javaVersion", JAVA_VERSION)
.build();
private final TaggedMetricRegistry registry;
private CassandraTopologyValidationMetrics(TaggedMetricRegistry registry) {
this.registry = registry;
}
public static CassandraTopologyValidationMetrics of(TaggedMetricRegistry registry) {
return new CassandraTopologyValidationMetrics(Preconditions.checkNotNull(registry, "TaggedMetricRegistry"));
}
/**
* Count of total failures when performing topology validation.
*/
@CheckReturnValue
public Counter validationFailures() {
return registry.counter(validationFailuresMetricName());
}
public static MetricName validationFailuresMetricName() {
return validationFailuresMetricName;
}
/**
* Time taken to validate the topology.
*/
@CheckReturnValue
public Histogram validationLatency() {
return registry.histogram(validationLatencyMetricName());
}
public static MetricName validationLatencyMetricName() {
return validationLatencyMetricName;
}
@Override
public String toString() {
return "CassandraTopologyValidationMetrics{registry=" + registry + '}';
}
}