|
1 | | -"""CrewAI with OpenTelemetry instrumentation for tracking.""" |
| 1 | +"""CrewAI with PostHog tracking via LiteLLM callbacks.""" |
2 | 2 |
|
3 | 3 | import os |
4 | | -from opentelemetry import trace |
5 | | -from opentelemetry.sdk.trace import TracerProvider |
6 | | -from opentelemetry.sdk.trace.export import SimpleSpanProcessor |
7 | | -from opentelemetry.sdk.resources import Resource, SERVICE_NAME |
8 | | -from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter |
9 | | -from opentelemetry.instrumentation.crewai import CrewAIInstrumentor |
| 4 | +import litellm |
| 5 | +from crewai import Agent, Task, Crew |
10 | 6 |
|
11 | | -resource = Resource(attributes={SERVICE_NAME: "example-crewai-app"}) |
12 | | -exporter = OTLPSpanExporter( |
13 | | - endpoint=f"{os.environ.get('POSTHOG_HOST', 'https://us.i.posthog.com')}/i/v0/ai/otel", |
14 | | - headers={"Authorization": f"Bearer {os.environ['POSTHOG_API_KEY']}"}, |
| 7 | +os.environ["POSTHOG_API_KEY"] = os.environ.get("POSTHOG_API_KEY", "") |
| 8 | +os.environ["POSTHOG_API_URL"] = os.environ.get( |
| 9 | + "POSTHOG_HOST", "https://us.i.posthog.com" |
15 | 10 | ) |
16 | | -provider = TracerProvider(resource=resource) |
17 | | -provider.add_span_processor(SimpleSpanProcessor(exporter)) |
18 | | -trace.set_tracer_provider(provider) |
19 | | - |
20 | | -CrewAIInstrumentor().instrument() |
21 | | - |
22 | | -from crewai import Agent, Task, Crew |
| 11 | +litellm.success_callback = ["posthog"] |
| 12 | +litellm.failure_callback = ["posthog"] |
23 | 13 |
|
24 | 14 | researcher = Agent( |
25 | 15 | role="Researcher", |
|
0 commit comments