-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[APM] Investigate using transforms for APM UI data #74498
Comments
Pinging @elastic/apm-ui (Team:apm) |
An alternative that could be considered is that APM Server "collapses" some dimensions that are known to be higher in cardinality, that are not needed for a lot of aggregations. Looking at https://github.com/elastic/apm-server/blob/5cb4101d705effdf2f54e2e45847ee92033e806e/x-pack/apm-server/aggregation/txmetrics/aggregator.go#L414, the service map or the service landing page probably only need the The server could collect aggregate metrics that set a special value, for example, It should be fairly simple to do that server-side, wouldn't require significantly more memory, and the metrics would be instantly available, without a delay. I used this technique in my previous project to significantly speed up aggregate graphs. |
@felixbarny Do you mean that APM Server would create the specific metrics this POC aims to create via transforms? e.g., a service overview metric that doesn't record FWIW, I don't think APM Server is ideal here. The fact that aggregation happens per-instance means that the efficiency of recorded metrics will always be more limited than using ES for those aggregations. |
Yes, that's what I meant.
Excellent point. It's probably not a big issue when you just have a couple of central APM Servers but with the server-per-host model, we're heading towards it is an issue. |
ping @elastic/ml-core for visibility |
@dgieselaar What do you think about tackling this for 7.13? |
@sqren sounds good to me! |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Entity extraction is one of the top asks that we have for the platform team. They want to know what's missing in transforms in order for use to be able to use them. I've summarized some raw feedback in a dedicates section of the Stream processing use cases document. Note that it seems like the security team has been able to successfully adopt transforms. See https://github.com/elastic/security-team/issues/157. |
Not planned. |
We are currently experimenting with APM Server creating transaction duration metrics from transaction events. See elastic/apm#104 for more details.
These metric documents are more efficient in terms of storage, and in some cases, will speed up our APM UI requests as well. However, they serve a broad purpose (almost every use case in APM UI), and if we create more specific metrics for certain views, we can make bigger gains. Using one example (based on real-world data), the generic transaction duration metrics aggregation creates about 1 metric document for each 7 transaction events. Metrics that only support the service overview would create 1 metric document for 6000 transaction events. Elasticsearch supports transforms, which could allow us to easily create these metrics.
Possible benefits are:
Here's a rough idea for what questions a POC should aim to answer:
kibana_system
user doesn't have the appropriate permissions to manage the transforms or indices. What else?Some possible UI metrics we can create:
The text was updated successfully, but these errors were encountered: