io.streamnative.pulsar.handlers.kop.stats.NullStatsLogger Maven / Gradle / Ivy
Show all versions of pulsar-protocol-handler-kafka Show documentation
/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.streamnative.pulsar.handlers.kop.stats;
import java.util.concurrent.TimeUnit;
import org.apache.bookkeeper.stats.Counter;
import org.apache.bookkeeper.stats.Gauge;
import org.apache.bookkeeper.stats.OpStatsData;
import org.apache.bookkeeper.stats.OpStatsLogger;
/**
* A no-op {@code StatsLogger}.
*
* Metrics are not recorded, making this receiver useful in unit tests and as defaults in
* situations where metrics are not strictly required.
*/
public class NullStatsLogger implements StatsLogger {
public static final NullStatsLogger INSTANCE = new NullStatsLogger();
/**
* A no-op {@code OpStatsLogger}.
*/
static class NullOpStatsLogger implements OpStatsLogger {
private final OpStatsData nullOpStats =
new OpStatsData(0, 0, 0, new long[6]);
@Override
public void registerFailedEvent(long eventLatency, TimeUnit unit) {
// nop
}
@Override
public void registerSuccessfulEvent(long eventLatency, TimeUnit unit) {
// nop
}
@Override
public void registerSuccessfulValue(long value) {
// nop
}
@Override
public void registerFailedValue(long value) {
// nop
}
@Override
public OpStatsData toOpStatsData() {
return nullOpStats;
}
@Override
public void clear() {
// nop
}
}
private static final NullOpStatsLogger nullOpStatsLogger = new NullOpStatsLogger();
/**
* A no-op {@code Counter}.
*/
static class NullCounter implements Counter {
@Override
public void clear() {
// nop
}
@Override
public void inc() {
// nop
}
@Override
public void dec() {
// nop
}
@Override
public void addCount(long delta) {
// nop
}
@Override
public void addLatency(long l, TimeUnit timeUnit) {
// nop
}
@Override
public Long get() {
return 0L;
}
}
private static final NullCounter nullCounter = new NullStatsLogger.NullCounter();
@Override
public OpStatsLogger getOpStatsLogger(String name) {
return nullOpStatsLogger;
}
@Override
public Counter getCounter(String name) {
return nullCounter;
}
@Override
public void registerGauge(String name, Gauge gauge) {
// nop
}
@Override
public void unregisterGauge(String name, Gauge gauge) {
// nop
}
@Override
public StatsLogger scope(String name) {
return this;
}
@Override
public void removeScope(String name, StatsLogger statsLogger) {
// nop
}
}