
org.opensearch.migrations.replay.tracing.IReplayContexts Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trafficReplayer Show documentation
Show all versions of trafficReplayer Show documentation
Everything opensearch migrations
package org.opensearch.migrations.replay.tracing;
import java.time.Instant;
import org.opensearch.migrations.replay.datatypes.ISourceTrafficChannelKey;
import org.opensearch.migrations.replay.datatypes.ITrafficStreamKey;
import org.opensearch.migrations.replay.datatypes.UniqueReplayerRequestKey;
import org.opensearch.migrations.tracing.IScopedInstrumentationAttributes;
import org.opensearch.migrations.tracing.IWithTypedEnclosingScope;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.AttributesBuilder;
public interface IReplayContexts {
class ActivityNames {
private ActivityNames() {}
public static final String CHANNEL = "channel";
public static final String TCP_CONNECTION = "tcpConnection";
public static final String RECORD_LIFETIME = "recordLifetime";
public static final String TRAFFIC_STREAM_LIFETIME = "trafficStreamLifetime";
public static final String HTTP_TRANSACTION = "httpTransaction";
public static final String ACCUMULATING_REQUEST = "accumulatingRequest";
public static final String ACCUMULATING_RESPONSE = "accumulatingResponse";
public static final String TRANSFORMATION = "transformation";
public static final String SCHEDULED = "scheduled";
public static final String TARGET_TRANSACTION = "targetTransaction";
public static final String REQUEST_CONNECTING = "requestConnecting";
public static final String REQUEST_SENDING = "requestSending";
public static final String WAITING_FOR_RESPONSE = "waitingForResponse";
public static final String RECEIVING_RESPONSE = "receivingResponse";
public static final String TUPLE_COMPARISON = "comparingResults";
}
class MetricNames {
private MetricNames() {}
public static final String KAFKA_RECORD_READ = "kafkaRecordsRead";
public static final String KAFKA_BYTES_READ = "kafkaBytesRead";
public static final String TRAFFIC_STREAMS_READ = "trafficStreamsRead";
public static final String TRANSFORM_HEADER_PARSE = "parsedHeader";
public static final String TRANSFORM_PAYLOAD_PARSE_REQUIRED = "parsedPayload";
public static final String TRANSFORM_PAYLOAD_PARSE_SUCCESS = "parsedPayloadSuccess";
public static final String TRANSFORM_JSON_REQUIRED = "transformedJsonRequired";
public static final String TRANSFORM_JSON_SUCCEEDED = "transformedJsonSucceeded";
public static final String TRANSFORM_TEXT_SUCCEEDED = "transformedTextSucceeded";
public static final String TRANSFORM_TEXT_FAILED = "transformedTextFailed";
public static final String TRANSFORM_PAYLOAD_BINARY = "transformedPayloadBinary";
public static final String TRANSFORM_PAYLOAD_BYTES_IN = "originalPayloadBytesIn";
public static final String TRANSFORM_UNCOMPRESSED_BYTES_IN = "uncompressedBytesIn";
public static final String TRANSFORM_UNCOMPRESSED_BYTES_OUT = "uncompressedBytesOut";
public static final String TRANSFORM_FINAL_PAYLOAD_BYTES_OUT = "finalPayloadBytesOut";
public static final String TRANSFORM_SUCCESS = "transformSuccess";
public static final String TRANSFORM_SKIPPED = "transformSkipped";
public static final String TRANSFORM_ERROR = "transformError";
public static final String TRANSFORM_BYTES_IN = "transformBytesIn";
public static final String TRANSFORM_BYTES_OUT = "transformBytesOut";
public static final String TRANSFORM_CHUNKS_IN = "transformChunksIn";
public static final String TRANSFORM_CHUNKS_OUT = "transformChunksOut";
public static final String NETTY_SCHEDULE_LAG = "scheduleLag";
public static final String NUM_REQUEST_RETRIES = "numRetriedRequests";
public static final String SOURCE_TO_TARGET_REQUEST_LAG = "lagBetweenSourceAndTargetRequests";
public static final String ACTIVE_CHANNELS_YET_TO_BE_FULLY_DISCARDED = "activeReplayerChannels";
public static final String NONRETRYABLE_CONNECTION_FAILURES = "nonRetryableConnectionFailures";
public static final String ACTIVE_TARGET_CONNECTIONS = "activeTargetConnections";
public static final String CONNECTIONS_OPENED = "connectionsOpened";
public static final String CONNECTIONS_CLOSED = "connectionsClosedCount";
public static final String BYTES_WRITTEN_TO_TARGET = "bytesWrittenToTarget";
public static final String BYTES_READ_FROM_TARGET = "bytesReadFromTarget";
public static final String TUPLE_COMPARISON = "tupleComparison";
}
interface IAccumulationScope extends IScopedInstrumentationAttributes {}
interface IChannelKeyContext
extends
IAccumulationScope,
org.opensearch.migrations.tracing.commoncontexts.IConnectionContext {
String ACTIVITY_NAME = ActivityNames.CHANNEL;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
// do not add this as a property
// because its components are already being added in the IConnectionContext implementation
ISourceTrafficChannelKey getChannelKey();
default String getConnectionId() {
return getChannelKey().getConnectionId();
}
default String getNodeId() {
return getChannelKey().getNodeId();
}
ISocketContext createSocketContext();
void addFailedChannelCreation();
}
interface ISocketContext extends IAccumulationScope, IWithTypedEnclosingScope {
public static final String ACTIVITY_NAME = ActivityNames.TCP_CONNECTION;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IKafkaRecordContext extends IAccumulationScope, IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.RECORD_LIFETIME;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
static final AttributeKey RECORD_ID_KEY = AttributeKey.stringKey("recordId");
String getRecordId();
@Override
default AttributesBuilder fillAttributesForSpansBelow(AttributesBuilder builder) {
return IAccumulationScope.super.fillAttributesForSpansBelow(builder.put(RECORD_ID_KEY, getRecordId()));
}
ITrafficStreamsLifecycleContext createTrafficLifecyleContext(ITrafficStreamKey tsk);
}
interface ITrafficStreamsLifecycleContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.TRAFFIC_STREAM_LIFETIME;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
ITrafficStreamKey getTrafficStreamKey();
IChannelKeyContext getChannelKeyContext();
default String getConnectionId() {
return getChannelKey().getConnectionId();
}
default ISourceTrafficChannelKey getChannelKey() {
return getChannelKeyContext().getChannelKey();
}
IReplayerHttpTransactionContext createHttpTransactionContext(
UniqueReplayerRequestKey requestKey,
Instant sourceTimestamp
);
}
interface IReplayerHttpTransactionContext
extends
org.opensearch.migrations.tracing.commoncontexts.IHttpTransactionContext,
IAccumulationScope,
IWithTypedEnclosingScope {
AttributeKey REPLAYER_REQUEST_INDEX_KEY = AttributeKey.longKey("replayerRequestIndex");
String ACTIVITY_NAME = ActivityNames.HTTP_TRANSACTION;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
UniqueReplayerRequestKey getReplayerRequestKey();
IChannelKeyContext getChannelKeyContext();
Instant getTimeOfOriginalRequest();
default String getConnectionId() {
return getChannelKey().getConnectionId();
}
default ISourceTrafficChannelKey getChannelKey() {
return getChannelKeyContext().getChannelKey();
}
default long getSourceRequestIndex() {
return getReplayerRequestKey().getSourceRequestIndex();
}
default long replayerRequestIndex() {
return getReplayerRequestKey().getReplayerRequestIndex();
}
@Override
default AttributesBuilder fillAttributesForSpansBelow(AttributesBuilder builder) {
return org.opensearch.migrations.tracing.commoncontexts.IHttpTransactionContext.super.fillAttributesForSpansBelow(
builder
).put(REPLAYER_REQUEST_INDEX_KEY, replayerRequestIndex());
}
IRequestAccumulationContext createRequestAccumulationContext();
IResponseAccumulationContext createResponseAccumulationContext();
IRequestTransformationContext createTransformationContext();
IScheduledContext createScheduledContext(Instant timestamp);
ITargetRequestContext createTargetRequestContext();
ITupleHandlingContext createTupleContext();
}
interface IRequestAccumulationContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.ACCUMULATING_REQUEST;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IResponseAccumulationContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.ACCUMULATING_RESPONSE;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IRequestTransformationContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.TRANSFORMATION;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
void onHeaderParse();
void onPayloadParse();
void onPayloadParseSuccess();
void onJsonPayloadParseRequired();
void onJsonPayloadParseSucceeded();
void onTextPayloadParseSucceeded();
void onTextPayloadParseFailed();
void onPayloadSetBinary();
void onPayloadBytesIn(int inputSize);
void onUncompressedBytesIn(int inputSize);
void onUncompressedBytesOut(int inputSize);
void onFinalBytesOut(int outputSize);
void onTransformSuccess();
void onTransformSkip();
void onTransformFailure();
void aggregateInputChunk(int sizeInBytes);
void aggregateOutputChunk(int sizeInBytes);
}
interface IScheduledContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.SCHEDULED;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface ITargetRequestContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.TARGET_TRANSACTION;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
void onBytesSent(int size);
void onBytesReceived(int size);
IRequestConnectingContext createHttpConnectingContext();
IRequestSendingContext createHttpSendingContext();
IWaitingForHttpResponseContext createWaitingForResponseContext();
IReceivingHttpResponseContext createHttpReceivingContext();
}
interface IRequestConnectingContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.REQUEST_CONNECTING;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IRequestSendingContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.REQUEST_SENDING;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IWaitingForHttpResponseContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.WAITING_FOR_RESPONSE;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface IReceivingHttpResponseContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.RECEIVING_RESPONSE;
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
}
interface ITupleHandlingContext
extends
IAccumulationScope,
IWithTypedEnclosingScope {
String ACTIVITY_NAME = ActivityNames.TUPLE_COMPARISON;
AttributeKey SOURCE_STATUS_CODE_KEY = AttributeKey.longKey("sourceStatusCode");
AttributeKey TARGET_STATUS_CODE_KEY = AttributeKey.longKey("targetStatusCode");
AttributeKey STATUS_CODE_MATCH_KEY = AttributeKey.booleanKey("statusCodesMatch");
AttributeKey METHOD_KEY = AttributeKey.stringKey("method");
AttributeKey HTTP_VERSION_KEY = AttributeKey.stringKey("version"); // for the span, not metric
AttributeKey ENDPOINT_KEY = AttributeKey.stringKey("endpoint"); // for the span, not metric
@Override
default String getActivityName() {
return ACTIVITY_NAME;
}
void setSourceStatus(Integer sourceStatus);
void setTargetStatus(Integer targetStatus);
void setMethod(String method);
void setEndpoint(String endpointUrl);
void setHttpVersion(String string);
default UniqueReplayerRequestKey getReplayerRequestKey() {
return getLogicalEnclosingScope().getReplayerRequestKey();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy