Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Yahya/create anthropic #19024

Merged
merged 31 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d62fe60
Anthropic skeleton code
yahya-mouman Nov 8, 2024
25966f9
Anthropic documentation
yahya-mouman Nov 8, 2024
72d5168
Anthropic label
yahya-mouman Nov 8, 2024
7cba749
Remove dashboards
yahya-mouman Nov 9, 2024
43c71ee
Remove tabs
yahya-mouman Nov 13, 2024
eb2172c
indentation
yahya-mouman Nov 13, 2024
4ca8443
Update anthropic/manifest.json
yahya-mouman Nov 13, 2024
175397d
add dashboards
yahya-mouman Nov 13, 2024
7e9dd0f
move dashboards
yahya-mouman Nov 13, 2024
c82db26
1 line dashboard
yahya-mouman Nov 13, 2024
cbe4adc
Update anthropic/README.md
yahya-mouman Nov 14, 2024
318dd1d
Update anthropic/README.md
yahya-mouman Nov 14, 2024
b55bd83
Update anthropic/README.md
yahya-mouman Nov 14, 2024
df7bc5d
Update anthropic/README.md
yahya-mouman Nov 14, 2024
dfbeb24
Update anthropic/README.md
yahya-mouman Nov 14, 2024
63408a2
No Metrics
yahya-mouman Nov 14, 2024
c1e42e9
Remove images readme
yahya-mouman Nov 14, 2024
cff0241
Merge remote-tracking branch 'origin/yahya/create-anthropic' into yah…
yahya-mouman Nov 14, 2024
e4dc2e1
Correction
yahya-mouman Nov 14, 2024
e3b1d3a
Update anthropic/README.md
yahya-mouman Nov 18, 2024
cfe897c
Add code owners
yahya-mouman Nov 18, 2024
a8b0bbe
Merge remote-tracking branch 'origin/yahya/create-anthropic' into yah…
yahya-mouman Nov 18, 2024
71d1eb0
Update anthropic/manifest.json
yahya-mouman Nov 19, 2024
92ef4ca
Update anthropic/README.md
yahya-mouman Nov 21, 2024
02a5d5a
Merge branch 'master' into yahya/create-anthropic
yahya-mouman Nov 22, 2024
2d5d799
Update dead sdk link
yahya-mouman Nov 22, 2024
8511c3e
remove metrics
yahya-mouman Nov 22, 2024
50c206d
Delete anthropic/metadata.csv
yahya-mouman Nov 22, 2024
e16ac5e
Merge branch 'master' into yahya/create-anthropic
steveny91 Nov 22, 2024
2fa4534
remove dashboard
yahya-mouman Nov 25, 2024
939e6ae
remove dashboard
yahya-mouman Nov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ datadog_checks_base/tests/**/test_db_statements.py @DataDog/database-monitoring
# APM Integrations
/langchain/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation
/openai/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation

/anthropic/ @DataDog/ml-observability @DataDog/agent-integrations @DataDog/documentation

# Windows agent
datadog_checks_base/datadog_checks/base/checks/win/ @DataDog/windows-agent @DataDog/agent-integrations
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/config/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,8 @@ integration/kyverno:
- kyverno/**/*
integration/langchain:
- langchain/**/*
integration/anthropic:
- anthropic/**/*
integration/lastpass:
- lastpass/**/*
integration/lighttpd:
Expand Down
7 changes: 7 additions & 0 deletions anthropic/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# CHANGELOG - Anthropic

## 1.0.0 / 2024-11-08

***Added***:

* Initial Release
127 changes: 127 additions & 0 deletions anthropic/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Anthropic

## Overview
Use the Anthropic integration to monitor, troubleshoot, and evaluate your LLM-powered applications, such as chatbots or data extraction tools.
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved

If you are building LLM applications, use LLM Observability to investigate the root cause of issues,
monitor operational performance, and evaluate the quality, privacy, and safety of your LLM applications.

