I alread read your blog entry https://www.dynatrace.com/news/blog/from-monitoring-to-software-intelligence-for-flask-applications but still have a few question regarding monitoring python with the Dynatrace OneAgent.
1. Why is the agent not able to inject into the Python Application by itself, like it does for .NET, Java etc.?
2. Is it planned to support automatic injection into Python and if so, can you maybe name a release date? Changes to the code are always ... meh.
I was really surprised when someone told me, that AppDynamics has a Python Agent which is able to monitor every request of a python app to the method level including db calls without any code changes. I couldn't belive this because Dynatrace and the provided features are always better than AppD in my opinion. But yeah that seems to be true and I'm wondering if you guys are planning something similar as well.
Edit: for clarification purposes - AppDynamics needs a library and a pyagend which needs to be started with the application. It is not like the Dynatrace OneAgent automatic injection for e.g. JAVA but works without changing the code.
Solved! Go to Solution.
+1 ! It would be great ... I discovered today dynatrace didn't support auto instrumentation of Python (like PHP/.NET).
Even Instana is able to instrument Python out of the box, I can't believe Dynatrace is not able to do it ! (https://www.instana.com/blog/zero-effort-fully-automatic-distributed-tracing-for-python/ )
Is this something planned ? Any EAP coming ? (I really hope so :))
AppDynamics DOES NOT automatically inject into python processes, you have to install the library and instrument the app. https://docs.appdynamics.com/display/PRO45/Install+the+Python+Agent, they even suggest you run a 'pyagent' wrapper around your application.
We are working on easier/automated instrumentation, for now there are some interesting projects like https://github.com/dlopes7/autodynatrace that significantly reduce the effort to instrument your code.
it's true that it won't work without adding a library and running the pyagent as a wrapper but at the end no code changes are needed which is great.
Looking forward to the easier / automated injection for python. Any prediction for the release or eap?
Thank for pointing me to the autodynatrace project. I'll have a look tomorrow.
From the documentation of the others, they may not require explicit code change as such. However, the amount of configuration change required appears to be a similar burden for manual effort.
In any case, David's autodynatrace for Python looks like a good option if it's too much to add the small number of lines manually as per the blog post you linked for the Flask / WSGI-based app examples.
I looked the "autodynatrace" project and the effort to integrate it at least for flask is pretty low. What I would need is this kind of wrapper for Django and PostgreSQL but atm I'm not so familiar with Django so I probably won't be able to write a wrapper by myself.
As far as I know - sadly not.
We went with the https://github.com/dlopes7/autodynatrace project but you need to adapt your code and probably do some tweaking to get the visibility you are looking for. But it improved by a lot.
For us, it is the only minus point using Dynatrace. All other features are top notch.
I really hope something will be announced in the near future. Other APM solutions support Python (Instana) and so should Dynatrace as the current leader of APM. Also Dynatrace plugins are based on Python only but the OneAgent can not instrument it automatically.
I have seen python is now supported out of the box if the code is in AWS lambda function. Is one agent going be able to auto instrument the code soon by default like all others platform.