I am testing APM and I see that it measures and analyzes response times and number of requests. It is great. But we are interested in the memory usage of our application. The memory that is used by each request and when it grows. We want to find memory leaks. We use django/python. Is it possible to do it using APM, or do you plan to add this funcionality?
Thanks for trying out APM, glad to know it's working well for you so far!
We are starting to look into support for application stats now, but it's still early days: https://github.com/elastic/apm-server/pull/650. That work doesn't describe what exact stats agents will measure out of the box, but I think it would be reasonable to expect heap allocation will be one of them.
For now we recommend using Metricbeat to collect CPU and memory usage. This data will also go into your Elasticsearch cluster, but as Andrew mentioned it's not integrated into the APM graphs yet.
I think Metricbeat is not really what we are looking for. What we want is more "APM style". What I can see now in APM is what happens and for how long, when I request something to my application. So, we would like to know what happens (the same as before), but how much memory/CPU is required by every part of what happens when I request something to my application.
Perhaps the application stats that Andrew mentions will give us this information?
While this is currently not possible, we do plan to add a feature to our agents, including the Python agent, to send custom metrics (as Andrew pointed out). This could potentially include things like allocations per request, or memory used per request, e.g. using something like
memory_profiler. I haven't tested yet how much overhead it would incur to collect this kind of data though.
Unfortunately, I can't give you a time line of when this feature will be available, as it is still in early planning stages.
This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.