accesslogv3

package
v0.0.0-...-634b83c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NONE                                 = "-"
	DOWNSTREAM_CONNECTION_TERMINATION    = "DC"
	FAILED_LOCAL_HEALTH_CHECK            = "LH"
	NO_HEALTHY_UPSTREAM                  = "UH"
	UPSTREAM_REQUEST_TIMEOUT             = "UT"
	LOCAL_RESET                          = "LR"
	UPSTREAM_REMOTE_RESET                = "UR"
	UPSTREAM_CONNECTION_FAILURE          = "UF"
	UPSTREAM_CONNECTION_TERMINATION      = "UC"
	UPSTREAM_OVERFLOW                    = "UO"
	UPSTREAM_RETRY_LIMIT_EXCEEDED        = "URX"
	NO_ROUTE_FOUND                       = "NR"
	DELAY_INJECTED                       = "DI"
	FAULT_INJECTED                       = "FI"
	RATE_LIMITED                         = "RL"
	UNAUTHORIZED_EXTERNAL_SERVICE        = "UAEX"
	RATELIMIT_SERVICE_ERROR              = "RLSE"
	STREAM_IDLE_TIMEOUT                  = "SI"
	INVALID_ENVOY_REQUEST_HEADERS        = "IH"
	DOWNSTREAM_PROTOCOL_ERROR            = "DPE"
	UPSTREAM_MAX_STREAM_DURATION_REACHED = "UMSDR"
	RESPONSE_FROM_CACHE_FILTER           = "RFCF"
	NO_FILTER_CONFIG_FOUND               = "NFCF"
	DURATION_TIMEOUT                     = "DT"
	UPSTREAM_PROTOCOL_ERROR              = "UPE"
	NO_CLUSTER_FOUND                     = "NC"
	OVERLOAD_MANAGER                     = "OM"
	DNS_FAIL                             = "DF"
)
View Source
const (
	// Local server healthcheck failed.
	FailedLocalHealthCheck = ResponseFlags_Encoded(0x1)
	// No healthy upstream.
	NoHealthyUpstream = ResponseFlags_Encoded(0x2)
	// Request timeout on upstream.
	UpstreamRequestTimeout = ResponseFlags_Encoded(0x4)
	// Local codec level reset was sent on the stream.
	LocalReset = ResponseFlags_Encoded(0x8)
	// Remote codec level reset was received on the stream.
	UpstreamRemoteReset = ResponseFlags_Encoded(0x10)
	// Local reset by a connection pool due to an initial connection failure.
	UpstreamConnectionFailure = ResponseFlags_Encoded(0x20)
	// If the stream was locally reset due to connection termination.
	UpstreamConnectionTermination = ResponseFlags_Encoded(0x40)
	// The stream was reset because of a resource overflow.
	UpstreamOverflow = ResponseFlags_Encoded(0x80)
	// No route found for a given request.
	NoRouteFound = ResponseFlags_Encoded(0x100)
	// Request was delayed before proxying.
	DelayInjected = ResponseFlags_Encoded(0x200)
	// Abort with error code was injected.
	FaultInjected = ResponseFlags_Encoded(0x400)
	// Request was ratelimited locally by rate limit filter.
	RateLimited = ResponseFlags_Encoded(0x800)
	// Request was unauthorized by external authorization service.
	UnauthorizedExternalService = ResponseFlags_Encoded(0x1000)
	// Unable to call Ratelimit service.
	RateLimitServiceError = ResponseFlags_Encoded(0x2000)
	// If the stream was reset due to a downstream connection termination.
	DownstreamConnectionTermination = ResponseFlags_Encoded(0x4000)
	// Exceeded upstream retry limit.
	UpstreamRetryLimitExceeded = ResponseFlags_Encoded(0x8000)
	// Request hit the stream idle timeout, triggering a 408.
	StreamIdleTimeout = ResponseFlags_Encoded(0x10000)
	// Request specified x-envoy-* header values that failed strict header checks.
	InvalidEnvoyRequestHeaders = ResponseFlags_Encoded(0x20000)
	// Downstream request had an HTTP protocol error
	DownstreamProtocolError = ResponseFlags_Encoded(0x40000)
	// Upstream request reached to user defined max stream duration.
	UpstreamMaxStreamDurationReached = ResponseFlags_Encoded(0x80000)
	// True if the response was served from an Envoy cache filter.
	ResponseFromCacheFilter = ResponseFlags_Encoded(0x100000)
	// Filter config was not received within the permitted warming deadline.
	NoFilterConfigFound = ResponseFlags_Encoded(0x200000)
	// Request or connection exceeded the downstream connection duration.
	DurationTimeout = ResponseFlags_Encoded(0x400000)
	// Upstream response had an HTTP protocol error
	UpstreamProtocolError = ResponseFlags_Encoded(0x800000)
	// No cluster found for a given request.
	NoClusterFound = ResponseFlags_Encoded(0x1000000)
	// Overload Manager terminated the stream.
	OverloadManager = ResponseFlags_Encoded(0x2000000)
	// DNS resolution failed.
	DnsResolutionFailed = ResponseFlags_Encoded(0x4000000)
	// ATTENTION: MAKE SURE THIS REMAINS EQUAL TO THE LAST FLAG.
	LastFlag = DnsResolutionFailed
)

Variables

View Source
var (
	SocketAddress_Protocol_name = map[int32]string{
		0: "TCP",
		1: "UDP",
	}
	SocketAddress_Protocol_value = map[string]int32{
		"TCP": 0,
		"UDP": 1,
	}
)

Enum value maps for SocketAddress_Protocol.

View Source
var (
	Common_Traffic_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "ingress",
		2: "egress",
		3: "ping",
	}
	Commmon_Traffic_value = map[string]int32{
		"UNSPECIFIED": 0,
		"ingress":     1,
		"egress":      2,
		"ping":        3,
	}
)

Enum value maps for Common_Traffic

View Source
var (
	HTTPAccessLogEntry_HTTPVersion_name = map[int32]string{
		0: "PROTOCOL_UNSPECIFIED",
		1: "HTTP10",
		2: "HTTP11",
		3: "HTTP2",
		4: "HTTP3",
	}
	HTTPAccessLogEntry_HTTPVersion_value = map[string]int32{
		"PROTOCOL_UNSPECIFIED": 0,
		"HTTP10":               1,
		"HTTP11":               2,
		"HTTP2":                3,
		"HTTP3":                4,
	}
)

Enum value maps for HTTPAccessLogEntry_HTTPVersion.

View Source
var (
	RequestMethod_name = map[int32]string{
		0: "METHOD_UNSPECIFIED",
		1: "GET",
		2: "HEAD",
		3: "POST",
		4: "PUT",
		5: "DELETE",
		6: "CONNECT",
		7: "OPTIONS",
		8: "TRACE",
		9: "PATCH",
	}
	RequestMethod_value = map[string]int32{
		"METHOD_UNSPECIFIED": 0,
		"GET":                1,
		"HEAD":               2,
		"POST":               3,
		"PUT":                4,
		"DELETE":             5,
		"CONNECT":            6,
		"OPTIONS":            7,
		"TRACE":              8,
		"PATCH":              9,
	}
)

Enum value maps for RequestMethod.

View Source
var (
	ResponseFlags_Unauthorized_Reason_name = map[int32]string{
		0: "REASON_UNSPECIFIED",
		1: "EXTERNAL_SERVICE",
	}
	ResponseFlags_Unauthorized_Reason_value = map[string]int32{
		"REASON_UNSPECIFIED": 0,
		"EXTERNAL_SERVICE":   1,
	}
)

Enum value maps for ResponseFlags_Unauthorized_Reason.

View Source
var (
	TLSProperties_TLSVersion_name = map[int32]string{
		0: "VERSION_UNSPECIFIED",
		1: "TLSv1",
		2: "TLSv1_1",
		3: "TLSv1_2",
		4: "TLSv1_3",
	}
	TLSProperties_TLSVersion_value = map[string]int32{
		"VERSION_UNSPECIFIED": 0,
		"TLSv1":               1,
		"TLSv1_1":             2,
		"TLSv1_2":             3,
		"TLSv1_3":             4,
	}
)

Enum value maps for TLSProperties_TLSVersion.

Functions

func GetResponseFlags

func GetResponseFlags(resp *ResponseFlags) (primary string, secondary string)

Types

type Address

type Address struct {

	// Types that are assignable to Address:
	//	*Address_SocketAddress
	//	*Address_Pipe
	//	*Address_EnvoyInternalAddress
	Address isAddress_Address `protobuf_oneof:"address"`
	// contains filtered or unexported fields
}

Addresses specify either a logical or physical address and port, which are used to tell Envoy where to bind/listen, connect to upstream and find management servers.

type Address_EnvoyInternalAddress

type Address_EnvoyInternalAddress struct {
	// Specifies a user-space address handled by :ref:`internal listeners
	// <envoy_v3_api_field_config.listener.v3.Listener.internal_listener>`.
	EnvoyInternalAddress *EnvoyInternalAddress `protobuf:"bytes,3,opt,name=envoy_internal_address,json=envoyInternalAddress,proto3,oneof"`
}

type Address_Pipe

type Address_Pipe struct {
	Pipe *Pipe `protobuf:"bytes,2,opt,name=pipe,proto3,oneof"`
}

type Address_SocketAddress

type Address_SocketAddress struct {
	SocketAddress *SocketAddress `protobuf:"bytes,1,opt,name=socket_address,json=socketAddress,proto3,oneof"`
}

type BuildVersion

