io.reactivex.netty.server.ServerMetricsEvent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rx-netty Show documentation
Show all versions of rx-netty Show documentation
rx-netty developed by Netflix
/*
* Copyright 2014 Netflix, Inc.
*
* 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.reactivex.netty.server;
import io.reactivex.netty.metrics.AbstractMetricsEvent;
/**
* @author Nitesh Kant
*/
@SuppressWarnings("rawtypes")
public class ServerMetricsEvent extends AbstractMetricsEvent {
public enum EventType implements MetricEventType {
NewClientConnected(false, false, Void.class),
ConnectionHandlingStart(true, false, Void.class),
ConnectionHandlingSuccess(true, false, Void.class),
ConnectionHandlingFailed(true, true, Void.class),
ConnectionCloseStart(false, false, Void.class),
ConnectionCloseSuccess(true, false, Void.class),
ConnectionCloseFailed(true, true, Void.class),
/* Write events on underlying connection, this has no associated protocol, so it is raw bytes written. */
WriteStart(false, false, Long.class),
WriteSuccess(true, false, Long.class),
WriteFailed(true, true, Integer.class),
FlushStart(false, false, Void.class),
FlushSuccess(true, false, Void.class),
FlushFailed(true, true, Void.class),
/* Read events on the connection, this has no associated protocol, so it depicts raw bytes read. */
BytesRead(false, false, Integer.class)
;
private final boolean isTimed;
private final boolean isError;
private final Class> optionalDataType;
EventType(boolean isTimed, boolean isError, Class> optionalDataType) {
this.isTimed = isTimed;
this.isError = isError;
this.optionalDataType = optionalDataType;
}
@Override
public boolean isTimed() {
return isTimed;
}
@Override
public boolean isError() {
return isError;
}
@Override
public Class> getOptionalDataType() {
return optionalDataType;
}
}
public static final ServerMetricsEvent NEW_CLIENT_CONNECTED = from(EventType.NewClientConnected);
public static final ServerMetricsEvent CONNECTION_HANDLING_START = from(EventType.ConnectionHandlingStart);
public static final ServerMetricsEvent CONNECTION_HANDLING_SUCCESS = from(EventType.ConnectionHandlingSuccess);
public static final ServerMetricsEvent CONNECTION_HANDLING_FAILED = from(EventType.ConnectionHandlingFailed);
public static final ServerMetricsEvent CONNECTION_CLOSE_START = from(EventType.ConnectionCloseStart);
public static final ServerMetricsEvent CONNECTION_CLOSE_SUCCESS = from(EventType.ConnectionCloseSuccess);
public static final ServerMetricsEvent CONNECTION_CLOSE_FAILED = from(EventType.ConnectionCloseFailed);
public static final ServerMetricsEvent WRITE_START = from(EventType.WriteStart);
public static final ServerMetricsEvent WRITE_SUCCESS = from(EventType.WriteSuccess);
public static final ServerMetricsEvent WRITE_FAILED = from(EventType.WriteFailed);
public static final ServerMetricsEvent FLUSH_START = from(EventType.FlushStart);
public static final ServerMetricsEvent FLUSH_SUCCESS = from(EventType.FlushSuccess);
public static final ServerMetricsEvent FLUSH_FAILED = from(EventType.FlushFailed);
public static final ServerMetricsEvent BYTES_READ = from(EventType.BytesRead);
/*Always refer to as constants*/protected ServerMetricsEvent(T type, boolean isTimed, boolean isError) {
super(type, isTimed, isError);
}
private static ServerMetricsEvent from(EventType type) {
return new ServerMetricsEvent(type, type.isTimed(), type.isError());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy