Skip to content

Implement basic support for Otel #7640

New issue

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

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

Already on GitHub? # to your account

Open
3 of 7 tasks
pdabelf5 opened this issue Apr 14, 2025 · 2 comments · May be fixed by #7642
Open
3 of 7 tasks

Implement basic support for Otel #7640

pdabelf5 opened this issue Apr 14, 2025 · 2 comments · May be fixed by #7642
Assignees
Labels
proposal An issue that proposes a feature request refined Issues that are ready to be prioritized
Milestone

Comments

@pdabelf5
Copy link
Collaborator

pdabelf5 commented Apr 14, 2025

Overview

As a site reliability engineer who wants to monitor my traffic traces,
I want to configure NGINX Ingress Controller to send traffic traces to my provider of choice
so that I can have a clear picture of how my system's traffic is behaving

Acceptance Criteria

  • Allow tracing to be configured through native NGINX Otel library
  • Ensure documentation provides an example of at least one trace provider (e.g. Data Dog or Grafana)

Documentation

NGINX Otel module: https://nginx.org/en/docs/ngx_otel_module.html
Otel vendors: https://opentelemetry.io/ecosystem/vendors/

Example Config Map

Add equivalent support for OpenTelemetry as was deprecated for OpenTracing with a similar UX.

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
data:
  otel-exporter-endpoint: "[(http|https)://]host:port" # Required
  otel-exporter-trusted-certificate-secret: # Optional nginx.org/ca Secret name 
  otel-exporter-header-name: "name" # Optional
  otel-exporter-header-value: "value" # Optional
  otel-service-name: "unknown_service:nginx" # Optional
  otel-global-trace-enabled: "false" # Optional, enables otel tracing at the http context

Support at the Server/Location level will be via snippet on VS/VSR/Ingress

  • Add validation for missing either header name or value
  • Add validation for other field present without the required otel endpoint
  • update trusted cert on secret or secret name update
  • Add unit tests
  • Add python tests to verify generated nginx config
@pdabelf5 pdabelf5 added the proposal An issue that proposes a feature request label Apr 14, 2025
@pdabelf5 pdabelf5 moved this from Todo ☑ to In Progress 🛠 in NGINX Ingress Controller Apr 14, 2025
@danielnginx danielnginx added the ready for refinement An issue that was triaged and it is ready to be refined label Apr 15, 2025
@vepatel vepatel marked this as a duplicate of #4938 Apr 15, 2025
@shaun-nx shaun-nx added this to the v5.1.0 milestone Apr 15, 2025
@danielnginx danielnginx moved this from In Progress 🛠 to Prioritized backlog in NGINX Ingress Controller Apr 16, 2025
@shaun-nx shaun-nx added refined Issues that are ready to be prioritized and removed ready for refinement An issue that was triaged and it is ready to be refined labels Apr 22, 2025
@shaun-nx shaun-nx moved this from Prioritized backlog to Todo ☑ in NGINX Ingress Controller Apr 23, 2025
@haywoodsh haywoodsh linked a pull request Apr 23, 2025 that will close this issue
6 tasks
@pdabelf5 pdabelf5 moved this from Todo ☑ to In Progress 🛠 in NGINX Ingress Controller Apr 29, 2025
@danielnginx danielnginx assigned javorszky and unassigned pdabelf5 Apr 30, 2025
@pdabelf5
Copy link
Collaborator Author

the nginx-module-otel package is not available for arm, s390x & ppc64le architectures. These have been removed from the build pipelines to allow testing to complete.

@pdabelf5
Copy link
Collaborator Author

pdabelf5 commented Apr 30, 2025

The nginx-module-otel & nginx-plus-module-otel rpm packages depend on the c-ares shared library. The full RHEL distributions include this libarary package, whereas, ubi8 & ubi9 do not include the c-ares package in the base package repository.

@danielnginx danielnginx assigned pdabelf5 and unassigned javorszky May 14, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
proposal An issue that proposes a feature request refined Issues that are ready to be prioritized
Projects
Status: In Progress 🛠
Development

Successfully merging a pull request may close this issue.

5 participants