Skip to content

Conversation

@vishaangelova
Copy link
Contributor

@vishaangelova vishaangelova commented Jan 21, 2026

Summary

This PR updates the Collect OpenTelemetry data with Elastic Agent integrations doc with more information on hybrid agents.

It also adds guides for configuring a hybrid Fleet-managed agent and a hybrid standalone agent to collect:

  • Logs using the ECS-based Nginx integration
  • Metrics using the NGINX OpenTelemetry input package

Resolves elastic/ingest-docs#1877

Generative AI disclosure

  1. Did you use a generative AI (GenAI) tool to assist in creating this contribution?
  • Yes
  • No
  1. If you answered "Yes" to the previous question, please specify the tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Version: 2.3.41 with gpt-5.2

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

✅ Vale Linting Results

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

@vishaangelova vishaangelova force-pushed the 1877-nginx-integration branch from c764290 to b35fdaf Compare January 21, 2026 16:13
@vishaangelova vishaangelova changed the title [WIP] Add guides for using the NGINX OTel input package [WIP] Add guides for collecting telemetry using the nginx OTel input package Jan 21, 2026
@vishaangelova vishaangelova changed the title [WIP] Add guides for collecting telemetry using the nginx OTel input package [WIP] Add guides for collecting data using the nginx OTel input package Jan 21, 2026
Copy link
Contributor

@alexandra5000 alexandra5000 left a comment

Choose a reason for hiding this comment

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

Sorry I didn't have time to review the last file yet! Hopefully my comments will be useful to you - some of them may apply to that file as well. I'll go back to it on Monday morning.

## Configure OpenTelemetry input packages
## Hybrid agents [otel-integrations-hybrid-agents]

{{agent}} policies can include configurations for both ECS-based integrations and OpenTelemetry input packages, which essentially turns the enrolled {{agents}} into *hybrid agents*.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
{{agent}} policies can include configurations for both ECS-based integrations and OpenTelemetry input packages, which essentially turns the enrolled {{agents}} into *hybrid agents*.
You can configure {{agent}} policies to use both ECS-based integrations and OpenTelemetry input packages. This effectively turns enrolled {{agents}} into hybrid agents.

For more direct presentation of information.


Hybrid agent policies are useful when you want to:

- Keep an ECS-based integration for one data type (for example, to ingest logs and use built-in dashboards)
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not "Use" for both?

- Keep an ECS-based integration for one data type (for example, to ingest logs and use built-in dashboards)
- Use an OpenTelemetry input package for another data type (for example, to collect metrics using OpenTelemetry standards)

This type of hybrid data collection provides flexibility without forcing a single ingestion model, and allows you to:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This type of hybrid data collection provides flexibility without forcing a single ingestion model, and allows you to:
This type of hybrid data collection provides flexibility without locking you into a single ingestion model, and allows you to:

Forcing sounds unnecessarily brutal 😄


The installation and configuration of OpenTelemetry input packages is similar to that of ECS-based integrations and allow you to specify the namespace, dataset name, data stream type, and more. For more information, refer to [Add an integration to an {{agent}} policy](/reference/fleet/add-integration-to-policy.md).
- Gradually migrate toward OpenTelemetry
- Standardize ingestion on OpenTelemetry receivers at scale
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- Standardize ingestion on OpenTelemetry receivers at scale
- Standardize ingestion using OpenTelemetry receivers at scale

How about like this?


## Configure OpenTelemetry input packages [configure-otel-input-packages]

The installation and configuration of OpenTelemetry input packages are similar to those of ECS-based integrations, and allow you to specify the namespace, dataset name, data stream type, and more. For more information, refer to [Add an integration to an {{agent}} policy](/reference/fleet/add-integration-to-policy.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The installation and configuration of OpenTelemetry input packages are similar to those of ECS-based integrations, and allow you to specify the namespace, dataset name, data stream type, and more. For more information, refer to [Add an integration to an {{agent}} policy](/reference/fleet/add-integration-to-policy.md).
The installation and configuration of OpenTelemetry input packages are similar to those of ECS-based integrations, and allow you to specify the namespace, dataset name, data stream type, and more. For step-by-step instructions, refer to [Add an integration to an {{agent}} policy](/reference/fleet/add-integration-to-policy.md).

7. Select **Save and continue**.
::::{note}
The NGINX OpenTelemetry Assets content package, which includes relevant assets for visualizing OTel-based metrics, is automatically installed when data is ingested through the NGINX OpenTelemetry Input Package integration. You can then find the content package in the **Installed integrations** list.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The NGINX OpenTelemetry Assets content package, which includes relevant assets for visualizing OTel-based metrics, is automatically installed when data is ingested through the NGINX OpenTelemetry Input Package integration. You can then find the content package in the **Installed integrations** list.
The NGINX OpenTelemetry Assets content package is installed automatically when data is ingested through this integration. You can find it under **Installed integrations** and use it to visualize OTel-based metrics.

Reduce wordiness

::::
::::{note}
OpenTelemetry input packages are distinct from [running {{agent}} as an EDOT Collector](/reference/fleet/otel-agent.md), and cannot be used with {{agent}} running in `otel` mode.
Copy link
Contributor

Choose a reason for hiding this comment

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

That's interesting. As far as I know the otel mode pretty soon will be the only one available for the EDOT Collector. Are we actually encouraging the use of contrib OTel Collector? Is this the only supported way of using these packages? If so, this guide could benefit from stating that explicitly somewhere at the beginning. I get you said "OpenTelemetry" at the beginning but it wasn't super clear to me that EDOT isn't supported in this case.

## Validate your data
After you apply the policy changes, validate both the ECS-based logs and the OTel-based metrics.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
After you apply the policy changes, validate both the ECS-based logs and the OTel-based metrics.
After you apply the policy changes, validate that both the ECS-based logs and the OTel-based metrics are flowing in.

Just for clarity what to validate exactly 🙂

data_stream.dataset : "nginx.access" or "nginx.error"
```
3. Go to **Dashboards**, then select **[Logs Nginx] Access and error logs** to view the dashboard installed with the Nginx integration.
Copy link
Contributor

Choose a reason for hiding this comment

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

Would that be the the ECS-based dashboard?

Go to **Dashboards**, then select **[Metrics Nginx OTEL] Overview** to view the dashboard for visualizing OTel-based metrics.
This dashboard becomes available with the NGINX OpenTelemetry Assets content package, which is automatically installed when data is ingested trough the NGINX OpenTelemetry Input Package integration.
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe like this:

Suggested change
This dashboard becomes available with the NGINX OpenTelemetry Assets content package, which is automatically installed when data is ingested trough the NGINX OpenTelemetry Input Package integration.
This dashboard is provided by the NGINX OpenTelemetry Assets content package, installed automatically when data is ingested through the NGINX OpenTelemetry Input Package.

?

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.

[REQUEST]: Quickstart guide for OTel Integrations

3 participants