A Acuvity tracer that instruments the http calls
Project description
acutracer (Distributed tracer)
A llm flow tracer
The following repo will have the instrumentors for a agentic system.
The instrumentor will trace all the outgoing calls made through a agentic system.
The following headers will be added to the calls.
X-acuvity-trace-id X-acuvity-span-id X-acuvity-parent-id
The headers will be captured by the proxy for further processing.
Running pytest
From the root directory run the following
pytest
Visualization of the traces
All the traces are OTEL compatible, so any OTEL collector can be used to view the traces locally.
Supported Instrumentors for python
-
Web Frameworks:
- FastAPIInstrumentor
- FlaskInstrumentor
- DjangoInstrumentor
-
HTTP Clients:
- RequestsInstrumentor
- URLLibInstrumentor
- AioHTTPClientInstrumentor
Future work for Granular Instrumentors in python
-
Databases:
- MongoInstrumentor
-
gRPC:
- GRPCInstrumentor
-
AWS:
- BotoInstrumentor
-
Logging:
- LoggingInstrumentor
Jaeger example with FAST API instrumentor:
Setting up the app:
1st pip install the acutracer
pip install acutracer
Import the following lines.
from acutracer.instrumentors.python.webapi.instrumentor import (
WebAPIInstrumentor,
)
app = FastAPI(title="Fast-API")
instrumentor = WebAPIInstrumentor(name="acuvity-tracing-example")
tracer = instrumentor.instrument(app=app)
Setting Up and Using Jaeger UI (for macOS)
Starting Jaeger
Run the following command to start the Jaeger all-in-one Docker container:
docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
-e COLLECTOR_OTLP_ENABLED=true \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14317:4317 \
-p 4318:4318 \
-p 14250:14250 \
-p 14268:14268 \
-p 14269:14269 \
-p 9411:9411 \
jaegertracing/all-in-one:latest
Note: We've changed -p 4317:4317
to -p 14317:4317
. This maps the container's internal port 4317 to the host's port 14317.
Accessing the Jaeger UI
Once the container is running, you can access the Jaeger UI by opening a web browser and navigating to:
http://localhost:16686
Viewing Traces
- Start your instrumented Python application.
- Make some requests to your application to generate traces.
- Open the Jaeger UI in your web browser.
- In the UI:
- Select your service from the "Service" dropdown (it should be named after your Python application).
- Set an appropriate time range.
- Click "Find Traces" to view your traces.
Troubleshooting
If you don't see any traces:
- Check that your application is running and generating traffic.
- Ensure that the Jaeger agent port (6831) is accessible from your application.
- Verify that the exporter in your Python code is correctly configured to send traces to
localhost:6831
. - Check the console output of your Python application for any error messages related to trace export.
Remember to stop the Jaeger container when you're done:
docker stop jaeger
docker rm jaeger
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
File details
Details for the file acutracer-0.1.20.tar.gz
.
File metadata
- Download URL: acutracer-0.1.20.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3b94c48ebd54ab341176a14c1511d4e3db32f951f7e037792fe3b8ea010a3cf |
|
MD5 | 7f26d60fe6f8fa216a98743e9820b6f9 |
|
BLAKE2b-256 | 033863226dfc650133b2dd6a9ac7f50acc4b553a8a0f5bfcb09167db739b2a06 |
File details
Details for the file acutracer-0.1.20-py3-none-any.whl
.
File metadata
- Download URL: acutracer-0.1.20-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a44359f2b80a3b6688e730e757d912d02dde92944fc2f835992d82c59f275fbb |
|
MD5 | ee38b5eecad751b5f421b6e383d81359 |
|
BLAKE2b-256 | b86b013aa6496f32d730e0819adc79cfd9c95d633980a701f6673e67d5754296 |