config

package
v0.0.0-...-e09c833 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NETWORK_SOCKET_UNIX = "unix"
	NETWORK_SOCKET_TCP  = "tcp"
	URI_UNIX_PREFIX     = "unix://"
	URL_HTTP_SCHEME     = "http://"
	URL_HTTPS_SCHEME    = "https://"
)
View Source
const (
	AGENT_PORT_DEFAULT                            = 9902
	AGENT_ADMIN_MODE_DEFAULT                      = "tcp"
	AGENT_ADMIN_UDS_PATH_DEFAULT                  = "/var/run/ecs/appnet_admin.sock"
	AGENT_POLL_ENVOY_READINESS_INTERVAL_S_DEFAULT = 5
	AGENT_POLL_ENVOY_READINESS_TIMEOUT_S_DEFAULT  = 180

	ENABLE_STATS_SNAPSHOT_DEFAULT = false

	ENVOY_USE_HTTP_CLIENT_TO_FETCH_AWS_CREDENTIALS_DEFAULT = false

	ENVOY_SERVER_SCHEME                  = "http"
	ENVOY_SERVER_HOSTNAME                = "127.0.0.1"
	ENVOY_RESTART_COUNT_DEFAULT          = 0
	ENVOY_RESTART_COUNT_MAX              = 10
	ENVOY_ADMIN_PORT_DEFAULT             = 9901
	ENVOY_ADMIN_MODE_DEFAULT             = "tcp"
	ENVOY_ADMIN_UDS_PATH                 = "/tmp/envoy_admin.sock"
	ENVOY_ADMIN_UDS_FILE_MODE_DEFAULT    = 384 // decimal form of file permission 0600 (octal)
	ENVOY_READY_ENDPOINT_URL             = "/ready"
	ENVOY_STATS_ENDPOINT_URL             = "/stats"
	ENVOY_LOGGING_ENDPOINT_URL           = "/logging"
	ENVOY_PROMETHEUS_QUERY_STRING        = "?format=prometheus"
	APPMESH_FILTER_STRING                = "filter=appmesh"
	ENVOY_LISTENER_DRAINING_ENDPOINT_URL = "/drain_listeners"
	ENVOY_CONCURRENCY_DEFAULT            = -1  // we will not set concurrency [envoy --concurrency] by default.
	ENVOY_CONCURRENCY_FOR_RELAY_DEFAULT  = "1" // For relay we are defaulting it to 1
	DISABLE_HOT_RESTART_DEFAULT          = true

	// agent relay mode
	ENABLE_RELAY_MODE_FOR_XDS_DEFAULT      = false
	APPNET_RELAY_LISTENER_UDS_PATH_DEFAULT = "/tmp/relay_xds.sock"
	RELAY_STREAM_IDLE_TIMEOUT_DEFAULT      = "2400s"  // Default is set to 40 min, whereas Envoy default is 5 min.
	RELAY_BUFFER_LIMIT_BYTES_DEFAULT       = 10485760 // Default is set to 10MB, whereas Envoy default is 1 MB.
	APPNET_MANAGEMENT_PORT_DEFAULT         = 443

	// agent handled endpoints
	AGENT_STATS_ENDPOINT_URL          = "/stats/prometheus"
	AGENT_STATUS_ENDPOINT_URL         = "/status"
	AGENT_LISTENER_DRAIN_ENDPOINT_URL = "/drain_listeners"
	APPNET_USER_AGENT                 = "appnetClient/1.0"
	AGENT_LOGGING_ENDPOINT_URL        = "/enableLogging"
	AGENT_LOG_IDENTIFIER              = "AppNet Agent"

	// Note that if the environment variable controlling the
	// logging destination (APPNET_ENVOY_LOG_DESTINATION) is
	// not set, or is set to an empty string, we will not alter
	// the output destination. It remains as stdout/stderr
	ENVOY_LOG_DESTINATION_DEFAULT   = ""
	ENVOY_LOG_FILE_NAME_DEFAULT     = "appnet_envoy.log"
	AGENT_MAX_LOG_FILE_SIZE_DEFAULT = 1.0
	AGENT_MAX_LOG_RETENTION_DEFAULT = 5

	// PID polling timers
	PID_POLL_INTERVAL_MS_DEFAULT = 100
	PID_POLL_INTERVAL_MS_MIN     = 100
	PID_POLL_INTERVAL_MS_MAX     = 1000

	// HealthCheck polling timers
	// See https://sim.amazon.com/issues/LATTICE-BE-6236
	// We are reducing the frequency to poll health check
	HC_POLL_INTERVAL_MS_DEFAULT       = 10000
	HC_POLL_INTERVAL_MS_MIN           = 2000
	HC_POLL_INTERVAL_MS_MAX           = 30000
	HC_DISCONNECTED_TIMEOUT_S_DEFAULT = 604800 // 1 week
	HC_DISCONNECTED_TIMEOUT_S_MIN     = 3600
	HC_DISCONNECTED_TIMEOUT_S_MAX     = 604800

	// ECS stopTimeout is 30sec by default and can be set to maximum 120sec
	LISTENER_DRAIN_WAIT_TIME_SEC_DEFAULT = 20
	LISTENER_DRAIN_WAIT_TIME_SEC_MIN     = 5
	LISTENER_DRAIN_WAIT_TIME_SEC_MAX     = 110
	// Wait 3 seconds for Envoy to exit, before we kill it
	PID_STOP_DELAY_SEC = 3

	AGENT_ADDRESS_DEFAULT = "[::]"

	AGENT_LOGGING_RESET_TIMEOUT_S_DEFAULT = 300

	// Rate limiter constants
	TPS_LIMIT       = 10
	BURST_TPS_LIMIT = 20
)

Variables

View Source
var AdminModeStrToEnumMap = map[string]SocketType{
	"uds": UDS,
	"tcp": TCP,
}

Functions

This section is empty.

Types

type AgentConfig

type AgentConfig struct {
	CommandPath                     string
	CommandArgs                     []string
	AgentHttpPort                   int
	AgentHttpAddress                string
	AgentAdminUdsPath               string
	AgentAdminMode                  SocketType
	AgentLoglevelReset              time.Duration
	AgentPollEnvoyReadiness         bool
	AgentPollEnvoyReadinessInterval int
	AgentPollEnvoyReadinessTimeout  int
	EnvoyRestartCount               int
	EnvoyServerScheme               string
	EnvoyServerHostName             string
	EnvoyServerAdminPort            int
	EnvoyServerAdminUdsPath         string
	EnvoyAdminMode                  SocketType
	EnvoyReadyUrl                   string
	EnvoyServerStatsUrl             string
	EnableStatsSnapshot             bool
	EnvoyListenerDrainUrl           string
	EnvoyLoggingUrl                 string
	EnvoyLoggingDestination         string
	EnvoyLogFileName                string
	EnvoyLogLevel                   string
	EnvoyConfigPath                 string
	EnvoyConcurrency                int
	ClusterIPMapping                string
	ListenerPortMapping             string
	MaxLogFileSizeMB                float64
	MaxLogCount                     int
	DisableHotRestart               bool

	XdsEndpointUdsPath string

	// Relay Mode
	EnableRelayModeForXds      bool
	AppNetManagementDomainName string
	AppNetManagementPort       int
	AppNetRelayListenerUdsPath string
	RelayStreamIdleTimeout     string
	RelayBufferLimitBytes      int

	// Libcurl deprecation Envoy reloadable feature flag
	EnvoyUseHttpClientToFetchAwsCredentials bool

	// Poll intervals
	PidPollInterval       time.Duration
	HcPollInterval        time.Duration
	HcDisconnectedTimeout time.Duration
	ListenerDrainWaitTime time.Duration
	StopProcessWaitTime   time.Duration

	// fields that are not controllable by the user
	OutputFileDescriptors []uintptr
}

func (*AgentConfig) ParseFlags

func (config *AgentConfig) ParseFlags(args []string)

func (*AgentConfig) SetDefaults

func (config *AgentConfig) SetDefaults()

type SocketType

type SocketType int
const (
	TCP SocketType = iota
	UDS
)

Jump to

Keyboard shortcuts

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