cavisson-pythonagent 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. cavisson_pythonagent-0.0.1/LICENSE +19 -0
  2. cavisson_pythonagent-0.0.1/MANIFEST.in +1 -0
  3. cavisson_pythonagent-0.0.1/PKG-INFO +32 -0
  4. cavisson_pythonagent-0.0.1/README.md +5 -0
  5. cavisson_pythonagent-0.0.1/cavisson_pythonagent.egg-info/PKG-INFO +32 -0
  6. cavisson_pythonagent-0.0.1/cavisson_pythonagent.egg-info/SOURCES.txt +185 -0
  7. cavisson_pythonagent-0.0.1/cavisson_pythonagent.egg-info/dependency_links.txt +1 -0
  8. cavisson_pythonagent-0.0.1/cavisson_pythonagent.egg-info/top_level.txt +1 -0
  9. cavisson_pythonagent-0.0.1/pyproject.toml +6 -0
  10. cavisson_pythonagent-0.0.1/pythonagent/__init__.py +22 -0
  11. cavisson_pythonagent-0.0.1/pythonagent/agent/__init__.py +219 -0
  12. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/__init__.py +1 -0
  13. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/agent.py +1651 -0
  14. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/framesinfo.py +152 -0
  15. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/heap_dump.py +39 -0
  16. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/intercept_module.py +70 -0
  17. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/logs.py +122 -0
  18. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/metadata/__init__.py +0 -0
  19. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/metadata/agent_meta_data.py +276 -0
  20. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/proc_compat.py +75 -0
  21. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/profile.py +47 -0
  22. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/provider.py +83 -0
  23. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/thread_dump.py +85 -0
  24. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/udp.py +245 -0
  25. cavisson_pythonagent-0.0.1/pythonagent/agent/internal/udp_message.py +800 -0
  26. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/Instrumentation/__init__.py +340 -0
  27. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/Instrumentation/find.py +243 -0
  28. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/Instrumentation/module_version_resolver.py +155 -0
  29. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/Instrumentation/new_parser.py +64 -0
  30. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/Instrumentation/parser.py +129 -0
  31. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/__init__.py +219 -0
  32. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/base.py +303 -0
  33. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/cache/__init__.py +51 -0
  34. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/cache/redis.py +119 -0
  35. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/cache/redis_asyncio.py +83 -0
  36. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/coroutines/__init__.py +1 -0
  37. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/coroutines/asyncio.py +63 -0
  38. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/elasticdb/__init__.py +7 -0
  39. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/elasticdb/aelastic.py +54 -0
  40. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/__init__.py +27 -0
  41. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/agentprofiler.py +105 -0
  42. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/aiohttp_web.py +155 -0
  43. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/aisess.py +151 -0
  44. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/asgi.py +340 -0
  45. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/bottle.py +27 -0
  46. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/cherry.py +25 -0
  47. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/django.py +128 -0
  48. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/falcon.py +21 -0
  49. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/fastapi.py +35 -0
  50. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/flask.py +30 -0
  51. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/pyramid.py +56 -0
  52. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/test.py +108 -0
  53. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/tornado_async_web.py +117 -0
  54. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/tornado_web.py +133 -0
  55. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/frameworks/wsgi.py +353 -0
  56. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/grpc/__init__.py +76 -0
  57. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/grpc/client_interceptor.py +132 -0
  58. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/grpc/server_interceptor.py +129 -0
  59. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/havoc/__init__.py +0 -0
  60. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/havoc/custom_memory_stress.py +186 -0
  61. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/havoc/custom_thread_stress.py +187 -0
  62. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/havoc/havoc_constants.py +218 -0
  63. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/havoc/havoc_manager.py +981 -0
  64. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/__init__.py +49 -0
  65. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/aiohttp_client.py +59 -0
  66. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/boto.py +12 -0
  67. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/httplib.py +110 -0
  68. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/httpx_client.py +116 -0
  69. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/requests.py +15 -0
  70. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/tornado_httpclient.py +85 -0
  71. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/http/urllib3.py +16 -0
  72. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/langchain/__init__.py +21 -0
  73. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/langchain/base_tool.py +95 -0
  74. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/langchain/langchain_community.py +136 -0
  75. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/langchain/langchain_core.py +32 -0
  76. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/langchain/langchain_openai.py +110 -0
  77. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/logging/__init__.py +106 -0
  78. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/message_brokers/__init__.py +4 -0
  79. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/message_brokers/pika.py +126 -0
  80. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/mongodb/__init__.py +6 -0
  81. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/mongodb/pymongo.py +286 -0
  82. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/openai/__init__.py +3 -0
  83. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/openai/openai.py +797 -0
  84. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/span.py +101 -0
  85. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/__init__.py +13 -0
  86. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/botocores3.py +51 -0
  87. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/dbapi.py +285 -0
  88. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/dynamodb.py +90 -0
  89. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/mysql_connector.py +24 -0
  90. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/mysql_connector_cext.py +24 -0
  91. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/mysqldb.py +43 -0
  92. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/psycopg2.py +174 -0
  93. cavisson_pythonagent-0.0.1/pythonagent/agent/probes/sql/pymysql.py +25 -0
  94. cavisson_pythonagent-0.0.1/pythonagent/bootstrap/__init__.py +0 -0
  95. cavisson_pythonagent-0.0.1/pythonagent/bootstrap/cav_gunicorn.py +26 -0
  96. cavisson_pythonagent-0.0.1/pythonagent/bootstrap/cavagent_lambda_wrapper.py +291 -0
  97. cavisson_pythonagent-0.0.1/pythonagent/bootstrap/run.py +47 -0
  98. cavisson_pythonagent-0.0.1/pythonagent/bootstrap/sitecustomize.py +287 -0
  99. cavisson_pythonagent-0.0.1/pythonagent/cavisson/netdiagnostics/CavAgent/instrumentationprofile.json +26 -0
  100. cavisson_pythonagent-0.0.1/pythonagent/cavisson/netdiagnostics/CavAgent/interceptor_points.txt +29 -0
  101. cavisson_pythonagent-0.0.1/pythonagent/cavisson/netdiagnostics/python/CavAgent/instrumentationprofile.json +42 -0
  102. cavisson_pythonagent-0.0.1/pythonagent/cavisson/netdiagnostics/python/CavAgent/interceptor_points.txt +29 -0
  103. cavisson_pythonagent-0.0.1/pythonagent/cavisson/netdiagnostics/python/config/ndsettings.conf +6 -0
  104. cavisson_pythonagent-0.0.1/pythonagent/config.py +279 -0
  105. cavisson_pythonagent-0.0.1/pythonagent/find.py +72 -0
  106. cavisson_pythonagent-0.0.1/pythonagent/find_mod_cls_name.py +54 -0
  107. cavisson_pythonagent-0.0.1/pythonagent/lang.py +131 -0
  108. cavisson_pythonagent-0.0.1/pythonagent/lib.py +91 -0
  109. cavisson_pythonagent-0.0.1/pythonagent/main/__init__.py +0 -0
  110. cavisson_pythonagent-0.0.1/pythonagent/main/pytrace/__init__.py +79 -0
  111. cavisson_pythonagent-0.0.1/pythonagent/main/pytrace/commands/__init__.py +0 -0
  112. cavisson_pythonagent-0.0.1/pythonagent/main/pytrace/commands/auto_discovery.py +25 -0
  113. cavisson_pythonagent-0.0.1/pythonagent/main/pytrace/commands/run.py +401 -0
  114. cavisson_pythonagent-0.0.1/pythonagent/main/pytrace/pytrace.py +133 -0
  115. cavisson_pythonagent-0.0.1/pythonagent/main/wsgi.py +6 -0
  116. cavisson_pythonagent-0.0.1/pythonagent/main.py +27 -0
  117. cavisson_pythonagent-0.0.1/pythonagent/run.py +46 -0
  118. cavisson_pythonagent-0.0.1/pythonagent/sqins.py +8 -0
  119. cavisson_pythonagent-0.0.1/pythonagent/test.py +73 -0
  120. cavisson_pythonagent-0.0.1/pythonagent/utils.py +168 -0
  121. cavisson_pythonagent-0.0.1/pythonagent/vendor/__init__.py +0 -0
  122. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/__init__.py +1 -0
  123. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/asizeof.py +2810 -0
  124. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/charts.py +62 -0
  125. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/classtracker.py +590 -0
  126. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/classtracker_stats.py +780 -0
  127. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/garbagegraph.py +80 -0
  128. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/mprofile.py +97 -0
  129. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/muppy.py +275 -0
  130. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/panels.py +115 -0
  131. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/process.py +238 -0
  132. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/py.typed +0 -0
  133. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/refbrowser.py +451 -0
  134. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/refgraph.py +350 -0
  135. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/summary.py +321 -0
  136. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/tracker.py +267 -0
  137. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/util/__init__.py +0 -0
  138. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/util/bottle.py +3809 -0
  139. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/util/compat.py +23 -0
  140. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/util/stringutils.py +77 -0
  141. cavisson_pythonagent-0.0.1/pythonagent/vendor/pympler/web.py +346 -0
  142. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/__init__.py +20 -0
  143. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/_compat.py +228 -0
  144. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/_internal.py +473 -0
  145. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/_reloader.py +341 -0
  146. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/datastructures.py +3120 -0
  147. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/debug/__init__.py +498 -0
  148. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/debug/console.py +218 -0
  149. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/debug/repr.py +297 -0
  150. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/debug/tbtools.py +628 -0
  151. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/exceptions.py +829 -0
  152. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/filesystem.py +64 -0
  153. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/formparser.py +584 -0
  154. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/http.py +1307 -0
  155. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/local.py +420 -0
  156. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/__init__.py +25 -0
  157. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/dispatcher.py +66 -0
  158. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/http_proxy.py +219 -0
  159. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/lint.py +408 -0
  160. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/profiler.py +132 -0
  161. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/proxy_fix.py +169 -0
  162. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/middleware/shared_data.py +293 -0
  163. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/posixemulation.py +117 -0
  164. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/routing.py +2210 -0
  165. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/security.py +249 -0
  166. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/serving.py +1117 -0
  167. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/test.py +1123 -0
  168. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/testapp.py +241 -0
  169. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/urls.py +1138 -0
  170. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/useragents.py +202 -0
  171. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/utils.py +778 -0
  172. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/__init__.py +36 -0
  173. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/accept.py +50 -0
  174. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/auth.py +33 -0
  175. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/base_request.py +673 -0
  176. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/base_response.py +700 -0
  177. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/common_descriptors.py +341 -0
  178. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/cors.py +100 -0
  179. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/etag.py +304 -0
  180. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/json.py +145 -0
  181. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/request.py +49 -0
  182. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/response.py +84 -0
  183. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wrappers/user_agent.py +14 -0
  184. cavisson_pythonagent-0.0.1/pythonagent/vendor/werkzeug/wsgi.py +1000 -0
  185. cavisson_pythonagent-0.0.1/setup.cfg +22 -0
  186. cavisson_pythonagent-0.0.1/setup.py +29 -0
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2018 The Python Packaging Authority
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ graft pythonagent/cavisson
@@ -0,0 +1,32 @@
1
+ Metadata-Version: 2.4
2
+ Name: cavisson-pythonagent
3
+ Version: 0.0.1
4
+ Summary: A small example package
5
+ Home-page: https://github.com/pypa/sampleproject
6
+ Author: Cavisson System
7
+ Author-email: pythonagent@cavisson.com
8
+ Classifier: Programming Language :: Python :: 2
9
+ Classifier: Programming Language :: Python :: 2.7
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.6
12
+ Classifier: Programming Language :: Python :: 3.7
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: license-file
25
+ Dynamic: requires-python
26
+ Dynamic: summary
27
+
28
+ # Example Package
29
+
30
+ This is a simple example package. You can use
31
+ [Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
32
+ to write your content.
@@ -0,0 +1,5 @@
1
+ # Example Package
2
+
3
+ This is a simple example package. You can use
4
+ [Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
5
+ to write your content.
@@ -0,0 +1,32 @@
1
+ Metadata-Version: 2.4
2
+ Name: cavisson-pythonagent
3
+ Version: 0.0.1
4
+ Summary: A small example package
5
+ Home-page: https://github.com/pypa/sampleproject
6
+ Author: Cavisson System
7
+ Author-email: pythonagent@cavisson.com
8
+ Classifier: Programming Language :: Python :: 2
9
+ Classifier: Programming Language :: Python :: 2.7
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.6
12
+ Classifier: Programming Language :: Python :: 3.7
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=2.6, !=3.0.*, !=3.1.*, !=3.2.*
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: license-file
25
+ Dynamic: requires-python
26
+ Dynamic: summary
27
+
28
+ # Example Package
29
+
30
+ This is a simple example package. You can use
31
+ [Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
32
+ to write your content.
@@ -0,0 +1,185 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ README.md
4
+ pyproject.toml
5
+ setup.cfg
6
+ setup.py
7
+ cavisson_pythonagent.egg-info/PKG-INFO
8
+ cavisson_pythonagent.egg-info/SOURCES.txt
9
+ cavisson_pythonagent.egg-info/dependency_links.txt
10
+ cavisson_pythonagent.egg-info/top_level.txt
11
+ pythonagent/__init__.py
12
+ pythonagent/config.py
13
+ pythonagent/find.py
14
+ pythonagent/find_mod_cls_name.py
15
+ pythonagent/lang.py
16
+ pythonagent/lib.py
17
+ pythonagent/main.py
18
+ pythonagent/run.py
19
+ pythonagent/sqins.py
20
+ pythonagent/test.py
21
+ pythonagent/utils.py
22
+ pythonagent/agent/__init__.py
23
+ pythonagent/agent/internal/__init__.py
24
+ pythonagent/agent/internal/agent.py
25
+ pythonagent/agent/internal/framesinfo.py
26
+ pythonagent/agent/internal/heap_dump.py
27
+ pythonagent/agent/internal/intercept_module.py
28
+ pythonagent/agent/internal/logs.py
29
+ pythonagent/agent/internal/proc_compat.py
30
+ pythonagent/agent/internal/profile.py
31
+ pythonagent/agent/internal/provider.py
32
+ pythonagent/agent/internal/thread_dump.py
33
+ pythonagent/agent/internal/udp.py
34
+ pythonagent/agent/internal/udp_message.py
35
+ pythonagent/agent/internal/metadata/__init__.py
36
+ pythonagent/agent/internal/metadata/agent_meta_data.py
37
+ pythonagent/agent/probes/__init__.py
38
+ pythonagent/agent/probes/base.py
39
+ pythonagent/agent/probes/span.py
40
+ pythonagent/agent/probes/Instrumentation/__init__.py
41
+ pythonagent/agent/probes/Instrumentation/find.py
42
+ pythonagent/agent/probes/Instrumentation/module_version_resolver.py
43
+ pythonagent/agent/probes/Instrumentation/new_parser.py
44
+ pythonagent/agent/probes/Instrumentation/parser.py
45
+ pythonagent/agent/probes/cache/__init__.py
46
+ pythonagent/agent/probes/cache/redis.py
47
+ pythonagent/agent/probes/cache/redis_asyncio.py
48
+ pythonagent/agent/probes/coroutines/__init__.py
49
+ pythonagent/agent/probes/coroutines/asyncio.py
50
+ pythonagent/agent/probes/elasticdb/__init__.py
51
+ pythonagent/agent/probes/elasticdb/aelastic.py
52
+ pythonagent/agent/probes/frameworks/__init__.py
53
+ pythonagent/agent/probes/frameworks/agentprofiler.py
54
+ pythonagent/agent/probes/frameworks/aiohttp_web.py
55
+ pythonagent/agent/probes/frameworks/aisess.py
56
+ pythonagent/agent/probes/frameworks/asgi.py
57
+ pythonagent/agent/probes/frameworks/bottle.py
58
+ pythonagent/agent/probes/frameworks/cherry.py
59
+ pythonagent/agent/probes/frameworks/django.py
60
+ pythonagent/agent/probes/frameworks/falcon.py
61
+ pythonagent/agent/probes/frameworks/fastapi.py
62
+ pythonagent/agent/probes/frameworks/flask.py
63
+ pythonagent/agent/probes/frameworks/pyramid.py
64
+ pythonagent/agent/probes/frameworks/test.py
65
+ pythonagent/agent/probes/frameworks/tornado_async_web.py
66
+ pythonagent/agent/probes/frameworks/tornado_web.py
67
+ pythonagent/agent/probes/frameworks/wsgi.py
68
+ pythonagent/agent/probes/grpc/__init__.py
69
+ pythonagent/agent/probes/grpc/client_interceptor.py
70
+ pythonagent/agent/probes/grpc/server_interceptor.py
71
+ pythonagent/agent/probes/havoc/__init__.py
72
+ pythonagent/agent/probes/havoc/custom_memory_stress.py
73
+ pythonagent/agent/probes/havoc/custom_thread_stress.py
74
+ pythonagent/agent/probes/havoc/havoc_constants.py
75
+ pythonagent/agent/probes/havoc/havoc_manager.py
76
+ pythonagent/agent/probes/http/__init__.py
77
+ pythonagent/agent/probes/http/aiohttp_client.py
78
+ pythonagent/agent/probes/http/boto.py
79
+ pythonagent/agent/probes/http/httplib.py
80
+ pythonagent/agent/probes/http/httpx_client.py
81
+ pythonagent/agent/probes/http/requests.py
82
+ pythonagent/agent/probes/http/tornado_httpclient.py
83
+ pythonagent/agent/probes/http/urllib3.py
84
+ pythonagent/agent/probes/langchain/__init__.py
85
+ pythonagent/agent/probes/langchain/base_tool.py
86
+ pythonagent/agent/probes/langchain/langchain_community.py
87
+ pythonagent/agent/probes/langchain/langchain_core.py
88
+ pythonagent/agent/probes/langchain/langchain_openai.py
89
+ pythonagent/agent/probes/logging/__init__.py
90
+ pythonagent/agent/probes/message_brokers/__init__.py
91
+ pythonagent/agent/probes/message_brokers/pika.py
92
+ pythonagent/agent/probes/mongodb/__init__.py
93
+ pythonagent/agent/probes/mongodb/pymongo.py
94
+ pythonagent/agent/probes/openai/__init__.py
95
+ pythonagent/agent/probes/openai/openai.py
96
+ pythonagent/agent/probes/sql/__init__.py
97
+ pythonagent/agent/probes/sql/botocores3.py
98
+ pythonagent/agent/probes/sql/dbapi.py
99
+ pythonagent/agent/probes/sql/dynamodb.py
100
+ pythonagent/agent/probes/sql/mysql_connector.py
101
+ pythonagent/agent/probes/sql/mysql_connector_cext.py
102
+ pythonagent/agent/probes/sql/mysqldb.py
103
+ pythonagent/agent/probes/sql/psycopg2.py
104
+ pythonagent/agent/probes/sql/pymysql.py
105
+ pythonagent/bootstrap/__init__.py
106
+ pythonagent/bootstrap/cav_gunicorn.py
107
+ pythonagent/bootstrap/cavagent_lambda_wrapper.py
108
+ pythonagent/bootstrap/run.py
109
+ pythonagent/bootstrap/sitecustomize.py
110
+ pythonagent/cavisson/netdiagnostics/CavAgent/instrumentationprofile.json
111
+ pythonagent/cavisson/netdiagnostics/CavAgent/interceptor_points.txt
112
+ pythonagent/cavisson/netdiagnostics/python/CavAgent/instrumentationprofile.json
113
+ pythonagent/cavisson/netdiagnostics/python/CavAgent/interceptor_points.txt
114
+ pythonagent/cavisson/netdiagnostics/python/config/ndsettings.conf
115
+ pythonagent/main/__init__.py
116
+ pythonagent/main/wsgi.py
117
+ pythonagent/main/pytrace/__init__.py
118
+ pythonagent/main/pytrace/pytrace.py
119
+ pythonagent/main/pytrace/commands/__init__.py
120
+ pythonagent/main/pytrace/commands/auto_discovery.py
121
+ pythonagent/main/pytrace/commands/run.py
122
+ pythonagent/vendor/__init__.py
123
+ pythonagent/vendor/pympler/__init__.py
124
+ pythonagent/vendor/pympler/asizeof.py
125
+ pythonagent/vendor/pympler/charts.py
126
+ pythonagent/vendor/pympler/classtracker.py
127
+ pythonagent/vendor/pympler/classtracker_stats.py
128
+ pythonagent/vendor/pympler/garbagegraph.py
129
+ pythonagent/vendor/pympler/mprofile.py
130
+ pythonagent/vendor/pympler/muppy.py
131
+ pythonagent/vendor/pympler/panels.py
132
+ pythonagent/vendor/pympler/process.py
133
+ pythonagent/vendor/pympler/py.typed
134
+ pythonagent/vendor/pympler/refbrowser.py
135
+ pythonagent/vendor/pympler/refgraph.py
136
+ pythonagent/vendor/pympler/summary.py
137
+ pythonagent/vendor/pympler/tracker.py
138
+ pythonagent/vendor/pympler/web.py
139
+ pythonagent/vendor/pympler/util/__init__.py
140
+ pythonagent/vendor/pympler/util/bottle.py
141
+ pythonagent/vendor/pympler/util/compat.py
142
+ pythonagent/vendor/pympler/util/stringutils.py
143
+ pythonagent/vendor/werkzeug/__init__.py
144
+ pythonagent/vendor/werkzeug/_compat.py
145
+ pythonagent/vendor/werkzeug/_internal.py
146
+ pythonagent/vendor/werkzeug/_reloader.py
147
+ pythonagent/vendor/werkzeug/datastructures.py
148
+ pythonagent/vendor/werkzeug/exceptions.py
149
+ pythonagent/vendor/werkzeug/filesystem.py
150
+ pythonagent/vendor/werkzeug/formparser.py
151
+ pythonagent/vendor/werkzeug/http.py
152
+ pythonagent/vendor/werkzeug/local.py
153
+ pythonagent/vendor/werkzeug/posixemulation.py
154
+ pythonagent/vendor/werkzeug/routing.py
155
+ pythonagent/vendor/werkzeug/security.py
156
+ pythonagent/vendor/werkzeug/serving.py
157
+ pythonagent/vendor/werkzeug/test.py
158
+ pythonagent/vendor/werkzeug/testapp.py
159
+ pythonagent/vendor/werkzeug/urls.py
160
+ pythonagent/vendor/werkzeug/useragents.py
161
+ pythonagent/vendor/werkzeug/utils.py
162
+ pythonagent/vendor/werkzeug/wsgi.py
163
+ pythonagent/vendor/werkzeug/debug/__init__.py
164
+ pythonagent/vendor/werkzeug/debug/console.py
165
+ pythonagent/vendor/werkzeug/debug/repr.py
166
+ pythonagent/vendor/werkzeug/debug/tbtools.py
167
+ pythonagent/vendor/werkzeug/middleware/__init__.py
168
+ pythonagent/vendor/werkzeug/middleware/dispatcher.py
169
+ pythonagent/vendor/werkzeug/middleware/http_proxy.py
170
+ pythonagent/vendor/werkzeug/middleware/lint.py
171
+ pythonagent/vendor/werkzeug/middleware/profiler.py
172
+ pythonagent/vendor/werkzeug/middleware/proxy_fix.py
173
+ pythonagent/vendor/werkzeug/middleware/shared_data.py
174
+ pythonagent/vendor/werkzeug/wrappers/__init__.py
175
+ pythonagent/vendor/werkzeug/wrappers/accept.py
176
+ pythonagent/vendor/werkzeug/wrappers/auth.py
177
+ pythonagent/vendor/werkzeug/wrappers/base_request.py
178
+ pythonagent/vendor/werkzeug/wrappers/base_response.py
179
+ pythonagent/vendor/werkzeug/wrappers/common_descriptors.py
180
+ pythonagent/vendor/werkzeug/wrappers/cors.py
181
+ pythonagent/vendor/werkzeug/wrappers/etag.py
182
+ pythonagent/vendor/werkzeug/wrappers/json.py
183
+ pythonagent/vendor/werkzeug/wrappers/request.py
184
+ pythonagent/vendor/werkzeug/wrappers/response.py
185
+ pythonagent/vendor/werkzeug/wrappers/user_agent.py
@@ -0,0 +1,6 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools>=42",
4
+ "wheel"
5
+ ]
6
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,22 @@
1
+
2
+
3
+ def methodwrapper(func):
4
+ import pythonagent.agent as agent
5
+ _agent = agent.get_agent_instance()
6
+ print(func.__module__)
7
+ fqm = str(func.__module__) +"."+ str(func.__name__)
8
+ bt = _agent.get_current_bt()
9
+ #bt = "000001"
10
+ def inner(*args, **kwargs):
11
+ try:
12
+ _agent.method_entry(bt, fqm)
13
+ except Exception as e:
14
+ print(e)
15
+ rc = func(*args, **kwargs)
16
+ try:
17
+ _agent.method_exit(bt, fqm, 200)
18
+ except Exception as e:
19
+ print(e)
20
+ return rc
21
+
22
+ return inner
@@ -0,0 +1,219 @@
1
+
2
+ from pythonagent import config
3
+ from pythonagent.agent.internal.logs import configure_logging
4
+ from pythonagent.agent.probes.Instrumentation.parser import create_method_json, create_method_array, create_method_list
5
+ #from pythonagent.agent.probes.Instrumentation.new_parser import create_module_list, create_method_list
6
+ #from pythonagent.agent.probes.Instrumentation.new_parser import create_method_list
7
+
8
+ import os
9
+ from pythonagent.lang import reload
10
+ from os.path import exists
11
+
12
+ '''
13
+ import os
14
+ path = os.path.dirname(config.__file__)
15
+ #print("Module path", path)
16
+ #os.chdir(path)
17
+ #print("Current working dir ==========================================",path)
18
+
19
+ f = open(os.path.join(path, 'agent/internal/intercept_module.py'), "a+")
20
+ f.truncate(0)
21
+ #cwd = os.getcwd() # Get the current working directory (cwd)
22
+ #files = os.listdir(cwd) # Get all the files in that directory
23
+ #print("Files in %r: %s" % (cwd, files))
24
+
25
+ infile = open(r'/tmp/CavAgent/interceptor_points.txt')
26
+ outfile = open(os.path.join(path, './test.py'))
27
+ temp = []
28
+ for x in infile:
29
+ if x.startswith('#'):
30
+ temp.append(x.lstrip('#').rstrip('\n'))
31
+
32
+ for line in outfile:
33
+ count=0
34
+ for y in temp:
35
+ if y in line and 'from' not in line:
36
+ f.write('#'+line)
37
+ count = 1
38
+ if count==0:
39
+ f.write(line)
40
+
41
+
42
+ infile.close()
43
+ outfile.close()
44
+ f.close()
45
+ '''
46
+
47
+
48
+ def entry_point_refresh():
49
+ #import os
50
+ path = os.path.dirname(config.__file__)
51
+ #print("Module path", path)
52
+ #os.chdir(path)
53
+ #print("Current working dir ==========================================",path)
54
+
55
+ try:
56
+ f = open(os.path.join(path, 'agent/internal/intercept_module.py'), "w+")
57
+ #f.truncate(0)
58
+ #cwd = os.getcwd() # Get the current working directory (cwd)
59
+ #files = os.listdir(cwd) # Get all the files in that directory
60
+ #print("Files in %r: %s" % (cwd, files))
61
+
62
+ infile = open(os.environ.get('NDHOME') + '/python/hooksettings/interceptor_points.txt')
63
+ outfile = open(os.path.join(path, './test.py'))
64
+ temp = []
65
+ for x in infile:
66
+ if x.startswith('#'):
67
+ temp.append(x.lstrip('#').rstrip('\n'))
68
+
69
+ for line in outfile:
70
+ count=0
71
+ for y in temp:
72
+ if y in line and 'from' not in line:
73
+ f.write('#'+line)
74
+ count = 1
75
+ if count==0:
76
+ f.write(line)
77
+
78
+
79
+ infile.close()
80
+ outfile.close()
81
+ f.close()
82
+ except:
83
+ pass
84
+ return 0
85
+
86
+ from pythonagent.agent.probes import add_hook, Instrumentation
87
+ import logging
88
+
89
+ #RUNNING_MODE = 0
90
+ from pythonagent.agent.internal.agent import Agent
91
+
92
+ def configure(environ=None):
93
+ agent_config = config.parse_environ()
94
+ if environ:
95
+ agent_config.update(config.parse_environ(environ))
96
+
97
+ config.merge(agent_config)
98
+ configure_logging()
99
+
100
+ return config.validate_config(agent_config)
101
+
102
+
103
+
104
+ def get_all_module_names(_agent):
105
+ all_module_names = set()
106
+
107
+ # CASE 1 : Profile Created by Callback
108
+
109
+ try:
110
+ pythonagent_path = os.path.dirname(config.__file__)
111
+ instr_prof_path = os.path.join(pythonagent_path, 'agent/internal/instrprof.json')
112
+ #instr_prof_path = os.environ.get('NDHOME') + "/python/hooksettings/instrprof.json"
113
+
114
+ from pathlib import Path
115
+ instr_prof_file = Path(instr_prof_path)
116
+
117
+ if instr_prof_file.is_file():
118
+ _agent.custom_methods_to_instrument = create_method_list(instr_prof_file)
119
+ print("ALL custom methods(Instrument) callback-> ", _agent.custom_methods_to_instrument)
120
+
121
+ import json
122
+ f = None
123
+ try:
124
+ f = open(instr_prof_file, "r")
125
+ except:
126
+ pass
127
+
128
+ if f:
129
+ string_of_profiles = f.read()
130
+ list_of_profiles = string_of_profiles.split("\n\n\n")
131
+
132
+ for profile in list_of_profiles:
133
+ try:
134
+ obj2 = json.loads(profile)
135
+ except:
136
+ continue
137
+
138
+ for item in obj2:
139
+ try:
140
+ module_name = item["modulename"].split("|")[0]
141
+ all_module_names.add(module_name)
142
+ except Exception:
143
+ # Don't let one malformed entry drop every module
144
+ # name (app included) parsed after it.
145
+ _agent.logger.warning("Skipping malformed instrumentation profile entry: %r", item)
146
+ continue
147
+
148
+ return all_module_names
149
+ except:
150
+ _agent.logger.exception("Error in section: Profile Created by Callback ")
151
+
152
+
153
+ # CASE 2 : Profile Created Locally
154
+
155
+ if True:
156
+ path = os.environ.get('NDHOME')
157
+ path = path + '/python/config/ndsettings.conf'
158
+ print("path of NDC config : ", path)
159
+ myvars = {}
160
+
161
+ with open(path) as myfile:
162
+ for line in myfile:
163
+ name, var = line.partition("=")[::2]
164
+ myvars[name.strip()] = var
165
+ try:
166
+ path_for_insProfile = myvars.get('path_profile').strip('\n')
167
+ except:
168
+ path_for_insProfile= os.environ.get('NDHOME') + "/python/hooksettings/instrumentationprofile.json"
169
+ print('Profiler path at : ', path_for_insProfile)
170
+
171
+ _agent.custom_methods_to_instrument = create_method_array(path_for_insProfile)
172
+ print("ALL custom methods(Instrument) local-> ", _agent.custom_methods_to_instrument)
173
+
174
+
175
+ custom_methods_to_instrument_json = create_method_json(path_for_insProfile).get("modules", {})
176
+
177
+ for module in custom_methods_to_instrument_json:
178
+ all_module_names.add(module["moduleName"])
179
+
180
+ return all_module_names
181
+
182
+
183
+ def bootstrap(agent=None):
184
+ print("AGENT BOOTSTRAP")
185
+ first_bootstrap = True
186
+ if agent:
187
+ first_bootstrap = False
188
+ entry_point_refresh()
189
+ import pythonagent.agent.internal.intercept_module
190
+ reload(pythonagent.agent.internal.intercept_module)
191
+ from pythonagent.agent.internal.intercept_module import BT
192
+ BT_INTERCEPTORS = BT
193
+ try:
194
+ _agent = agent or get_agent_instance()
195
+ hook = add_hook(_agent)
196
+ all_module_names = get_all_module_names(_agent)
197
+ bt_top_level = {module.split('.')[0] for module, _ in BT_INTERCEPTORS}
198
+
199
+ #print("all_module_names", all_module_names)
200
+
201
+ for module, patch in BT_INTERCEPTORS:
202
+ hook.call_on_import(module, patch)
203
+ for module in all_module_names:
204
+ if module.split('.')[0] in bt_top_level:
205
+ continue
206
+ #print("MODULE NAME ", module)
207
+ hook.call_on_import(module, Instrumentation.intercept_instrumented_method)
208
+
209
+ _agent.module_interceptor = hook
210
+
211
+ return _agent
212
+ except:
213
+ logging.getLogger('pythonagent.agent').exception('Error bootstrapping pythonagent; disabling.')
214
+ return None
215
+
216
+ def get_agent_instance():
217
+ return Agent.get_instance()
218
+
219
+