Skip to content

NGINX OpenTelemetry Input Package - #15651

Merged
ishleenk17 merged 15 commits into
elastic:mainfrom
ishleenk17:nginx_otel_input
Dec 3, 2025
Merged

NGINX OpenTelemetry Input Package#15651
ishleenk17 merged 15 commits into
elastic:mainfrom
ishleenk17:nginx_otel_input

Conversation

@ishleenk17

@ishleenk17 ishleenk17 commented Oct 14, 2025

Copy link
Copy Markdown
Member

This is a draft version of NGINX OpenTelemetry Input Package.
Since this is the very first OTEL Input package, this PR is being used to figure out the structure, template, what works what doesn't while creating packages.

FYI, using HTTPChecker example as reference

Relates: https://github.com/elastic/obs-integration-team/issues/622

@andrewkroh andrewkroh added New Integration Issue or pull request for creating a new integration package. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. labels Oct 14, 2025
@ishleenk17 ishleenk17 self-assigned this Oct 27, 2025
@ishleenk17

ishleenk17 commented Oct 27, 2025

Copy link
Copy Markdown
Member Author

@jsoriano @cmacknz : Could you please review this first OTEL input package

Point to discuss:

  1. We need to have a check in data_stream.dataset. It should always be same as the receiver name (for metrics) for the content package to autoinstall. For logs we need to see how will we ensure about the datastream field.
  2. Under compatibility section of documentation, what all should we mention or shall we just point to the upstream receiver ? I think pointing to upstream receiver might not be right as our EDOT collector might not be at that the upstream collector label ?
  3. Ideally we don't need base-fileds.yml. But elastic package doesn't allow to build the package without that. We should remove this check for these fields in OTEL Input package.
  4. If we are updating this, we should also update the corresponding content package documentation. We need to discuss how. Currently it contains how a collecotr config looks like. But since now that info is there in the input package. Should we have that in content package ? We might need it if someone tries to install that content package via upstream collector and not EDOT. Thoughts ?

cc: @tommyers-elastic

@ishleenk17
ishleenk17 marked this pull request as ready for review October 27, 2025 10:51
@ishleenk17
ishleenk17 requested a review from a team as a code owner October 27, 2025 10:51
@ishleenk17 ishleenk17 changed the title [Draft] NGINX OpenTelemetry Input Package Oct 27, 2025
Comment thread packages/nginx_input_otel/_dev/build/docs/README.md
Comment thread packages/nginx_input_otel/agent/input/input.yml.hbs
Comment thread packages/nginx_input_otel/fields/base-fields.yml Outdated
Comment thread packages/nginx_input_otel/img/sample-logo.svg Outdated
Comment thread packages/nginx_input_otel/manifest.yml Outdated
Comment thread packages/nginx_input_otel/agent/input/input.yml.hbs

@jsoriano jsoriano Oct 27, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This file can be removed. OTel input packages rely on pre-built component templates.

If this is the only fields file, build will fail, till we release elastic/package-spec#994 (probably this week).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, this is mostly going to be the only file under fields. I don't expect any mappings to go in here.
Do we actually expect predefined mappings for OTEL Input packages.
Or we can rely on the otel template and the dynamic mappings ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we actually expect predefined mappings for OTEL Input packages.
Or we can rely on the otel template and the dynamic mappings ?

We can rely on the pre-installed template and the dynamic mappings it includes.

We still have the option of defining fields if needed in some case, but defining fields will be completely optional for OTel input packages. It will be actually expected for OTel input packages to don't contain any field definition.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Did you consider removing this file? You can leave it empty or wait for next elastic-package release (coming soon) if you have problems with validation.

@ishleenk17 ishleenk17 Nov 7, 2025

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@jsoriano On removing the base-fields.yml

  1. file "/Users/ishleenkaur/go/ish_12Oct_integ/ish_integrations/build/packages/nginx_otel_input-0.0.1.zip/fields/base-fields.yml" is invalid: file is empty, but media type is defined

  2. On having this file empty, we get below message:

Error: building package failed: invalid content found in built zip package: found 4 validation errors:

  1. expected field "data_stream.dataset" with type "constant_keyword" not found
  2. expected field "data_stream.namespace" with type "constant_keyword" not found
  3. expected field "@timestamp" with type "date" not found
  4. expected field "data_stream.type" with type "constant_keyword" not found

So for now we need to have this file with the fields, or we wait for the next release of elastic package.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This is working as expected with the latest elastic-package version where the build is successful without the base-fields.yml and the fields folder
elastic-package v0.117.1 version-hash undefined (build time: unknown)

Comment thread packages/nginx_input_otel/manifest.yml Outdated
Comment thread packages/nginx_input_otel/manifest.yml Outdated
ishleenk17 and others added 3 commits October 28, 2025 00:51
Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co>
Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co>
@ishleenk17

ishleenk17 commented Nov 6, 2025

Copy link
Copy Markdown
Member Author

@jsoriano : COuld you pelase rereview this ?

@jsoriano jsoriano left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good overall, but there are a couple of threads that seem to lack a resolution.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Did you consider removing this file? You can leave it empty or wait for next elastic-package release (coming soon) if you have problems with validation.

Comment thread packages/nginx_input_otel/manifest.yml Outdated
Comment thread packages/nginx_input_otel/agent/input/input.yml.hbs
@ishleenk17

Copy link
Copy Markdown
Member Author

After discussing with @jsoriano , we will proceed with the merge after the new version of elastic package is released. It will help us removing the bas-fields.yml file.

@ishleenk17

Copy link
Copy Markdown
Member Author

After discussing with @jsoriano , we will proceed with the merge after the new version of elastic package is released. It will help us removing the bas-fields.yml file.

With new elastic package, packages pass CI even without any fields related files.

@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

cc @ishleenk17

@tommyers-elastic tommyers-elastic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

thanks ishleen. approving, but i think we should add the component identifiers before we merge.

Comment thread packages/nginx_input_otel/agent/input/input.yml.hbs
Comment thread packages/nginx_input_otel/agent/input/input.yml.hbs
Comment thread packages/nginx_input_otel/img/nginx_otellogo.svg

@lalit-satapathy lalit-satapathy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Triaging approval.

@ishleenk17
ishleenk17 merged commit bb632b7 into elastic:main Dec 3, 2025
8 checks passed
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package nginx_otel_input - 0.1.0 containing this change is available at https://epr.elastic.co/package/nginx_otel_input/0.1.0/

@andrewkroh andrewkroh added the Integration:nginx_otel_input Nginx (OpenTelemetry) label Dec 3, 2025
Comment thread packages/nginx_input_otel/manifest.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. Integration:nginx_otel_input Nginx (OpenTelemetry) New Integration Issue or pull request for creating a new integration package.

9 participants