Package v1alpha1 is the v1alpha1 version of the API.

Resource Types

CollectorsGroup

CollectorsGroup is the Schema for the collectors API

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringCollectorsGroup
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specCollectorsGroupSpecNo description provided.
statusCollectorsGroupStatusNo description provided.

Destination

Destination is the Schema for the destinations API

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringDestination
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specDestinationSpecNo description provided.
statusDestinationStatusNo description provided.

InstrumentationConfig

InstrumentationConfig is the Schema for the instrumentationconfig API

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringInstrumentationConfig
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specInstrumentationConfigSpecNo description provided.
statusInstrumentationConfigStatusNo description provided.

InstrumentationInstance

InstrumentationInstance is the Schema for the InstrumentationInstances API

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringInstrumentationInstance
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specInstrumentationInstanceSpecNo description provided.
statusInstrumentationInstanceStatusNo description provided.

InstrumentationRule

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringInstrumentationRule
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specInstrumentationRuleSpecNo description provided.
statusInstrumentationRuleStatusNo description provided.

InstrumentedApplication

InstrumentedApplication is the Schema for the instrumentedapplications API

Deprecated: in favour of InstrumentationConfig

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringInstrumentedApplication
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specInstrumentedApplicationSpecNo description provided.
statusInstrumentedApplicationStatusNo description provided.

OdigosConfiguration

OdigosConfiguration is the Schema for the odigos configuration

Deprecated: Use common.OdigosConfiguration instead

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringOdigosConfiguration
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specOdigosConfigurationSpecNo description provided.

Processor

Processor is the Schema for an Opentelemetry Collector Processor that is added to Odigos pipeline

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringProcessor
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specProcessorSpecNo description provided.
statusProcessorStatusNo description provided.

Source

Source configures an application for auto-instrumentation.

FieldTypeDescription
apiVersionstringodigos.io/v1alpha1
kindstringSource
metadatameta/v1.ObjectMeta

No description provided. Refer to the Kubernetes API documentation for the fields of the metadata field.

specSourceSpecNo description provided.
statusSourceStatusNo description provided.

AgentEnabledReason

(Alias of string)

Appears in:

Attribute

Appears in:

Attribute is a key-value pair that describes a component or instrumentation

FieldTypeDescription
keystringNo description provided.
valuestringNo description provided.

AttributeCondition

Appears in:

’Operand’ represents the attributes and values that an operator acts upon in an expression

FieldTypeDescription
keystring

attribute key (e.g. “url.path”)

valstring

currently only string values are supported.

operatorOperator

The operator to use to compare the attribute value.

AttributesAndSamplerRule

Appears in:

AttributesAndSamplerRule is a set of AttributeCondition that are ANDed together. If all attribute conditions evaluate to true, the AND sampler evaluates to true, and the fraction is used to determine the sampling decision. If any of the attribute compare samplers evaluate to false, the fraction is not used and the rule is skipped. An “empty” AttributesAndSamplerRule with no attribute conditions is considered to always evaluate to true. and the fraction is used to determine the sampling decision. This entity is refered to a rule in Odigos terminology for head-sampling.

FieldTypeDescription
attributeConditions[]AttributeConditionNo description provided.
fractionfloat64

The fraction of spans to sample, in the range [0, 1]. If the fraction is 0, no spans are sampled. If the fraction is 1, all spans are sampled.

CollectorGatewayConfiguration

Appears in:

Deprecated: Use common.OdigosConfiguration instead

FieldTypeDescription
requestMemoryMiBint

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

memoryLimiterLimitMiBint

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.

memoryLimiterSpikeLimitMiBint

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).

goMemLimitMiBint

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.

CollectorsGroupResourcesSettings

Appears in:

The raw values to control the collectors group resources and behavior. any defaulting, validations and calculations should be done in the controllers that create this CR. Values will be used as is without any further processing.

FieldTypeDescription
minReplicasint

Minumum + Maximum number of replicas for the collector - these relevant only for gateway.

maxReplicasintNo description provided.
memoryRequestMiBint

MemoryRequestMiB is the memory resource request to be used on the pod template. it will be embedded in the as a resource request of the form memory: <value>Mi

memoryLimitMiBint

This option sets the limit on the memory usage of the collector. since the memory limiter mechanism is heuristic, and operates on fixed intervals, while it cannot fully prevent OOMs, it can help in reducing the chances of OOMs in edge cases. the settings should prevent the collector from exceeding the memory request, so one can set this to the same value as the memory request or higher to allow for some buffer for bursts.

cpuRequestMillicoresint

CPU resource request to be used on the pod template. it will be embedded in the as a resource request of the form cpu: <value>m

cpuLimitMillicoresint

CPU resource limit to be used on the pod template. it will be embedded in the as a resource limit of the form cpu: <value>m

memoryLimiterLimitMiBint

this parameter sets the “limit_mib” parameter in the memory limiter configuration for the collector. it is the hard limit after which a force garbage collection will be performed. this value will end up comparing against the go runtime reported heap Alloc value. According to the memory limiter docs:

memoryLimiterSpikeLimitMiBint

this parameter sets the “spike_limit_mib” parameter in the memory limiter configuration for the collector memory limiter. note that this is not the processor soft limit itself, but the diff in Mib between the hard limit and the soft limit. according to the memory limiter docs, it is recommended to set this to 20% of the hard limit. changing this value allows trade-offs between memory usage and resiliency to bursts.

gomemlimitMiBint

the GOMEMLIMIT environment variable value for the collector pod. this is when go runtime will start garbage collection. it is recommended to be set to 80% of the hard limit of the memory limiter.

CollectorsGroupRole

(Alias of string)

Appears in:

CollectorsGroupSpec

Appears in:

CollectorsGroupSpec defines the desired state of Collector

FieldTypeDescription
roleCollectorsGroupRoleNo description provided.
collectorOwnMetricsPortint32

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.

resourcesSettingsCollectorsGroupResourcesSettings

Resources [memory/cpu] settings for the collectors group. these settings are used to protect the collectors instances from:

  • running out of memory and being killed by the k8s OOM killer
  • consuming all available memory on the node which can lead to node instability
  • pushing back pressure to the instrumented applications

CollectorsGroupStatus

Appears in:

CollectorsGroupStatus defines the observed state of Collector

FieldTypeDescription
readyboolNo description provided.
receiverSignals[]common.ObservabilitySignal

Receiver Signals are the signals (trace, metrics, logs) that the collector has setup an otlp receiver for, thus it can accept data from an upstream component. this is used to determine if a workload should export each signal or not. this list is calculated based on the odigos destinations that were configured

conditions[]meta/v1.Condition

Represents the observations of a collectorsroup’s current state. Known .status.conditions.type are: “Available”, “Progressing”

ConfigOption

Appears in:

Deprecated: configuration is done via InstrumentationConfig

FieldTypeDescription
optionKeystringNo description provided.
spanKindcommon.SpanKindNo description provided.

ContainerAgentConfig

Appears in:

ContainerAgentConfig is a configuration for a specific container in a workload.

FieldTypeDescription
containerNamestring

The name of the container to which this configuration applies.

agentEnabledbool

boolean flag to indicate if the agent should be enabled for this container.

agentEnabledReasonAgentEnabledReason

An enum reason for the agent injection decision.

agentEnabledMessagestring

free text message to provide more information about the instrumentation decision. can be left empty if reason is self-explanatory.

otelDistroNamestring

The name of the otel distribution to use for this container. if the name is empty, this container should not be instrumented.

distroParamsmap[string]string

Additional parameters to the distro that controls how it’s being applied. Keys are parameter names (like “libc”) and values are the value to use for that parameter (glibc / musl)

DestinationSpec

Appears in:

DestinationSpec defines the desired state of Destination

FieldTypeDescription
typecommon.DestinationTypeNo description provided.
destinationNamestringNo description provided.
datamap[string]stringNo description provided.
secretRefcore/v1.LocalObjectReferenceNo description provided.
signals[]common.ObservabilitySignalNo description provided.
sourceSelectorSourceSelector

SourceSelector defines which sources can send data to this destination. If not specified, defaults to “all”.

DestinationStatus

Appears in:

DestinationStatus defines the observed state of Destination

FieldTypeDescription
conditions[]meta/v1.Condition

Represents the observations of a destination’s current state.

EnvVar

Appears in:

FieldTypeDescription
namestringNo description provided.
valuestringNo description provided.

HeadSamplingConfig

Appears in:

HeadSamplingConfig is a set of attribute rules. The first attribute rule that evaluates to true is used to determine the sampling decision based on its fraction.

If none of the rules evaluate to true, the fallback fraction is used to determine the sampling decision.

FieldTypeDescription
attributesAndSamplerRules[]AttributesAndSamplerRuleNo description provided.
fallbackFractionfloat64

Used as a fallback if all rules evaluate to false, it may be empty - in this case the default value will be 1 - all spans are sampled. it should be a float value in the range [0, 1] - the fraction of spans to sample. a value of 0 means no spans are sampled if none of the rules evaluate to true.

InstrumentationConfigSpec

Appears in:

Config for the OpenTelemeetry SDKs that should be applied to a workload. The workload is identified by the owner reference

FieldTypeDescription
serviceNamestring

the service.name property is used to populate the service.name resource attribute in the telemetry generated by this workload

agentInjectionEnabledbool

determines if odigos should inject agents to pods of this workload.

containers[]ContainerAgentConfig

configuration for each instrumented container in the workload

sdkConfigs[]SdkConfig

Configuration for the OpenTelemetry SDKs that this workload should use. The SDKs are identified by the programming language they are written in. TODO: consider adding more granular control over the SDKs, such as community/enterprise, native/ebpf.

InstrumentationConfigStatus

Appears in:

FieldTypeDescription
runtimeDetailsByContainer[]RuntimeDetailsByContainer

Capture Runtime Details for the workloads that this CR applies to.

conditions[]meta/v1.Condition

Represents the observations of a InstrumentationConfig’s current state.

workloadRolloutHashstring

The hash used to determine whether the associated workload needs to be rolled out. This hash is calculated based on the containers config array and takes into account the container name, Instrumented flag and the OTel distro name.

InstrumentationInstanceSpec

Appears in:

FieldTypeDescription
containerNamestring

stores the name of the container in the pod where the SDK is running. The pod details can be found as the owner reference on the CR.

InstrumentationInstanceStatus

Appears in:

InstrumentationInstanceStatus defines the observed state of InstrumentationInstance If the instrumentation is not active, this CR should be deleted

FieldTypeDescription
identifyingAttributes[]Attribute

Attributes that identify the SDK and are reported as resource attributes in the generated telemetry. One can identify if an arbitrary telemetry is generated by this SDK by checking those resource attributes.

nonIdentifyingAttributes[]Attribute

Attributes that are not reported as resource attributes but useful to describe characteristics of the SDK.

healthybool

Healthy true means that the odigos agent has started the SDK, and there are no errors. User can expect telemetry to be generated. Healthy false means that the agent has stopped and telemetry data is not expected to be generated. Healthy nil means that the agent did not report any health status yet (prefer to always report health status).

messagestring

message is a human readable message indicating details about the SDK general health. can be omitted if healthy is true

reasonstring

reason contains a programmatic identifier indicating the reason for the component status. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API.

lastStatusTimemeta/v1.TimeNo description provided.
components[]InstrumentationLibraryStatusNo description provided.

InstrumentationLibraryConfig

Appears in:

FieldTypeDescription
libraryIdInstrumentationLibraryIdNo description provided.
traceConfigInstrumentationLibraryConfigTracesNo description provided.
payloadCollectioninstrumentationrules.PayloadCollectionNo description provided.
codeAttributesinstrumentationrules.CodeAttributes

code attributes configuration for a specific library. if not set, the default code attributes configuration for the workload will be used. if set, but internal fields are empty, those fields will be used from the default configuration.

InstrumentationLibraryConfigTraces

Appears in:

FieldTypeDescription
enabledbool

Whether the instrumentation library is enabled to record traces. When false, it is expected that the instrumentation library does not produce any spans regardless of any other configuration. When true, the instrumentation library should produce spans according to the other configuration options. If not specified, the default value for this signal should be used (whether to enable libraries by default or not).

InstrumentationLibraryId

Appears in:

FieldTypeDescription
libraryNamestring

The name of the instrumentation library

  • Node.js: The name of the npm package: @opentelemetry/instrumentation-<name>
spanKindcommon.SpanKind

SpanKind is only supported by Golang and will be ignored for any other SDK language. In Go, SpanKind is used because the same instrumentation library can be utilized for different span kinds (e.g., client/server).