type BuildVersion struct {

	// SemVer version of extension.
	// Note..: Had to remove the v3. prefix
	Version *SemanticVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// Free-form build information.
	// Envoy defines several well known keys in the source/common/version/version.h file
	Metadata *_struct.Struct `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// contains filtered or unexported fields
}

BuildVersion combines SemVer version of extension with free-form build information (i.e. 'alpha', 'private-build') as a set of strings.

type CombinedEntry

type CombinedEntry struct {
	Common *CommonProperties
	Http   *HTTPAccessLogEntry
	Tcp    *TCPAccessLogEntry
}

type CommonProperties

type CommonProperties struct {
	Traffic Common_Traffic

	SampleRate float64 // Rate limiting

	DownstreamRemoteAddress *Address
	DownstreamLocalAddress  *Address

	TlsProperties *TLSProperties

	StartTime *time.Time

	RequestDuration  *time.Duration // = TimeToLastRxByte
	ResponseDuration *time.Duration // = TimeToLastUpstreamRxByte
	TimeToLastRxByte *time.Duration

	TimeToFirstUpstreamTxByte *time.Duration
	TimeToLastUpstreamTxByte  *time.Duration
	TimeToFirstUpstreamRxByte *time.Duration
	TimeToLastUpstreamRxByte  *time.Duration

	TimeToFirstDownstreamTxByte *time.Duration
	TimeToLastDownstreamTxByte  *time.Duration

	UpstreamRemoteAddress *Address
	UpstreamLocalAddress  *Address
	//UpstreamCluster       string
	UpstreamCluster util.DictionaryValue

	ResponseFlags *ResponseFlags

	UpstreamTransportFailureReason string
	//RouteName                      string
	RouteName                     util.DictionaryValue
	DownstreamDirectRemoteAddress *Address

	CustomTags map[string]string

	Duration                     *time.Duration
	UpstreamRequestAttemptCount  uint32
	ConnectionTerminationDetails string
}

type Common_Traffic

type Common_Traffic int32
const (
	Common_Traffic_UNSPECIFIED Common_Traffic = 0
	Common_Traffic_Ingress     Common_Traffic = 1
	Common_Traffic_Egress      Common_Traffic = 2
	Common_Traffic_Ping        Common_Traffic = 3
)

type ConnectionProperties

type ConnectionProperties struct {
	// Number of bytes received from downstream.
	ReceivedBytes uint64 `protobuf:"varint,1,opt,name=received_bytes,json=receivedBytes,proto3" json:"received_bytes,omitempty"`
	// Number of bytes sent to downstream.
	SentBytes uint64 `protobuf:"varint,2,opt,name=sent_bytes,json=sentBytes,proto3" json:"sent_bytes,omitempty"`
}

type ContextParams

type ContextParams struct {
	Params map[string]string `` /* 153-byte string literal not displayed */
	// contains filtered or unexported fields
}

type EnvoyIdentifier

type EnvoyIdentifier struct {
	Identifier *Node
	LogName    string
}

type EnvoyInternalAddress

type EnvoyInternalAddress struct {

	// Types that are assignable to AddressNameSpecifier:
	//	*EnvoyInternalAddress_ServerListenerName
	AddressNameSpecifier isEnvoyInternalAddress_AddressNameSpecifier `protobuf_oneof:"address_name_specifier"`
	// Specifies an endpoint identifier to distinguish between multiple endpoints for the same internal listener in a
	// single upstream pool. Only used in the upstream addresses for tracking changes to individual endpoints. This, for
	// example, may be set to the final destination IP for the target internal listener.
	EndpointId string `protobuf:"bytes,2,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"`
	// contains filtered or unexported fields
}

The address represents an envoy internal listener. [#comment: TODO(asraa): When address available, remove workaround from test/server/server_fuzz_test.cc:30.]

type EnvoyInternalAddress_ServerListenerName

type EnvoyInternalAddress_ServerListenerName struct {
	// Specifies the :ref:`name <envoy_v3_api_field_config.listener.v3.Listener.name>` of the
	// internal listener.
	ServerListenerName string `protobuf:"bytes,1,opt,name=server_listener_name,json=serverListenerName,proto3,oneof"`
}

type Extension

type Extension struct {

	// This is the name of the Envoy filter as specified in the Envoy
	// configuration, e.g. envoy.filters.http.router, com.acme.widget.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Category of the extension.
	// Extension category names use reverse DNS notation. For instance "envoy.filters.listener"
	// for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from
	// acme.com vendor.
	// [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.]
	Category string `protobuf:"bytes,2,opt,name=category,proto3" json:"category,omitempty"`
	// [#not-implemented-hide:] Type descriptor of extension configuration proto.
	// [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.]
	// [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.]
	//
	// Deprecated: Do not use.
	TypeDescriptor string `protobuf:"bytes,3,opt,name=type_descriptor,json=typeDescriptor,proto3" json:"type_descriptor,omitempty"`
	// The version is a property of the extension and maintained independently
	// of other extensions and the Envoy API.
	// This field is not set when extension did not provide version information.
	Version *BuildVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
	// Indicates that the extension is present but was disabled via dynamic configuration.
	Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"`
	// Type URLs of extension configuration protos.
	TypeUrls []string `protobuf:"bytes,6,rep,name=type_urls,json=typeUrls,proto3" json:"type_urls,omitempty"`
	// contains filtered or unexported fields
}

