progress-observability 1.2.0__tar.gz → 1.4.3__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.
- progress_observability-1.4.3/.python-version +1 -0
- progress_observability-1.4.3/PKG-INFO +119 -0
- progress_observability-1.4.3/README.md +101 -0
- progress_observability-1.4.3/notices.txt +908 -0
- {progress_observability-1.2.0 → progress_observability-1.4.3}/pyproject.toml +2 -2
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/__init__.py +5 -1
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/constants.py +4 -0
- progress_observability-1.4.3/src/progress/observability/decorators.py +205 -0
- progress_observability-1.4.3/src/progress/observability/genai_message_processor.py +861 -0
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/helpers.py +26 -1
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/model_fix_processor.py +103 -36
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/sdk.py +66 -9
- progress_observability-1.4.3/src/progress/observability/tags.py +214 -0
- {progress_observability-1.2.0/sample_apps → progress_observability-1.4.3}/uv.lock +539 -1134
- progress_observability-1.2.0/.python-version +0 -1
- progress_observability-1.2.0/PKG-INFO +0 -69
- progress_observability-1.2.0/README.md +0 -51
- progress_observability-1.2.0/build-python-instrumentation.sh +0 -18
- progress_observability-1.2.0/notices.txt +0 -1424
- progress_observability-1.2.0/progress.python.instrumentation.tests/.gitignore +0 -20
- progress_observability-1.2.0/progress.python.instrumentation.tests/README.md +0 -131
- progress_observability-1.2.0/progress.python.instrumentation.tests/pyproject.toml +0 -40
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_multi_model_agents_ollama_dpc/instrument_auto-gemma2-2b-qwen2.5-3b.yaml +0 -164
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_multi_model_agents_openai_dpc/instrument_auto-gpt-4.1-nano-gpt-4o-mini.yaml +0 -209
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_multi_model_agents_openai_dpc/instrument_auto-gpt-4o-gpt-4o-mini.yaml +0 -194
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_multi_model_agents_openai_dpc/instrument_openai-gpt-4.1-nano-gpt-4o-mini.yaml +0 -211
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_multi_model_agents_openai_dpc/instrument_openai-gpt-4o-gpt-4o-mini.yaml +0 -199
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_bedrock_dpc/simple_agent_cs45-bedrock.yaml +0 -57
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_ollama_dpc/simple_agent_gemma2-2b.yaml +0 -71
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_ollama_dpc/simple_agent_qwen2.5-3b.yaml +0 -71
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_openai_dpc/simple_agent_gpt-4.1-nano.yaml +0 -95
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_openai_dpc/simple_agent_gpt-4o-mini.yaml +0 -93
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_simple_agents_openai_dpc/simple_agent_gpt-4o.yaml +0 -93
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_two_provider_agent_anthropic_openai_dpc/instrument_auto-cs4-0514-gpt4o.yaml +0 -249
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/cassettes/test_two_provider_agent_ollama_openai_dpc/instrument_auto-gpt-4o-mini-gemma2-2b.yaml +0 -191
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/conftest.py +0 -15
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_multi_model_agents_ollama_dpc.py +0 -141
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_multi_model_agents_openai_dpc.py +0 -143
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_simple_agents_bedrock_dpc.py +0 -155
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_simple_agents_ollama_dpc.py +0 -124
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_simple_agents_openai_dpc.py +0 -126
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_two_provider_agent_anthropic_openai_dpc.py +0 -159
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/direct_provider_calls/tests/test_two_provider_agent_ollama_openai_dpc.py +0 -156
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_multi_model_agents_ollama_fh/instrument_auto-gemma2-2b-qwen2.5-3b.yaml +0 -111
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_multi_model_agents_openai_fh/instrument_auto-gpt-4.1-nano-gpt-4o-mini.yaml +0 -218
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_multi_model_agents_openai_fh/instrument_auto-gpt-4o-gpt-4o-mini.yaml +0 -206
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_bedrock_fh/simple_agent_cs45-bedrock.yaml +0 -53
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_ollama_fh/simple_agent_gemma2-2b.yaml +0 -37
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_ollama_fh/simple_agent_qwen2.5-3b.yaml +0 -37
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_openai_fh/simple_agent_gpt-4.1-nano.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_openai_fh/simple_agent_gpt-4o-mini.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_simple_agents_openai_fh/simple_agent_gpt-4o.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_two_provider_agent_anthropic_openai_fh/instrument_auto-cs35-1022-gpt4o.yaml +0 -227
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_two_provider_agent_ollama_openai_fh/instrument_auto-gemma2-2b-gpt-4.1-nano.yaml +0 -172
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/cassettes/test_two_provider_agent_ollama_openai_fh/instrument_auto-qwen2.5-3b-gpt-4.1-nano.yaml +0 -147
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/conftest.py +0 -21
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_multi_model_agents_ollama_fh.py +0 -145
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_multi_model_agents_openai_fh.py +0 -155
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_simple_agents_bedrock_fh.py +0 -147
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_simple_agents_ollama_fh.py +0 -123
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_simple_agents_openai_fh.py +0 -126
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_two_provider_agent_anthropic_openai_fh.py +0 -169
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_haystack/tests/test_two_provider_agent_ollama_openai_fh.py +0 -165
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_multi_model_agents_ollama_fl/instrument_auto-gemma2-2b-qwen2.5-3b.yaml +0 -1953
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_multi_model_agents_openai_fl/instrument_auto-gpt-4.1-nano-gpt-4o-mini.yaml +0 -185
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_multi_model_agents_openai_fl/instrument_auto-gpt-4o-gpt-4o-mini.yaml +0 -205
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_anthropic_fl/simple_agent_claude-sonnet-4-20250514.yaml +0 -108
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_bedrock_fl/simple_agent_cs45-bedrock.yaml +0 -45
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_ollama_fl/simple_agent_gemma2-2b.yaml +0 -43
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_ollama_fl/simple_agent_qwen2.5-3b.yaml +0 -57
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_openai_fl/simple_agent_gpt-4.1-nano.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_openai_fl/simple_agent_gpt-4o-mini.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_simple_agents_openai_fl/simple_agent_gpt-4o.yaml +0 -87
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_two_provider_agent_anthropic_bedrock_fl/instrument_auto-cs4-0514-cs45-bedrock.yaml +0 -198
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_two_provider_agent_anthropic_openai_fl/instrument_auto-cs4-0514-gpt4o.yaml +0 -275
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_two_provider_agent_ollama_openai_fl/instrument_auto-gemma2-2b-gpt-4.1-nano.yaml +0 -463
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/cassettes/test_two_provider_agent_ollama_openai_fl/instrument_auto-qwen2.5-3b-gpt-4.1-nano.yaml +0 -164
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/conftest.py +0 -19
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_multi_model_agents_ollama_fl.py +0 -131
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_multi_model_agents_openai_fl.py +0 -152
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_simple_agents_anthropic_fl.py +0 -114
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_simple_agents_bedrock_fl.py +0 -81
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_simple_agents_ollama_fl.py +0 -76
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_simple_agents_openai_fl.py +0 -79
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_two_provider_agent_anthropic_bedrock_fl.py +0 -144
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_two_provider_agent_anthropic_openai_fl.py +0 -153
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_langchain/tests/test_two_provider_agent_ollama_openai_fl.py +0 -150
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_multi_model_agents_ollama_fllamaInd/instrument_auto-gemma2-2b-qwen2.5-3b.yaml +0 -670
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_multi_model_agents_openai_fllamaInd/instrument_auto-gpt-4.1-nano-gpt-4o-mini.yaml +0 -204
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_multi_model_agents_openai_fllamaInd/instrument_auto-gpt-4o-gpt-4o-mini.yaml +0 -198
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agent_anthropic_fllamaInd/simple_agent_claude-3-5-haiku-20241022.yaml +0 -108
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agent_anthropic_fllamaInd/simple_agent_claude-3-5-sonnet-20241022.yaml +0 -110
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_bedrock_fllamaInd/simple_agent_cs45-bedrock.yaml +0 -58
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_ollama_fllamaInd/simple_agent_gemma2-2b.yaml +0 -316
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_ollama_fllamaInd/simple_agent_qwen2.5-3b.yaml +0 -333
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_openai_fllamaInd/simple_agent_gpt-4.1-nano.yaml +0 -96
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_openai_fllamaInd/simple_agent_gpt-4o-mini.yaml +0 -100
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_simple_agents_openai_fllamaInd/simple_agent_gpt-4o.yaml +0 -102
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_two_provider_agent_anthropic_openai_fllamaInd/instrument_auto-cs35-1022-gpt4o.yaml +0 -224
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_two_provider_agent_ollama_openai_fllamaInd/instrument_auto-gemma2-2b-gpt41n.yaml +0 -427
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/cassettes/test_two_provider_agent_ollama_openai_fllamaInd/instrument_auto-qwen25-3b-gpt41n.yaml +0 -430
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/conftest.py +0 -20
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_multi_model_agents_ollama_fllamaInd.py +0 -135
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_multi_model_agents_openai_fllamaInd.py +0 -149
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_simple_agent_anthropic_fllamaInd.py +0 -145
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_simple_agents_bedrock_fllamaInd.py +0 -135
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_simple_agents_ollama_fllamaInd.py +0 -116
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_simple_agents_openai_fllamaInd.py +0 -125
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_two_provider_agent_anthropic_openai_fllamaInd.py +0 -165
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/framework_llama_index/tests/test_two_provider_agent_ollama_openai_fllamaInd.py +0 -161
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/block_instruments.py +0 -218
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/blocking_test.yaml +0 -85
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/multiple_blocking.yaml +0 -83
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/normal_test.yaml +0 -85
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/partial_blocking.yaml +0 -85
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/two_provider_block_ollama.yaml +0 -484
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/cassettes/block_instruments/two_provider_block_openai.yaml +0 -582
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/conftest.py +0 -13
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/test_edge_cases.py +0 -138
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/general_tests/test_isolated.py +0 -77
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/test_utils/conftest_shared.py +0 -321
- progress_observability-1.2.0/progress.python.instrumentation.tests/src/test_utils/llm_span_helpers.py +0 -180
- progress_observability-1.2.0/progress.python.instrumentation.tests/uv.lock +0 -2853
- progress_observability-1.2.0/run-sample-azure.sh +0 -8
- progress_observability-1.2.0/run-sample-gemini.sh +0 -8
- progress_observability-1.2.0/run-sample-llamaindex-azure.sh +0 -5
- progress_observability-1.2.0/run-sample-llamaindex-gemini.sh +0 -5
- progress_observability-1.2.0/sample_apps/.env.example +0 -5
- progress_observability-1.2.0/sample_apps/README.md +0 -155
- progress_observability-1.2.0/sample_apps/pyproject.toml +0 -18
- progress_observability-1.2.0/sample_apps/test_azure_langchain.py +0 -42
- progress_observability-1.2.0/sample_apps/test_gemini_genAI.py +0 -42
- progress_observability-1.2.0/sample_apps/test_llamaindex_azure.py +0 -57
- progress_observability-1.2.0/sample_apps/test_llamaindex_gemini.py +0 -54
- progress_observability-1.2.0/src/progress/observability/decorators.py +0 -288
- progress_observability-1.2.0/update_sample_apps_wheel.sh +0 -38
- progress_observability-1.2.0/uv.lock +0 -2251
- {progress_observability-1.2.0 → progress_observability-1.4.3}/.gitignore +0 -0
- {progress_observability-1.2.0 → progress_observability-1.4.3}/LICENSE +0 -0
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/enums.py +0 -0
- {progress_observability-1.2.0 → progress_observability-1.4.3}/src/progress/observability/exceptions.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: progress-observability
|
|
3
|
+
Version: 1.4.3
|
|
4
|
+
Summary: Progress Observability instrumentation for Python agents
|
|
5
|
+
Project-URL: Homepage, https://github.com/telerik/agentclarity
|
|
6
|
+
Project-URL: Repository, https://github.com/telerik/agentclarity
|
|
7
|
+
Project-URL: Documentation, https://docs.telerik.com/agentclarity
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/telerik/agentclarity/issues
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
License-File: notices.txt
|
|
12
|
+
Requires-Python: <4.0.0,>=3.10.0
|
|
13
|
+
Requires-Dist: traceloop-sdk==0.59.2
|
|
14
|
+
Provides-Extra: dev
|
|
15
|
+
Requires-Dist: autopep8>=2.3.1; extra == 'dev'
|
|
16
|
+
Requires-Dist: flake8>=7.1.0; extra == 'dev'
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
|
|
19
|
+
# Progress Observability Instrumentation (Python)
|
|
20
|
+
|
|
21
|
+
Zero-intrusion telemetry for AI agents and LLM apps. Built on Traceloop SDK and OpenTelemetry with a simple one-line init and optional decorators.
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pip install progress-observability
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or from wheel file:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
pip install progress_observability-x.y.z-py3-none-any.whl
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from progress.observability import Observability, ObservabilityInstruments
|
|
39
|
+
|
|
40
|
+
# Initialize once at process start
|
|
41
|
+
Observability.instrument(
|
|
42
|
+
app_name="my-app",
|
|
43
|
+
api_key="<your-api-key>",
|
|
44
|
+
# endpoint="https://collector.observability.progress.com:443" # Optional: has default
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Configuration
|
|
49
|
+
|
|
50
|
+
Common options (for `Observability.instrument`):
|
|
51
|
+
|
|
52
|
+
- `app_name` - Application name for telemetry
|
|
53
|
+
- `endpoint` - OpenTelemetry collector endpoint
|
|
54
|
+
- `api_key` - Authentication key
|
|
55
|
+
- `debug` - Enable debug logging
|
|
56
|
+
- `instruments` / `block_instruments` - Control what gets traced via `ObservabilityInstruments`
|
|
57
|
+
- `trace_content` - when set to `False` will stop sending LLM prompt/responses as part of the telemetry data
|
|
58
|
+
- `additional_tags` - custom tags (see below)
|
|
59
|
+
|
|
60
|
+
Environment overrides (optional):
|
|
61
|
+
|
|
62
|
+
- `OBSERVABILITY_APP_NAME` sets the application name (e.g. "my-app")
|
|
63
|
+
- `OBSERVABILITY_ENDPOINT` sets a custom endpoint for collecting data (e.g. "https://collector.observability.progress.com:443")
|
|
64
|
+
- `OBSERVABILITY_API_KEY` sets the authentication key to use when sending data
|
|
65
|
+
- `OBSERVABILITY_TRACE_CONTENT` when set to `false` will stop sending LLM prompt/responses as part of the telemetry data
|
|
66
|
+
|
|
67
|
+
Auth headers are added automatically for HTTP(S) endpoints when api_key is provided.
|
|
68
|
+
|
|
69
|
+
## Custom Tags
|
|
70
|
+
|
|
71
|
+
Tags are user-defined strings (max 200 characters each) attached to observations for filtering and grouping.
|
|
72
|
+
|
|
73
|
+
**Global tags** — applied to every span:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
Observability.instrument(
|
|
77
|
+
app_name="my-app",
|
|
78
|
+
api_key="<your-api-key>",
|
|
79
|
+
additional_tags=["production", "release:2.4.1"],
|
|
80
|
+
)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Scoped tags** — applied to spans within a specific block via `propagate_attributes`:
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
from progress.observability import propagate_attributes
|
|
87
|
+
|
|
88
|
+
with propagate_attributes(tags=["tenant:acme", "experiment-v2"]):
|
|
89
|
+
# All spans created here inherit these tags
|
|
90
|
+
my_agent_function()
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Nesting is supported — tags accumulate from outer to inner scopes.
|
|
94
|
+
|
|
95
|
+
**Decorator tags** — applied to a single decorated function:
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
from progress.observability import task
|
|
99
|
+
|
|
100
|
+
@task(tags=["cohort-a"])
|
|
101
|
+
def my_task():
|
|
102
|
+
...
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Package Structure
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
src/progress/observability/
|
|
109
|
+
├── __init__.py # Package entry point
|
|
110
|
+
├── sdk.py # Main Observability SDK
|
|
111
|
+
├── decorators.py # @task, @workflow, @agent, @tool decorators
|
|
112
|
+
├── constants.py # Environment variables and constants
|
|
113
|
+
├── enums.py # ObservabilityInstruments enum
|
|
114
|
+
├── exceptions.py # Custom exception types
|
|
115
|
+
├── genai_message_processor.py # LLM span content normalization
|
|
116
|
+
├── helpers.py # Helper functions
|
|
117
|
+
├── model_fix_processor.py # LLM span attribute repair
|
|
118
|
+
├── tags.py # Tag propagation span processor
|
|
119
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Progress Observability Instrumentation (Python)
|
|
2
|
+
|
|
3
|
+
Zero-intrusion telemetry for AI agents and LLM apps. Built on Traceloop SDK and OpenTelemetry with a simple one-line init and optional decorators.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install progress-observability
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or from wheel file:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install progress_observability-x.y.z-py3-none-any.whl
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
from progress.observability import Observability, ObservabilityInstruments
|
|
21
|
+
|
|
22
|
+
# Initialize once at process start
|
|
23
|
+
Observability.instrument(
|
|
24
|
+
app_name="my-app",
|
|
25
|
+
api_key="<your-api-key>",
|
|
26
|
+
# endpoint="https://collector.observability.progress.com:443" # Optional: has default
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
Common options (for `Observability.instrument`):
|
|
33
|
+
|
|
34
|
+
- `app_name` - Application name for telemetry
|
|
35
|
+
- `endpoint` - OpenTelemetry collector endpoint
|
|
36
|
+
- `api_key` - Authentication key
|
|
37
|
+
- `debug` - Enable debug logging
|
|
38
|
+
- `instruments` / `block_instruments` - Control what gets traced via `ObservabilityInstruments`
|
|
39
|
+
- `trace_content` - when set to `False` will stop sending LLM prompt/responses as part of the telemetry data
|
|
40
|
+
- `additional_tags` - custom tags (see below)
|
|
41
|
+
|
|
42
|
+
Environment overrides (optional):
|
|
43
|
+
|
|
44
|
+
- `OBSERVABILITY_APP_NAME` sets the application name (e.g. "my-app")
|
|
45
|
+
- `OBSERVABILITY_ENDPOINT` sets a custom endpoint for collecting data (e.g. "https://collector.observability.progress.com:443")
|
|
46
|
+
- `OBSERVABILITY_API_KEY` sets the authentication key to use when sending data
|
|
47
|
+
- `OBSERVABILITY_TRACE_CONTENT` when set to `false` will stop sending LLM prompt/responses as part of the telemetry data
|
|
48
|
+
|
|
49
|
+
Auth headers are added automatically for HTTP(S) endpoints when api_key is provided.
|
|
50
|
+
|
|
51
|
+
## Custom Tags
|
|
52
|
+
|
|
53
|
+
Tags are user-defined strings (max 200 characters each) attached to observations for filtering and grouping.
|
|
54
|
+
|
|
55
|
+
**Global tags** — applied to every span:
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
Observability.instrument(
|
|
59
|
+
app_name="my-app",
|
|
60
|
+
api_key="<your-api-key>",
|
|
61
|
+
additional_tags=["production", "release:2.4.1"],
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Scoped tags** — applied to spans within a specific block via `propagate_attributes`:
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
from progress.observability import propagate_attributes
|
|
69
|
+
|
|
70
|
+
with propagate_attributes(tags=["tenant:acme", "experiment-v2"]):
|
|
71
|
+
# All spans created here inherit these tags
|
|
72
|
+
my_agent_function()
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Nesting is supported — tags accumulate from outer to inner scopes.
|
|
76
|
+
|
|
77
|
+
**Decorator tags** — applied to a single decorated function:
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
from progress.observability import task
|
|
81
|
+
|
|
82
|
+
@task(tags=["cohort-a"])
|
|
83
|
+
def my_task():
|
|
84
|
+
...
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Package Structure
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
src/progress/observability/
|
|
91
|
+
├── __init__.py # Package entry point
|
|
92
|
+
├── sdk.py # Main Observability SDK
|
|
93
|
+
├── decorators.py # @task, @workflow, @agent, @tool decorators
|
|
94
|
+
├── constants.py # Environment variables and constants
|
|
95
|
+
├── enums.py # ObservabilityInstruments enum
|
|
96
|
+
├── exceptions.py # Custom exception types
|
|
97
|
+
├── genai_message_processor.py # LLM span content normalization
|
|
98
|
+
├── helpers.py # Helper functions
|
|
99
|
+
├── model_fix_processor.py # LLM span attribute repair
|
|
100
|
+
├── tags.py # Tag propagation span processor
|
|
101
|
+
```
|