Skip to content

Issue 1230 OpenTelemetry Java Auto-Instrumentation Integration#1233

Merged
markxnelson merged 1 commit intomainfrom
javaAutoInstrumentation
Mar 13, 2026
Merged

Issue 1230 OpenTelemetry Java Auto-Instrumentation Integration#1233
markxnelson merged 1 commit intomainfrom
javaAutoInstrumentation

Conversation

@ddrechse
Copy link
Member

Add OpenTelemetry Operator to prerequisites

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Mar 10, 2026
- baggage
- b3
sampler:
type: always_on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

always_on is probably not a good production choice? IDK.

AI suggests:

parentbased_traceidratio

Most common production choice
Respects parent sampling decisions; applies ratio sampling when there's no parent
Example: parentbased_traceidratio:0.1 = sample ~10% of root spans, propagate that decision downstream

Maybe make it into a param for the end user to choose the right sampler type and ratio?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

configure parent-based ratio sampler for opentelemetry auto-instrumentation

Done

The Instrumentation Custom Resource (which contains that parentbased_traceidratio setting) is managed by the central obaas platform Helm chart that you deploy into the tenant namespace.

So, when the platform administrator deploys the OBaaS environment for a tenant (e.g., prod vs. dev), they control the sampling rate for the entire namespace at once by overriding the values during the helm install obaas command.

They would just provide a custom namespace-values.yaml file like this:

yaml

namespace-values.yaml overrides for Production

signoz:
instrumentation:
sampler:
type: "parentbased_traceidratio"
# Only sample 5% of new traces in Production to save storage/bandwidth
argument: "0.05"
Then deploy the platform:

bash
helm upgrade -i obaas -n prod-tenant -f namespace-values.yaml infra-charts/obaas
When you deploy your customer-helidon microservice (and all other microservices) into that prod-tenant namespace, the OpenTelemetry Operator will automatically inject them using that 5% ratio.

The individual application developers don't have to fiddle with tracing ratios at all—it's managed entirely as infrastructure policy!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the default value? And I think always_on is good for dev/test?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instrumentation:
sampler:
# e.g. parentbased_traceidratio, always_on, always_off
# Using parentbased_traceidratio ensures distributed traces are kept intact
type: "parentbased_traceidratio"
# Only applies if using a ratio sampler. 1.0 = 100%, 0.1 = 10%
argument: "1.0"

  as seen in values.yaml

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets see if I can do this properly. @andytael

The Instrumentation Custom Resource (which contains that parentbased_traceidratio setting) is managed by the central obaas platform Helm chart that you deploy into the tenant namespace.

So, when the platform administrator deploys the OBaaS environment for a tenant (e.g., prod vs. dev), they control the sampling rate for the entire namespace at once by overriding the values during the helm install obaas command.

They would just provide a custom namespace-values.yaml file like this:

# namespace-values.yaml overrides for Production 
signoz:
  instrumentation:
    sampler:
      type: "parentbased_traceidratio"
      # Only sample 5% of new traces in Production to save storage/bandwidth
      argument: "0.05"

Then deploy the platform:

helm upgrade -i obaas -n prod-tenant -f namespace-values.yaml infra-charts/obaas

When you deploy microservices into that prod-tenant namespace, the OpenTelemetry Operator will automatically inject them using that 5% ratio.

The individual application developers don't have to fiddle with tracing ratios at all—it's managed entirely as infrastructure policy!

@markxnelson markxnelson force-pushed the javaAutoInstrumentation branch from 934ebba to 788e9d6 Compare March 13, 2026 16:01
@markxnelson markxnelson merged commit 4dd13b5 into main Mar 13, 2026
1 of 2 checks passed
@markxnelson markxnelson deleted the javaAutoInstrumentation branch March 13, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants