@Override public PerHostPercentileTracker build() { return new PerHostPercentileTracker( highestTrackableLatencyMillis, numberOfSignificantValueDigits, minRecordedValues, intervalMs); } }
@Override public PerHostPercentileTracker.Builder builder() { return PerHostPercentileTracker.builder(defaultMaxLatency); } }
PerHostPercentileTracker tracker = builder().withInterval(1, TimeUnit.SECONDS).withMinRecordedValues(100).build(); tracker.onRegister(cluster0); tracker.update( hosts.get(0), statements.get(i % statements.size()), TimeUnit.NANOSECONDS.convert(i + 1, TimeUnit.MILLISECONDS)); tracker.update( hosts.get(1), statements.get(i % statements.size()), TimeUnit.NANOSECONDS.convert((i + 1) * 2, TimeUnit.MILLISECONDS)); tracker.update( hosts.get(2), statements.get(i % statements.size()), assertThat(tracker.getLatencyAtPercentile(hosts.get(0), null, null, i)).isEqualTo(i); assertThat(tracker.getLatencyAtPercentile(hosts.get(1), null, null, i)).isEqualTo(i * 2); assertThat(tracker.getLatencyAtPercentile(hosts.get(2), null, null, i)).isEqualTo(i * 3);
public CassandraService(CassandraModule.Config cassandraConfig) { PerHostPercentileTracker tracker = PerHostPercentileTracker.builderWithHighestTrackableLatencyMillis(SocketOptions.DEFAULT_READ_TIMEOUT_MILLIS + 500).build();
PerHostPercentileTracker tracker = builder().withInterval(1, TimeUnit.SECONDS).withMinRecordedValues(100).build(); tracker.onRegister(cluster0); tracker.update( hosts.get(0), statements.get(i % statements.size()), TimeUnit.NANOSECONDS.convert(i + 1, TimeUnit.MILLISECONDS)); tracker.update( hosts.get(1), statements.get(i % statements.size()), TimeUnit.NANOSECONDS.convert((i + 1) * 2, TimeUnit.MILLISECONDS)); tracker.update( hosts.get(2), statements.get(i % statements.size()), assertThat(tracker.getLatencyAtPercentile(hosts.get(0), null, null, i)).isEqualTo(i); assertThat(tracker.getLatencyAtPercentile(hosts.get(1), null, null, i)).isEqualTo(i * 2); assertThat(tracker.getLatencyAtPercentile(hosts.get(2), null, null, i)).isEqualTo(i * 3);
@Override public PerHostPercentileTracker build() { return new PerHostPercentileTracker(highestTrackableLatencyMillis, numberOfSignificantValueDigits, minRecordedValues, intervalMs); } }
@Override public PerHostPercentileTracker.Builder builder() { return PerHostPercentileTracker.builder(defaultMaxLatency); } }
@Override public PerHostPercentileTracker build() { return new PerHostPercentileTracker(highestTrackableLatencyMillis, numberOfSignificantValueDigits, minRecordedValues, intervalMs); } }
public static QueryLoggerConfiguration from(Configuration configuration) { QueryLoggerConfiguration.Builder builder = QueryLoggerConfiguration.builder(); Optional<Long> constantThreshold = getOptionalIntegerFromConf(configuration, "cassandra.query.logger.constant.threshold") .map(Long::valueOf); constantThreshold.ifPresent(builder::withConstantThreshold); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.logged.parameters") .ifPresent(builder::withMaxLoggedParameters); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.query.string.length") .ifPresent(builder::withMaxQueryStringLength); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.parameter.value.length") .ifPresent(builder::withMaxParameterValueLength); Optional<Double> percentileLatencyConf = getOptionalDoubleFromConf(configuration, "cassandra.query.slow.query.latency.threshold.percentile"); if (!percentileLatencyConf.isPresent() && !constantThreshold.isPresent()) { percentileLatencyConf = Optional.of(QueryLogger.DEFAULT_SLOW_QUERY_THRESHOLD_PERCENTILE); } percentileLatencyConf.ifPresent(slowQueryLatencyThresholdPercentile -> { PerHostPercentileTracker tracker = PerHostPercentileTracker .builder(CASSANDRA_HIGHEST_TRACKABLE_LATENCY_MILLIS) .build(); builder.withDynamicThreshold(tracker, slowQueryLatencyThresholdPercentile); }); return builder.build(); }
@Override public PerHostPercentileTracker build() { return new PerHostPercentileTracker(highestTrackableLatencyMillis, numberOfSignificantValueDigits, minRecordedValues, intervalMs); } }
public static QueryLoggerConfiguration from(Configuration configuration) { QueryLoggerConfiguration.Builder builder = QueryLoggerConfiguration.builder(); Optional<Long> constantThreshold = getOptionalIntegerFromConf(configuration, "cassandra.query.logger.constant.threshold") .map(Long::valueOf); constantThreshold.ifPresent(builder::withConstantThreshold); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.logged.parameters") .ifPresent(builder::withMaxLoggedParameters); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.query.string.length") .ifPresent(builder::withMaxQueryStringLength); getOptionalIntegerFromConf(configuration, "cassandra.query.logger.max.parameter.value.length") .ifPresent(builder::withMaxParameterValueLength); Optional<Double> percentileLatencyConf = getOptionalDoubleFromConf(configuration, "cassandra.query.slow.query.latency.threshold.percentile"); if (!percentileLatencyConf.isPresent() && !constantThreshold.isPresent()) { percentileLatencyConf = Optional.of(QueryLogger.DEFAULT_SLOW_QUERY_THRESHOLD_PERCENTILE); } percentileLatencyConf.ifPresent(slowQueryLatencyThresholdPercentile -> { PerHostPercentileTracker tracker = PerHostPercentileTracker .builder(CASSANDRA_HIGHEST_TRACKABLE_LATENCY_MILLIS) .build(); builder.withDynamicThreshold(tracker, slowQueryLatencyThresholdPercentile); }); return builder.build(); }