Skip to content

[otel-data] Hide 10m and 60m aggregated metrics generated for the APM UI #114042

New issue

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

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

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_destination.10m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Originally I wanted to define constant_keyword under resource.attributes for metricset.interval and under attributes for metricset.name, since that's where these are stored. But that'd again run into the usual issue of wiping out existing mapping for resource.attributes.

But as it seems, this works as well - this is also covered by tests.

Just calling out to make sure there is no unwanted implication I may missed.

properties:
interval:
type: constant_keyword
value: 10m
name:
type: constant_keyword
value: service_destination
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Should we do something with these? We repeat them everywhere.

If I remember correctly, the idea was to implement these here in the template, so people can't overwrite these.

First idea would be to move them to [email protected], but that won't cover what we want.

Copy link
Member

Choose a reason for hiding this comment

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

Yes, I think it would be better to have a separate component template for these.

If I remember correctly, the idea was to implement these here in the template, so people can't overwrite these.

I think it was the opposite. Users should have the ability to customize the dynamic mappings. Therefore, when extracting this to a component template, we need to import that template after the @Custom component template.

Copy link
Contributor Author

@gregkalapos gregkalapos Oct 4, 2024

Choose a reason for hiding this comment

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

Yes, so what I mean: users should be able to change dynamic templates currently defined in [email protected], but not the ones above (ecs_ip and all_strings_to_keywords), because changing or removing those could easily break the data stream since it effects dimensions. Right?

So I'd move these two dynamic templates into a separate components (maybe metrics-otel-fixed@mappings) and metrics templates would be something like:

composed_of:
  - metrics@tsdb-settings
  - otel@mappings
  - metrics-otel@mappings
  - semconv-resource-to-ecs@mappings
  - metrics@custom
  - metrics-otel@custom
  - metrics-otel-fixed@mappings #<- the new one

(plus adding metrics-[x]m.otel@custom according to #114042 (comment))

Does that sound ok?

Happy to take suggestion on the naming metrics-otel-fixed@mappings :)

Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_destination.60m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 60m
name:
type: constant_keyword
value: service_destination
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_summary.10m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 10m
name:
type: constant_keyword
value: service_summary
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_summary.60m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 60m
name:
type: constant_keyword
value: service_summary
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
48 changes: 48 additions & 0 deletions ...ata/src/main/resources/index-templates/[email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_transaction.10m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 10m
name:
type: constant_keyword
value: service_transaction
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
48 changes: 48 additions & 0 deletions ...ata/src/main/resources/index-templates/[email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-service_transaction.60m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 60m
name:
type: constant_keyword
value: service_transaction
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-transaction.10m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 10m
name:
type: constant_keyword
value: transaction
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
version: ${xpack.oteldata.template.version}
index_patterns: ["metrics-transaction.60m.otel-*"]
priority: 130
data_stream:
hidden: true
allow_auto_create: true
_meta:
description: aggregated APM metrics template installed by x-pack
managed: true
composed_of:
- metrics@tsdb-settings
- otel@mappings
- metrics-otel@mappings
- semconv-resource-to-ecs@mappings
- metrics@custom
- metrics-otel@custom
ignore_missing_component_templates:
- metrics@custom
- metrics-otel@custom
template:
settings:
index:
mode: time_series
mappings:
properties:
data_stream.type:
type: constant_keyword
value: metrics
metricset:
properties:
interval:
type: constant_keyword
value: 60m
name:
type: constant_keyword
value: transaction
dynamic_templates:
- ecs_ip:
mapping:
type: ip
path_match: [ "ip", "*.ip", "*_ip" ]
match_mapping_type: string
- all_strings_to_keywords:
mapping:
ignore_above: 1024
type: keyword
match_mapping_type: string
Loading