Documentation ¶
Index ¶
Constants ¶
View Source
const Version = "3.0.1"
Version number of the X-Ray daemon.
Variables ¶
View Source
var LogFile string
LogFile represents log file passed through command line argument.
View Source
var LogFormat = "%Date(2006-01-02T15:04:05Z07:00) [%Level] %Msg%n"
LogFormat defines format for logger.
View Source
var ParameterConfigValue = &ParameterConfig{ SegmentChannel: struct { Std int }{ Std: 250, }, Socket: struct { BufferSizeKB int }{ BufferSizeKB: 64, }, ReceiverRoutines: 2, Processor: struct { BatchSize int IdleTimeoutMillisecond int MaxIdleConnPerHost int RequestTimeout int BatchProcessorQueueSize int }{ BatchSize: 50, IdleTimeoutMillisecond: 1000, MaxIdleConnPerHost: 8, RequestTimeout: 2, BatchProcessorQueueSize: 20, }, }
ParameterConfigValue returns instance of ParameterConfig, initialized with default values.
Functions ¶
func ConfigValidation ¶
func ConfigValidation(configPath string)
ConfigValidation validates provided configuration file, invalid configuration will exit the process.
Types ¶
type Config ¶
type Config struct { // Maximum buffer size in MB (minimum 3). Choose 0 to use 1% of host memory. TotalBufferSizeMB int `yaml:"TotalBufferSizeMB"` // Maximum number of concurrent calls to AWS X-Ray to upload segment documents. Concurrency int `yaml:"Concurrency"` // X-Ray service endpoint to which the daemon sends segment documents. Endpoint string `yaml:"Endpoint"` // Send segments to AWS X-Ray service in a specific region. Region string `yaml:"Region"` Socket struct { // Address and port on which the daemon listens for UDP packets containing segment documents. UDPAddress string `yaml:"UDPAddress"` TCPAddress string `yaml:"TCPAddress"` } `yaml:"Socket"` ProxyServer struct { IdleConnTimeout int MaxIdleConnsPerHost int MaxIdleConns int } // Structure for logging. Logging struct { // LogRotation, if true, will rotate log after 50 MB size of current log file. LogRotation *bool `yaml:"LogRotation"` // The log level, from most verbose to least: dev, debug, info, warn, error, prod (default). LogLevel string `yaml:"LogLevel"` // Logs to the specified file path. LogPath string `yaml:"LogPath"` } `yaml:"Logging"` // Local mode to skip EC2 instance metadata check. LocalMode *bool `yaml:"LocalMode"` // Amazon Resource Name (ARN) of the AWS resource running the daemon. ResourceARN string `yaml:"ResourceARN"` // IAM role to upload segments to a different account. RoleARN string `yaml:"RoleARN"` // Enable or disable TLS certificate verification. NoVerifySSL *bool `yaml:"NoVerifySSL"` // Upload segments to AWS X-Ray through a proxy. ProxyAddress string `yaml:"ProxyAddress"` // Daemon configuration file format version. Version int `yaml:"Version"` }
Config defines configuration structure for cli parameters.
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns default configuration for X-Ray daemon.
func LoadConfig ¶
LoadConfig returns configuration from a valid configFile else default configuration.
type ParameterConfig ¶
type ParameterConfig struct { SegmentChannel struct { // Size of trace segments channel. Std int } Socket struct { // Socket buffer size. BufferSizeKB int } // Number of go routines daemon.poll() to spawn. ReceiverRoutines int Processor struct { // Size of the batch segments processed by Processor. BatchSize int // Idle timeout in milliseconds used while sending batch segments. IdleTimeoutMillisecond int // MaxIdleConnPerHost, controls the maximum idle // (keep-alive) HTTP connections to keep per-host. MaxIdleConnPerHost int // Used to set Http client timeout in seconds. RequestTimeout int BatchProcessorQueueSize int } }
ParameterConfig is a configuration used by daemon.
Click to show internal directories.
Click to hide internal directories.