Add OpenTelemetry instrumentation for CrewAI#87
Add OpenTelemetry instrumentation for CrewAI#87whoIam0987 wants to merge 5 commits intoalibaba:mainfrom
Conversation
2 change unit test to adapt code.
13a39ef to
aa5f9e1
Compare
|
Thanks for the contribution! Please fix the CI failure. |
There was a problem hiding this comment.
Pull request overview
This pull request adds OpenTelemetry instrumentation for the CrewAI framework, enabling automatic tracing of Crew, Agent, Task, and Tool executions with GenAI semantic conventions.
Changes:
- Implements OpenTelemetry instrumentation wrappers for CrewAI's core components (Crew, Flow, Agent, Task, and Tool)
- Adds utility functions for JSON serialization and message conversion to GenAI format
- Includes comprehensive test suite covering synchronous/streaming LLM calls, tool usage, error scenarios, and agent workflows
Reviewed changes
Copilot reviewed 15 out of 16 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
src/opentelemetry/instrumentation/crewai/__init__.py |
Main instrumentation module with wrapper classes for Crew.kickoff, Flow.kickoff_async, Agent.execute_task, Task.execute_sync, and ToolUsage._use |
src/opentelemetry/instrumentation/crewai/utils.py |
Utility functions for JSON serialization, message conversion, and GenAI hook helpers |
src/opentelemetry/instrumentation/crewai/package.py |
Package metadata defining instrumentation dependencies |
src/opentelemetry/instrumentation/crewai/version.py |
Version information (0.1.0) |
pyproject.toml |
Project configuration with dependencies and build settings |
README.md |
Documentation with installation instructions and usage examples |
test-requirements.txt |
Test dependencies including CrewAI >=0.80.0 and LiteLLM |
tests/*.py |
Comprehensive test suite covering various CrewAI execution scenarios |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
instrumentation-loongsuite/loongsuite-instrumentation-crewai/pyproject.toml
Outdated
Show resolved
Hide resolved
instrumentation-loongsuite/loongsuite-instrumentation-crewai/pyproject.toml
Outdated
Show resolved
Hide resolved
...suite/loongsuite-instrumentation-crewai/src/opentelemetry/instrumentation/crewai/__init__.py
Outdated
Show resolved
Hide resolved
...suite/loongsuite-instrumentation-crewai/src/opentelemetry/instrumentation/crewai/__init__.py
Show resolved
Hide resolved
...suite/loongsuite-instrumentation-crewai/src/opentelemetry/instrumentation/crewai/__init__.py
Show resolved
Hide resolved
...suite/loongsuite-instrumentation-crewai/src/opentelemetry/instrumentation/crewai/__init__.py
Show resolved
Hide resolved
|
|
||
| [project.optional-dependencies] | ||
| instruments = [ | ||
| "crewai >= 0.1.0", |
There was a problem hiding this comment.
The minimum CrewAI version differs between package.py (>=0.70.0) and pyproject.toml optional dependencies (>=0.1.0). This inconsistency could lead to compatibility issues. The version constraint in package.py should match the one in pyproject.toml optional dependencies, or vice versa. Given that the test-requirements.txt specifies >=0.80.0, consider aligning all version specifications to use a consistent minimum version.
| "crewai >= 0.1.0", | |
| "crewai >= 0.80.0", |
There was a problem hiding this comment.
The pyproject.toml has changed to "crewai >= 0.70.0"
There was a problem hiding this comment.
I didn't see it changed. It is still "crewai >= 0.1.0".
Description
Instrument CrewAI with genai util.
Fixes # (issue)
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Does This PR Require a Core Repo Change?
Checklist:
See contributing.md for styleguide, changelog guidelines, and more.