elastic / apm

Elastic Application Performance Monitoring - resources and general issue tracking for Elastic APM.
https://www.elastic.co/apm
Apache License 2.0
384 stars 114 forks source link

Running APM agent without the need to change code #303

Open plaformsre opened 4 years ago

plaformsre commented 4 years ago

Is your feature request related to a problem? Please describe. We would like to see minimal changes and configuration needed for our applications that are deployed mainly in Kubernetes and VMs, regardless of the development language APM should be able to attach itself

Describe the solution you'd like APM agent that can be deployed on the compute instance (e.g. as a pod/Linux service) and can listen and be attached to all processes (similar like Instana agents)

Describe alternatives you've considered Switching to APM agents like Instana

Additional context We have so many applications to change APM integration and would mean a lot of effort. We rather see APM agent being able to attach itself to applications of known technologies itself without the need to add configuration to the application code

eyalkoren commented 4 years ago

Thanks for the great input! This area is on our focus and we are actively looking for ways to get better in this regard, so any additional details would be very useful. Specifically, can you describe the minimal requirements from an APM solution that will satisfy your requirements? For example, this blog post suggests a way to deploy the Java agent on k8s apps without modification of the application code or image. Is that good enough if we make it the same for the .NET and NodeJS agents as well?

We already started working on a way to considerably ease the deployment of Elastic APM agents on k8s, integrating them with the other Elastic Observability solutions (e.g. Logs and Metrics). What we are thinking of is a way to automatically achieve the agent installation method described above automatically. For example, labelling your pods with elastic-apm will make them automatically traced. Alternatively, specifying existing pod labels in the Elastic APM/Observability configuration will make them traced. For non-k8s environments, the Java agent already has an automatic attach option. Is this something you are looking for in other agents?

Eventually, it may be all integrated with the brand new Ingest Management infrastructure, but there is still a way to go until we get there.

cc @alex-fedotyev @felixbarny