-
Notifications
You must be signed in to change notification settings - Fork 445
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
Eliminate fingerprinting in Prometheus TSDB input for Elastic 8.13 and above #9400
Comments
I agree this is unblocked now und would lead to better performance and storage reduction. @lalit-satapathy do you think we can prioritize this? |
Hi @felixbarny, Do we know if now objects can be marked dimension now ? Dont see them in the dimension doc. |
We don't even need that because we can just create a dynamic template for Something like this: {
"mappings": {
"dynamic_templates": [
{
"labels": {
"path_match": "prometheus.labels.*",
"mapping": {
"type": "keyword",
"time_series_dimension": true
}
}
}
]
}
} |
For the remote_write datastream: as I understand it will be still required to keep the fingerprint processor for the list of metric_names - https://github.com/elastic/integrations/blob/main/packages/prometheus/data_stream/remote_write/elasticsearch/ingest_pipeline/default.yml#L9-L24 but for collector - all ingest pipeline can be removed |
hey @felixbarny can you please explain why we don't need it? this is how mapping looks like now:
adding
I am getting an error when building package:
|
That's right. But we could remove the fingerprinting of labels and only do a fingerprint of the metric names.
Seems like there's a gap in the support in elastic-package and Fleet to support the dimension parameter for dynamic templates. But Elasticsearch and TSDB does support that. Could you create an issue for this? It seems like it should be an easy fix. |
Yes, we need to mostly would need to go through the fleet enhancements for this. We did exactly the same for dynamic templates for metric types here. |
fleet issue - elastic/kibana#179649 @felixbarny @lalit-satapathy can you please forward it to the correct team? |
@tetianakravchenko please try with the "compact" syntax:
|
Looks like all prerequisites for this issue are in place. Can we move forward with this now? |
Since both testing by @gpop63 here and @harnish-elastic here has confirmed that the new capability only works 8.14 onwards, we should enable the same in packages stack dependancy. FYI: The relevant Fleet change has gone in 8.14.0. |
@agithomas will be creating a separate meta issue to track other packages need such migration, which can be taken in the future. Please link the issue here. |
@lalit-satapathy , please find the link to the meta issue |
@felixbarny we are fine with removing the |
As this is just an internal field that doesn't really provide value by itself, other than aiding the enablement of TSDB, I think that's fine. |
The current Prometheus integration relies on a fingerprint dimension:
Now that elastic/elasticsearch#93564 is resolved in 8.13, this is no longer needed. Instead,
labels.*
can be marked as dimensions directly. Due to the locality sensitive hashing used in elastic/elasticsearch#98023 we can expect that elastic/elasticsearch#99747 will deliver storage savings over the current approach.cc @felixbarny @tetianakravchenko
The text was updated successfully, but these errors were encountered: