Skip to content

Reduce OpenTelemetry ingestion volume - #2414

Open
ejsmith wants to merge 8 commits into
mainfrom
feature/reduce-otel-volume
Open

Reduce OpenTelemetry ingestion volume#2414
ejsmith wants to merge 8 commits into
mainfrom
feature/reduce-otel-volume

Conversation

@ejsmith

@ejsmith ejsmith commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

  • drop unused high-volume application metrics in the node Collector with a strict exact-name exclusion list
  • retain the metrics used by the Exceptionless and ASP.NET Core dashboards
  • trim http.server.request.duration histogram buckets at the .NET SDK
  • drop successful Redis command spans for the web and event-post job services while preserving error spans
  • drop Message: EntityChanged spans globally
  • upgrade the SigNoz k8s-infra chart from 0.15.0 to 0.16.0 and migrate SigNoz Cloud export from OTLP/gRPC to OTLP/HTTP

Impact

This reduces metric-series and trace-span ingestion volume before export to SigNoz and Elastic. The metric drop policy remains in Collector configuration, so it can be changed through a Collector deployment without rebuilding the applications. The applications still generate and send these metrics to their node Collector.

Other messaging spans remain unchanged.

Dependency upgrade

Version 0.16.0 changes the default SigNoz exporter from OTLP/gRPC to OTLP/HTTP. This change explicitly enables only otlphttp, adds the required https:// endpoint scheme, and updates the custom pipeline exporter lists. The separate Elastic gRPC exporter is unchanged. GitHub listed no published security advisories for SigNoz/charts at the time of review.

Validation

  • confirmed the live cluster runs k8s-infra 0.16.0 with Collector 0.139.0
  • rendered the complete signoz/k8s-infra 0.16.0 chart with Helm 4.2.0 and the proposed values
  • verified the rendered agent uses the supported strict exact-name metric matcher and wires the metric filter before batch
  • verified the rendered agent has one SigNoz otlphttp exporter, the existing otlp/elastic exporter, and both filters before batch
  • verified live trace data drops Message: EntityChanged and successful exceptionless-web Redis spans
  • matched the event-post filter to the observed live service.name=job-event-posts
  • parsed k8s/signoz.yaml as YAML
  • parsed the modified PowerShell deployment scripts successfully
  • dotnet build src/Exceptionless.Web/Exceptionless.Web.csproj --maxcpucount:1 --no-restore
  • dotnet build src/Exceptionless.Job/Exceptionless.Job.csproj --maxcpucount:1 --no-restore
  • git diff --check

Both .NET builds completed with zero warnings and zero errors.

Deployment note

The Collector chart is deployed separately from the Exceptionless applications. Apply the updated Collector values for the strict metric filter and corrected event-post service matcher. Only the histogram bucket change requires deploying application images containing this PR.

@ejsmith
ejsmith marked this pull request as ready for review July 29, 2026 03:16

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2bc894e46e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread k8s/signoz.yaml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 443f6ac1cd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread k8s/signoz.yaml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4c5f28fa96

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread k8s/signoz.yaml
error_mode: ignore
traces:
span:
- 'attributes["db.system"] == "redis" and status.code != STATUS_CODE_ERROR and (resource.attributes["service.name"] == "exceptionless-web" or resource.attributes["service.name"] == "job-event-posts")'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore the prefixed event-post service matcher

Fresh evidence after the prior thread is that fb99bd9 reverted 12111d8's correction in the reviewed target tree. The production job loads Apm.ServiceName: exceptionless from src/Exceptionless.Job/appsettings.yml, while Program.cs passes job-event-posts to ApmConfig, whose concatenation emits service.name=exceptionless-job-event-posts; therefore successful Redis spans from this high-volume worker never match this predicate and continue to both exporters. Restore the prefixed matcher.

Useful? React with 👍 / 👎.

@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Core 73% 66% 9587
Exceptionless.AppHost 38% 40% 139
Exceptionless.Insulation 37% 35% 286
Exceptionless.Web 84% 67% 6935
Summary 77% (22861 / 29797) 66% (10505 / 16026) 16947

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant