Commit b303a5e
[Fleet] Restore dataset override for OTel input packages (elastic#262000)
## Summary
Restores user-controlled `data_stream.dataset` routing for OTel input
packages, fixing a regression introduced in elastic#260385.
Two categories of packages were affected:
- **Non-dynamic traces packages** (Zipkin, Jaeger, APM intake): spans
always landed in `traces-generic.otel-<namespace>` with no way to
override, because `generateOtelTypeTransforms` hard-coded `null` for the
span context regardless of the dataset passed in.
- **`dynamic_signal_types` packages** (Kafka, MySQL, SQL Server): all
signals landed in `generic.otel`-prefixed data streams, because
`generateOTelAttributesTransform` always passed `null` for dataset,
making the `data_stream.dataset` policy variable have no effect on
routing.
For `dynamic_signal_types`, Fleet **again emits** `data_stream.dataset`
in generated OTTL (package default or user override). That is
intentional; see `agent_policy_otel_routing.ts` (file header + tests)
for acceptance criteria. The **`.otel` suffix on Elasticsearch index
templates** remains separate (EPM / `getRegistryDataStreamAssetBaseName`
when `isOtelInputType`); see `dev_docs/data_streams.md` (OpenTelemetry
section) and related JSDoc on this branch.
### Changes
**`otel_collector.ts`**
- Restore `dataset` (instead of `null`) for the `span` context in
`generateOtelTypeTransforms` traces case.
- Use the same `dataset` for `spanevent` (logs routing) so span events
follow the policy dataset and overrides.
- Restore `dataset` (instead of `null`) in the `dynamic_signal_types`
path of `generateOTelAttributesTransform`.
**`policy_template.ts`**
- Remove the hardcoded `generic.otel` fallback for
`dynamic_signal_types` packages from `getNormalizedDataStreams`. The
default dataset is now `datasetName ||
createDefaultDatasetName(packageInfo, policyTemplate)` for all
input-only packages, making the package manifest the authority for the
default value (via the `data_stream.dataset` var declared in the
package).
**`package_policies_to_agent_permissions.ts`**
- Grant extra `logs-*-*` privileges for OTel span events using the
**same** dataset as routing (`compiled_stream` / stream
`data_stream.dataset`, with `data_stream.dataset` stream var override
parity for `otelcol`).
- When resolving span-event `logs` index privileges, normalize the
`data_stream.dataset` stream var: accept only a non-empty string (after
trim) or an object with a non-empty string `dataset`; otherwise fall
back to the compiled/stream dataset. This avoids malformed index
patterns from invalid `any`-typed values (e.g. `{}`, arrays).
**Tests**
- Updated unit tests in `otel_collector.test.ts` to expect
`data_stream.dataset` in routing statements for dynamic packages,
traces/span context, and related cases.
- Updated integration tests in `agent_policy_otel_routing.ts` to assert
dataset is set (Test 1: package default `generic` from
`test_otel_dynamic` fixture manifest; Test 2: user-provided override).
- Updated `package_policies_to_agent_permissions.test.ts` expectations
for span-event logs indices (`logs-{streamDataset}-*`), **plus** Jest
coverage for invalid dataset var shapes (empty object, array, object `{
dataset }`, whitespace / empty nested `dataset`).
- Added Fleet API integration tests in
`agent_policy_input_logfile_dataset.ts` for `data_stream.dataset`
defaults and overrides on logfile input packages in the full agent
policy.
- Added unit tests in `package_policy.test.ts`
(`_compilePackagePolicyInputs`) for compiling integration streams with
`data_stream.dataset` from the package stream var default, user
override, and two-level dataset names.
- Consolidated redundant `policy_template.test.ts` cases into a single
test that documents `dynamic_signal_types` no longer affects the default
dataset computation.
**Documentation (Fleet dev docs + comments)**
- `dev_docs/data_streams.md`: OTel registry vs EPM `.otel` vs policy
dataset, overrides, permissions caveat.
- JSDoc on `getRegistryDataStreamAssetBaseName` and
`generateOtelcolConfig`; comment on `getFullInputStreams` otelcol
dataset var.
Tracking issue: elastic/ingest-dev#7403
Regression introduced by: elastic#260385
### Checklist
- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
(`dev_docs/data_streams.md` OTel section + JSDoc; no end-user tutorial)
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.
### Identify risks
- **Span event routing**: Span events use the same policy
`data_stream.dataset` as spans for OTTL logs routing (not a hardcoded
`null`). Extra agent output privileges for span events now follow that
dataset (and the `data_stream.dataset` stream var when set) so
permissions stay aligned with routing.
- **Malformed stream var payloads**: For span-event output index
privileges, invalid `data_stream.dataset` var shapes fall back to the
compiled/stream dataset so agents are not granted unusable index
patterns (the var `value` is typed as `any` in saved objects/API).
- **Template vs override**: Installed index templates still use registry
dataset + Fleet `.otel` for EPM naming; a custom dataset var can still
diverge from templates if not coordinated at the package level
(documented in `dev_docs/data_streams.md`).
### Release Notes
N/A — `release_note:skip`
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Michel Losier <michel.losier@elastic.co>1 parent 7fdf33f commit b303a5e
14 files changed
Lines changed: 827 additions & 102 deletions
File tree
- x-pack/platform
- test/fleet_api_integration/apis
- agent_policy
- fixtures/test_packages/test_otel_dynamic/1.0.0
Lines changed: 17 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
17 | 32 | | |
18 | 33 | | |
19 | 34 | | |
| |||
Lines changed: 26 additions & 40 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
470 | 470 | | |
471 | 471 | | |
472 | 472 | | |
473 | | - | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | | - | |
485 | | - | |
486 | | - | |
487 | | - | |
488 | | - | |
489 | | - | |
490 | | - | |
491 | | - | |
492 | | - | |
493 | | - | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
494 | 492 | | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | | - | |
500 | | - | |
501 | | - | |
502 | | - | |
503 | | - | |
504 | | - | |
505 | | - | |
506 | | - | |
507 | | - | |
508 | | - | |
509 | | - | |
510 | | - | |
511 | | - | |
512 | | - | |
513 | | - | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
514 | 500 | | |
515 | 501 | | |
516 | 502 | | |
| |||
Lines changed: 1 addition & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
| 202 | + | |
211 | 203 | | |
212 | 204 | | |
213 | 205 | | |
| |||
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
16 | 33 | | |
17 | 34 | | |
18 | 35 | | |
| |||
Lines changed: 47 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
615 | 615 | | |
616 | 616 | | |
617 | 617 | | |
| 618 | + | |
618 | 619 | | |
619 | 620 | | |
620 | 621 | | |
621 | 622 | | |
622 | 623 | | |
623 | 624 | | |
624 | 625 | | |
| 626 | + | |
625 | 627 | | |
626 | 628 | | |
627 | 629 | | |
| |||
671 | 673 | | |
672 | 674 | | |
673 | 675 | | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
674 | 709 | | |
675 | 710 | | |
676 | 711 | | |
| |||
967 | 1002 | | |
968 | 1003 | | |
969 | 1004 | | |
970 | | - | |
971 | 1005 | | |
972 | 1006 | | |
973 | 1007 | | |
974 | 1008 | | |
975 | 1009 | | |
976 | 1010 | | |
| 1011 | + | |
977 | 1012 | | |
978 | 1013 | | |
979 | 1014 | | |
| |||
983 | 1018 | | |
984 | 1019 | | |
985 | 1020 | | |
| 1021 | + | |
986 | 1022 | | |
987 | 1023 | | |
988 | 1024 | | |
| |||
992 | 1028 | | |
993 | 1029 | | |
994 | 1030 | | |
| 1031 | + | |
995 | 1032 | | |
996 | 1033 | | |
997 | 1034 | | |
998 | 1035 | | |
999 | 1036 | | |
1000 | 1037 | | |
1001 | 1038 | | |
| 1039 | + | |
1002 | 1040 | | |
1003 | 1041 | | |
1004 | 1042 | | |
| |||
1008 | 1046 | | |
1009 | 1047 | | |
1010 | 1048 | | |
| 1049 | + | |
1011 | 1050 | | |
1012 | 1051 | | |
1013 | 1052 | | |
| |||
1019 | 1058 | | |
1020 | 1059 | | |
1021 | 1060 | | |
1022 | | - | |
1023 | 1061 | | |
1024 | 1062 | | |
1025 | 1063 | | |
1026 | 1064 | | |
1027 | 1065 | | |
1028 | 1066 | | |
| 1067 | + | |
1029 | 1068 | | |
1030 | 1069 | | |
1031 | 1070 | | |
| |||
1035 | 1074 | | |
1036 | 1075 | | |
1037 | 1076 | | |
| 1077 | + | |
1038 | 1078 | | |
1039 | 1079 | | |
1040 | 1080 | | |
| |||
1044 | 1084 | | |
1045 | 1085 | | |
1046 | 1086 | | |
| 1087 | + | |
1047 | 1088 | | |
1048 | 1089 | | |
1049 | 1090 | | |
1050 | 1091 | | |
1051 | 1092 | | |
1052 | 1093 | | |
1053 | 1094 | | |
| 1095 | + | |
1054 | 1096 | | |
1055 | 1097 | | |
1056 | 1098 | | |
| |||
1060 | 1102 | | |
1061 | 1103 | | |
1062 | 1104 | | |
| 1105 | + | |
1063 | 1106 | | |
1064 | 1107 | | |
1065 | 1108 | | |
| |||
1095 | 1138 | | |
1096 | 1139 | | |
1097 | 1140 | | |
1098 | | - | |
1099 | 1141 | | |
1100 | 1142 | | |
1101 | 1143 | | |
1102 | 1144 | | |
1103 | 1145 | | |
1104 | 1146 | | |
| 1147 | + | |
1105 | 1148 | | |
1106 | 1149 | | |
1107 | 1150 | | |
| |||
1111 | 1154 | | |
1112 | 1155 | | |
1113 | 1156 | | |
| 1157 | + | |
1114 | 1158 | | |
1115 | 1159 | | |
1116 | 1160 | | |
| |||
0 commit comments