odigos.io/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Resource Types
- CollectorsGroup
- Destination
- InstrumentationConfig
- InstrumentationInstance
- InstrumentationRule
- InstrumentedApplication
- OdigosConfiguration
- Processor
- Source
CollectorsGroup
CollectorsGroup is the Schema for the collectors API
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | CollectorsGroup |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | CollectorsGroupSpec | No description provided. |
status | CollectorsGroupStatus | No description provided. |
Destination
Destination is the Schema for the destinations API
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | Destination |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | DestinationSpec | No description provided. |
status | DestinationStatus | No description provided. |
InstrumentationConfig
InstrumentationConfig is the Schema for the instrumentationconfig API
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | InstrumentationConfig |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | InstrumentationConfigSpec | No description provided. |
status | InstrumentationConfigStatus | No description provided. |
InstrumentationInstance
InstrumentationInstance is the Schema for the InstrumentationInstances API
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | InstrumentationInstance |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | InstrumentationInstanceSpec | No description provided. |
status | InstrumentationInstanceStatus | No description provided. |
InstrumentationRule
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | InstrumentationRule |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | InstrumentationRuleSpec | No description provided. |
status | InstrumentationRuleStatus | No description provided. |
InstrumentedApplication
InstrumentedApplication is the Schema for the instrumentedapplications API
Deprecated: in favour of InstrumentationConfig
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | InstrumentedApplication |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | InstrumentedApplicationSpec | No description provided. |
status | InstrumentedApplicationStatus | No description provided. |
OdigosConfiguration
OdigosConfiguration is the Schema for the odigos configuration
Deprecated: Use common.OdigosConfiguration instead
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | OdigosConfiguration |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | OdigosConfigurationSpec | No description provided. |
Processor
Processor is the Schema for an Opentelemetry Collector Processor that is added to Odigos pipeline
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | Processor |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | ProcessorSpec | No description provided. |
status | ProcessorStatus | No description provided. |
Source
Source configures an application for auto-instrumentation.
Field | Type | Description |
---|---|---|
apiVersion | string | odigos.io/v1alpha1 |
kind | string | Source |
metadata | meta/v1.ObjectMeta | No description provided.
Refer to the Kubernetes API documentation for the fields of the |
spec | SourceSpec | No description provided. |
status | SourceStatus | No description provided. |
AgentEnabledReason
(Alias of string
)
Appears in:
Attribute
Appears in:
Attribute is a key-value pair that describes a component or instrumentation
Field | Type | Description |
---|---|---|
key | string | No description provided. |
value | string | No description provided. |
AttributeCondition
Appears in:
’Operand’ represents the attributes and values that an operator acts upon in an expression
Field | Type | Description |
---|---|---|
key | string | attribute key (e.g. “url.path”) |
val | string | currently only string values are supported. |
operator | Operator | 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.
Field | Type | Description |
---|---|---|
attributeConditions | []AttributeCondition | No description provided. |
fraction | float64 | 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
Field | Type | Description |
---|---|---|
requestMemoryMiB | int | 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 |
memoryLimiterLimitMiB | int | 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. |
memoryLimiterSpikeLimitMiB | int | 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). |
goMemLimitMiB | int | 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.
Field | Type | Description |
---|---|---|
minReplicas | int | Minumum + Maximum number of replicas for the collector - these relevant only for gateway. |
maxReplicas | int | No description provided. |
memoryRequestMiB | int | 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 |
memoryLimitMiB | int | 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. |
cpuRequestMillicores | int | CPU resource request to be used on the pod template.
it will be embedded in the as a resource request of the form |
cpuLimitMillicores | int | CPU resource limit to be used on the pod template.
it will be embedded in the as a resource limit of the form |
memoryLimiterLimitMiB | int | 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: |
memoryLimiterSpikeLimitMiB | int | 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. |
gomemlimitMiB | int | 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
Field | Type | Description |
---|---|---|
role | CollectorsGroupRole | No description provided. |
collectorOwnMetricsPort | int32 | 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. |
resourcesSettings | CollectorsGroupResourcesSettings | Resources [memory/cpu] settings for the collectors group. these settings are used to protect the collectors instances from:
|
CollectorsGroupStatus
Appears in:
CollectorsGroupStatus defines the observed state of Collector
Field | Type | Description |
---|---|---|
ready | bool | No 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
Field | Type | Description |
---|---|---|
optionKey | string | No description provided. |
spanKind | common.SpanKind | No description provided. |
ContainerAgentConfig
Appears in:
ContainerAgentConfig is a configuration for a specific container in a workload.
Field | Type | Description |
---|---|---|
containerName | string | The name of the container to which this configuration applies. |
agentEnabled | bool | boolean flag to indicate if the agent should be enabled for this container. |
agentEnabledReason | AgentEnabledReason | An enum reason for the agent injection decision. |
agentEnabledMessage | string | free text message to provide more information about the instrumentation decision. can be left empty if reason is self-explanatory. |
otelDistroName | string | The name of the otel distribution to use for this container. if the name is empty, this container should not be instrumented. |
distroParams | map[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
Field | Type | Description |
---|---|---|
type | common.DestinationType | No description provided. |
destinationName | string | No description provided. |
data | map[string]string | No description provided. |
secretRef | core/v1.LocalObjectReference | No description provided. |
signals | []common.ObservabilitySignal | No description provided. |
sourceSelector | SourceSelector | 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
Field | Type | Description |
---|---|---|
conditions | []meta/v1.Condition | Represents the observations of a destination’s current state. |
EnvVar
Appears in:
Field | Type | Description |
---|---|---|
name | string | No description provided. |
value | string | No 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.
Field | Type | Description |
---|---|---|
attributesAndSamplerRules | []AttributesAndSamplerRule | No description provided. |
fallbackFraction | float64 | 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
Field | Type | Description |
---|---|---|
serviceName | string | the service.name property is used to populate the |
agentInjectionEnabled | bool | 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:
Field | Type | Description |
---|---|---|
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. |
workloadRolloutHash | string | 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:
Field | Type | Description |
---|---|---|
containerName | string | 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
Field | Type | Description |
---|---|---|
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. |
healthy | bool | 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). |
message | string | message is a human readable message indicating details about the SDK general health. can be omitted if healthy is true |
reason | string | 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. |
lastStatusTime | meta/v1.Time | No description provided. |
components | []InstrumentationLibraryStatus | No description provided. |
InstrumentationLibraryConfig
Appears in:
Field | Type | Description |
---|---|---|
libraryId | InstrumentationLibraryId | No description provided. |
traceConfig | InstrumentationLibraryConfigTraces | No description provided. |
payloadCollection | instrumentationrules.PayloadCollection | No description provided. |
codeAttributes | instrumentationrules.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:
Field | Type | Description |
---|---|---|
enabled | bool | 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:
Field | Type | Description |
---|---|---|
libraryName | string | The name of the instrumentation library
|
spanKind | common.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
Field | Type | Description |
---|---|---|
libraryName | string | No description provided. |
options | []ConfigOption | No 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
Field | Type | Description |
---|---|---|
name | string | for example (“net/http”, “@opentelemetry/instrumentation-redis”) |
type | InstrumentationLibraryType | No 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. |
healthy | bool | No description provided. |
message | string | message is a human readable message indicating details about the component health. can be omitted if healthy is true |
reason | string | 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. |
lastStatusTime | meta/v1.Time | No description provided. |
InstrumentationLibraryType
(Alias of string
)
Appears in:
InstrumentationRuleSpec
Appears in:
Field | Type | Description |
---|---|---|
ruleName | string | Allows you to attach a meaningful name to the rule for convenience. Odigos does not use or assume any meaning from this field. |
notes | string | 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. |
disabled | bool | 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. |
payloadCollection | instrumentationrules.PayloadCollection | Allows to configure payload collection aspects for different types of payloads. |
otelSdks | instrumentationrules.OtelSdks | Deprecated: use OtelDistros instead. |
otelDistros | instrumentationrules.OtelDistros | Set the otel distros to use instead of the defaults. |
codeAttributes | instrumentationrules.CodeAttributes | Configure which code attributes should be recorded as span attributes. |
InstrumentationRuleStatus
Appears in:
Field | Type | Description |
---|---|---|
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
Field | Type | Description |
---|---|---|
runtimeDetails | []RuntimeDetailsByContainer | No description provided. |
options | []OptionByContainer | No description provided. |
InstrumentedApplicationStatus
Appears in:
InstrumentedApplicationStatus defines the observed state of InstrumentedApplication
Deprecated: in favour of InstrumentationConfig
Field | Type | Description |
---|---|---|
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
Field | Type | Description |
---|---|---|
odigosVersion | string | No description provided. |
configVersion | int | No description provided. |
telemetryEnabled | bool | No description provided. |
openshiftEnabled | bool | No description provided. |
ignoredNamespaces | []string | No description provided. |
ignoredContainers | []string | No description provided. |
psp | bool | No description provided. |
imagePrefix | string | No description provided. |
odigletImage | string | No description provided. |
instrumentorImage | string | No description provided. |
autoscalerImage | string | No description provided. |
collectorGateway | CollectorGatewayConfiguration | No description provided. |
goAutoIncludeCodeAttributes | bool | 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
Field | Type | Description |
---|---|---|
containerName | string | No description provided. |
instrumentationsLibraries | []InstrumentationLibraryOptions | No description provided. |
OtherAgent
Appears in:
Field | Type | Description |
---|---|---|
name | string | No description provided. |
ProcessingState
(Alias of string
)
Appears in:
ProcessorSpec
Appears in:
ProcessorSpec defines the an OpenTelemetry Collector processor in odigos telemetry pipeline
Field | Type | Description |
---|---|---|
type | string | type of the processor (batch, attributes, etc). this field is only the type, not it’s instance name in the collector configuration yaml |
processorName | string | 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. |
notes | string | user can attach notes to the processor, to document its purpose, usage, etc. |
disabled | bool | 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. |
orderHint | int | 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 |
processorConfig | k8s.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:
Field | Type | Description |
---|---|---|
containerName | string | No description provided. |
language | common.ProgrammingLanguage | No description provided. |
runtimeVersion | string | No description provided. |
envVars | []EnvVar | No description provided. |
otherAgent | OtherAgent | No description provided. |
libCType | common.LibCType | No description provided. |
criErrorMessage | string | 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. |
runtimeUpdateState | ProcessingState | 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:
Field | Type | Description |
---|---|---|
language | common.ProgrammingLanguage | The language of the SDK being configured |
instrumentationLibraryConfigs | []InstrumentationLibraryConfig | configurations for the instrumentation libraries the the SDK should use |
headSamplerConfig | HeadSamplingConfig | 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) |
payloadCollection | instrumentationrules.PayloadCollection | No description provided. |
codeAttributes | instrumentationrules.CodeAttributes | default configuration for collecting code attributes, in case the instrumentation library does not provide a configuration. |
SourceSelector
Appears in:
Field | Type | Description |
---|---|---|
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:
Field | Type | Description |
---|---|---|
workload | k8sconsts.PodWorkload | Workload represents the workload or namespace to be instrumented. This field is required upon creation and cannot be modified. |
disableInstrumentation | bool | DisableInstrumentation excludes this workload from auto-instrumentation. |
otelServiceName | string | 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:
Field | Type | Description |
---|---|---|
conditions | []meta/v1.Condition | Represents the observations of a source’s current state. Known .status.conditions.type are: “Available”, “Progressing” |