Version and identification for an Envoy extension. [#next-free-field: 7]

type HTTPAccessLogEntry

type HTTPAccessLogEntry struct {
	// Common properties shared by all Envoy access logs.
	//CommonProperties *Common
	ProtocolVersion HTTPAccessLogEntry_HTTPVersion
	// Description of the incoming HTTP request.
	Request *HTTPRequestProperties
	// Description of the outgoing HTTP response.
	Response *HTTPResponseProperties
}

type HTTPAccessLogEntry_HTTPVersion

type HTTPAccessLogEntry_HTTPVersion int32
const (
	HTTPAccessLogEntry_PROTOCOL_UNSPECIFIED HTTPAccessLogEntry_HTTPVersion = 0
	HTTPAccessLogEntry_HTTP10               HTTPAccessLogEntry_HTTPVersion = 1
	HTTPAccessLogEntry_HTTP11               HTTPAccessLogEntry_HTTPVersion = 2
	HTTPAccessLogEntry_HTTP2                HTTPAccessLogEntry_HTTPVersion = 3
	HTTPAccessLogEntry_HTTP3                HTTPAccessLogEntry_HTTPVersion = 4
)

type HTTPRequestProperties

type HTTPRequestProperties struct {
	// The request method (RFC 7231/2616).
	RequestMethod RequestMethod
	// The scheme portion of the incoming request URI.
	//Scheme string
	Scheme util.DictionaryValue
	// HTTP/2 “:authority“ or HTTP/1.1 “Host“ header value.
	//Authority string
	Authority util.DictionaryValue
	// The port of the incoming request URI
	// (unused currently, as port is composed onto authority).
	Port uint32
	// The path portion from the incoming request URI.
	//Path string
	Path util.DictionaryValue
	// Value of the “User-Agent“ request header.
	//UserAgent string
	UserAgent util.DictionaryValue
	// Value of the “Referer“ request header.
	//Referer string
	Referer util.DictionaryValue
	// Value of the “X-Forwarded-For“ request header.
	//ForwardedFor string
	ForwardedFor util.DictionaryValue
	// Value of the “X-Request-Id“ request header
	//
	// This header is used by Envoy to uniquely identify a request.
	// It will be generated for all external requests and internal requests that
	// do not already have a request ID.
	RequestId string
	// Value of the “X-Envoy-Original-Path“ request header.
	//OriginalPath string
	OriginalPath util.DictionaryValue
	// Size of the HTTP request headers in bytes.
	//
	// This value is captured from the OSI layer 7 perspective, i.e. it does not
	// include overhead from framing or encoding at other networking layers.
	RequestHeadersBytes uint64
	// Size of the HTTP request body in bytes.
	//
	// This value is captured from the OSI layer 7 perspective, i.e. it does not
	// include overhead from framing or encoding at other networking layers.
	RequestBodyBytes uint64
	// Map of additional headers that have been configured to be logged.
	RequestHeaders map[string]string
}

type HTTPResponseProperties

type HTTPResponseProperties struct {
	// The HTTP response code returned by Envoy.
	ResponseCode uint32
	// Size of the HTTP response headers in bytes.
	//
	// This value is captured from the OSI layer 7 perspective, i.e. it does not
	// include overhead from framing or encoding at other networking layers.
	ResponseHeadersBytes uint64
	// Size of the HTTP response body in bytes.
	//
	// This value is captured from the OSI layer 7 perspective, i.e. it does not
	// include overhead from framing or encoding at other networking layers.
	ResponseBodyBytes uint64
	// Map of additional headers configured to be logged.
	ResponseHeaders map[string]string
	// Map of trailers configured to be logged.
	ResponseTrailers map[string]string
	// The HTTP response code details.
	//ResponseCodeDetails string
	ResponseCodeDetails util.DictionaryValue
}

[#next-free-field: 7]

type Locality

type Locality struct {

	// Region this :ref:`zone <envoy_v3_api_field_config.core.v3.Locality.zone>` belongs to.
	Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"`
	// Defines the local service zone where Envoy is running. Though optional, it
	// should be set if discovery service routing is used and the discovery
	// service exposes :ref:`zone data <envoy_v3_api_field_config.endpoint.v3.LocalityLbEndpoints.locality>`,
	// either in this message or via :option:`--service-zone`. The meaning of zone
	// is context dependent, e.g. `Availability Zone (AZ)
	// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
	// on AWS, `Zone <https://cloud.google.com/compute/docs/regions-zones/>`_ on
	// GCP, etc.
	Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"`
	// When used for locality of upstream hosts, this field further splits zone
	// into smaller chunks of sub-zones so they can be load balanced
	// independently.
	SubZone string `protobuf:"bytes,3,opt,name=sub_zone,json=subZone,proto3" json:"sub_zone,omitempty"`
	// contains filtered or unexported fields
}

Identifies location of where either Envoy runs or where upstream hosts run.

type Message

type Message struct {
	Identifier *Provenance
	Dictionary *util.InvertedDictionary
	LogEntries []*CombinedEntry
}

type Node

type Node struct {

	// An opaque node identifier for the Envoy node. This also provides the local
	// service node name. It should be set if any of the following features are
	// used: :ref:`statsd <arch_overview_statistics>`, :ref:`CDS
	// <config_cluster_manager_cds>`, and :ref:`HTTP tracing
	// <arch_overview_tracing>`, either in this message or via
	// :option:`--service-node`.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Defines the local service cluster name where Envoy is running. Though
	// optional, it should be set if any of the following features are used:
	// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
	// verification
	// <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>`,
	// :ref:`runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>`,
	// :ref:`user agent addition
	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>`,
	// :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
	// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
	// <arch_overview_tracing>`, either in this message or via
	// :option:`--service-cluster`.
	Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"`
	// Opaque metadata extending the node identifier. Envoy will pass this
	// directly to the management server.
	Metadata *_struct.Struct `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// Map from xDS resource type URL to dynamic context parameters. These may vary at runtime (unlike
	// other fields in this message). For example, the xDS client may have a shard identifier that
	// changes during the lifetime of the xDS client. In Envoy, this would be achieved by updating the
	// dynamic context on the Server::Instance's LocalInfo context provider. The shard ID dynamic
	// parameter then appears in this field during future discovery requests.
	DynamicParameters map[string]*ContextParams `` /* 201-byte string literal not displayed */
	// Locality specifying where the Envoy instance is running.
	Locality *Locality `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"`
	// Free-form string that identifies the entity requesting config.
	// E.g. "envoy" or "grpc"
	UserAgentName string `protobuf:"bytes,6,opt,name=user_agent_name,json=userAgentName,proto3" json:"user_agent_name,omitempty"`
	// Types that are assignable to UserAgentVersionType:
	//	*Node_UserAgentVersion
	//	*Node_UserAgentBuildVersion
	UserAgentVersionType isNode_UserAgentVersionType `protobuf_oneof:"user_agent_version_type"`
	// List of extensions and their versions supported by the node.
	Extensions []*Extension `protobuf:"bytes,9,rep,name=extensions,proto3" json:"extensions,omitempty"`
	// Client feature support list. These are well known features described
	// in the Envoy API repository for a given major version of an API. Client features
	// use reverse DNS naming scheme, for example “com.acme.feature“.
	// See :ref:`the list of features <client_features>` that xDS client may
	// support.
	ClientFeatures []string `protobuf:"bytes,10,rep,name=client_features,json=clientFeatures,proto3" json:"client_features,omitempty"`
	// Known listening ports on the node as a generic hint to the management server
	// for filtering :ref:`listeners <config_listeners>` to be returned. For example,
	// if there is a listener bound to port 80, the list can optionally contain the
	// SocketAddress “(0.0.0.0,80)“. The field is optional and just a hint.
	//
	// Deprecated: Do not use.
	ListeningAddresses []*Address `protobuf:"bytes,11,rep,name=listening_addresses,json=listeningAddresses,proto3" json:"listening_addresses,omitempty"`
	// contains filtered or unexported fields
}

Identifies a specific Envoy instance. The node identifier is presented to the management server, which may use this identifier to distinguish per Envoy configuration for serving. [#next-free-field: 13]

type Node_UserAgentBuildVersion

type Node_UserAgentBuildVersion struct {
	// Structured version of the entity requesting config.
	UserAgentBuildVersion *BuildVersion `protobuf:"bytes,8,opt,name=user_agent_build_version,json=userAgentBuildVersion,proto3,oneof"`
}

type Node_UserAgentVersion

type Node_UserAgentVersion struct {
	// Free-form string that identifies the version of the entity requesting config.
	// E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild"
	UserAgentVersion string `protobuf:"bytes,7,opt,name=user_agent_version,json=userAgentVersion,proto3,oneof"`
}

type Pipe

type Pipe struct {

	// Unix Domain Socket path. On Linux, paths starting with '@' will use the
	// abstract namespace. The starting '@' is replaced by a null byte by Envoy.
	// Paths starting with '@' will result in an error in environments other than
	// Linux.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// The mode for the Pipe. Not applicable for abstract sockets.
	Mode uint32 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"`
	// contains filtered or unexported fields
}

type Provenance

type Provenance struct {
	Locality    *Locality // Region (data center), Zone, SubZone (cluster)
	Application string    // (service name), (container name), (uri host)
	InstanceId  string    // (pod), (node), (physical host) identifier
}

Provenance contains the attributes needed to identify a log entry's place of origin, down to the instance

type RequestMethod

type RequestMethod int32

HTTP request method.

const (
	RequestMethod_METHOD_UNSPECIFIED RequestMethod = 0
	RequestMethod_GET                RequestMethod = 1
	RequestMethod_HEAD               RequestMethod = 2
	RequestMethod_POST               RequestMethod = 3
	RequestMethod_PUT                RequestMethod = 4
	RequestMethod_DELETE             RequestMethod = 5
	RequestMethod_CONNECT            RequestMethod = 6
	RequestMethod_OPTIONS            RequestMethod = 7
	RequestMethod_TRACE              RequestMethod = 8
	RequestMethod_PATCH              RequestMethod = 9
)

type ResponseFlags

type ResponseFlags struct {
	Encoded             ResponseFlags_Encoded
	UnauthorizedDetails *ResponseFlags_Unauthorized
}

Flags indicating occurrences during request/response processing.

type ResponseFlags_Encoded

type ResponseFlags_Encoded uint32

type ResponseFlags_Unauthorized

type ResponseFlags_Unauthorized struct {
	Reason ResponseFlags_Unauthorized_Reason
}

type ResponseFlags_Unauthorized_Reason

type ResponseFlags_Unauthorized_Reason int32

Reasons why the request was unauthorized

const (
	ResponseFlags_Unauthorized_REASON_UNSPECIFIED ResponseFlags_Unauthorized_Reason = 0
	// The request was denied by the external authorization service.
	ResponseFlags_Unauthorized_EXTERNAL_SERVICE ResponseFlags_Unauthorized_Reason = 1
)

type SemanticVersion

type SemanticVersion struct {
	MajorNumber uint32
	MinorNumber uint32
	Patch       uint32
}

Envoy uses SemVer (https://semver.org/). Major/minor versions indicate expected behaviors and APIs, the patch version field is used only for security fixes and can be generally ignored.

type SocketAddress

type SocketAddress struct {
	Protocol SocketAddress_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=envoy.config.core.v3.SocketAddress_Protocol" json:"protocol,omitempty"`
	// The address for this socket. :ref:`Listeners <config_listeners>` will bind
	// to the address. An empty address is not allowed. Specify “0.0.0.0“ or “::“
	// to bind to any address. [#comment:TODO(zuercher) reinstate when implemented:
	// It is possible to distinguish a Listener address via the prefix/suffix matching
	// in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used
	// within an upstream :ref:`BindConfig <envoy_v3_api_msg_config.core.v3.BindConfig>`, the address
	// controls the source address of outbound connections. For :ref:`clusters
	// <envoy_v3_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the
	// address must be an IP (“STATIC“ or “EDS“ clusters) or a hostname resolved by DNS
	// (“STRICT_DNS“ or “LOGICAL_DNS“ clusters). Address resolution can be customized
	// via :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`.
	Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	// Types that are assignable to PortSpecifier:
	//	*SocketAddress_PortValue
	//	*SocketAddress_NamedPort
	PortSpecifier isSocketAddress_PortSpecifier `protobuf_oneof:"port_specifier"`
	// The name of the custom resolver. This must have been registered with Envoy. If
	// this is empty, a context dependent default applies. If the address is a concrete
	// IP address, no resolution will occur. If address is a hostname this
	// should be set for resolution other than DNS. Specifying a custom resolver with
	// “STRICT_DNS“ or “LOGICAL_DNS“ will generate an error at runtime.
	ResolverName string `protobuf:"bytes,5,opt,name=resolver_name,json=resolverName,proto3" json:"resolver_name,omitempty"`
	// When binding to an IPv6 address above, this enables `IPv4 compatibility
	// <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to “::“ will
	// allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into
	// IPv6 space as “::FFFF:<IPv4-address>“.
	Ipv4Compat bool `protobuf:"varint,6,opt,name=ipv4_compat,json=ipv4Compat,proto3" json:"ipv4_compat,omitempty"`
	// contains filtered or unexported fields
}

type SocketAddress_NamedPort

type SocketAddress_NamedPort struct {
	// This is only valid if :ref:`resolver_name
	// <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the
	// named resolver is capable of named port resolution.
	NamedPort string `protobuf:"bytes,4,opt,name=named_port,json=namedPort,proto3,oneof"`
}

type SocketAddress_PortValue

type SocketAddress_PortValue struct {
	PortValue uint32 `protobuf:"varint,3,opt,name=port_value,json=portValue,proto3,oneof"`
}

type SocketAddress_Protocol

type SocketAddress_Protocol int32
const (
	SocketAddress_TCP SocketAddress_Protocol = 0
	SocketAddress_UDP SocketAddress_Protocol = 1
)

type TCPAccessLogEntry

type TCPAccessLogEntry struct {
	// Common properties shared by all Envoy access logs.
	//CommonProperties *Common
	// Properties of the TCP connection.
	ConnectionProperties *ConnectionProperties
}

type TLSProperties

type TLSProperties struct {
	// Version of TLS that was negotiated.
	TlsVersion TLSProperties_TLSVersion
	// TLS cipher suite negotiated during handshake. The value is a
	// four-digit hex code defined by the IANA TLS Cipher Suite Registry
	// (e.g. “009C“ for “TLS_RSA_WITH_AES_128_GCM_SHA256“).
	//
	// Here it is expressed as an integer.
	TlsCipherSuite uint32
	// SNI hostname from handshake.
	TlsSniHostname string
	// Properties of the local certificate used to negotiate TLS.
	LocalCertificateProperties *TLSProperties_CertificateProperties
	// Properties of the peer certificate used to negotiate TLS.
	PeerCertificateProperties *TLSProperties_CertificateProperties
	// The TLS session ID.
	TlsSessionId string
	// The “JA3“ fingerprint when “JA3“ fingerprinting is enabled.
	Ja3Fingerprint string
}

type TLSProperties_CertificateProperties

type TLSProperties_CertificateProperties struct {
	// SANs present in the certificate.
	SubjectAltName []*TLSProperties_CertificateProperties_SubjectAltName
	// The subject field of the certificate.
	Subject string
}

type TLSProperties_CertificateProperties_SubjectAltName

type TLSProperties_CertificateProperties_SubjectAltName struct {
	// Types that are assignable to San:
	//	*TLSProperties_CertificateProperties_SubjectAltName_Uri
	//	*TLSProperties_CertificateProperties_SubjectAltName_Dns
	//San isTLSProperties_CertificateProperties_SubjectAltName_San `protobuf_oneof:"san"`
	Dns string
	Uri string
}

type TLSProperties_TLSVersion

type TLSProperties_TLSVersion int32
const (
	TLSProperties_VERSION_UNSPECIFIED TLSProperties_TLSVersion = 0
	TLSProperties_TLSv1               TLSProperties_TLSVersion = 1
	TLSProperties_TLSv1_1             TLSProperties_TLSVersion = 2
	TLSProperties_TLSv1_2             TLSProperties_TLSVersion = 3
	TLSProperties_TLSv1_3             TLSProperties_TLSVersion = 4
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL