Package io.grpc.xds
Class FaultFilter
- java.lang.Object
-
- io.grpc.xds.FaultFilter
-
- All Implemented Interfaces:
Filter
,Filter.ClientInterceptorBuilder
final class FaultFilter extends java.lang.Object implements Filter, Filter.ClientInterceptorBuilder
HttpFault filter implementation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
FaultFilter.DelayInjectedCall<ReqT,RespT>
ADelayedClientCall
with a fixed delay.private class
FaultFilter.FailingClientCall<ReqT,RespT>
An implementation ofClientCall
that fails when started.-
Nested classes/interfaces inherited from interface io.grpc.xds.Filter
Filter.ClientInterceptorBuilder, Filter.FilterConfig, Filter.NamedFilterConfig, Filter.ServerInterceptorBuilder
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicLong
activeFaultCounter
(package private) static io.grpc.Metadata.Key<java.lang.String>
HEADER_ABORT_GRPC_STATUS_KEY
(package private) static io.grpc.Metadata.Key<java.lang.String>
HEADER_ABORT_HTTP_STATUS_KEY
(package private) static io.grpc.Metadata.Key<java.lang.String>
HEADER_ABORT_PERCENTAGE_KEY
(package private) static io.grpc.Metadata.Key<java.lang.String>
HEADER_DELAY_KEY
(package private) static io.grpc.Metadata.Key<java.lang.String>
HEADER_DELAY_PERCENTAGE_KEY
(package private) static FaultFilter
INSTANCE
private ThreadSafeRandom
random
(package private) static java.lang.String
TYPE_URL
-
Constructor Summary
Constructors Constructor Description FaultFilter(ThreadSafeRandom random, java.util.concurrent.atomic.AtomicLong activeFaultCounter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description io.grpc.ClientInterceptor
buildClientInterceptor(Filter.FilterConfig config, Filter.FilterConfig overrideConfig, io.grpc.LoadBalancer.PickSubchannelArgs args, java.util.concurrent.ScheduledExecutorService scheduler)
private io.grpc.Status
determineFaultAbortStatus(FaultConfig.FaultAbort faultAbort, io.grpc.Metadata headers)
private java.lang.Long
determineFaultDelayNanos(FaultConfig.FaultDelay faultDelay, io.grpc.Metadata headers)
private static io.grpc.Status
getAbortStatusWithDescription(io.grpc.Status abortStatus)
private static int
getRatePerMillion(FaultConfig.FractionalPercent percent)
(package private) static ConfigOrError<FaultConfig.FaultAbort>
parseFaultAbort(FaultAbort faultAbort)
private static FaultConfig.FaultDelay
parseFaultDelay(FaultDelay faultDelay)
ConfigOrError<FaultConfig>
parseFilterConfig(com.google.protobuf.Message rawProtoMessage)
Parses the top-level filter config from raw proto message.ConfigOrError<FaultConfig>
parseFilterConfigOverride(com.google.protobuf.Message rawProtoMessage)
Parses the per-filter override filter config from raw proto message.private static ConfigOrError<FaultConfig>
parseHttpFault(HTTPFault httpFault)
private static FaultConfig.FractionalPercent
parsePercent(FractionalPercent proto)
java.lang.String[]
typeUrls()
The proto message types supported by this filter.
-
-
-
Field Detail
-
INSTANCE
static final FaultFilter INSTANCE
-
HEADER_DELAY_KEY
static final io.grpc.Metadata.Key<java.lang.String> HEADER_DELAY_KEY
-
HEADER_DELAY_PERCENTAGE_KEY
static final io.grpc.Metadata.Key<java.lang.String> HEADER_DELAY_PERCENTAGE_KEY
-
HEADER_ABORT_HTTP_STATUS_KEY
static final io.grpc.Metadata.Key<java.lang.String> HEADER_ABORT_HTTP_STATUS_KEY
-
HEADER_ABORT_GRPC_STATUS_KEY
static final io.grpc.Metadata.Key<java.lang.String> HEADER_ABORT_GRPC_STATUS_KEY
-
HEADER_ABORT_PERCENTAGE_KEY
static final io.grpc.Metadata.Key<java.lang.String> HEADER_ABORT_PERCENTAGE_KEY
-
TYPE_URL
static final java.lang.String TYPE_URL
- See Also:
- Constant Field Values
-
random
private final ThreadSafeRandom random
-
activeFaultCounter
private final java.util.concurrent.atomic.AtomicLong activeFaultCounter
-
-
Constructor Detail
-
FaultFilter
FaultFilter(ThreadSafeRandom random, java.util.concurrent.atomic.AtomicLong activeFaultCounter)
-
-
Method Detail
-
typeUrls
public java.lang.String[] typeUrls()
Description copied from interface:Filter
The proto message types supported by this filter. A filter will be registered by each of its supported message types.
-
parseFilterConfig
public ConfigOrError<FaultConfig> parseFilterConfig(com.google.protobuf.Message rawProtoMessage)
Description copied from interface:Filter
Parses the top-level filter config from raw proto message. The message may be either aAny
or aStruct
.- Specified by:
parseFilterConfig
in interfaceFilter
-
parseHttpFault
private static ConfigOrError<FaultConfig> parseHttpFault(HTTPFault httpFault)
-
parseFaultDelay
private static FaultConfig.FaultDelay parseFaultDelay(FaultDelay faultDelay)
-
parseFaultAbort
static ConfigOrError<FaultConfig.FaultAbort> parseFaultAbort(FaultAbort faultAbort)
-
parsePercent
private static FaultConfig.FractionalPercent parsePercent(FractionalPercent proto)
-
parseFilterConfigOverride
public ConfigOrError<FaultConfig> parseFilterConfigOverride(com.google.protobuf.Message rawProtoMessage)
Description copied from interface:Filter
Parses the per-filter override filter config from raw proto message. The message may be either aAny
or aStruct
.- Specified by:
parseFilterConfigOverride
in interfaceFilter
-
buildClientInterceptor
@Nullable public io.grpc.ClientInterceptor buildClientInterceptor(Filter.FilterConfig config, @Nullable Filter.FilterConfig overrideConfig, io.grpc.LoadBalancer.PickSubchannelArgs args, java.util.concurrent.ScheduledExecutorService scheduler)
- Specified by:
buildClientInterceptor
in interfaceFilter.ClientInterceptorBuilder
-
getAbortStatusWithDescription
private static io.grpc.Status getAbortStatusWithDescription(io.grpc.Status abortStatus)
-
determineFaultDelayNanos
@Nullable private java.lang.Long determineFaultDelayNanos(FaultConfig.FaultDelay faultDelay, io.grpc.Metadata headers)
-
determineFaultAbortStatus
@Nullable private io.grpc.Status determineFaultAbortStatus(FaultConfig.FaultAbort faultAbort, io.grpc.Metadata headers)
-
getRatePerMillion
private static int getRatePerMillion(FaultConfig.FractionalPercent percent)
-
-