WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@alexandra5000
Copy link
Contributor

@alexandra5000 alexandra5000 commented Dec 7, 2025

What does this PR do?

Introduces a new page describing advanced data stream routing in EDOT. The page explains when routing customization is appropriate, the recommended pattern of using data_stream.namespace, the risks associated with modifying data_stream.dataset, and the naming constraints for template-based routing.

Why is it important?

Until now, this information existed only in a KB and was not discoverable in the official documentation.

Checklist

  • I have read and understood the pull request guidelines of this project.
    - [ ] My code follows the style guidelines of this project
    - [ ] I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
    - [ ] I have made corresponding change to the default configuration files
    - [ ] I have added tests that prove my fix is effective or that my feature works
    - [ ] I have added an entry in ./changelog/fragments using the changelog tool
    - [ ] I have added an integration test or an E2E test

Disruptive User Impact

None

Related issues

Closes #4133

Generative AI disclosure

  1. Did you use a generative AI (gen AI) 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: Claude 4.5 Sonnet via Cursor

@alexandra5000 alexandra5000 requested a review from a team as a code owner December 7, 2025 22:36
@alexandra5000 alexandra5000 added skip-changelog backport-active-9 Automated backport with mergify to all the active 9.[0-9]+ branches labels Dec 7, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 7, 2025

@pierrehilbert pierrehilbert added the Team:Docs Label for the Observability docs team label Dec 8, 2025
@elasticmachine
Copy link
Contributor

Pinging @elastic/ingest-docs (Team:Docs)

Copy link
Contributor

@theletterf theletterf left a comment

Choose a reason for hiding this comment

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

Excellent! Let's get a review by an ingest lead (@AlexanderWert and @jlind23)


Changing the `dataset` value can cause:

- Dashboards and {{product.apm}} views to fail to load
Copy link
Contributor

Choose a reason for hiding this comment

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

Also any other content pack that you end installing though.
cc @AlexanderWert

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point, thanks for pointing that out!

We strongly recommend not changing the default data stream names. Customizing data stream routing diverges from the standard ingestion model and there's no guarantee it will be valid for future versions.
:::

## When to customize data streams
Copy link
Member

Choose a reason for hiding this comment

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

I feel like the order of information could be better here. Right now it's:

  1. Should I customize?
  2. Which part is safe to change?
  3. What is the naming sctructure?
  4. Which part is safe to change? (again)
  5. Which part is dangerous to change and why?

I think it'd be better as:

  1. Should I customize?
  2. If yes, what is the naming sctructure?
  3. Which part is safe to change?
  4. Which part is dangerous to change and why?

for example


When to customize data streams

The only recommended use case for customizing data stream routing is to separate data by environment (for example: dev, staging, and prod).

A data stream name follows this structure:

<type>-<dataset>-<namespace>

We recommend changing only data_stream.namespace, not data_stream.dataset.

data_stream.namespace

The namespace is intended as the configurable part of the name. Elastic dashboards, detectors, and UIs support multiple namespaces automatically.

data_stream.dataset

Only modify dataset if it's absolutely necessary and you're aware of the tradeoffs. Changing the dataset value can cause:

  • list of downsides

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I see what you mean. I've changed the order - see if you like it better now

@mergify
Copy link
Contributor

mergify bot commented Dec 12, 2025

This pull request is now in conflicts. Could you fix it? 🙏
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

git fetch upstream
git checkout -b custom-data-streams upstream/custom-data-streams
git merge upstream/main
git push upstream custom-data-streams

Copy link
Member

@bmorelli25 bmorelli25 left a comment

Choose a reason for hiding this comment

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

Thanks for making those changes!

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

Labels

backport-active-9 Automated backport with mergify to all the active 9.[0-9]+ branches docs skip-changelog Team:Docs Label for the Observability docs team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[EDOT ES Exporter/Collector] Practical example of how to route data to different data streams

6 participants