InstrumentationLibraryOptions

Appears in:

Deprecated: configuration is done via InstrumentationConfig

FieldTypeDescription
libraryNamestringNo description provided.
options[]ConfigOptionNo description provided.

InstrumentationLibraryStatus

Appears in:

InstrumentationLibraryStatus defines the observed state of an InstrumentationLibrary. if a library is not active/disable, it should not be included in the status

FieldTypeDescription
namestring

for example (“net/http”, “@opentelemetry/instrumentation-redis”)

typeInstrumentationLibraryTypeNo description provided.
identifyingAttributes[]Attribute

Attributes that identify the component. The combination of (Name, Type, IdentifyingAttributes) must be unique.

nonIdentifyingAttributes[]Attribute

Attributes that do not necessarily identify the component but help describe its characteristics.

healthyboolNo description provided.
messagestring

message is a human readable message indicating details about the component health. can be omitted if healthy is true

reasonstring

reason contains a programmatic identifier indicating the reason for the SDK status. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API.

lastStatusTimemeta/v1.TimeNo description provided.

InstrumentationLibraryType

(Alias of string)

Appears in:

InstrumentationRuleSpec

Appears in:

FieldTypeDescription
ruleNamestring

Allows you to attach a meaningful name to the rule for convenience. Odigos does not use or assume any meaning from this field.

notesstring

A free-form text field that allows you to attach notes regarding the rule for convenience. For example: why it was added. Odigos does not use or assume any meaning from this field.

disabledbool

A boolean field allowing to temporarily disable the rule, but keep it around for future use

workloads[]github.com/odigos-io/odigos/api/k8sconsts.PodWorkload

An array of workload objects (name, namespace, kind) to which the rule should be applied. If not specified, the rule will be applied to all workloads. empty array will render the rule inactive.

instrumentationLibraries[]github.com/odigos-io/odigos/api/odigos/v1alpha1.InstrumentationLibraryGlobalId

For fine grained control, the user can specify the instrumentation library to use. One can specify same rule for multiple languages and libraries at the same time. If nil, all instrumentation libraries will be used. If empty, no instrumentation libraries will be used.

payloadCollectioninstrumentationrules.PayloadCollection

Allows to configure payload collection aspects for different types of payloads.

otelSdksinstrumentationrules.OtelSdks

Deprecated: use OtelDistros instead.

otelDistrosinstrumentationrules.OtelDistros

Set the otel distros to use instead of the defaults.

codeAttributesinstrumentationrules.CodeAttributes

Configure which code attributes should be recorded as span attributes.

InstrumentationRuleStatus

Appears in:

FieldTypeDescription
conditions[]meta/v1.Condition

Represents the observations of a instrumentationrule’s current state. Known .status.conditions.type are: “Available”, “Progressing”

InstrumentedApplicationSpec

Appears in:

InstrumentedApplicationSpec defines the desired state of InstrumentedApplication

Deprecated: in favour of InstrumentationConfig

FieldTypeDescription
runtimeDetails[]RuntimeDetailsByContainerNo description provided.
options[]OptionByContainerNo description provided.

InstrumentedApplicationStatus

Appears in:

InstrumentedApplicationStatus defines the observed state of InstrumentedApplication

Deprecated: in favour of InstrumentationConfig

FieldTypeDescription
conditions[]meta/v1.Condition

Represents the observations of a nstrumentedApplication’s current state.

OdigosConfigurationSpec

Appears in:

OdigosConfigurationSpec defines the desired state of OdigosConfiguration

Deprecated: Use common.OdigosConfiguration instead

FieldTypeDescription
odigosVersionstringNo description provided.
configVersionintNo description provided.
telemetryEnabledboolNo description provided.
openshiftEnabledboolNo description provided.
ignoredNamespaces[]stringNo description provided.
ignoredContainers[]stringNo description provided.
pspboolNo description provided.
imagePrefixstringNo description provided.
odigletImagestringNo description provided.
instrumentorImagestringNo description provided.
autoscalerImagestringNo description provided.
collectorGatewayCollectorGatewayConfigurationNo description provided.
goAutoIncludeCodeAttributesbool

this is internal currently, and is not exposed on the CLI / helm used for odigos enterprise

Operator

(Alias of string)

Appears in:

OptionByContainer

Appears in:

Deprecated: configuration is done via InstrumentationConfig

FieldTypeDescription
containerNamestringNo description provided.
instrumentationsLibraries[]InstrumentationLibraryOptionsNo description provided.

OtherAgent

Appears in:

FieldTypeDescription
namestringNo description provided.

ProcessingState

(Alias of string)

Appears in:

ProcessorSpec

Appears in:

ProcessorSpec defines the an OpenTelemetry Collector processor in odigos telemetry pipeline

FieldTypeDescription
typestring

type of the processor (batch, attributes, etc). this field is only the type, not it’s instance name in the collector configuration yaml

processorNamestring

this name is solely for the user convenience, to attach a meaningful name to the processor. odigos must not assume any semantics from this name. odigos cannot assume this name is unique, not empty, exclude spaces or dots, limited in length, etc.

notesstring

user can attach notes to the processor, to document its purpose, usage, etc.

disabledbool

disable is a flag to enable or disable the processor. if the processor is disabled, it will not be included in the collector configuration yaml. this allows the user to keep the processor configuration in the CR, but disable it temporarily.

signals[]common.ObservabilitySignal

signals can be used to control which observability signals are processed by the processor.

collectorRoles[]CollectorsGroupRole

control which collector roles in odigos pipeline this processor is attached to.

orderHintint

control the order of processors. a processor with lower order hint value will be placed before other processors with higher value. if 2 processors have the same value, the order is arbitrary. if the value is missing (or 0) the processor can be placed anywhere in the pipeline

processorConfigk8s.io/apimachinery/pkg/runtime.RawExtension

this it the configuration of the opentelemetry collector processor component with the type specified in ‘type’.

ProcessorStatus

Appears in:

ProcessorStatus defines the observed state of the processor

RuntimeDetailsByContainer

Appears in:

FieldTypeDescription
containerNamestringNo description provided.
languagecommon.ProgrammingLanguageNo description provided.
runtimeVersionstringNo description provided.
envVars[]EnvVarNo description provided.
otherAgentOtherAgentNo description provided.
libCTypecommon.LibCTypeNo description provided.
criErrorMessagestring

Stores the error message from the CRI runtime if returned to prevent instrumenting the container if an error exists.

envFromContainerRuntime[]EnvVar

Holds the environment variables retrieved from the container runtime.

runtimeUpdateStateProcessingState

A temporary variable used during migration to track whether the new runtime detection process has been executed. If empty, it indicates the process has not yet been run. This field may be removed later.

SdkConfig

Appears in:

FieldTypeDescription
languagecommon.ProgrammingLanguage

The language of the SDK being configured

instrumentationLibraryConfigs[]InstrumentationLibraryConfig

configurations for the instrumentation libraries the the SDK should use

headSamplerConfigHeadSamplingConfig

HeadSamplingConfig is a set sampling rules. This config currently only applies to root spans. In the Future we might add another level of configuration base on the parent span (ParentBased Sampling)

payloadCollectioninstrumentationrules.PayloadCollectionNo description provided.
codeAttributesinstrumentationrules.CodeAttributes

default configuration for collecting code attributes, in case the instrumentation library does not provide a configuration.

SourceSelector

Appears in:

FieldTypeDescription
namespaces[]string

If a namespace is specified, all workloads (sources) within that namespace are allowed to send data. Example: namespaces: [“default”, “production”] This means the destination will receive data from all sources in “default” and “production” namespaces.

groups[]string

Workloads (sources) are assigned to groups via labels (odigos.io/group-backend: true), allowing a more flexible selection mechanism. Example: groups: [“backend”, “monitoring”] This means the destination will receive data only from sources labeled with “backend” or “monitoring”.

SourceSpec

Appears in:

FieldTypeDescription
workloadk8sconsts.PodWorkload

Workload represents the workload or namespace to be instrumented. This field is required upon creation and cannot be modified.

disableInstrumentationbool

DisableInstrumentation excludes this workload from auto-instrumentation.

otelServiceNamestring

OtelServiceName determines the “service.name” resource attribute which will be reported by the instrumentations of this source. If not set, the workload name will be used. It is not valid for namespace sources.

SourceStatus

Appears in:

FieldTypeDescription
conditions[]meta/v1.Condition

Represents the observations of a source’s current state. Known .status.conditions.type are: “Available”, “Progressing”