See the [LLM Observability tracing view video](https://imgix.datadoghq.com/video/products/llm-observability/expedite-troubleshooting.mp4?fm=webm&fit=max) for an example of how you can investigate a trace.

## Setup

### LLM Observability: Get end-to-end visibility into your LLM application using Anthropic
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
You can enable LLM Observability in different environments. Follow the appropriate setup based on your scenario:

#### Installation for Python

##### If you do not have the Datadog Agent:
1. Install the `ddtrace` package:

```shell
pip install ddtrace
```

2. Start your application using the following command to enable Agentless mode:

```shell
DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_AGENTLESS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> ddtrace-run python <YOUR_APP>.py
```

##### If you already have the Datadog Agent installed:
1. Make sure the Agent is running and that APM and StatsD are enabled. For example, use the following command with Docker:

```shell
docker run -d \
--cgroupns host \
--pid host \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY=<DATADOG_API_KEY> \
-p 127.0.0.1:8126:8126/tcp \
-p 127.0.0.1:8125:8125/udp \
-e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
-e DD_APM_ENABLED=true \
gcr.io/datadoghq/agent:latest
```

2. If you haven't already, install the `ddtrace` package:

```shell
pip install ddtrace
```

3. To automatically enable tracing, start your application using the `ddtrace-run` command:

```shell
DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> ddtrace-run python <your_app>.py
```

**Note**: If the Agent is running on a custom host or port, set `DD_AGENT_HOST` and `DD_TRACE_AGENT_PORT` accordingly.

##### If you are running LLM Observability in a serverless environment (AWS Lambda):
1. Install the **Datadog-Python** and **Datadog-Extension** Lambda layers as part of your AWS Lambda setup.
2. Enable LLM Observability by setting the following environment variables:

```shell
DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME>
```

**Note**: In serverless environments, Datadog automatically flushes spans at the end of the Lambda function.

##### Automatic Anthropic tracing

The Anthropic integration allows for automatic tracing of chat message calls made by the Anthropic Python SDK, capturing latency, errors, input/output messages, and token usage during Anthropic operations.

The following methods are traced for both synchronous and asynchronous Anthropic operations:
- Chat messages (including streamed calls): `Anthropic().messages.create()`, `AsyncAnthropic().messages.create()`
- Streamed chat messages: `Anthropic().messages.stream()`, `AsyncAnthropic().messages.stream()`

No additional setup is required for these methods.

##### Validation

Validate that LLM Observability is properly capturing spans by checking your application logs for successful span creation. You can also run the following command to check the status of the `dd-trace` integration:

```shell
ddtrace-run --info
```

Look for the following message to confirm the setup:

```shell
Agent error: None
```

##### Debugging

If you encounter issues during setup, enable debug logging by passing the `--debug` flag:

```shell
ddtrace-run --debug
```

This displays any errors related to data transmission or instrumentation, including issues with Anthropic traces.

## Data Collected

### Metrics

The Anthropic integration does not include any custom metrics.

### Service Checks

The Anthropic integration does not include any service checks.

### Events

The Anthropic integration does not include any events.

## Troubleshooting

Need help? Contact [Datadog support][2].

[1]: https://docs.datadoghq.com/integrations/anthropic/
[2]: https://docs.datadoghq.com/help/

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we run this through a JSON formatter? It's difficult to review the strings when it's all on a single line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to review this ?

I thought doing that would just inflate the line count on the PR. The one line json is just an export to json of this dashboard : https://app.datadoghq.com/dash/integration/llm_operational_insights?fromUser=false&refresh_mode=sliding&from_ts=1730995192283&to_ts=1731599992283&live=true

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions anthropic/assets/service_checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
51 changes: 51 additions & 0 deletions anthropic/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"manifest_version": "2.0.0",
"app_uuid": "53fe7c3e-57eb-42ca-8e43-ec92c04b6160",
"app_id": "anthropic",
"display_on_public_website": true,
"tile": {
"overview": "README.md#Overview",
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
"configuration": "README.md#Setup",
"support": "README.md#Support",
"changelog": "CHANGELOG.md",
"description": "Monitor Anthropic usage and health at the application level",
"title": "Anthropic",
"media": [],
"classifier_tags": [
"Category::AI/ML",
"Category::Metrics",
"Submitted Data Type::Traces",
"Supported OS::Linux",
"Supported OS::Windows",
"Supported OS::macOS",
"Offering::Integration"
]
},
"assets": {
"integration": {
"auto_install": false,
"source_type_id": 31102434,
"source_type_name": "Anthropic",
"events": {
"creates_events": false
},
"metrics": {
"prefix": "anthropic.",
"check": [],
"metadata_path": "metadata.csv"
},
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
"service_checks": {
"metadata_path": "assets/service_checks.json"
}
},
"dashboards": {
"LLM Observability Overview Dashboard": "assets/dashboards/llm_observability_overview_dashboard.json"
}
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
},
"author": {
"support_email": "help@datadoghq.com",
"name": "Datadog",
"homepage": "https://www.datadoghq.com",
"sales_email": "info@datadoghq.com"
}
}
1 change: 1 addition & 0 deletions anthropic/metadata.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric,sample_tags
yahya-mouman marked this conversation as resolved.
Show resolved Hide resolved
Loading