monocle-apptrace 0.5.0b1__tar.gz → 0.5.1b1__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.
Potentially problematic release.
This version of monocle-apptrace might be problematic. Click here for more details.
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/PKG-INFO +41 -11
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/README.md +20 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/pyproject.toml +33 -13
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/file_exporter.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/__init__.py +7 -5
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/common/constants.py +180 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/instrumentor.py +1 -6
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/method_wrappers.py +10 -125
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/common/scope_wrapper.py +126 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/span_handler.py +32 -8
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/utils.py +34 -3
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/common/wrapper.py +415 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/wrapper_method.py +9 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/a2a/entities/inference.py +3 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/adk/_helper.py +206 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/adk/entities/agent.py +111 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/adk/entities/tool.py +59 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/adk/methods.py +31 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents/_helper.py +225 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents/agents_processor.py +174 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents/entities/inference.py +196 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents/methods.py +55 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/aiohttp/entities/http.py +2 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/_helper.py +183 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/anthropic/entities/inference.py +6 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azfunc/entities/http.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azureaiinference/entities/inference.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/entities/inference.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/fastapi/entities/http.py +2 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/fastapi/methods.py +23 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/finish_types.py +79 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/flask/entities/http.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/gemini/entities/inference.py +7 -3
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/gemini/entities/retrieval.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/gemini/methods.py +8 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/_helper.py +64 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/entities/inference.py +12 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/entities/retrieval.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/lambdafunc/entities/http.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/_helper.py +18 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/entities/inference.py +6 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/entities/retrieval.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/_helper.py +6 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/entities/inference.py +10 -5
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langgraph/langgraph_processor.py +11 -4
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/langgraph/methods.py +42 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/litellm/_helper.py +89 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/litellm/entities/inference.py +109 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/litellm/methods.py +19 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/agent.py +9 -4
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/inference.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities/retrieval.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/llamaindex_processor.py +14 -3
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/methods.py +1 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/mcp/_helper.py +2 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/mcp/entities/inference.py +3 -1
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/mcp/mcp_processor.py +0 -5
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/mcp/methods.py +1 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/openai/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/_helper.py +110 -5
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/openai/entities/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py +59 -13
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/entities/http.py +2 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/teamsai/_helper.py +12 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/__init__.py +0 -0
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py +12 -1
- monocle_apptrace-0.5.1b1/src/monocle_apptrace/mcp_server.py +94 -0
- monocle_apptrace-0.5.0b1/CHANGELOG.md +0 -141
- monocle_apptrace-0.5.0b1/CODEOWNERS.md +0 -10
- monocle_apptrace-0.5.0b1/CODE_OF_CONDUCT.md +0 -3
- monocle_apptrace-0.5.0b1/CONTRIBUTING.md +0 -28
- monocle_apptrace-0.5.0b1/COPYRIGHT.template +0 -2
- monocle_apptrace-0.5.0b1/MAINTAINER.md +0 -10
- monocle_apptrace-0.5.0b1/Monocle_User_Guide.md +0 -193
- monocle_apptrace-0.5.0b1/Monocle_committer_guide.md +0 -56
- monocle_apptrace-0.5.0b1/Monocle_contributor_guide.md +0 -1
- monocle_apptrace-0.5.0b1/SECURITY.md +0 -9
- monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/common/constants.py +0 -89
- monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/common/wrapper.py +0 -248
- monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/_helper.py +0 -106
- monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/fastapi/methods.py +0 -23
- monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/langgraph/methods.py +0 -38
- monocle_apptrace-0.5.0b1/tox.ini +0 -33
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/.gitignore +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/LICENSE +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/NOTICE +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/README.md +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/__main__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/aws/s3_exporter.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/aws/s3_exporter_opendal.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/azure/blob_exporter.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/azure/blob_exporter_opendal.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/base_exporter.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/exporter_processor.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/monocle_exporters.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/exporters/okahu/okahu_exporter.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/common/tracing.md +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/a2a/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/a2a/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/a2a/entities/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/a2a/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/aiohttp → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/adk}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/anthropic → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/anthropic → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/agents}/entities/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/botocore → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/aiohttp}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/aiohttp/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/aiohttp/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/botocore/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/fastapi → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/anthropic/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/anthropic/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azfunc/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azfunc/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azfunc/wrapper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azureaiinference/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azureaiinference/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/azureaiinference/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/fastapi/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/botocore}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/flask → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/botocore/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/handlers/botocore_span_handler.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/botocore/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/gemini → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/fastapi}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/fastapi/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/gemini → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/fastapi}/entities/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/haystack → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/flask}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/flask/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/flask/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/haystack/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/gemini}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/gemini/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/langchain → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/gemini/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/langchain/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/haystack}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/langgraph → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/haystack/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/haystack/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/lambdafunc/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/lambdafunc/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/lambdafunc/wrapper.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/langgraph/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/langchain}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/langchain/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/langchain/methods.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/langgraph}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/mcp → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/langgraph/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/mcp/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/litellm}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/openai → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/litellm/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/openai/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/llamaindex/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/teamsai → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/llamaindex/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/mcp}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference → monocle_apptrace-0.5.1b1/src/monocle_apptrace/instrumentation/metamodel/mcp/entities}/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/entities/retrieval.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/openai/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/__init__.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/_helper.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/requests/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/teamsai/methods.py +0 -0
- {monocle_apptrace-0.5.0b1 → monocle_apptrace-0.5.1b1}/src/monocle_apptrace/instrumentation/metamodel/teamsai/sample.json +0 -0
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: monocle_apptrace
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1b1
|
|
4
4
|
Summary: package with monocle genAI tracing
|
|
5
5
|
Project-URL: Homepage, https://github.com/monocle2ai/monocle
|
|
6
6
|
Project-URL: Issues, https://github.com/monocle2ai/monocle/issues
|
|
7
|
+
Author-email: "Okahu Inc." <okahu-pypi@okahu.ai>
|
|
8
|
+
License: Apache-2.0
|
|
7
9
|
License-File: LICENSE
|
|
8
10
|
License-File: NOTICE
|
|
9
|
-
Classifier: License :: OSI Approved ::
|
|
11
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
12
|
Classifier: Operating System :: OS Independent
|
|
11
13
|
Classifier: Programming Language :: Python :: 3
|
|
12
14
|
Requires-Python: >=3.8
|
|
15
|
+
Requires-Dist: click==8.2.1
|
|
16
|
+
Requires-Dist: mcp>=1.13.1
|
|
13
17
|
Requires-Dist: opentelemetry-api>=1.21.0
|
|
14
18
|
Requires-Dist: opentelemetry-instrumentation
|
|
15
19
|
Requires-Dist: opentelemetry-sdk>=1.21.0
|
|
20
|
+
Requires-Dist: pydantic>=2.11.7
|
|
16
21
|
Requires-Dist: requests
|
|
17
22
|
Requires-Dist: wrapt>=1.14.0
|
|
18
23
|
Provides-Extra: aws
|
|
@@ -25,12 +30,14 @@ Requires-Dist: anthropic-haystack; extra == 'dev'
|
|
|
25
30
|
Requires-Dist: anthropic==0.57.1; extra == 'dev'
|
|
26
31
|
Requires-Dist: azure-storage-blob==12.22.0; extra == 'dev'
|
|
27
32
|
Requires-Dist: boto3==1.37.24; extra == 'dev'
|
|
28
|
-
Requires-Dist: chromadb==1.0.
|
|
33
|
+
Requires-Dist: chromadb==1.0.15; extra == 'dev'
|
|
29
34
|
Requires-Dist: click==8.2.1; extra == 'dev'
|
|
30
35
|
Requires-Dist: datasets==2.20.0; extra == 'dev'
|
|
31
36
|
Requires-Dist: faiss-cpu==1.8.0; extra == 'dev'
|
|
32
|
-
Requires-Dist: fastapi>=0.115.
|
|
37
|
+
Requires-Dist: fastapi>=0.115.0; extra == 'dev'
|
|
33
38
|
Requires-Dist: flask; extra == 'dev'
|
|
39
|
+
Requires-Dist: google-adk==1.10.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: google-generativeai==0.8.5; extra == 'dev'
|
|
34
41
|
Requires-Dist: haystack-ai==2.3.0; extra == 'dev'
|
|
35
42
|
Requires-Dist: httpx==0.28.1; extra == 'dev'
|
|
36
43
|
Requires-Dist: instructorembedding==1.0.1; extra == 'dev'
|
|
@@ -46,16 +53,19 @@ Requires-Dist: langchain==0.3.25; extra == 'dev'
|
|
|
46
53
|
Requires-Dist: langchainhub==0.1.21; extra == 'dev'
|
|
47
54
|
Requires-Dist: langgraph-supervisor==0.0.28; extra == 'dev'
|
|
48
55
|
Requires-Dist: langgraph==0.5.4; extra == 'dev'
|
|
49
|
-
Requires-Dist: llama-index-embeddings-huggingface==0.
|
|
50
|
-
Requires-Dist: llama-index-llms-anthropic==0.
|
|
51
|
-
Requires-Dist: llama-index-llms-azure-openai==0.
|
|
52
|
-
Requires-Dist: llama-index-llms-mistralai==0.
|
|
53
|
-
Requires-Dist: llama-index-
|
|
54
|
-
Requires-Dist: llama-index-
|
|
55
|
-
Requires-Dist: llama-index==0.
|
|
56
|
+
Requires-Dist: llama-index-embeddings-huggingface==0.6.0; extra == 'dev'
|
|
57
|
+
Requires-Dist: llama-index-llms-anthropic==0.8.1; extra == 'dev'
|
|
58
|
+
Requires-Dist: llama-index-llms-azure-openai==0.4.0; extra == 'dev'
|
|
59
|
+
Requires-Dist: llama-index-llms-mistralai==0.7.0; extra == 'dev'
|
|
60
|
+
Requires-Dist: llama-index-llms-openai==0.5.0; extra == 'dev'
|
|
61
|
+
Requires-Dist: llama-index-tools-mcp==0.3.0; extra == 'dev'
|
|
62
|
+
Requires-Dist: llama-index-vector-stores-chroma==0.5.0; extra == 'dev'
|
|
63
|
+
Requires-Dist: llama-index-vector-stores-opensearch==0.6.0; extra == 'dev'
|
|
64
|
+
Requires-Dist: llama-index==0.13.0; extra == 'dev'
|
|
56
65
|
Requires-Dist: mcp==1.12.1; extra == 'dev'
|
|
57
66
|
Requires-Dist: mistral-haystack==0.0.2; extra == 'dev'
|
|
58
67
|
Requires-Dist: numpy==1.26.4; extra == 'dev'
|
|
68
|
+
Requires-Dist: openai-agents==0.2.6; extra == 'dev'
|
|
59
69
|
Requires-Dist: opendal==0.45.14; extra == 'dev'
|
|
60
70
|
Requires-Dist: opensearch-haystack==1.2.0; extra == 'dev'
|
|
61
71
|
Requires-Dist: opentelemetry-instrumentation-flask; extra == 'dev'
|
|
@@ -127,6 +137,26 @@ Benefits:
|
|
|
127
137
|
See [Monocle user guide](Monocle_User_Guide.md) for more details.
|
|
128
138
|
|
|
129
139
|
|
|
140
|
+
## Use Monocle MCP
|
|
141
|
+
|
|
142
|
+
First install monocle-apptrace: pip install monocle-apptrace
|
|
143
|
+
|
|
144
|
+
Open bash and run the following command to run the monocle mcp server with stdio:
|
|
145
|
+
monocle_apptrace
|
|
146
|
+
|
|
147
|
+
If you are using VS Code you can add following entry to your .vscode/mcp.json
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
"monocle-mcp-server": {
|
|
151
|
+
"type": "stdio",
|
|
152
|
+
"command": "uvx",
|
|
153
|
+
"args": [
|
|
154
|
+
"monocle_apptrace"
|
|
155
|
+
],
|
|
156
|
+
"env": {}
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
130
160
|
## Roadmap
|
|
131
161
|
|
|
132
162
|
Goal of Monocle is to support tracing for apps written in *any language* with *any LLM orchestration or agentic framework* and built using models, vectors, agents or other components served up by *any cloud or model inference provider*.
|
|
@@ -55,6 +55,26 @@ Benefits:
|
|
|
55
55
|
See [Monocle user guide](Monocle_User_Guide.md) for more details.
|
|
56
56
|
|
|
57
57
|
|
|
58
|
+
## Use Monocle MCP
|
|
59
|
+
|
|
60
|
+
First install monocle-apptrace: pip install monocle-apptrace
|
|
61
|
+
|
|
62
|
+
Open bash and run the following command to run the monocle mcp server with stdio:
|
|
63
|
+
monocle_apptrace
|
|
64
|
+
|
|
65
|
+
If you are using VS Code you can add following entry to your .vscode/mcp.json
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
"monocle-mcp-server": {
|
|
69
|
+
"type": "stdio",
|
|
70
|
+
"command": "uvx",
|
|
71
|
+
"args": [
|
|
72
|
+
"monocle_apptrace"
|
|
73
|
+
],
|
|
74
|
+
"env": {}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
58
78
|
## Roadmap
|
|
59
79
|
|
|
60
80
|
Goal of Monocle is to support tracing for apps written in *any language* with *any LLM orchestration or agentic framework* and built using models, vectors, agents or other components served up by *any cloud or model inference provider*.
|
|
@@ -4,14 +4,17 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "monocle_apptrace"
|
|
7
|
-
version = "0.5.
|
|
8
|
-
authors = [
|
|
7
|
+
version = "0.5.1b1"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Okahu Inc.", email="okahu-pypi@okahu.ai" },
|
|
10
|
+
]
|
|
9
11
|
description = "package with monocle genAI tracing"
|
|
10
12
|
readme = "README.md"
|
|
11
13
|
requires-python = ">=3.8"
|
|
14
|
+
license = {text = "Apache-2.0"}
|
|
12
15
|
classifiers = [
|
|
13
16
|
"Programming Language :: Python :: 3",
|
|
14
|
-
"License :: OSI Approved ::
|
|
17
|
+
"License :: OSI Approved :: Apache Software License",
|
|
15
18
|
"Operating System :: OS Independent",
|
|
16
19
|
]
|
|
17
20
|
dependencies = [
|
|
@@ -20,6 +23,9 @@ dependencies = [
|
|
|
20
23
|
'opentelemetry-api>=1.21.0',
|
|
21
24
|
'opentelemetry-sdk>=1.21.0',
|
|
22
25
|
'opentelemetry-instrumentation',
|
|
26
|
+
'mcp>=1.13.1',
|
|
27
|
+
'pydantic>=2.11.7',
|
|
28
|
+
'click==8.2.1'
|
|
23
29
|
]
|
|
24
30
|
|
|
25
31
|
[tool.pytest.ini_options]
|
|
@@ -52,23 +58,25 @@ dev = [
|
|
|
52
58
|
'sentence-transformers==2.6.1',
|
|
53
59
|
'faiss-cpu==1.8.0',
|
|
54
60
|
'pytest==8.3.5',
|
|
55
|
-
'llama-index==0.
|
|
56
|
-
'llama-index-
|
|
57
|
-
'llama-index-
|
|
61
|
+
'llama-index==0.13.0',
|
|
62
|
+
'llama-index-llms-openai==0.5.0',
|
|
63
|
+
'llama-index-tools-mcp==0.3.0',
|
|
64
|
+
'llama-index-embeddings-huggingface==0.6.0',
|
|
65
|
+
'llama-index-vector-stores-chroma==0.5.0',
|
|
58
66
|
'parameterized==0.9.0',
|
|
59
|
-
'llama-index-llms-mistralai==0.
|
|
67
|
+
'llama-index-llms-mistralai==0.7.0',
|
|
60
68
|
'langchain-mistralai==0.2.10',
|
|
61
69
|
'mistral-haystack==0.0.2',
|
|
62
70
|
'langchain-aws==0.2.23',
|
|
63
71
|
'azure-storage-blob==12.22.0', # this is for blob exporter
|
|
64
72
|
'boto3==1.37.24', # this is for aws exporter
|
|
65
|
-
'llama-index-vector-stores-opensearch==0.
|
|
73
|
+
'llama-index-vector-stores-opensearch==0.6.0',
|
|
66
74
|
'haystack-ai==2.3.0',
|
|
67
|
-
'llama-index-llms-azure-openai==0.
|
|
75
|
+
'llama-index-llms-azure-openai==0.4.0',
|
|
68
76
|
'requests-aws4auth==1.2.3',
|
|
69
77
|
'opensearch-haystack==1.2.0',
|
|
70
78
|
'langchainhub==0.1.21',
|
|
71
|
-
'chromadb==1.0.
|
|
79
|
+
'chromadb==1.0.15',
|
|
72
80
|
'flask',
|
|
73
81
|
'opentelemetry-instrumentation-flask',
|
|
74
82
|
'langgraph==0.5.4',
|
|
@@ -77,18 +85,21 @@ dev = [
|
|
|
77
85
|
'anthropic==0.57.1',
|
|
78
86
|
'anthropic-haystack',
|
|
79
87
|
'pytest-asyncio==0.26.0',
|
|
80
|
-
'llama-index-llms-anthropic==0.
|
|
88
|
+
'llama-index-llms-anthropic==0.8.1',
|
|
81
89
|
'langchain-anthropic==0.3.13',
|
|
82
90
|
'langchain-mcp-adapters==0.1.8',
|
|
83
91
|
'mcp==1.12.1',
|
|
84
|
-
'a2a-sdk==0.2.8',
|
|
92
|
+
'a2a-sdk==0.2.8',
|
|
85
93
|
'httpx==0.28.1',
|
|
86
|
-
'fastapi>=0.115.
|
|
94
|
+
'fastapi>=0.115.0',
|
|
87
95
|
'pydantic==2.11.7',
|
|
88
96
|
'uvicorn==0.35.0',
|
|
89
97
|
'click==8.2.1',
|
|
90
98
|
'python-dotenv>=1.1.0',
|
|
91
99
|
'langchain-google-genai==2.1.8',
|
|
100
|
+
'google-adk==1.10.0',
|
|
101
|
+
'google-generativeai==0.8.5',
|
|
102
|
+
'openai-agents==0.2.6'
|
|
92
103
|
]
|
|
93
104
|
|
|
94
105
|
azure = [
|
|
@@ -108,6 +119,12 @@ packages = ["src/monocle_apptrace"]
|
|
|
108
119
|
|
|
109
120
|
[tool.hatch.build.targets.sdist]
|
|
110
121
|
ignore-vcs = true
|
|
122
|
+
include = [
|
|
123
|
+
"pyproject.toml",
|
|
124
|
+
"README.md",
|
|
125
|
+
"LICENSE",
|
|
126
|
+
"src/**",
|
|
127
|
+
]
|
|
111
128
|
|
|
112
129
|
[tool.hatch.build]
|
|
113
130
|
exclude = [
|
|
@@ -131,3 +148,6 @@ disable = [
|
|
|
131
148
|
"R0913", # (too-many-arguments)
|
|
132
149
|
"W0105", # (pointless-string-statement)
|
|
133
150
|
]
|
|
151
|
+
|
|
152
|
+
[project.scripts]
|
|
153
|
+
monocle_apptrace = "monocle_apptrace.mcp_server:main"
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from os import linesep, path
|
|
4
4
|
from io import TextIOWrapper
|
|
5
5
|
from datetime import datetime
|
|
6
|
+
import os
|
|
6
7
|
from typing import Optional, Callable, Sequence, Dict, Tuple
|
|
7
8
|
from opentelemetry.sdk.trace import ReadableSpan
|
|
8
9
|
from opentelemetry.sdk.trace.export import SpanExporter, SpanExportResult
|
|
@@ -32,7 +33,7 @@ class FileSpanExporter(SpanExporterBase):
|
|
|
32
33
|
self.file_handles: Dict[int, Tuple[TextIOWrapper, str, datetime, bool]] = {}
|
|
33
34
|
self.formatter = formatter
|
|
34
35
|
self.service_name = service_name
|
|
35
|
-
self.output_path = out_path
|
|
36
|
+
self.output_path = os.getenv("MONOCLE_TRACE_OUTPUT_PATH", out_path)
|
|
36
37
|
self.file_prefix = file_prefix
|
|
37
38
|
self.time_format = time_format
|
|
38
39
|
self.task_processor = task_processor
|
|
@@ -2,16 +2,18 @@ from .instrumentor import (
|
|
|
2
2
|
setup_monocle_telemetry,
|
|
3
3
|
start_trace,
|
|
4
4
|
stop_trace,
|
|
5
|
-
start_scope,
|
|
6
|
-
stop_scope,
|
|
7
5
|
http_route_handler,
|
|
8
|
-
monocle_trace_scope,
|
|
9
|
-
amonocle_trace_scope,
|
|
10
|
-
monocle_trace_scope_method,
|
|
11
6
|
monocle_trace,
|
|
12
7
|
amonocle_trace,
|
|
13
8
|
monocle_trace_method,
|
|
14
9
|
monocle_trace_http_route,
|
|
15
10
|
is_valid_trace_id_uuid
|
|
16
11
|
)
|
|
12
|
+
from .scope_wrapper import (
|
|
13
|
+
start_scope,
|
|
14
|
+
stop_scope,
|
|
15
|
+
monocle_trace_scope,
|
|
16
|
+
amonocle_trace_scope,
|
|
17
|
+
monocle_trace_scope_method
|
|
18
|
+
)
|
|
17
19
|
from .utils import MonocleSpanException
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Azure environment constants
|
|
2
|
+
AZURE_ML_ENDPOINT_ENV_NAME = "AZUREML_ENTRY_SCRIPT"
|
|
3
|
+
AZURE_FUNCTION_WORKER_ENV_NAME = "FUNCTIONS_WORKER_RUNTIME"
|
|
4
|
+
AZURE_APP_SERVICE_ENV_NAME = "WEBSITE_SITE_NAME"
|
|
5
|
+
AWS_LAMBDA_ENV_NAME = "AWS_LAMBDA_RUNTIME_API"
|
|
6
|
+
GITHUB_CODESPACE_ENV_NAME = "CODESPACES"
|
|
7
|
+
|
|
8
|
+
AWS_LAMBDA_FUNCTION_IDENTIFIER_ENV_NAME = "AWS_LAMBDA_FUNCTION_NAME"
|
|
9
|
+
AZURE_FUNCTION_IDENTIFIER_ENV_NAME = "WEBSITE_SITE_NAME"
|
|
10
|
+
AZURE_APP_SERVICE_IDENTIFIER_ENV_NAME = "WEBSITE_DEPLOYMENT_ID"
|
|
11
|
+
GITHUB_CODESPACE_IDENTIFIER_ENV_NAME = "GITHUB_REPOSITORY"
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Azure naming reference can be found here
|
|
15
|
+
# https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations
|
|
16
|
+
# https://docs.aws.amazon.com/resource-explorer/latest/userguide/supported-resource-types.html#services-lookoutmetrics
|
|
17
|
+
AZURE_FUNCTION_NAME = "azure_func"
|
|
18
|
+
AZURE_APP_SERVICE_NAME = "azure_webapp"
|
|
19
|
+
AZURE_ML_SERVICE_NAME = "azure_ml"
|
|
20
|
+
AWS_LAMBDA_SERVICE_NAME = "aws_lambda"
|
|
21
|
+
GITHUB_CODESPACE_SERVICE_NAME = "github_codespace"
|
|
22
|
+
|
|
23
|
+
# Env variables to identify infra service type
|
|
24
|
+
service_type_map = {
|
|
25
|
+
AZURE_ML_ENDPOINT_ENV_NAME: AZURE_ML_SERVICE_NAME,
|
|
26
|
+
AZURE_APP_SERVICE_ENV_NAME: AZURE_APP_SERVICE_NAME,
|
|
27
|
+
AZURE_FUNCTION_WORKER_ENV_NAME: AZURE_FUNCTION_NAME,
|
|
28
|
+
AWS_LAMBDA_ENV_NAME: AWS_LAMBDA_SERVICE_NAME,
|
|
29
|
+
GITHUB_CODESPACE_ENV_NAME: GITHUB_CODESPACE_SERVICE_NAME,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# Env variables to identify infra service name
|
|
33
|
+
service_name_map = {
|
|
34
|
+
AZURE_APP_SERVICE_NAME: AZURE_APP_SERVICE_IDENTIFIER_ENV_NAME,
|
|
35
|
+
AZURE_FUNCTION_NAME: AZURE_FUNCTION_IDENTIFIER_ENV_NAME,
|
|
36
|
+
AZURE_ML_SERVICE_NAME: AZURE_ML_ENDPOINT_ENV_NAME,
|
|
37
|
+
AWS_LAMBDA_SERVICE_NAME: AWS_LAMBDA_FUNCTION_IDENTIFIER_ENV_NAME,
|
|
38
|
+
GITHUB_CODESPACE_SERVICE_NAME: GITHUB_CODESPACE_IDENTIFIER_ENV_NAME,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
llm_type_map = {
|
|
43
|
+
"sagemakerendpoint": "aws_sagemaker",
|
|
44
|
+
"azureopenai": "azure_openai",
|
|
45
|
+
"openai": "openai",
|
|
46
|
+
"chatopenai": "openai",
|
|
47
|
+
"azurechatopenai": "azure_openai",
|
|
48
|
+
"bedrock": "aws_bedrock",
|
|
49
|
+
"sagemakerllm": "aws_sagemaker",
|
|
50
|
+
"chatbedrock": "aws_bedrock",
|
|
51
|
+
"openaigenerator": "openai",
|
|
52
|
+
"bedrockruntime": "aws_bedrock",
|
|
53
|
+
"sagemakerruntime": "aws_sagemaker",
|
|
54
|
+
"anthropic": "anthropic",
|
|
55
|
+
"chatanthropic": "anthropic",
|
|
56
|
+
"anthropicchatgenerator": "anthropic",
|
|
57
|
+
"chatcompletionsclient": "azure_ai_inference",
|
|
58
|
+
"embeddingsclient": "azure_ai_inference",
|
|
59
|
+
"imageembeddingsclient": "azure_ai_inference",
|
|
60
|
+
"chatbedrockconverse": "aws_bedrock",
|
|
61
|
+
"googleaigeminichatgenerator": "gemini",
|
|
62
|
+
"gemini": "gemini",
|
|
63
|
+
"chatgooglegenerativeai": "gemini",
|
|
64
|
+
"azurechatcompletion": "azure_openai",
|
|
65
|
+
"openaichatcompletion": "openai",
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
MONOCLE_INSTRUMENTOR = "monocle_apptrace"
|
|
69
|
+
WORKFLOW_TYPE_KEY = "workflow_type"
|
|
70
|
+
DATA_INPUT_KEY = "data.input"
|
|
71
|
+
DATA_OUTPUT_KEY = "data.output"
|
|
72
|
+
PROMPT_INPUT_KEY = "data.input"
|
|
73
|
+
PROMPT_OUTPUT_KEY = "data.output"
|
|
74
|
+
QUERY = "input"
|
|
75
|
+
RESPONSE = "response"
|
|
76
|
+
SESSION_PROPERTIES_KEY = "session"
|
|
77
|
+
INFRA_SERVICE_KEY = "infra_service_name"
|
|
78
|
+
META_DATA = "metadata"
|
|
79
|
+
MONOCLE_SCOPE_NAME_PREFIX = "monocle.scope."
|
|
80
|
+
SCOPE_METHOD_LIST = "MONOCLE_SCOPE_METHODS"
|
|
81
|
+
SCOPE_METHOD_FILE = "monocle_scopes.json"
|
|
82
|
+
SCOPE_CONFIG_PATH = "MONOCLE_SCOPE_CONFIG_PATH"
|
|
83
|
+
TRACE_PROPOGATION_URLS = "MONOCLE_TRACE_PROPAGATATION_URLS"
|
|
84
|
+
WORKFLOW_TYPE_KEY = "monocle.workflow_type"
|
|
85
|
+
ADD_NEW_WORKFLOW = "monocle.add_new_workflow"
|
|
86
|
+
WORKFLOW_TYPE_GENERIC = "workflow.generic"
|
|
87
|
+
MONOCLE_SDK_VERSION = "monocle_apptrace.version"
|
|
88
|
+
MONOCLE_SDK_LANGUAGE = "monocle_apptrace.language"
|
|
89
|
+
MONOCLE_DETECTED_SPAN_ERROR = "monocle_apptrace.detected_span_error"
|
|
90
|
+
HTTP_SUCCESS_CODES = ("200", "201", "202", "204", "205", "206")
|
|
91
|
+
CHILD_ERROR_CODE = "child.error.code"
|
|
92
|
+
|
|
93
|
+
AGENT_PREFIX_KEY = "monocle.agent.prefix"
|
|
94
|
+
|
|
95
|
+
# agentic sub types
|
|
96
|
+
INFERENCE_AGENT_DELEGATION = "delegation"
|
|
97
|
+
INFERENCE_TOOL_CALL = "tool_call"
|
|
98
|
+
INFERENCE_TURN_END = "turn_end"
|
|
99
|
+
|
|
100
|
+
SCOPE_NAME = "scope_name"
|
|
101
|
+
AGENT_INVOCATION_SPAN_NAME = "agentic.invocation"
|
|
102
|
+
AGENT_REQUEST_SPAN_NAME = "agentic.request"
|
|
103
|
+
|
|
104
|
+
AGENTIC_SPANS = [AGENT_INVOCATION_SPAN_NAME, AGENT_REQUEST_SPAN_NAME]
|
|
105
|
+
|
|
106
|
+
# Span sub types
|
|
107
|
+
|
|
108
|
+
## OPTIONAL right next to span.type, span.subtype:
|
|
109
|
+
## subtype is one perspective , are non overlapping, limitations: only one classification scheme for subtypes
|
|
110
|
+
# 1 planning
|
|
111
|
+
SPAN_SUBTYPE_PLANNING = "planning"
|
|
112
|
+
|
|
113
|
+
# 2 routing and selection INFERENCE_TOOL_CALL, INFERENCE_AGENT_DELEGATION
|
|
114
|
+
SPAN_SUBTYPE_ROUTING = "routing"
|
|
115
|
+
|
|
116
|
+
# 3 content processing
|
|
117
|
+
SPAN_SUBTYPE_CONTENT_PROCESSING = "content_processing"
|
|
118
|
+
|
|
119
|
+
# 4 content generation
|
|
120
|
+
SPAN_SUBTYPE_CONTENT_GENERATION = "content_generation"
|
|
121
|
+
|
|
122
|
+
# 5 communication INFERENCE_TURN_END
|
|
123
|
+
SPAN_SUBTYPE_COMMUNICATION = "communication"
|
|
124
|
+
|
|
125
|
+
# 6 transformations , if structured output
|
|
126
|
+
SPAN_SUBTYPE_TRANSFORMATIONS = "transformations"
|
|
127
|
+
|
|
128
|
+
# 7 domain specific,
|
|
129
|
+
SPAN_SUBTYPE_DOMAIN_SPECIFIC = "domain_specific"
|
|
130
|
+
|
|
131
|
+
# 8 generic (we may skip this property)
|
|
132
|
+
SPAN_SUBTYPE_GENERIC = "generic"
|
|
133
|
+
|
|
134
|
+
class SPAN_TYPES:
|
|
135
|
+
GENERIC = "generic"
|
|
136
|
+
AGENTIC_DELEGATION = "agentic.delegation"
|
|
137
|
+
AGENTIC_TOOL_INVOCATION = "agentic.tool.invocation"
|
|
138
|
+
AGENTIC_INVOCATION = "agentic.invocation"
|
|
139
|
+
AGENTIC_MCP_INVOCATION = "agentic.mcp.invocation"
|
|
140
|
+
AGENTIC_REQUEST = "agentic.request"
|
|
141
|
+
|
|
142
|
+
# http.process
|
|
143
|
+
HTTP_PROCESS = "http.process"
|
|
144
|
+
HTTP_SEND = "http.send"
|
|
145
|
+
|
|
146
|
+
RETRIEVAL = "retrieval"
|
|
147
|
+
INFERENCE = "inference"
|
|
148
|
+
INFERENCE_FRAMEWORK = "inference.framework"
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
class SPAN_SUBTYPES:
|
|
152
|
+
PLANNING = SPAN_SUBTYPE_PLANNING
|
|
153
|
+
ROUTING = SPAN_SUBTYPE_ROUTING
|
|
154
|
+
CONTENT_PROCESSING = SPAN_SUBTYPE_CONTENT_PROCESSING
|
|
155
|
+
CONTENT_GENERATION = SPAN_SUBTYPE_CONTENT_GENERATION
|
|
156
|
+
COMMUNICATION = SPAN_SUBTYPE_COMMUNICATION
|
|
157
|
+
TRANSFORMATIONS = SPAN_SUBTYPE_TRANSFORMATIONS
|
|
158
|
+
DOMAIN_SPECIFIC = SPAN_SUBTYPE_DOMAIN_SPECIFIC
|
|
159
|
+
GENERIC = SPAN_SUBTYPE_GENERIC
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
MAP_ATTRIBUTES_TO_SPAN_SUBTYPE = {
|
|
163
|
+
# inference attributes
|
|
164
|
+
INFERENCE_AGENT_DELEGATION: SPAN_SUBTYPES.ROUTING,
|
|
165
|
+
INFERENCE_TOOL_CALL: SPAN_SUBTYPES.ROUTING,
|
|
166
|
+
INFERENCE_TURN_END: SPAN_SUBTYPES.COMMUNICATION,
|
|
167
|
+
|
|
168
|
+
# agentic span.types
|
|
169
|
+
SPAN_TYPES.AGENTIC_DELEGATION: SPAN_SUBTYPES.ROUTING,
|
|
170
|
+
SPAN_TYPES.AGENTIC_TOOL_INVOCATION: SPAN_SUBTYPES.ROUTING,
|
|
171
|
+
SPAN_TYPES.AGENTIC_INVOCATION: SPAN_SUBTYPES.ROUTING,
|
|
172
|
+
SPAN_TYPES.AGENTIC_MCP_INVOCATION: SPAN_SUBTYPES.ROUTING,
|
|
173
|
+
|
|
174
|
+
# MAYBE?
|
|
175
|
+
# agentic span.types
|
|
176
|
+
SPAN_TYPES.AGENTIC_REQUEST: SPAN_SUBTYPES.PLANNING,
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
}
|
|
@@ -235,17 +235,12 @@ def is_valid_trace_id_uuid(traceId: str) -> bool:
|
|
|
235
235
|
return False
|
|
236
236
|
|
|
237
237
|
from monocle_apptrace.instrumentation.common.method_wrappers import (
|
|
238
|
-
monocle_trace_scope_method,
|
|
239
|
-
amonocle_trace_scope,
|
|
240
238
|
monocle_trace,
|
|
241
239
|
amonocle_trace,
|
|
242
240
|
monocle_trace_method,
|
|
243
241
|
monocle_trace_http_route,
|
|
244
|
-
start_scope,
|
|
245
|
-
stop_scope,
|
|
246
242
|
start_trace,
|
|
247
243
|
stop_trace,
|
|
248
|
-
http_route_handler
|
|
249
|
-
monocle_trace_scope,
|
|
244
|
+
http_route_handler
|
|
250
245
|
)
|
|
251
246
|
|
|
@@ -5,14 +5,13 @@ from functools import wraps
|
|
|
5
5
|
import inspect
|
|
6
6
|
from opentelemetry.context import attach, get_current, detach
|
|
7
7
|
from opentelemetry.sdk.trace import Span
|
|
8
|
-
from opentelemetry.
|
|
8
|
+
from opentelemetry.trace.span import INVALID_SPAN
|
|
9
9
|
from opentelemetry.trace import get_tracer
|
|
10
|
-
from opentelemetry.trace.propagation import set_span_in_context, _SPAN_KEY
|
|
11
10
|
from contextlib import contextmanager, asynccontextmanager
|
|
12
11
|
from monocle_apptrace.instrumentation.common.span_handler import SpanHandler
|
|
13
|
-
from monocle_apptrace.instrumentation.common.wrapper import atask_wrapper, task_wrapper
|
|
12
|
+
from monocle_apptrace.instrumentation.common.wrapper import atask_wrapper, get_current_monocle_span, set_monocle_span_in_context, task_wrapper
|
|
14
13
|
from monocle_apptrace.instrumentation.common.utils import (
|
|
15
|
-
|
|
14
|
+
http_route_handler, http_async_route_handler
|
|
16
15
|
)
|
|
17
16
|
from monocle_apptrace.instrumentation.common.constants import MONOCLE_INSTRUMENTOR
|
|
18
17
|
from monocle_apptrace.instrumentation.common.instrumentor import get_tracer_provider
|
|
@@ -48,7 +47,7 @@ def start_trace(
|
|
|
48
47
|
tracer = get_tracer(instrumenting_module_name= MONOCLE_INSTRUMENTOR, tracer_provider= get_tracer_provider())
|
|
49
48
|
span_name = span_name or "custom_span"
|
|
50
49
|
span = tracer.start_span(name=span_name)
|
|
51
|
-
updated_span_context =
|
|
50
|
+
updated_span_context = set_monocle_span_in_context(span=span)
|
|
52
51
|
|
|
53
52
|
# Set default monocle attributes
|
|
54
53
|
SpanHandler.set_default_monocle_attributes(span)
|
|
@@ -57,7 +56,7 @@ def start_trace(
|
|
|
57
56
|
|
|
58
57
|
# Set custom attributes and events using common method
|
|
59
58
|
_setup_span_attributes_and_events(span, attributes, events)
|
|
60
|
-
|
|
59
|
+
|
|
61
60
|
token = attach(updated_span_context)
|
|
62
61
|
return token
|
|
63
62
|
except Exception as e:
|
|
@@ -81,62 +80,16 @@ def stop_trace(
|
|
|
81
80
|
None
|
|
82
81
|
"""
|
|
83
82
|
try:
|
|
84
|
-
|
|
85
|
-
if
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
_setup_span_attributes_and_events(parent_span, final_attributes, final_events)
|
|
90
|
-
|
|
91
|
-
parent_span.end()
|
|
83
|
+
parent_span = get_current_monocle_span()
|
|
84
|
+
if parent_span is not None and parent_span != INVALID_SPAN:
|
|
85
|
+
# Set final attributes and events using common method
|
|
86
|
+
_setup_span_attributes_and_events(parent_span, final_attributes, final_events)
|
|
87
|
+
parent_span.end()
|
|
92
88
|
if token is not None:
|
|
93
89
|
detach(token)
|
|
94
90
|
except Exception as e:
|
|
95
91
|
logger.warning(f"Failed to stop trace: {e}")
|
|
96
92
|
|
|
97
|
-
def start_scope(
|
|
98
|
-
scope_name: str,
|
|
99
|
-
scope_value: Optional[str] = None
|
|
100
|
-
) -> object:
|
|
101
|
-
"""
|
|
102
|
-
Start a new scope with the given name and optional value. If no value is provided, a random UUID will be generated.
|
|
103
|
-
All the spans, across traces created after this call will have the scope attached until the scope is stopped.
|
|
104
|
-
|
|
105
|
-
Args:
|
|
106
|
-
scope_name: The name of the scope.
|
|
107
|
-
scope_value: Optional value of the scope. If None, a random UUID will be generated.
|
|
108
|
-
|
|
109
|
-
Returns:
|
|
110
|
-
Token: A token representing the attached context for the scope. This token is to be used later to stop the current scope.
|
|
111
|
-
"""
|
|
112
|
-
try:
|
|
113
|
-
# Set the scope using existing utility
|
|
114
|
-
token = set_scope(scope_name, scope_value)
|
|
115
|
-
return token
|
|
116
|
-
except Exception as e:
|
|
117
|
-
logger.warning(f"Failed to start scope: {e}")
|
|
118
|
-
return None
|
|
119
|
-
|
|
120
|
-
def stop_scope(
|
|
121
|
-
token: object
|
|
122
|
-
) -> None:
|
|
123
|
-
"""
|
|
124
|
-
Stop the active scope. All the spans created after this will not have the scope attached.
|
|
125
|
-
|
|
126
|
-
Args:
|
|
127
|
-
token: The token that was returned when the scope was started.
|
|
128
|
-
|
|
129
|
-
Returns:
|
|
130
|
-
None
|
|
131
|
-
"""
|
|
132
|
-
try:
|
|
133
|
-
# Remove the scope
|
|
134
|
-
remove_scope(token)
|
|
135
|
-
except Exception as e:
|
|
136
|
-
logger.warning(f"Failed to stop scope: {e}")
|
|
137
|
-
return
|
|
138
|
-
|
|
139
|
-
|
|
140
93
|
@contextmanager
|
|
141
94
|
def monocle_trace(
|
|
142
95
|
span_name: Optional[str] = None,
|
|
@@ -211,74 +164,6 @@ async def amonocle_trace(
|
|
|
211
164
|
logger.warning(f"Failed in amonocle_trace: {e}")
|
|
212
165
|
yield # Still yield to not break the context manager
|
|
213
166
|
|
|
214
|
-
@contextmanager
|
|
215
|
-
def monocle_trace_scope(
|
|
216
|
-
scope_name: str,
|
|
217
|
-
scope_value: Optional[str] = None
|
|
218
|
-
):
|
|
219
|
-
"""
|
|
220
|
-
Context manager to start and stop a scope. All the spans, across traces created within the encapsulated code will have the scope attached.
|
|
221
|
-
|
|
222
|
-
Args:
|
|
223
|
-
scope_name: The name of the scope.
|
|
224
|
-
scope_value: Optional value of the scope. If None, a random UUID will be generated.
|
|
225
|
-
"""
|
|
226
|
-
token = start_scope(scope_name, scope_value)
|
|
227
|
-
try:
|
|
228
|
-
yield
|
|
229
|
-
finally:
|
|
230
|
-
stop_scope(token)
|
|
231
|
-
|
|
232
|
-
@asynccontextmanager
|
|
233
|
-
async def amonocle_trace_scope(
|
|
234
|
-
scope_name: str,
|
|
235
|
-
scope_value: Optional[str] = None
|
|
236
|
-
):
|
|
237
|
-
"""
|
|
238
|
-
Async context manager to start and stop a scope. All the spans, across traces created within the encapsulated code will have the scope attached.
|
|
239
|
-
|
|
240
|
-
Args:
|
|
241
|
-
scope_name: The name of the scope.
|
|
242
|
-
scope_value: Optional value of the scope. If None, a random UUID will be generated.
|
|
243
|
-
"""
|
|
244
|
-
token = start_scope(scope_name, scope_value)
|
|
245
|
-
try:
|
|
246
|
-
yield
|
|
247
|
-
finally:
|
|
248
|
-
stop_scope(token)
|
|
249
|
-
|
|
250
|
-
def monocle_trace_scope_method(
|
|
251
|
-
scope_name: str,
|
|
252
|
-
scope_value: Optional[str] = None
|
|
253
|
-
):
|
|
254
|
-
"""
|
|
255
|
-
Decorator to start and stop a scope for a method. All the spans, across traces created in the method will have the scope attached.
|
|
256
|
-
|
|
257
|
-
Args:
|
|
258
|
-
scope_name: The name of the scope.
|
|
259
|
-
scope_value: Optional value of the scope. If None, a random UUID will be generated.
|
|
260
|
-
"""
|
|
261
|
-
def decorator(func):
|
|
262
|
-
if inspect.iscoroutinefunction(func):
|
|
263
|
-
@wraps(func)
|
|
264
|
-
async def wrapper(*args, **kwargs):
|
|
265
|
-
async with amonocle_trace_scope(
|
|
266
|
-
scope_name, scope_value
|
|
267
|
-
):
|
|
268
|
-
result = await func(*args, **kwargs)
|
|
269
|
-
return result
|
|
270
|
-
return wrapper
|
|
271
|
-
else:
|
|
272
|
-
@wraps(func)
|
|
273
|
-
def wrapper(*args, **kwargs):
|
|
274
|
-
with monocle_trace_scope(
|
|
275
|
-
scope_name, scope_value
|
|
276
|
-
):
|
|
277
|
-
result = func(*args, **kwargs)
|
|
278
|
-
return result
|
|
279
|
-
return wrapper
|
|
280
|
-
return decorator
|
|
281
|
-
|
|
282
167
|
def monocle_trace_method(
|
|
283
168
|
span_name: Optional[str] = None
|
|
284
169
|
):
|