OpenTelemetry-based Python client for tracing functions and sending traces to the AIQA server
Project description
A Python client for the AIQA server
OpenTelemetry-based client for tracing Python functions and sending traces to the AIQA server.
Installation
From PyPI (recommended)
pip install aiqa-client
From source
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
See TESTING.md for detailed testing instructions.
Setup
Set the following environment variables:
export AIQA_SERVER_URL="http://localhost:3000"
export AIQA_API_KEY="your-api-key"
Usage
Basic Usage
from aiqa import WithTracing
@WithTracing
def my_function(x, y):
return x + y
@WithTracing
async def my_async_function(x, y):
await asyncio.sleep(0.1)
return x * y
Custom Span Name
@WithTracing(name="custom_span_name")
def my_function():
pass
Input/Output Filtering
@WithTracing(
filter_input=lambda x: {"filtered": str(x)},
filter_output=lambda x: {"result": x}
)
def my_function(data):
return {"processed": data}
Flushing Spans
Spans are automatically flushed every 5 seconds. To flush immediately:
from aiqa import flush_spans
import asyncio
async def main():
# Your code here
await flush_spans()
asyncio.run(main())
Shutting Down
To ensure all spans are sent before process exit:
from aiqa import shutdown_tracing
import asyncio
async def main():
# Your code here
await shutdown_tracing()
asyncio.run(main())
Setting Span Attributes and Names
from aiqa import set_span_attribute, set_span_name
def my_function():
set_span_attribute("custom.attribute", "value")
set_span_name("custom_span_name")
# ... rest of function
Features
- Automatic tracing of function calls (sync and async)
- Records function inputs and outputs as span attributes
- Automatic error tracking and exception recording
- Thread-safe span buffering and auto-flushing
- OpenTelemetry context propagation for nested spans
Example
See example.py for a complete working example.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiqa_client-0.1.6.tar.gz.
File metadata
- Download URL: aiqa_client-0.1.6.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32acc04d275207f9f549caf91ff96c7d1b534355c9c507c7e49614175f4e31f3
|
|
| MD5 |
7c7dd5ba43bd126970ee44183b240bb8
|
|
| BLAKE2b-256 |
5e73fbad46ffd9b531ab39fb0d2fa5005075e3f4f38090c39fc0f315762494e4
|
File details
Details for the file aiqa_client-0.1.6-py3-none-any.whl.
File metadata
- Download URL: aiqa_client-0.1.6-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6913e1da724e4ac43da1ae33fac05549cc34e2161737ebaf449be618fbd6aa3
|
|
| MD5 |
dc2198296bdcd6f1547f297ba70b7fb1
|
|
| BLAKE2b-256 |
4db434433d99d95672b6c58f37758b29b53c5d14e282aa129cf6704243b196c3
|