common

package module
v1.23.3 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2026 License: Apache-2.0 Imports: 10 Imported by: 79

Documentation

Index

Constants

View Source
const (
	EnvInjectionDecisionLoader      = EnvInjectionDecision(LoaderEnvInjectionMethod)
	EnvInjectionDecisionPodManifest = EnvInjectionDecision(PodManifestEnvInjectionMethod)
)

The decision on the actual injection method to use for a specific pod. While the configuration allows one to choose options with fallbaks, this decision is based on the runtime inspection, user overrides, and the distro support, and reflects what odigos is actually plan to use.

View Source
const LibcTypeDistroParameterName = "LIBC_TYPE"
View Source
const OdigosResourceNamespace = "instrumentation.odigos.io"

This is the resource namespace of the lister in k8s device plugin manager. from the "github.com/kubevirt/device-plugin-manager" package source: GetResourceNamespace must return namespace (vendor ID) of implemented Lister. e.g. for resources in format "color.example.com/<color>" that would be "color.example.com".

Variables

View Source
var (
	OtelSdkNativeCommunity  = OtelSdk{SdkType: NativeOtelSdkType, SdkTier: CommunityOtelSdkTier}
	OtelSdkEbpfCommunity    = OtelSdk{SdkType: EbpfOtelSdkType, SdkTier: CommunityOtelSdkTier}
	OtelSdkNativeEnterprise = OtelSdk{SdkType: NativeOtelSdkType, SdkTier: EnterpriseOtelSdkTier}
	OtelSdkEbpfEnterprise   = OtelSdk{SdkType: EbpfOtelSdkType, SdkTier: EnterpriseOtelSdkTier}
)

Functions

func GetVersion added in v1.0.97

func GetVersion(versionString string) *version.Version

func MajorMinorStringOnly added in v1.0.174

func MajorMinorStringOnly(v *version.Version) (string, error)

func MapOdigosToSemConv added in v1.0.99

func MapOdigosToSemConv(odigosPrograminglang ProgrammingLanguage) string

MapOdigosToSemConv maps odigos programming language to OpenTelemetry semantic conventions It is supported only for the languages that are supported by OpenTelemetry [not for mysql, nginx, etc.]

func SpanKindOdigosToOtel

func SpanKindOdigosToOtel(kind SpanKind) trace.SpanKind

func StartPprofServer added in v1.0.71

func StartPprofServer(ctx context.Context, logger logr.Logger, port int) error

StartPprofServer starts the pprof server on the specified port. This is blocking, so it should be run in a goroutine.

Types

type AgentHealthStatus added in v1.0.87

type AgentHealthStatus string
const (
	// AgentHealthStatusHealthy represents the healthy status of an agent
	// It started the OpenTelemetry SDK with no errors, processed any configuration and is ready to receive data.
	AgentHealthStatusHealthy AgentHealthStatus = "Healthy"

	// AgentHealthStatusStarting represents that the agent is starting and there is still no health status available.
	// Once the agent finishes starting, it should report an either healthy or unhealthy status depending on the result.
	AgentHealthStatusStarting AgentHealthStatus = "Starting"

	// AgentHealthStatusUnsupportedRuntimeVersion represents that the agent is running on an unsupported runtime version
	// For example: Otel sdk supports node.js >= 14 and workload is running with node.js 12
	AgentHealthStatusUnsupportedRuntimeVersion AgentHealthStatus = "UnsupportedRuntimeVersion"

	// AgentHealthStatusNoHeartbeat is when the server did not receive a 3 heartbeats from the agent, thus it is considered unhealthy
	AgentHealthStatusNoHeartbeat AgentHealthStatus = "NoHeartbeat"

	// AgentHealthStatusProcessTerminated is when the agent process is terminated.
	// The termination can be due to normal shutdown (e.g. event loop run out of work)
	// due to explicit termination (e.g. code calls exit(), or OS signal), or due to an error (e.g. unhandled exception)
	AgentHealthProcessTerminated AgentHealthStatus = "ProcessTerminated"

	// AgentHealthStatusAgentFailure is when the opamp agent encountered an error during runtime.
	AgentFailure AgentHealthStatus = "AgentFailure"
)

type AgentsInitContainerResources added in v1.9.9

type AgentsInitContainerResources struct {
	// RequestCPUm is the CPU request for the init container.
	// it will be embedded in the init container as a resource request of the form "cpu: <value>m"
	// default value is 300m
	RequestCPUm int `json:"requestCPUm,omitempty" yaml:"requestCPUm,omitempty"`

	// LimitCPUm is the CPU limit for the init container.
	// it will be embedded in the init container as a resource limit of the form "cpu: <value>m"
	// default value is 300m
	LimitCPUm int `json:"limitCPUm,omitempty" yaml:"limitCPUm,omitempty"`

	// RequestMemoryMiB is the memory request for the init container.
	// it will be embedded in the init container as a resource request of the form "memory: <value>Mi"
	// default value is 300Mi
	RequestMemoryMiB int `json:"requestMemoryMiB,omitempty" yaml:"requestMemoryMiB,omitempty"`

	// LimitMemoryMiB is the memory limit for the init container.
	// it will be embedded in the init container as a resource limit of the form "memory: <value>Mi"
	// default value is 300Mi
	LimitMemoryMiB int `json:"limitMemoryMiB,omitempty" yaml:"limitMemoryMiB,omitempty"`
}

AgentsInitContainerResources defines resource limits and requests for the init container that is injected into user pods when using the k8s-init-container mount method.

type CollectorGatewayConfiguration added in v1.0.93

type CollectorGatewayConfiguration struct {
	// MinReplicas is the number of replicas for the cluster gateway collector deployment.
	// Also set the minReplicas for the HPA to this value.
	MinReplicas int `json:"minReplicas,omitempty"`

	// MaxReplicas set the maxReplicas for the HPA to this value.
	MaxReplicas int `json:"maxReplicas,omitempty"`

	// RequestMemoryMiB is the memory request for the cluster gateway collector deployment.
	// it will be embedded in the deployment as a resource request of the form "memory: <value>Mi"
	// default value is 500Mi
	RequestMemoryMiB int `json:"requestMemoryMiB,omitempty"`

	// LimitMemoryMiB is the memory limit for the cluster gateway collector deployment.
	// it will be embedded in the deployment as a resource limit of the form "memory: <value>Mi"
	// default value is 1.25 the memory request.
	LimitMemoryMiB int `json:"limitMemoryMiB,omitempty"`

	// RequestCPUm is the CPU request for the cluster gateway collector deployment.
	// it will be embedded in the deployment as a resource request of the form "cpu: <value>m"
	// default value is 500m
	RequestCPUm int `json:"requestCPUm,omitempty"`

	// LimitCPUm is the CPU limit for the cluster gateway collector deployment.
	// it will be embedded in the deployment as a resource limit of the form "cpu: <value>m"
	// default value is 1000m
	LimitCPUm int `json:"limitCPUm,omitempty"`

	// this parameter sets the "limit_mib" parameter in the memory limiter configuration for the collector gateway.
	// it is the hard limit after which a force garbage collection will be performed.
	// if not set, it will be 50Mi below the memory request.
	MemoryLimiterLimitMiB int `json:"memoryLimiterLimitMiB,omitempty"`

	// this parameter sets the "spike_limit_mib" parameter in the memory limiter configuration for the collector gateway.
	// note that this is not the processor soft limit, but the diff in Mib between the hard limit and the soft limit.
	// if not set, this will be set to 20% of the hard limit (so the soft limit will be 80% of the hard limit).
	MemoryLimiterSpikeLimitMiB int `json:"memoryLimiterSpikeLimitMiB,omitempty"`

	// the GOMEMLIMIT environment variable value for the collector gateway deployment.
	// this is when go runtime will start garbage collection.
	// if not specified, it will be set to 80% of the hard limit of the memory limiter.
	GoMemLimitMib int `json:"goMemLimitMiB,omitempty"`

	// ServiceGraph holds all configuration for the service graph connector.
	ServiceGraph *ServiceGraphOptions `json:"serviceGraph,omitempty"`

	// ClusterMetricsEnabled is a feature that allows you to enable the cluster metrics.
	// https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8sclusterreceiver
	// It is disabled by default and can be enabled by setting the enabled flag to true.
	// This feature is only available when metrics destination is configured.
	ClusterMetricsEnabled *bool `json:"clusterMetricsEnabled,omitempty"`

	// for destinations that uses https for exporting data, this value can be used to set the value for the https proxy.
	HttpsProxyAddress *string `json:"httpsProxyAddress,omitempty"`

	// Node selector for the cluster gateway collector deployment.
	// Use this to force the gateway to run only on nodes with specific labels.
	// This is a hard requirement: the pod will be scheduled ONLY on nodes that match all labels.
	// If no matching nodes exist, the pod will remain Pending.
	NodeSelector *map[string]string `json:"nodeSelector,omitempty"`

	// Deployment name for the cluster gateway collector deployment.
	// If not set, the default is 'odigos-gateway'.
	DeploymentName string `json:"deploymentName,omitempty"`
}

type CollectorNodeConfiguration added in v1.0.117

type CollectorNodeConfiguration struct {
	// The port to use for exposing the collector's own metrics as a prometheus endpoint.
	// This can be used to resolve conflicting ports when a collector is using the host network.
	CollectorOwnMetricsPort int32 `json:"collectorOwnMetricsPort,omitempty"`

	// RequestMemoryMiB is the memory request for the node collector daemonset.
	// it will be embedded in the daemonset as a resource request of the form "memory: <value>Mi"
	// default value is 250Mi
	RequestMemoryMiB int `json:"requestMemoryMiB,omitempty"`

	// LimitMemoryMiB is the memory limit for the node collector daemonset.
	// it will be embedded in the daemonset as a resource limit of the form "memory: <value>Mi"
	// default value is 2x the memory request.
	LimitMemoryMiB int `json:"limitMemoryMiB,omitempty"`

	// RequestCPUm is the CPU request for the node collector daemonset.
	// it will be embedded in the daemonset as a resource request of the form "cpu: <value>m"
	// default value is 250m
	RequestCPUm int `json:"requestCPUm,omitempty"`

	// LimitCPUm is the CPU limit for the node collector daemonset.
	// it will be embedded in the daemonset as a resource limit of the form "cpu: <value>m"
	// default value is 500m
	LimitCPUm int `json:"limitCPUm,omitempty"`

	// this parameter sets the "limit_mib" parameter in the memory limiter configuration for the node collector.
	// it is the hard limit after which a force garbage collection will be performed.
	// if not set, it will be 50Mi below the memory request.
	MemoryLimiterLimitMiB int `json:"memoryLimiterLimitMiB,omitempty"`

	// this parameter sets the "spike_limit_mib" parameter in the memory limiter configuration for the node collector.
	// note that this is not the processor soft limit, but the diff in Mib between the hard limit and the soft limit.
	// if not set, this will be set to 20% of the hard limit (so the soft limit will be 80% of the hard limit).
	MemoryLimiterSpikeLimitMiB int `json:"memoryLimiterSpikeLimitMiB,omitempty"`

	// the GOMEMLIMIT environment variable value for the node collector daemonset.
	// this is when go runtime will start garbage collection.
	// if not specified, it will be set to 80% of the hard limit of the memory limiter.
	GoMemLimitMib int `json:"goMemLimitMiB,omitempty"`

	// Deprecated - use OtlpExporterConfiguration instead.
	// EnableDataCompression is a feature that allows you to enable data compression before sending data to the Gateway collector.
	// It is disabled by default and can be enabled by setting the enabled flag to true.
	EnableDataCompression *bool `json:"enableDataCompression,omitempty"`

	// OtlpExporterConfiguration is the configuration for the OTLP exporter.
	OtlpExporterConfiguration *OtlpExporterConfiguration `json:"otlpExporterConfiguration,omitempty"`
}

type ComponentLogLevels added in v1.21.0

type ComponentLogLevels struct {
	Default      OdigosLogLevel `json:"default,omitempty"      yaml:"default,omitempty"`
	Autoscaler   OdigosLogLevel `json:"autoscaler,omitempty"   yaml:"autoscaler,omitempty"`
	Scheduler    OdigosLogLevel `json:"scheduler,omitempty"    yaml:"scheduler,omitempty"`
	Instrumentor OdigosLogLevel `json:"instrumentor,omitempty" yaml:"instrumentor,omitempty"`
	Odiglet      OdigosLogLevel `json:"odiglet,omitempty"      yaml:"odiglet,omitempty"`
	Deviceplugin OdigosLogLevel `json:"deviceplugin,omitempty" yaml:"deviceplugin,omitempty"`
	UI           OdigosLogLevel `json:"ui,omitempty"          yaml:"ui,omitempty"`
	Collector    OdigosLogLevel `json:"collector,omitempty"   yaml:"collector,omitempty"`
}

+kubebuilder:object:generate=true ComponentLogLevels holds default and per-component log levels. Default is the global; per-field overrides for that component.

func (*ComponentLogLevels) DeepCopy added in v1.21.0

func (in *ComponentLogLevels) DeepCopy() *ComponentLogLevels

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentLogLevels.

func (*ComponentLogLevels) DeepCopyInto added in v1.21.0

func (in *ComponentLogLevels) DeepCopyInto(out *ComponentLogLevels)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ComponentLogLevels) Resolve added in v1.21.0

func (c *ComponentLogLevels) Resolve(component string) string

Resolve returns the effective log level for the component. Order: component-specific → Default → "info".

type DestinationType

type DestinationType string
const (
	AlibabaCloudDestinationType           DestinationType = "alibabacloud"
	AppDynamicsDestinationType            DestinationType = "appdynamics"
	AWSCloudWatchDestinationType          DestinationType = "cloudwatch"
	AWSS3DestinationType                  DestinationType = "s3"
	AWSXRayDestinationType                DestinationType = "xray"
	AxiomDestinationType                  DestinationType = "axiom"
	AzureBlobDestinationType              DestinationType = "azureblob"
	AzureMonitorDestinationType           DestinationType = "azuremonitor"
	BetterStackDestinationType            DestinationType = "betterstack"
	BonreeDestinationType                 DestinationType = "bonree"
	CauselyDestinationType                DestinationType = "causely"
	ChecklyDestinationType                DestinationType = "checkly"
	ChronosphereDestinationType           DestinationType = "chronosphere"
	ClickhouseDestinationType             DestinationType = "clickhouse"
	CoralogixDestinationType              DestinationType = "coralogix"
	Dash0DestinationType                  DestinationType = "dash0"
	DatadogDestinationType                DestinationType = "datadog"
	DebugDestinationType                  DestinationType = "debug"
	DynamicDestinationType                DestinationType = "dynamic"
	DynatraceDestinationType              DestinationType = "dynatrace"
	ElasticAPMDestinationType             DestinationType = "elasticapm"
	ElasticsearchDestinationType          DestinationType = "elasticsearch"
	GCSDestinationType                    DestinationType = "gcs"
	GenericOTLPDestinationType            DestinationType = "otlp"
	GoogleCloudDestinationType            DestinationType = "googlecloud"
	GoogleCloudOTLPDestinationType        DestinationType = "googlecloudotlp"
	GrafanaCloudLokiDestinationType       DestinationType = "grafanacloudloki"
	GrafanaCloudPrometheusDestinationType DestinationType = "grafanacloudprometheus"
	GrafanaCloudTempoDestinationType      DestinationType = "grafanacloudtempo"
	GreptimeDestinationType               DestinationType = "greptime"
	GroundcoverDestinationType            DestinationType = "groundcover"
	HoneycombDestinationType              DestinationType = "honeycomb"
	HyperDxDestinationType                DestinationType = "hyperdx"
	InstanaDestinationType                DestinationType = "instana"
	JaegerDestinationType                 DestinationType = "jaeger"
	KafkaDestinationType                  DestinationType = "kafka"
	KloudMateDestinationType              DestinationType = "kloudmate"
	Last9DestinationType                  DestinationType = "last9"
	LightstepDestinationType              DestinationType = "lightstep"
	LogzioDestinationType                 DestinationType = "logzio"
	LokiDestinationType                   DestinationType = "loki"
	LumigoDestinationType                 DestinationType = "lumigo"
	MiddlewareDestinationType             DestinationType = "middleware"
	MockDestinationType                   DestinationType = "mock"
	NewRelicDestinationType               DestinationType = "newrelic"
	NopDestinationType                    DestinationType = "nop"
	ObserveDestinationType                DestinationType = "observe"
	OneUptimeDestinationType              DestinationType = "oneuptime"
	OpenObserveDestinationType            DestinationType = "openobserve"
	OracleDestinationType                 DestinationType = "oracle"
	OtlpHttpDestinationType               DestinationType = "otlphttp"
	PrometheusDestinationType             DestinationType = "prometheus"
	QrynDestinationType                   DestinationType = "qryn"
	QrynOSSDestinationType                DestinationType = "qryn-oss"
	QuickwitDestinationType               DestinationType = "quickwit"
	SentryDestinationType                 DestinationType = "sentry"
	SeqDestinationType                    DestinationType = "seq"
	SignalFxDestinationType               DestinationType = "signalfx"
	SignozDestinationType                 DestinationType = "signoz"
	SplunkDestinationType                 DestinationType = "splunk"
	SplunkOTLPDestinationType             DestinationType = "splunkotlp"
	SumoLogicDestinationType              DestinationType = "sumologic"
	TelemetryHubDestinationType           DestinationType = "telemetryhub"
	TempoDestinationType                  DestinationType = "tempo"
	TingyunDestinationType                DestinationType = "tingyun"
	TraceloopDestinationType              DestinationType = "traceloop"
	UptraceDestinationType                DestinationType = "uptrace"
	VictoriaMetricsCloudDestinationType   DestinationType = "victoriametricscloud"
)

type EnvInjectionDecision added in v1.6.0

type EnvInjectionDecision string

+kubebuilder:validation:Enum=loader;pod-manifest

type EnvInjectionMethod added in v1.0.186

type EnvInjectionMethod string

+kubebuilder:validation:Enum=loader;pod-manifest;loader-fallback-to-pod-manifest

const (
	// EnvInjectionMethodLoader will try and add the LD_PRELOAD env var to the pod manifest
	// which will trigger the odigos loader. If LD_PRELOAD is already set, it will not be added and the pod won't be instrumented.
	LoaderEnvInjectionMethod EnvInjectionMethod = "loader"
	// EnvInjectionMethodPodManifest will add the runtime specific agent loading env vars (e.g PYTHONPATH, NODE_OPTIONS) to the pod manifest
	// taking into account the user defined values and appending if necessary.
	PodManifestEnvInjectionMethod EnvInjectionMethod = "pod-manifest"
	// EnvInjectionMethodLoaderFallbackToPodManifest will try and add the LD_PRELOAD env var to the pod manifest
	// which will trigger the odigos loader. If LD_PRELOAD is set with a user defined value,
	// it will fallback to adding the runtime specific agent loading env vars (e.g PYTHONPATH, NODE_OPTIONS) to the pod manifest
	// and taking into account the user defined values and appending if necessary.
	LoaderFallbackToPodManifestInjectionMethod EnvInjectionMethod = "loader-fallback-to-pod-manifest"
)

type K8sHealthProbesSamplingConfiguration added in v1.18.0

type K8sHealthProbesSamplingConfiguration struct {
	// If set to true, Odigos will automatically detect and sample out health probes.
	// This is a global knob to enable health probes auto-detection and sampling completely for all sources in the cluster.
	// Users that are uninterested in tracing health probes (or collect less of these traces) can set this to true.
	Enabled *bool `json:"enabled,omitempty"`

	// percentage % (0-100) of health probes to keep.
	// if not set, it is defaulted to 0% -> all health probes will be sampled out.
	// set to some low value (like 1%) to still keep some health-probes traces.
	KeepPercentage *float64 `json:"keepPercentage,omitempty"`
}

Configuration for Odigos auto-kubelet-probes detection and sampling. Odigos can automatically pick up health probes from the k8s manifest, and treat them as "noisy endpoints" to be sampled out. Most users get little or no value from tracing health probes, and it is recommended to enable and use it. It will be used with head sampling where the agent support it. When tail sampling is enabled, the kubelet-health-probes will be sampled out by tail sampler.

type LanguageConfig added in v1.0.179

type LanguageConfig struct {
	Enabled bool              `json:"enabled"`
	EnvVars map[string]string `json:"env,omitempty"`
}

Struct to represent configuration for each language

type LibCType added in v1.0.139

type LibCType string

+kubebuilder:validation:Enum=glibc;musl

const (
	Glibc LibCType = "glibc"
	Musl  LibCType = "musl"
)

type MetricsSourceAgentJavaRuntimeMetricsConfiguration added in v1.15.0

type MetricsSourceAgentJavaRuntimeMetricsConfiguration struct {
	// global enable/disable for all Java runtime metrics
	Disabled *bool `json:"disabled,omitempty"`

	// individual metric configurations
	Metrics []MetricsSourceAgentRuntimeMetricConfiguration `json:"metrics,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceAgentJavaRuntimeMetricsConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceAgentJavaRuntimeMetricsConfiguration.

func (*MetricsSourceAgentJavaRuntimeMetricsConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceAgentMetricsConfiguration added in v1.12.0

type MetricsSourceAgentMetricsConfiguration struct {
	SpanMetrics *MetricsSourceAgentSpanMetricsConfiguration `json:"spanMetrics,omitempty"`

	// configuration for runtime metrics from agents
	RuntimeMetrics *MetricsSourceAgentRuntimeMetricsConfiguration `json:"runtimeMetrics,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceAgentMetricsConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceAgentMetricsConfiguration.

func (*MetricsSourceAgentMetricsConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceAgentRuntimeMetricConfiguration added in v1.15.0

type MetricsSourceAgentRuntimeMetricConfiguration struct {
	// name of the runtime metric (e.g., "jvm.class.loaded")
	Name string `json:"name"`

	// whether this specific metric is disabled
	Disabled *bool `json:"disabled,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceAgentRuntimeMetricConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceAgentRuntimeMetricConfiguration.

func (*MetricsSourceAgentRuntimeMetricConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceAgentRuntimeMetricsConfiguration added in v1.15.0

type MetricsSourceAgentRuntimeMetricsConfiguration struct {
	// configuration for Java runtime metrics
	Java *MetricsSourceAgentJavaRuntimeMetricsConfiguration `json:"java,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceAgentRuntimeMetricsConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceAgentRuntimeMetricsConfiguration.

func (*MetricsSourceAgentRuntimeMetricsConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceAgentSpanMetricsConfiguration added in v1.12.0

type MetricsSourceAgentSpanMetricsConfiguration struct {
	Enabled bool `json:"enabled"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceAgentSpanMetricsConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceAgentSpanMetricsConfiguration.

func (*MetricsSourceAgentSpanMetricsConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceConfiguration added in v1.6.0

type MetricsSourceConfiguration struct {

	// configuration for span metrics.
	SpanMetrics *MetricsSourceSpanMetricsConfiguration `json:"spanMetrics,omitempty"`

	// configuration for host metrics.
	HostMetrics *MetricsSourceHostMetricsConfiguration `json:"hostMetrics,omitempty"`

	// configuration for kubelet stats.
	KubeletStats *MetricsSourceKubeletStatsConfiguration `json:"kubeletStats,omitempty"`

	// configuration for odigos own metrics which are send to configured destinations.
	OdigosOwnMetrics *MetricsSourceOdigosOwnMetricsConfiguration `json:"odigosOwnMetrics,omitempty"`

	// configuration for agent span metrics.
	AgentMetrics *MetricsSourceAgentMetricsConfiguration `json:"agentMetrics,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceConfiguration.

func (*MetricsSourceConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceHostMetricsConfiguration added in v1.6.0

type MetricsSourceHostMetricsConfiguration struct {

	// control beahvior for when to collect host metrics.
	// - true - host metrics will never be collected, even if destinations require it.
	// - false / nil - host metrics will be collected if destinations require it (can be opt-in and out in destination level).
	Disabled *bool `json:"disabled,omitempty"`

	// time interval for scraping metrics (format: 15s, 1m etc). defaults: 10s.
	Interval string `json:"interval,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceHostMetricsConfiguration) DeepCopy added in v1.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceHostMetricsConfiguration.

func (*MetricsSourceHostMetricsConfiguration) DeepCopyInto added in v1.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceKubeletStatsConfiguration added in v1.6.0

type MetricsSourceKubeletStatsConfiguration struct {

	// control beahvior for when to collect kubelet stats.
	// - true - kubelet stats will never be collected, even if destinations require it.
	// - false / nil - kubelet stats will be collected if destinations require it (can be opt-in and out in destination level).
	Disabled *bool `json:"disabled,omitempty"`

	// time interval for scraping metrics (format: 15s, 1m etc). defaults: 10s.
	Interval string `json:"interval,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceKubeletStatsConfiguration) DeepCopy added in v1.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceKubeletStatsConfiguration.

func (*MetricsSourceKubeletStatsConfiguration) DeepCopyInto added in v1.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceOdigosOwnMetricsConfiguration added in v1.12.0

type MetricsSourceOdigosOwnMetricsConfiguration struct {

	// time interval for scraping odigos ownmetrics (format: 15s, 1m etc). defaults: 10s.
	Interval string `json:"interval,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceOdigosOwnMetricsConfiguration) DeepCopy added in v1.15.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceOdigosOwnMetricsConfiguration.

func (*MetricsSourceOdigosOwnMetricsConfiguration) DeepCopyInto added in v1.15.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsSourceSpanMetricsConfiguration added in v1.6.0

type MetricsSourceSpanMetricsConfiguration struct {

	// control beahvior for when to collect span metrics.
	// - true - span metrics will never be collected, even if destinations require it.
	// - false / nil - span metrics will be collected if destinations require it (can be opt-in and out in destination level).
	Disabled *bool `json:"disabled,omitempty"`

	// time interval for flusing metrics (format: 15s, 1m etc). defaults: 60s (one minute).
	Interval string `json:"interval,omitempty"`

	// used to remove metrics after time that they are not reporting.
	// if an app only generates metrics once in a while, this parameter can tune
	// how much gap is allowed.
	// format: duration string (15s, 1m, etc).
	// default is 5m (five minutes).
	MetricsExpiration string `json:"metricsExpiration,omitempty"`

	// additional dimensions to add to the span metrics.
	// these are span attributes that you want to convert to metrics attributes during collection.
	// the values of the attributes must have low cardinality.
	// it can increase the number of series in the destination.
	// some dimensions are already added by default, regardless of this setting.
	AdditionalDimensions []string `json:"additionalDimensions,omitempty"`

	// if true, histogram metrics will not be collected.
	HistogramDisabled bool `json:"histogramDisabled,omitempty"`

	// explicit buckets list for the histogram metrics.
	// format is duration string (`1us`, `2ms`, `3s`, `4m`, `5h`, `6d` etc).
	// if not set, the default buckets list will be used.
	// the buckets must be in ascending order.
	// example: ["100us", "1ms", "2ms", "6ms", "10ms", "100ms", "250ms"]
	// Default value when unset:
	// 		["2ms", "4ms", "6ms", "8ms", "10ms", "50ms", "100ms", "200ms", "400ms", "800ms", "1s", "1400ms", "2s", "5s", "10s", "15s"]
	// notice that more granular buckets are recommended for better precision but costs more since more metric series are produced.
	ExplicitHistogramBuckets []string `json:"explicitHistogramBuckets,omitempty"`

	// By default, Odigos does not include process labels - meaning
	// metrics will be aggregated by container as the lowest level.
	// This means that multiple processes running in the same container
	// will be aggregated into the same time series.
	// For more granular metrics, set this option to true.
	// This will include process-specific labels on metrics,
	// which will cause more unique time series to be created.
	IncludedProcessInDimensions *bool `json:"includedProcessInDimensions,omitempty"`

	// exclude resource attributes from being added to span metrics.
	// for example - if you don't care about the process granularity,
	// and prefer the metrics to be aggregated for all processes in a pod container,
	// you can list all "process.*" attributes here to exclude them from being added to span metrics.
	// any other resource attribute can be set, either for sanitation or to reduce dimenssions for generate metrics.
	ExcludedResourceAttributes []string `json:"excludedResourceAttributes,omitempty"`

	// Advanced configuration - avoid using unless you know what you are doing.
	// This list controls which resource attributes are included in the metric stream identity.
	// These attributes are used to determines how span metrics are grouped.
	ResourceMetricsKeyAttributes []string `json:"resourceMetricsKeyAttributes,omitempty"`
}

+kubebuilder:object:generate=true

func (*MetricsSourceSpanMetricsConfiguration) DeepCopy added in v1.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSourceSpanMetricsConfiguration.

func (*MetricsSourceSpanMetricsConfiguration) DeepCopyInto added in v1.6.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MountMethod added in v1.0.154

type MountMethod string

+kubebuilder:validation:Enum=k8s-virtual-device;k8s-host-path;k8s-init-container;k8s-csi-driver

const (
	K8sVirtualDeviceMountMethod MountMethod = "k8s-virtual-device"
	K8sHostPathMountMethod      MountMethod = "k8s-host-path"
	K8sInitContainerMountMethod MountMethod = "k8s-init-container"
	K8sCsiDriverMountMethod     MountMethod = "k8s-csi-driver"
)

type ObservabilitySignal

type ObservabilitySignal string

+kubebuilder:validation:Enum=LOGS;TRACES;METRICS

const (
	LogsObservabilitySignal    ObservabilitySignal = "LOGS"
	TracesObservabilitySignal  ObservabilitySignal = "TRACES"
	MetricsObservabilitySignal ObservabilitySignal = "METRICS"
)

type OdigosConfiguration added in v1.0.93

type OdigosConfiguration struct {
	ConfigVersion             int                            `json:"configVersion" yaml:"configVersion"`
	TelemetryEnabled          bool                           `json:"telemetryEnabled,omitempty" yaml:"telemetryEnabled"`
	OpenshiftEnabled          bool                           `json:"openshiftEnabled,omitempty" yaml:"openshiftEnabled"`
	IgnoredNamespaces         []string                       `json:"ignoredNamespaces,omitempty" yaml:"ignoredNamespaces"`
	IgnoredContainers         []string                       `json:"ignoredContainers,omitempty" yaml:"ignoredContainers"`
	IgnoreOdigosNamespace     *bool                          `json:"ignoreOdigosNamespace,omitempty" yaml:"ignoreOdigosNamespace"`
	Psp                       bool                           `json:"psp,omitempty" yaml:"psp"`
	ImagePrefix               string                         `json:"imagePrefix,omitempty" yaml:"imagePrefix"`
	SkipWebhookIssuerCreation bool                           `json:"skipWebhookIssuerCreation,omitempty" yaml:"skipWebhookIssuerCreation"`
	CollectorGateway          *CollectorGatewayConfiguration `json:"collectorGateway,omitempty" yaml:"collectorGateway"`
	CollectorNode             *CollectorNodeConfiguration    `json:"collectorNode,omitempty" yaml:"collectorNode"`
	Profiles                  []ProfileName                  `json:"profiles,omitempty" yaml:"profiles"`
	AllowConcurrentAgents     *bool                          `json:"allowConcurrentAgents,omitempty" yaml:"allowConcurrentAgents"`
	UiMode                    UiMode                         `json:"uiMode,omitempty" yaml:"uiMode"`
	UiPaginationLimit         int                            `json:"uiPaginationLimit,omitempty" yaml:"uiPaginationLimit"`
	UiRemoteUrl               string                         `json:"uiRemoteUrl,omitempty" yaml:"uiRemoteUrl"`
	CentralBackendURL         string                         `json:"centralBackendURL,omitempty" yaml:"centralBackendURL"`
	ClusterName               string                         `json:"clusterName,omitempty" yaml:"clusterName"`
	MountMethod               *MountMethod                   `json:"mountMethod,omitempty" yaml:"mountMethod"`
	//nolint:lll // CustomContainerRuntimeSocketPath line is long due to struct tag requirements
	CustomContainerRuntimeSocketPath  string                        `json:"customContainerRuntimeSocketPath,omitempty" yaml:"customContainerRuntimeSocketPath"`
	AgentEnvVarsInjectionMethod       *EnvInjectionMethod           `json:"agentEnvVarsInjectionMethod,omitempty" yaml:"agentEnvVarsInjectionMethod"`
	UserInstrumentationEnvs           *UserInstrumentationEnvs      `json:"userInstrumentationEnvs,omitempty" yaml:"userInstrumentationEnvs"`
	NodeSelector                      map[string]string             `json:"nodeSelector,omitempty" yaml:"nodeSelector"`
	KarpenterEnabled                  *bool                         `json:"karpenterEnabled,omitempty" yaml:"karpenterEnabled"`
	Rollout                           *RolloutConfiguration         `json:"rollout,omitempty" yaml:"rollout"`
	RollbackDisabled                  *bool                         `json:"rollbackDisabled,omitempty" yaml:"rollbackDisabled"`
	RollbackGraceTime                 string                        `json:"rollbackGraceTime,omitempty" yaml:"rollbackGraceTime"`
	RollbackStabilityWindow           string                        `json:"rollbackStabilityWindow,omitempty" yaml:"rollbackStabilityWindow"`
	Oidc                              *OidcConfiguration            `json:"oidc,omitempty" yaml:"oidc"`
	OdigletHealthProbeBindPort        int                           `json:"odigletHealthProbeBindPort,omitempty" yaml:"odigletHealthProbeBindPort"`
	GoAutoOffsetsCron                 string                        `json:"goAutoOffsetsCron,omitempty" yaml:"goAutoOffsetsCron"`
	GoAutoOffsetsMode                 string                        `json:"goAutoOffsetsMode,omitempty" yaml:"goAutoOffsetsMode"`
	ClickhouseJsonTypeEnabledProperty *bool                         `json:"clickhouseJsonTypeEnabled,omitempty"`
	CheckDeviceHealthBeforeInjection  *bool                         `json:"checkDeviceHealthBeforeInjection,omitempty"`
	ResourceSizePreset                string                        `json:"resourceSizePreset,omitempty" yaml:"resourceSizePreset"`
	WaspEnabled                       *bool                         `json:"waspEnabled,omitempty" yaml:"waspEnabled"`
	MetricsSources                    *MetricsSourceConfiguration   `json:"metricsSources,omitempty" yaml:"metricsSources"`
	AgentsInitContainerResources      *AgentsInitContainerResources `json:"agentsInitContainerResources,omitempty" yaml:"agentsInitContainerResources"`

	// traceIdSuffix when set, instruct odigos to use the "timedwall" id generator
	// for generating trace ids.
	// the below value should be a single byte hex value (for example "A3").
	// this value is injected into each trace id as the 8th byte
	// to identify the source of the generated trace.
	TraceIdSuffix string `json:"traceIdSuffix,omitempty" yaml:"traceIdSuffix"`

	AllowedTestConnectionHosts []string `json:"allowedTestConnectionHosts,omitempty" yaml:"allowedTestConnectionHosts"`

	// configuration for odigos own metrics store in the cluster.
	OdigosOwnTelemetryStore *OdigosOwnTelemetryConfiguration `json:"odigosOwnTelemetryStore,omitempty" yaml:"odigosOwnTelemetryStore"`

	// ImagePullSecrets to use for collectors and init container
	ImagePullSecrets []string `json:"imagePullSecrets,omitempty" yaml:"imagePullSecrets"`

	// global configurations for sampling.
	Sampling *SamplingConfiguration `json:"sampling,omitempty" yaml:"sampling"`

	// ComponentLogLevels: default = global level (e.g. from Helm); per-component overrides (e.g. from UI).
	ComponentLogLevels *ComponentLogLevels `json:"componentLogLevels,omitempty" yaml:"componentLogLevels,omitempty"`
}

OdigosConfiguration defines the desired state of OdigosConfiguration

type OdigosInstrumentationDevice

type OdigosInstrumentationDevice string

type OdigosLogLevel added in v1.21.0

type OdigosLogLevel string

OdigosLogLevel is the log level for components (error, warn, info, debug).

const (
	LogLevelError OdigosLogLevel = "error"
	LogLevelWarn  OdigosLogLevel = "warn"
	LogLevelInfo  OdigosLogLevel = "info"
	LogLevelDebug OdigosLogLevel = "debug"
)

type OdigosOwnTelemetryConfiguration added in v1.12.0

type OdigosOwnTelemetryConfiguration struct {
	// if set to true, odigos will not deploy victoriametrics as own metrics store and will not send own metrics to it.
	MetricsStoreDisabled *bool `json:"metricsStoreDisabled,omitempty"`
}

type OdigosTier

type OdigosTier string
const (

	// community is the opensource tier of odigos
	CommunityOdigosTier OdigosTier = "community"

	// cloud is the SaaS offering of odigos
	CloudOdigosTier OdigosTier = "cloud"

	// on premises comes with enterprise features and does not require
	// network connectivity to odigos cloud
	OnPremOdigosTier OdigosTier = "onprem"
)

type OidcConfiguration added in v1.0.201

type OidcConfiguration struct {
	// The URL of the OIDC tenant (e.g. "https://abc-123.okta.com").
	TenantUrl string `json:"tenantUrl,omitempty"`

	// The client ID of the OIDC application.
	ClientId string `json:"clientId,omitempty"`

	// The client secret of the OIDC application.
	ClientSecret string `json:"clientSecret,omitempty"`
}

type OtelSdk

type OtelSdk struct {
	SdkType OtelSdkType `json:"sdkType"`
	SdkTier OtelSdkTier `json:"sdkTier"`
}

type OtelSdkTier

type OtelSdkTier string
const (
	CommunityOtelSdkTier  OtelSdkTier = "community"
	EnterpriseOtelSdkTier OtelSdkTier = "enterprise"
)

type OtelSdkType

type OtelSdkType string

Odigos supports two types of OpenTelemetry SDKs: native and ebpf.

const (
	// The native SDK is implemented in the language of the application and
	// is integrated into the application code via runtime support (e.g. Java agent).
	NativeOtelSdkType OtelSdkType = "native"

	// EbpfOtelSdkType SDK can record telemetry data from the application with eBPF
	// code injected into the application process.
	EbpfOtelSdkType OtelSdkType = "ebpf"
)

type OtlpExporterConfiguration added in v1.9.0

type OtlpExporterConfiguration struct {
	EnableDataCompression *bool           `json:"enableDataCompression,omitempty"`
	Timeout               string          `json:"timeout,omitempty"`
	RetryOnFailure        *RetryOnFailure `json:"retryOnFailure,omitempty"`
}

+kubebuilder:object:generate=true

func (*OtlpExporterConfiguration) DeepCopy added in v1.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtlpExporterConfiguration.

func (*OtlpExporterConfiguration) DeepCopyInto added in v1.9.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProfileName added in v1.0.105

type ProfileName string

type ProgramLanguageDetails added in v1.0.93

type ProgramLanguageDetails struct {
	Language       ProgrammingLanguage
	RuntimeVersion string
}

type ProgrammingLanguage

type ProgrammingLanguage string

+kubebuilder:validation:Enum=java;python;go;dotnet;javascript;php;ruby;rust;cplusplus;mysql;nginx;redis;postgres;unknown;ignored

const (
	JavaProgrammingLanguage       ProgrammingLanguage = "java"
	PythonProgrammingLanguage     ProgrammingLanguage = "python"
	GoProgrammingLanguage         ProgrammingLanguage = "go"
	DotNetProgrammingLanguage     ProgrammingLanguage = "dotnet"
	JavascriptProgrammingLanguage ProgrammingLanguage = "javascript"
	PhpProgrammingLanguage        ProgrammingLanguage = "php"
	RubyProgrammingLanguage       ProgrammingLanguage = "ruby"
	RustProgrammingLanguage       ProgrammingLanguage = "rust"
	CPlusPlusProgrammingLanguage  ProgrammingLanguage = "cplusplus"
	CSharpProgrammingLanguage     ProgrammingLanguage = "csharp"
	SwiftProgrammingLanguage      ProgrammingLanguage = "swift"
	ElixirProgrammingLanguage     ProgrammingLanguage = "elixir"
	// This is an experimental feature, It is not a language
	// but in order to avoid huge refactoring we are adding it here for now
	MySQLProgrammingLanguage    ProgrammingLanguage = "mysql"
	NginxProgrammingLanguage    ProgrammingLanguage = "nginx"
	RedisProgrammingLanguage    ProgrammingLanguage = "redis"
	PostgresProgrammingLanguage ProgrammingLanguage = "postgres"
	// Used when the language detection is not successful for all the available inspectors
	UnknownProgrammingLanguage ProgrammingLanguage = "unknown"
)

type RetryOnFailure added in v1.9.0

type RetryOnFailure struct {
	Enabled         *bool  `json:"enabled,omitempty"`
	InitialInterval string `json:"initialInterval,omitempty"`
	MaxInterval     string `json:"maxInterval,omitempty"`
	MaxElapsedTime  string `json:"maxElapsedTime,omitempty"`
}

+kubebuilder:object:generate=true

func (*RetryOnFailure) DeepCopy added in v1.9.0

func (in *RetryOnFailure) DeepCopy() *RetryOnFailure

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryOnFailure.

func (*RetryOnFailure) DeepCopyInto added in v1.9.0

func (in *RetryOnFailure) DeepCopyInto(out *RetryOnFailure)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RolloutConfiguration added in v1.0.197

type RolloutConfiguration struct {

	// When set to true, Odigos will never trigger a rollout for workloads when instrumenting or uninstrumenting.
	// It is expected that users will manually trigger a rollout to apply the changes when needed,
	// but it gives them the option to control the process.
	// Any new pods that are created after agent is enabled or disabled (via manual rollout or auto scaling)
	// will be have agent injection regardless of this setting.
	// This setting does not control manual rollouts executed from the UI or via the API.
	// Any additional configuration regarding rollouts and rollbacks are ignored when this is set to true.
	AutomaticRolloutDisabled *bool `json:"automaticRolloutDisabled"`

	// ConcurrentRollouts is the maximum number of concurrent rollouts allowed. 0 is unlimited, disabling the limit.
	MaxConcurrentRollouts int `json:"maxConcurrentRollouts"`
}

type SamplingConfiguration added in v1.18.0

type SamplingConfiguration struct {

	// Set to true to enable dry run mode for sampling.
	// When enabled, Odigos runs the sampling logic but does not drop any traces; metrics are still
	// calculated so you can evaluate rule effectiveness before committing to changes that might lose data.
	// Each span gets an attribute 'odigos.sampling.dry_run.kept' indicating whether it would be kept or dropped once dry run is off.
	// With spanSamplingAttributes enabled, dry-run decisions are also visible as span attributes on each span.
	DryRun *bool `json:"dryRun,omitempty"`

	// Controls whether spans are enhanced with sampling attributes (e.g. category and decisions).
	// These attributes add context when viewing traces and inspecting costs, so you can understand
	// how sampling decisions were made for an individual span and apply changes to fine-tune rules.
	// When dry run is enabled, each span includes the sampling decision (kept or dropped) as it would apply once dry run is disabled.
	SpanSamplingAttributes *sampling.SpanSamplingAttributesConfiguration `json:"spanSamplingAttributes,omitempty"`

	// Configuration for tail sampling.
	TailSampling *sampling.TailSamplingConfiguration `json:"tailSampling,omitempty"`

	// Configuration for Odigos auto-kubelet-probes detection and sampling.
	K8sHealthProbesSampling *K8sHealthProbesSamplingConfiguration `json:"k8sHealthProbesSampling,omitempty"`
}

type ServiceGraphOptions added in v1.22.0

type ServiceGraphOptions struct {
	// Disabled controls whether the service graph connector is active.
	// Defaults to false (enabled). When disabled, the topology map in the UI will be unavailable
	// and load-balancing between node collectors and the gateway is also removed.
	Disabled *bool `json:"disabled,omitempty"`

	// ExtraDimensions are additional attribute names to include as dimensions in the
	// service graph metrics, on top of the default service.name dimension.
	// Both span-level and resource-level attributes are supported.
	ExtraDimensions []string `json:"extraDimensions,omitempty"`

	// VirtualNodePeerAttributes is an ordered list of span-level attributes used to identify
	// uninstrumented (virtual) nodes (e.g. Redis, Kafka). The connector picks the first
	// attribute that has a value on the CLIENT span.
	// When empty, the connector uses its built-in defaults: [peer.service, db.name, db.system].
	// Only span-level attributes are supported here; resource attributes are silently ignored.
	VirtualNodePeerAttributes []string `json:"virtualNodePeerAttributes,omitempty"`
}

ServiceGraphOptions holds all configuration for the OpenTelemetry service graph connector. It is serialized as a nested "serviceGraph" block inside CollectorGatewayConfiguration. CollectorsGroupSpec (CRD) still stores these as flat fields to preserve CRD backward compatibility. At the function-signature level it is also used directly in GatewayConfigOptions and collector group construction.

type SpanKind

type SpanKind string

SpanKind is already defined in opentelemetry-go as int. this value can go into the CRD in which case it will be string for user convenience. +kubebuilder:validation:Enum=client;server;producer;consumer;internal

const (
	ClientSpanKind   SpanKind = "client"
	ServerSpanKind   SpanKind = "server"
	ProducerSpanKind SpanKind = "producer"
	ConsumerSpanKind SpanKind = "consumer"
	InternalSpanKind SpanKind = "internal"
)

func ConvertSpanKindToString

func ConvertSpanKindToString(spanKind trace.SpanKind) SpanKind

type UiMode added in v1.0.144

type UiMode string

"normal" is deprecated. Kept here in the enum for backwards compatibility with operator CRD. +kubebuilder:validation:Enum=default;readonly;normal

const (
	UiModeDefault  UiMode = "default"
	UiModeReadonly UiMode = "readonly"
)

type UserInstrumentationEnvs added in v1.0.179

type UserInstrumentationEnvs struct {
	Languages map[ProgrammingLanguage]LanguageConfig `json:"languages,omitempty"`
}

Directories

Path Synopsis
api

Jump to

Keyboard shortcuts

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