Metadata-Version: 2.4
Name: test_apptrace
Version: 0.5.7
Summary: package with monocle genAI tracing
Project-URL: Homepage, https://github.com/monocle2ai/monocle
Project-URL: Issues, https://github.com/monocle2ai/monocle/issues
Author-email: "Okahu Inc." <okahu-pypi@okahu.ai>
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Requires-Dist: click==8.2.1
Requires-Dist: mcp>=1.13.1
Requires-Dist: opentelemetry-api>=1.21.0
Requires-Dist: opentelemetry-instrumentation
Requires-Dist: opentelemetry-sdk>=1.21.0
Requires-Dist: pydantic>=2.11.7
Requires-Dist: requests
Requires-Dist: wrapt>=1.14.0
Provides-Extra: aws
Requires-Dist: boto3==1.37.24; extra == 'aws'
Provides-Extra: azure
Requires-Dist: azure-storage-blob==12.22.0; extra == 'azure'
Provides-Extra: dev
Requires-Dist: a2a-sdk==0.2.8; extra == 'dev'
Requires-Dist: anthropic-haystack; extra == 'dev'
Requires-Dist: anthropic==0.57.1; extra == 'dev'
Requires-Dist: azure-storage-blob==12.22.0; extra == 'dev'
Requires-Dist: boto3==1.37.24; extra == 'dev'
Requires-Dist: chromadb==1.0.15; extra == 'dev'
Requires-Dist: click==8.2.1; extra == 'dev'
Requires-Dist: datasets==2.20.0; extra == 'dev'
Requires-Dist: faiss-cpu==1.8.0; extra == 'dev'
Requires-Dist: fastapi>=0.115.0; extra == 'dev'
Requires-Dist: flask; extra == 'dev'
Requires-Dist: google-adk==1.10.0; extra == 'dev'
Requires-Dist: google-generativeai==0.8.5; extra == 'dev'
Requires-Dist: haystack-ai==2.3.0; extra == 'dev'
Requires-Dist: httpx==0.28.1; extra == 'dev'
Requires-Dist: instructorembedding==1.0.1; extra == 'dev'
Requires-Dist: langchain-anthropic==0.3.13; extra == 'dev'
Requires-Dist: langchain-aws==0.2.23; extra == 'dev'
Requires-Dist: langchain-chroma==0.2.4; extra == 'dev'
Requires-Dist: langchain-community==0.3.24; extra == 'dev'
Requires-Dist: langchain-google-genai==2.1.8; extra == 'dev'
Requires-Dist: langchain-mcp-adapters==0.1.8; extra == 'dev'
Requires-Dist: langchain-mistralai==0.2.10; extra == 'dev'
Requires-Dist: langchain-openai==0.3.18; extra == 'dev'
Requires-Dist: langchain==0.3.25; extra == 'dev'
Requires-Dist: langchainhub==0.1.21; extra == 'dev'
Requires-Dist: langgraph-supervisor==0.0.28; extra == 'dev'
Requires-Dist: langgraph==0.5.4; extra == 'dev'
Requires-Dist: llama-index-embeddings-huggingface==0.6.0; extra == 'dev'
Requires-Dist: llama-index-llms-anthropic==0.8.1; extra == 'dev'
Requires-Dist: llama-index-llms-azure-openai==0.4.0; extra == 'dev'
Requires-Dist: llama-index-llms-mistralai==0.7.0; extra == 'dev'
Requires-Dist: llama-index-llms-openai==0.5.0; extra == 'dev'
Requires-Dist: llama-index-tools-mcp==0.3.0; extra == 'dev'
Requires-Dist: llama-index-vector-stores-chroma==0.5.0; extra == 'dev'
Requires-Dist: llama-index-vector-stores-opensearch==0.6.0; extra == 'dev'
Requires-Dist: llama-index==0.13.0; extra == 'dev'
Requires-Dist: mcp==1.12.1; extra == 'dev'
Requires-Dist: mistral-haystack==0.0.2; extra == 'dev'
Requires-Dist: numpy==1.26.4; extra == 'dev'
Requires-Dist: openai-agents==0.2.6; extra == 'dev'
Requires-Dist: opendal==0.45.14; extra == 'dev'
Requires-Dist: opensearch-haystack==1.2.0; extra == 'dev'
Requires-Dist: opentelemetry-instrumentation-flask; extra == 'dev'
Requires-Dist: parameterized==0.9.0; extra == 'dev'
Requires-Dist: pydantic==2.11.7; extra == 'dev'
Requires-Dist: pytest-asyncio==0.26.0; extra == 'dev'
Requires-Dist: pytest==8.3.5; extra == 'dev'
Requires-Dist: python-dotenv>=1.1.0; extra == 'dev'
Requires-Dist: requests-aws4auth==1.2.3; extra == 'dev'
Requires-Dist: sentence-transformers==2.6.1; extra == 'dev'
Requires-Dist: types-requests==2.31.0.20240106; extra == 'dev'
Requires-Dist: uvicorn==0.35.0; extra == 'dev'
Description-Content-Type: text/markdown

# Monocle for tracing GenAI app code

**Monocle** helps developers and platform engineers building or managing GenAI apps monitor these in prod by making it easy to instrument their code to capture traces that are compliant with open-source cloud-native observability ecosystem. 

**Monocle** is a community-driven OSS framework for tracing GenAI app code governed as a [Linux Foundation AI & Data project](https://lfaidata.foundation/projects/monocle/). 

## Why Monocle

Monocle is built for: 
- **app developers** to trace their app code in any environment without lots of custom code decoration 
- **platform engineers** to instrument apps in prod through wrapping instead of asking app devs to recode
- **GenAI component providers** to add observability features to their products 
- **enterprises** to consume traces from GenAI apps in their existing open-source observability stack

Benefits:
- Monocle provides an implementation + package, not just a spec 
   - No expertise in OpenTelemetry spec required
   - No bespoke implementation of that spec required
   - No last-mile GenAI domain specific code required to instrument your app
- Monocle provides consistency  
   - Connect traces across app code executions, model inference or data retrievals
   - No cleansing of telemetry data across GenAI component providers required
   - Works the same in personal lab dev or org cloud prod environments
   - Send traces to location that fits your scale, budget and observability stack
- Monocle is fully open source and community driven
   - No vendor lock-in
   - Implementation is transparent
   - You can freely use or customize it to fit your needs 

## What Monocle provides

- Easy to [use](#use-monocle) code instrumentation
- OpenTelemetry compatible format for [spans](src/monocle_apptrace/metamodel/spans/span_format.json). 
- Community-curated and extensible [metamodel](src/monocle_apptrace/metamodel/README.md) for consisent tracing of GenAI components. 
- Export to local and cloud storage 

## Use Monocle

- Get the Monocle package
  
```
    pip install monocle_apptrace 
```
- Instrument your app code
     - Import the Monocle package
       ```
          from monocle_apptrace.instrumentor import setup_monocle_telemetry
       ```
     - Setup instrumentation in your ```main()``` function  
       ``` 
          setup_monocle_telemetry(workflow_name="your-app-name")
       ```         
- (Optionally) Modify config to alter where traces are sent

See [Monocle user guide](Monocle_User_Guide.md) for more details.
  

## Use Monocle MCP

First install test-apptrace: pip install test-apptrace

Open bash and run the following command to run the monocle mcp server with stdio:
monocle_apptrace

If you are using VS Code you can add following entry to your .vscode/mcp.json

```json
"monocle-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
         "test_apptrace"
      ],
      "env": {}
   }
```

## Roadmap 

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*. 

Current version supports: 
- Language: (🟢) Python , (🔜) [Typescript](https://github.com/monocle2ai/monocle-typescript) 
- LLM-frameworks: (🟢) Langchain, (🟢) Llamaindex, (🟢) Haystack, (🔜) Flask
- LLM inference providers: (🟢) OpenAI, (🟢) Azure OpenAI, (🟢) Nvidia Triton, (🔜) AWS Bedrock, (🔜) Google Vertex, (🔜) Azure ML, (🔜) Hugging Face
- Vector stores: (🟢) FAISS, (🔜) OpenSearch, (🔜) Milvus
- Exporter: (🟢) stdout, (🟢) file, (🔜) Azure Blob Storage, (🔜) AWS S3, (🔜) Google Cloud Storage


## Get involved
### Provide feedback
- Submit issues and enhancements requests via Github issues

### Contribute
- Monocle is community based open source project. We welcome your contributions. Please refer to the CONTRIBUTING and CODE_OF_CONDUCT for guidelines. The [contributor's guide](CONTRIBUTING.md) provides technical details of the project.

