Open et-at-micro opened 1 year ago
@et-at-micro
Thanks for doing this analysis. Curious would you be able to get the import time statistics for the trace and metrics exporters as well and compare them?
@lzchen
Updates:
Just the import without python bootime etc we are looking at ~690-760ms for all the tools.
The biggest single impact is with the import to MSAL
that imports http.server
(python standard library) that takes ~300ms and opencensus.ext.azure.common.transport
already explicitly imports requests
(external http server) that takes ~100ms.
That alone can save 30% of total import time.
The second is opencensus.trace.status
that makes up for another 30% of import time.
this import google rpc and pkg_resources.
I did not see any large differences in metrics, logs or traces in import time or the biggest time consumers.
Describe your environment. python 3.10.8 opencensus-ext-azure==1.1.7 mac Ventura or windows 11. macbook pro 16 inch core i9 windows Intel 8700k
Steps to reproduce. time python -c "from opencensus.ext.azure.log_exporter import AzureLogHandler" vs time python -c "" What is the expected behavior? Similar runtime. What is the actual behavior?
time python -c ""
# ~0.1-0.13 secondstime python -c "from opencensus.ext.azure.log_exporter import AzureLogHandler"
# ~0.7 - 2.6 secondsImporting opencensus.ext.azure.log_exporter takes between 0.6 - 2.5 seconds to import.
Additional context. This limits the ability to use opencensus.ext.azure in any cli application where startup times are crucial. I tried lazy loading the module but that gives me errors. Adding here profiling of import: