Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: instrumentation libraries config in CRD #1477

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
141 changes: 73 additions & 68 deletions api/config/crd/bases/odigos.io_instrumentationconfigs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,74 +42,6 @@ spec:
Config for the OpenTelemeetry SDKs that should be applied to a workload.
The workload is identified by the owner reference
properties:
config:
description: |-
config for this workload.
the config is a list to allow for multiple config options and values to be applied.
the list is processed in order, and the first matching config is applied.
items:
description: |-
WorkloadInstrumentationConfig defined a single config option to apply
on a workload, along with it's value, filters and instrumentation libraries
properties:
instrumentationLibraries:
description: |-
a list of instrumentation libraries to apply this setting to
if a library is not in this list, the setting should not apply to it
and should be cleared.
items:
description: InstrumentationLibrary represents a library for
instrumentation
properties:
instrumentationLibraryName:
description: InstrumentationLibraryName is the name of
the instrumentation library
type: string
language:
description: Language is the programming language of the
library
enum:
- java
- python
- go
- dotnet
- javascript
- mysql
- nginx
- unknown
- ignored
type: string
required:
- instrumentationLibraryName
- language
type: object
type: array
optionKey:
description: |-
OptionKey is the name of the option
This value is transparent to the CRD and is passed as-is to the SDK.
type: string
optionValueBoolean:
description: OptionValueBoolean is the boolean value of the
option if it is a boolean
type: boolean
spanKind:
description: |-
This option allow to specify the config option for a specific span kind
for example, only to client spans or only to server spans.
it the span kind is not specified, the option will apply to all spans.
enum:
- client
- server
- producer
- consumer
- internal
type: string
required:
- instrumentationLibraries
- optionKey
type: object
type: array
runtimeDetailsInvalidated:
description: true when the runtime details are invalidated and should
be recalculated
Expand Down Expand Up @@ -193,6 +125,79 @@ spec:
the the SDK should use
items:
properties:
capabilities:
description: A list of enabled capabilities for the instrumentation
library and their configuration.
items:
description: |-
Each instrumentation library can implement a set of capabilities that can be configured by the user.
The capabilities should be published by the instrumentation library and documented elsewhere.
If the capability is not used, it should be omitted from the configuration.
properties:
capabilityName:
description: |-
Each instrumentation library advertise a set of capabilities that can be configured be the users.
The capability name is used to identify the capability that is being configured.
type: string
parameters:
description: |-
The parameters that can be configured for the capability, which are specific to the capability and the instrumentation library.
Used to configure the behavior of the capability.
items:
description: |-
The InstrumentationLibraryCapabilityParameter represents a single configuration property that can be set for an instrumentation library option.
For example, the capability might be payload collection, and the parameter can be the maximum size of the payload to record,
if to skip recording incomplete payloads, conditions for recording payload (for example only for specific mime types - "only application/json"),
additional attributes to record original length, etc.
properties:
booleanValue:
description: |-
If this parameter value is boolean, the boolean value should be set here.
Default value for any boolean parameter is false, which can be omitted in this case.
type: boolean
intValue:
description: |-
When the value is an integer, the integer value should be set here.
For example: number of bytes, number of items, etc.
If absent, the instrumentation library can use a pre-defined default value
which can be any number that makes sense for the parameter (not necessarily 0).
To use a value 0 and not the default, set the value to 0 instead of omitting it.
type: integer
numberValue:
description: |-
If this parameter value is for a number, the number value should be set here.
If absent, the instrumentation library can use a pre-defined default value
which can be any number that makes sense for the parameter (not necessarily 0).
To use a value 0 and not the default, set the value to 0 instead of omitting it.
type: number
parameterName:
description: The name of the property that
should be configured for the instrumentation
library option
type: string
stringListValue:
description: |-
If the parameter value is a list of strings, the list should be set here.
If absent, the instrumentation library can use a pre-defined default value (not necessarily an empty list).
To use an empty list, set the value to an empty list instead of omitting it.
items:
type: string
type: array
stringValue:
description: |-
StringValue is used for string parameters.
If absent, the instrumentation library can use a pre-defined default value (not necessarily empty string).
To use an empty string, set the value to an empty string instead of omitting it.
type: string
required:
- parameterName
type: object
type: array
required:
- capabilityName
- parameters
type: object
type: array
libraryId:
properties:
libraryName:
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading