Documentation ¶
Index ¶
Constants ¶
View Source
const ReporterLRUSize = 256
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attributes ¶ added in v0.4.2
type Attributes struct { Kubernetes transform.KubernetesDecorator `yaml:"kubernetes"` InstanceID traces.InstanceIDConfig `yaml:"instance_id"` }
Attributes configures the decoration of some extra attributes that will be added to each span
type Config ¶
type Config struct { EBPF ebpfcommon.TracerConfig `yaml:"ebpf"` // Grafana overrides some values of the otel.MetricsConfig and otel.TracesConfig below // for a simpler submission of OTEL metrics to Grafana Cloud Grafana otel.GrafanaConfig `yaml:"grafana"` Attributes Attributes `yaml:"attributes"` // Routes is an optional node. If not set, data will be directly forwarded to exporters. Routes *transform.RoutesConfig `yaml:"routes"` Metrics otel.MetricsConfig `yaml:"otel_metrics_export"` Traces otel.TracesConfig `yaml:"otel_traces_export"` Prometheus prom.PrometheusConfig `yaml:"prometheus_export"` Printer debug.PrintEnabled `yaml:"print_traces" env:"BEYLA_PRINT_TRACES"` // Exec allows selecting the instrumented executable whose complete path contains the Exec value. Exec services.RegexpAttr `yaml:"executable_name" env:"BEYLA_EXECUTABLE_NAME"` // Port allows selecting the instrumented executable that owns the Port value. If this value is set (and // different to zero), the value of the Exec property won't take effect. // It's important to emphasize that if your process opens multiple HTTP/GRPC ports, the auto-instrumenter // will instrument all the service calls in all the ports, not only the port specified here. Port services.PortEnum `yaml:"open_port" env:"BEYLA_OPEN_PORT"` // ServiceName is taken from either BEYLA_SERVICE_NAME env var or OTEL_SERVICE_NAME (for OTEL spec compatibility) // Using env and envDefault is a trick to get the value either from one of either variables ServiceName string `yaml:"service_name" env:"OTEL_SERVICE_NAME,expand" envDefault:"${BEYLA_SERVICE_NAME}"` ServiceNamespace string `yaml:"service_namespace" env:"BEYLA_SERVICE_NAMESPACE"` // Discovery configuration Discovery services.DiscoveryConfig `yaml:"discovery"` LogLevel string `yaml:"log_level" env:"BEYLA_LOG_LEVEL"` ChannelBufferLen int `yaml:"channel_buffer_len" env:"BEYLA_CHANNEL_BUFFER_LEN"` Noop debug.NoopEnabled `yaml:"noop" env:"BEYLA_NOOP_TRACES"` ProfilePort int `yaml:"profile_port" env:"BEYLA_PROFILE_PORT"` InternalMetrics imetrics.Config `yaml:"internal_metrics"` }
func LoadConfig ¶
LoadConfig overrides configuration in the following order (from less to most priority) 1 - Default configuration (defaultConfig variable) 2 - Contents of the provided file reader (nillable) 3 - Environment variables
type ConfigError ¶
type ConfigError string
func (ConfigError) Error ¶
func (e ConfigError) Error() string
type Instrumenter ¶
type Instrumenter struct {
// contains filtered or unexported fields
}
func Build ¶
func Build(ctx context.Context, config *Config, ctxInfo *global.ContextInfo, tracesCh <-chan []request.Span) (*Instrumenter, error)
Build instantiates the whole instrumentation --> processing --> submit pipeline graph and returns it as a startable item
func (*Instrumenter) Run ¶
func (i *Instrumenter) Run(ctx context.Context)
Click to show internal directories.
Click to hide internal directories.