Skip to content

Commit dc7b94d

Browse files
committed
Add Error Tracking + Sentry SDK documentation
1 parent 2afd2ca commit dc7b94d

File tree

1 file changed

+207
-0
lines changed

1 file changed

+207
-0
lines changed
+207
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
---
2+
title: Sentry SDK
3+
description: Use the Sentry SDK to send errors to Error Tracking.
4+
further_reading:
5+
- link: "/error_tracking/manage_data_collection"
6+
tag: "Documentation"
7+
text: "Manage Data Collection"
8+
---
9+
{{< callout url="#" >}}
10+
Using the Sentry SDK with Error Tracking is in Preview.
11+
{{< /callout >}}
12+
13+
<div class="alert alert-warning">
14+
Using the Sentry SDK with Error Tracking offers an easy way to migrate to Datadog. However, to get the most out of Error Tracking, it is recommended to use the regular setup. See [Frontend Error Tracking][1] and [Backend Error Tracking][2].
15+
</div>
16+
17+
## Overview
18+
You can use [Sentry SDKs][3] to send your events to Datadog. This offers you an easy way to start using Error Tracking on existing applications that are monitored using Sentry SDKs.
19+
20+
Setting up the Sentry SDK with Datadog requires a minimal code change to point the SDK to a Datadog Data Source Name (DSN).
21+
22+
[Events][8] are sent to Datadog as logs. Non-error events (messages) also show up as logs. Other item types (traces, attachments, sessions, ...) are not supported.
23+
24+
## Setup
25+
### Prerequisites
26+
- Sentry SDK events are sent into Datadog as **logs**. You must have [Error Tracking for Logs][4] enabled for errors to show up in Error Tracking.
27+
28+
### Service configuration
29+
To configure the Sentry SDK to send events into Datadog:
30+
- Configure a Datadog Data Source Name (DSN). Follow the [in-app instructions][5] to generate your unique DSN.
31+
- Set a `service` tag on all events. This is used to separate errors and is shown in the Datadog UI.
32+
33+
{{< tabs >}}
34+
35+
{{% tab "JavaScript" %}}
36+
{{< code-block lang="javascript" >}}
37+
Sentry.init({
38+
dsn: 'https://[email protected]/1',
39+
initialScope: {
40+
tags: {
41+
service: 'my-app'
42+
}
43+
}
44+
});
45+
{{< /code-block >}}
46+
{{% /tab }}
47+
48+
{{% tab "Python" %}}
49+
{{< code-block lang="python" >}}
50+
sentry_sdk.init(
51+
dsn="https://[email protected]/1",
52+
)
53+
sentry_sdk.set_tag("service", "my-app")
54+
{{< /code-block >}}
55+
{{% /tab %}}
56+
57+
{{% tab "Java" %}}
58+
{{< code-block lang="java" >}}
59+
Sentry.init(options -> {
60+
options.setDsn("https://[email protected]/1");
61+
});
62+
Sentry.configureScope(scope -> {
63+
scope.setTag("service", "my-app");
64+
});
65+
{{< /code-block >}}
66+
{{% /tab %}}
67+
68+
{{% tab "C#" %}}
69+
{{< code-block lang="csharp">}}
70+
SentrySdk.Init(options =>
71+
{
72+
options.Dsn = "https://[email protected]/1";
73+
options.SetBeforeSend((sentryEvent, hint) => {
74+
sentryEvent.SetTag("service", "my-app");
75+
return sentryEvent;
76+
});
77+
});
78+
{{< /code-block >}}
79+
{{% /tab %}}
80+
81+
{{% tab "Go" %}}
82+
{{< code-block lang="go">}}
83+
sentry.Init(sentry.ClientOptions{
84+
Dsn: "https://[email protected]/1",
85+
})
86+
sentry.ConfigureScope(func(scope *sentry.Scope) {
87+
scope.SetTag("service", "my-app");
88+
})
89+
{{< /code-block >}}
90+
{{% /tab %}}
91+
92+
{{% tab "Ruby" %}}
93+
{{< code-block lang="ruby">}}
94+
Sentry.init do |config|
95+
config.dsn = https://[email protected]/1'
96+
end
97+
Sentry.set_tags('service': 'my-app')
98+
{{< /code-block >}}
99+
{{% /tab %}}
100+
101+
{{< /tabs >}}
102+
103+
### Upload JavaScript source maps
104+
105+
If your frontend JavaScript source code is minified, you can upload source maps to Datadog to deobfuscate stack traces in Error Tracking.
106+
107+
See [Upload JavaScript Source Maps].
108+
109+
Set a `version` tag on your events to match them to the correct source maps:
110+
111+
{{< code-block lang="javascript" >}}
112+
Sentry.setTag("version", "v35.2395005");
113+
{{< /code-block >}}
114+
115+
### Source code integration
116+
117+
[Datadog Source Code Integration][7] allows you to connect your telemetry with your Git repositories.
118+
119+
Source Code Integration works with Sentry SDKs by configuring telemetry tags:
120+
121+
{{< tabs >}}
122+
123+
{{ tab "JavaScript" }}
124+
{{< code-block lang="javascript" >}}
125+
Sentry.setTag("git.commit.sha", "<commitSha>");
126+
Sentry.setTag("git.repository_url", "<git-provider.example/me/my-repo>");
127+
{{< /code-block >}}
128+
{{ /tab }}
129+
130+
{{ tab "Python" }}
131+
{{< code-block lang="python" >}}
132+
sentry_sdk.set_tag("git.commit.sha", "<commitSha>")
133+
sentry_sdk.set_tag("git.repository_url", "<git-provider.example/me/my-repo>")
134+
{{< /code-block >}}
135+
{{ /tab }}
136+
137+
{{ tab "Java" }}
138+
{{< code-block lang="java" >}}
139+
Sentry.configureScope(scope -> {
140+
scope.setTag("git.commit.sha", "<commitSha>");
141+
scope.setTag("git.repository_url", "<git-provider.example/me/my-repo>");
142+
});
143+
{{< /code-block >}}
144+
{{ /tab }}
145+
146+
{{ tab "C#" }}
147+
{{< code-block lang="csharp" >}}
148+
SentrySdk.ConfigureScope(scope =>
149+
{
150+
scope.SetTag("git.commit.sha", "<commitSha>");
151+
scope.SetTag("git.repository_url", "<git-provider.example/me/my-repo>");
152+
});
153+
{{< /code-block >}}
154+
{{ /tab }}
155+
156+
{{ tab "Go" }}
157+
{{< code-block lang="go" >}}
158+
sentry.ConfigureScope(func(scope *sentry.Scope) {
159+
scope.SetTag("git.commit.sha", "<commitSha>");
160+
scope.SetTag("git.repository_url", "<git-provider.example/me/my-repo>");
161+
})
162+
{{< /code-block >}}
163+
{{ /tab }}
164+
165+
{{ tab "Ruby" }}
166+
{{< code-block lang="ruby" >}}
167+
Sentry.set_tags('git.commit.sha', '<commitSha>')
168+
Sentry.set_tags('git.repository_url', '<git-provider.example/me/my-repo>')
169+
{{< /code-block >}}
170+
{{ /tab }}
171+
172+
{{< /tabs >}}
173+
174+
## Supported SDKs
175+
176+
The following Sentry SDKs are verified to work with Error Tracking:
177+
178+
<!-- TODO: test all latest versions -->
179+
180+
| Platform | Tested version |
181+
| ---------- | -------------- |
182+
| JavaScript | |
183+
| Python | |
184+
| Java | |
185+
| .NET | |
186+
| Go | |
187+
| Ruby | |
188+
189+
## Migrate to Datadog SDKs or Agent
190+
191+
## Send events to both Sentry and Datadog
192+
193+
<!-- TODO: code snippets -->
194+
<!-- TODO: move to other page? -->
195+
196+
## Further Reading
197+
198+
{{< partial name="whats-next/whats-next.html" >}}
199+
200+
[1]: /error_tracking/frontend
201+
[2]: /error_tracking/backend
202+
[3]: https://docs.sentry.io/
203+
[4]: https://app.datadoghq.com/error-tracking/settings
204+
[5]: https://app.datadoghq.com/error-tracking/settings/setup/sentry
205+
[6]: https://docs.datadoghq.com/real_user_monitoring/guide/upload-javascript-source-maps
206+
[7]: https://docs.datadoghq.com/integrations/guide/source-code-integration/
207+
[8]: https://develop.sentry.dev/sdk/data-model/envelope-items/#event

0 commit comments

Comments
 (0)