You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(self-hosted): Restructure experimental section into 'Production Enhancements' and 'Optional Features'
These pages were never experimental, most of them are battle tested and enhances the operational side of self-hosted. Marking it as experimental confuses newcomers.
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/optional-features/csp.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ sidebar_order: 70
5
5
---
6
6
7
7
<Alertlevel="warning">
8
-
This is an experimental feature. This means that features and workflows are not completely tested, so use at your own risk!
8
+
This is an experimental feature. This means that features and workflows are not completely tested, use at your own risk!
9
9
</Alert>
10
10
11
11
Starting with Sentry `23.5.0`, it is possible to enable the [CSP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) on self-hosted Sentry installations. The good news is that Sentry itself supports [collecting of CSP reports](https://docs.sentry.io/product/security-policy-reporting/). We recommend creating a separate Sentry project for CSP reports. To enable CSP and reports collection, you'll want to configure the following settings in `sentry.conf.py`:
This version of Sentry is enabled by default upon installation. Ensure that your [.env file](https://github.com/getsentry/self-hosted/blob/master/.env) includes `COMPOSE_PROFILES=feature-complete`.
37
+
This version of Sentry is enabled by default upon installation. Ensure that your [.env file](https://github.com/getsentry/self-hosted/blob/master/.env) includes `COMPOSE_PROFILES=feature-complete`.
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/production-enhancements/external-storage.mdx
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,9 @@
1
1
---
2
-
title: SelfHosted External Storage
2
+
title: Self-Hosted External Storage
3
3
sidebar_title: External Storage
4
-
sidebar_order: 90
4
+
sidebar_order: 3
5
5
---
6
6
7
-
<Alerttitle="Important"level="warning">
8
-
These are community-contributed docs. Sentry does not officially provide support for self-hosted configurations beyond the default install.
9
-
</Alert>
10
-
11
7
In some cases, storing Sentry data on-disk is not really something people can do. Sometimes, it's better to offload it into some bucket storage (like AWS S3 or Google Cloud Storage).
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/production-enhancements/monitoring.mdx
+31-7Lines changed: 31 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,10 @@
1
1
---
2
2
title: Self-Hosted Monitoring
3
3
sidebar_title: Monitoring
4
-
sidebar_order: 10
4
+
sidebar_order: 2
5
5
---
6
6
7
-
<Alerttitle="Important"level="warning">
8
-
These are community-contributed docs. Sentry does not officially provide support for self-hosted configurations beyond the default install.
9
-
</Alert>
10
-
11
-
This page is considered experimental because everyone will have different setup and requirements for their monitoring system. It is also best to use your existing monitoring system, and try to integrate Sentry with it, instead of spinning up a new one.
7
+
Everyone will have different setup and requirements for their monitoring system, it is best to use your existing monitoring system, and try to integrate Sentry with it, instead of spinning up a new one.
12
8
13
9
Most containers have a `statsd` client that you can point to your monitoring system. If you have a native `statsd` server instance, you can directly use it. If you don't, you might want to add some kind of converter that converts the ingested `statsd` format into your own. For example, if you are using Prometheus, you can use [prometheus-statsd-exporter](https://github.com/prometheus/statsd_exporter) to bridge the gap.
14
10
@@ -19,7 +15,7 @@ We recommend [the original `statsd` server made by Etsy](https://github.com/stat
19
15
Sentry does not provide any alerts if your host instance is low on resources such as free memory or disk space. You will need to configure this own your own relative to your needs. It is critical for you to monitor the disk space as once it gets full, it will be much harder to recover from there.
20
16
21
17
<Alerttitle="Note">
22
-
After changing configuration files, don't forget to restart the containers with `docker compose restart`. See the <Linkto="/self-hosted/#configuration">configuration section</Link> for more information.
18
+
After changing configuration files, re-run the <code>./install.sh</code> script, to rebuild and restart the containers. See the <Linkto="/self-hosted/#configuration">configuration section</Link> for more information.
23
19
</Alert>
24
20
25
21
## Sentry-related configurations
@@ -88,6 +84,8 @@ metrics:
88
84
# periodic_secs: 5
89
85
```
90
86
87
+
Defined metric keys are specified on [statsd.rs file](https://github.com/getsentry/relay/blob/master/relay-server/src/statsd.rs).
88
+
91
89
### Symbolicator
92
90
93
91
You can configure Symbolicator to send metrics to Statsd server by configuring your `symbolicator/config.yml` file:
@@ -99,6 +97,32 @@ metrics:
99
97
prefix: "sentry.symbolicator"# Adjust this to your needs, default is "symbolicator"
100
98
```
101
99
100
+
### Uptime Checker
101
+
102
+
You can configure Uptime Checker to send metrics to Statsd server by configuring your `docker-compose.yml` file:
103
+
104
+
```yaml
105
+
services:
106
+
# Other services
107
+
uptime-checker:
108
+
# ...
109
+
environment:
110
+
UPTIME_CHECKER_STATSD_ADDR: "100.100.123.123:8125" # It's recommended to use IP address instead of domain name
111
+
```
112
+
113
+
### Taskbroker
114
+
115
+
You can configure Taskbroker to send metrics to Statsd server by configuring your `docker-compose.yml` file:
116
+
117
+
```yaml
118
+
services:
119
+
# Other services
120
+
taskbroker:
121
+
# ...
122
+
environment:
123
+
TASKBROKER_STATSD_ADDR: "100.100.123.123:8125" # It's recommended to use IP address instead of domain name
124
+
```
125
+
102
126
## Sentry dependencies
103
127
104
128
We don't provide configurations for Sentry's dependencies such as PostgreSQL, Kafka, Redis, Memcached and ClickHouse that are bundled with the Docker Compose file. You will need to provide monitoring configuration for those service yourself adjusted to your needs.
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/production-enhancements/reverse-proxy.mdx
+28-12Lines changed: 28 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,9 @@
1
1
---
2
2
title: Self-Hosted Reverse Proxy
3
3
sidebar_title: Reverse Proxy
4
-
sidebar_order: 80
4
+
sidebar_order: 1
5
5
---
6
6
7
-
<Alerttitle="Important"level="warning">
8
-
These are community-contributed docs. Sentry does not officially provide support for self-hosted configurations beyond the default install.
9
-
</Alert>
10
-
11
7
Adding a reverse proxy in front of your Sentry deployment is strongly recommended for one big reason: you can fine tune every configuration to fit your current setup. A dedicated reverse proxy that does SSL/TLS termination that also forwards the client IP address as Docker Compose internal network (as this is [close to impossible to get otherwise](https://github.com/getsentry/self-hosted/issues/554)) would give you the best Sentry experience.
12
8
13
9
Once you have setup a reverse proxy to your Sentry instance, you should modify the `system.url-prefix` in the `config.yml` file to match your new URL and protocol. You should also update the SSL/TLS section in the `sentry/sentry.conf.py` script, otherwise you may get CSRF-related errors when performing certain actions such as configuring integrations.
@@ -22,13 +18,29 @@ We recommend TLS termination to be done on your own dedicated load balancer or p
22
18
23
19
Certain self-hosted deployments requires the dashboard to be accessed only via internal network. But, they also need to provide public Sentry ingestion endpoint for client devices such as mobile and desktop apps. You can expose some of these endpoints publicly:
24
20
25
-
-`/api/[0-9]+/envelope/` - Main endpoint for submitting event from SDK
26
-
-`/api/[0-9]+/minidump/` - Endpoint for submitting minidump from native SDKs
27
-
-`/api/[0-9]+/security/` - Endpoint for submitting security-related such as CSP errors
28
-
-`/api/[0-9]+/store/` - Old endpoint for submitting event from SDK, it is deprecated.
29
-
-`/api/[0-9]+/unreal/` - Endpoint for submitting crash report from Unreal Engine SDK
30
-
31
-
The `[0-9]+` is a regular expression string that is acquired from the project DSN.
21
+
-`/api/{project_id}/envelope/` - Main endpoint for submitting event from SDK.
22
+
-`/api/{project_id}/store/` - Legacy endpoint for submitting event from SDK, it is deprecated.
23
+
-`/api/{project_id}/security/` - Endpoint for submitting security-related reports.
24
+
-`/api/{project_id}/csp-report/` - Endpoint for submitting [CSP (Content Security Policy) reports](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP).
25
+
-`/api/{project_id}/nel/` - Endpoint for submitting [NEL (Network Error Logging)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/NEL) reports.
26
+
-`/api/{project_id}/minidump/` and `/api/{project_id}/minidump` - Endpoint for submitting minidump from native SDKs.
27
+
-`/api/{project_id}/events/{event_id}/attachments/` - Endpoint for submitting attachments.
28
+
-`/api/{project_id}/unreal/{sentry_key}` - Endpoint for submitting crash report from Unreal Engine SDK.
29
+
-`/api/{project_id}/cron` - Endpoint for submitting cron monitors from APIs. For more specific endpoints:
-`/api/{project_id}/integration/otlp` - Endpoint for submitting native OTLP dataset (traces, logs and metrics). For more specific endpoints:
35
+
-`/api/{project_id}/integration/otlp/v1/traces` - Endpoint for submitting native OTLP dataset (traces).
36
+
-`/api/{project_id}/integration/otlp/v1/traces/` - Endpoint for submitting native OTLP dataset (traces).
37
+
-`/api/{project_id}/integration/otlp/v1/logs` - Endpoint for submitting native OTLP dataset (logs).
38
+
-`/api/{project_id}/integration/otlp/v1/logs/` - Endpoint for submitting native OTLP dataset (logs).
39
+
40
+
41
+
The `{project_id}` placeholder should resolve to `[0-9]+` regular expression.
42
+
43
+
The `{event_id}`, `{monitor_slug}` and `{sentry_key}` placeholders should resolve to `[A-Za-z0-9-_+=]+` regular expression.
32
44
33
45
## Rate Limiting
34
46
@@ -42,6 +54,10 @@ Endpoint for health checks is available on `/_health/` endpoint using HTTP proto
42
54
43
55
## Reverse Proxy Examples
44
56
57
+
<Alerttitle="Note">
58
+
If you run your reverse proxy as a Docker container, and place it on the same Docker Compose network as your Sentry instance, make sure to target `nginx:80` instead of `web:9000` in the examples below.
59
+
</Alert>
60
+
45
61
### NGINX
46
62
47
63
We recommend installing NGINX since that's what we are using on [sentry.io](https://sentry.io/).
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/reference-architecture/index.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,5 +6,5 @@ sidebar_order: 3
6
6
7
7
This section contains reference architectures for self-hosted Sentry other than the default single-node setup. These are not meant to be used as-is, but as a reference for how to deploy self-hosted Sentry around your existing infrastructure. This section can be used to create a scaling strategy if you have higher traffic loads over time.
8
8
9
-
Please note that these reference architectures do not take external data storage dependencies into account such as Kafka, Postgres, Redis, S3, etc. If you wish to do so, refer to the [Experimental Configurations](/self-hosted/experimental/)section
9
+
Please note that these reference architectures do not take external data storage dependencies into account such as Kafka, Postgres, Redis, S3, etc. If you wish to do so, refer to the [Production Enhancements](/self-hosted/production-enhancements/)or [Optional Features](/self-hosted/optional-features/) sections.
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/reference-architecture/separate-ingest-box.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ sidebar_title: Separate Ingest Box
4
4
sidebar_order: 2
5
5
---
6
6
7
-
In addition to having a [separate domain](/self-hosted/experimental/reverse-proxy/#expose-only-ingest-endpoint-publicly) for viewing the web UI and ingesting data, you can deploy a dedicated server for data ingestion that relays information to your main server. This setup is recommended for high-traffic installations and environments with multiple data centers.
7
+
In addition to having a [separate domain](/self-hosted/production-enhancements/reverse-proxy/#expose-only-ingest-endpoint-publicly) for viewing the web UI and ingesting data, you can deploy a dedicated server for data ingestion that relays information to your main server. This setup is recommended for high-traffic installations and environments with multiple data centers.
8
8
9
9
This architecture helps mitigate DDoS attacks by distributing ingestion across multiple endpoints, while your main Sentry instance with the web UI should be protected on a private network (accessible via VPN). Invalid payloads sent to your Relay instances will be dropped immediately. If your main server becomes unreachable, your Relay will continue attempting to send the data.
Copy file name to clipboardExpand all lines: develop-docs/self-hosted/reference-architecture/simple-single-box.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,4 +25,4 @@ graph TB
25
25
internet--> Server
26
26
```
27
27
28
-
For more information regarding configuring your external load balancer, please refer to the [External Load Balancer](/self-hosted/experimental/reverse-proxy/) section.
28
+
For more information regarding configuring your external load balancer, please refer to the [External Load Balancer](/self-hosted/production-enhancements/reverse-proxy/) section.
0 commit comments