Relay 的配置记录在文件 .relay/config.yml
中。要更改此位置,请将 --config
选项传递给任何 Relay 命令:
❯ ./relay run --config /path/to/folder
所有配置 key
都是 snake_case
。
系列
Relay
以下记录了 Relay
的常规设置:
relay.mode
: String, default:
managed
, 可能的值:managed
,static
,proxy
和capture
控制 Relay 如何获取事件的项目配置。有关这些模式的详细说明,请参阅 Relay模式。
relay.upstream
: String, default:
https://sentry.io
上游 Relay 或 Sentry 实例的完全限定 URL。Relay 不会检查循环。不要将此选项设置为会导致事件循环回到此处的端点。
relay.host
: String, default: Docker 中
0.0.0.0
, 否则127.0.0.1
Relay 应该绑定到的主机(网络接口)。示例:
0.0.0.0
relay.port
: Integer, default:
3000
为
未加密的 Relay HTTP server
绑定的端口。示例:3000
relay.tls_port
: Integer, optional
为
加密 Relay HTTPS server
绑定的可选端口。示例:3001
这是对
port
选项的补充:如果你在tls_port
上设置了一个HTTPS
服务器,那么port
上的 HTTP server 仍然存在。
relay.tls_identity_path
: String, optional
用于 HTTPS server 的身份(DER-encoded PKCS12)的文件系统路径。在当前工作目录中评估相对路径。
例如:relay_dev.pfx
relay.tls_identity_password
: String, optional
relay.tls_identity_path
中 PKCS12 存档的密码。
HTTP
这些设置控制与网络相关的配置。
http.timeout
: Integer, default:
5
上游请求的超时时间(以秒为单位)。
此超时涵盖从发送请求到接收响应头的时间。此超时既不包括连接过程和握手,也不包括读取响应正文。
http.connection_timeout
: Integer, default:
3
与上游建立连接的超时时间(以秒为单位)。
这包括 SSL 握手。当上游支持连接保持活动时,Relay 重用连接。连接最多保留 75 秒,不活动保留 15 秒。
http.max_retry_interval
: Integer, default:
60
失败请求重试之间的最大间隔(秒)。
http.host_header
: String, default:
null
要发送到上游的自定义 HTTP Host header。
Caching(缓存)
这些设置可以微调项目状态的缓存。
cache.project_expiry
: Integer, default:
300
(5 minutes)项目配置的缓存超时(以秒为单位)。如果您使用 "simple proxy mode",您的项目配置存储在本地文件中,则无关紧要。
cache.project_grace_period
: Integer, default:
0
(seconds)在获取新状态时缓存到期后继续使用此项目配置的秒数。
这是在cache.project_expiry
和cache.miss_expiry
之上添加的。
cache.relay_expiry
: Integer, default:
3600
(1 hour)下游 Relay 信息(公钥)的缓存超时(以秒为单位)。这仅在您计划将更多 Relay 连接到此 Relay 时才相关。
cache.envelope_expiry
: Integer, default:
600
(10 minutes)在网络问题或积压的情况下,Relay 在其缓存中缓冲传入有效负载的最长时间。
这适用于发送到 Relay 的所有类型的数据,包括事件、附件和会话。另见
cache.envelope_buffer_size
。
cache.miss_expiry
: Integer, default:
60
(1 minute)不存在的条目的缓存超时。
cache.batch_interval
: Integer, default:
100
(100 milliseconds)在以毫秒为单位向上游发送批处理查询之前的缓冲区超时。
cache.batch_size
: Integer, default:
500
一次从 Sentry 获取的最大项目配置数。
cache.file_interval
: Integer, default:
10
(10 seconds)监视本地缓存覆盖文件的时间间隔(以秒为单位)。
cache.envelope_buffer_size
: Integer, default:
1000
在网络问题或积压的情况下缓冲的传入有效负载的最大数量。
这适用于发送到 Relay 的所有类型的数据,包括事件、附件和会话。另见
cache.envelope_expiry
。
cache.eviction_interval
: Integer, default:
60
(seconds)从内存中驱逐过时的项目配置的时间间隔。
Size Limits(大小限制)
这些设置控制与 HTTP 相关的限制。所有值要么是整数,要么是人类可读的数字字符串和人类可读的单位,例如:
500B
-
1kB
(1,000 bytes) -
1KB
or1KiB
(1,024 bytes) -
1MB
(1,000,000 bytes) -
1MiB
(1,048,576 bytes)
limits.max_concurrent_requests
: Integer, default:
100
上游的最大并发连接数。如果上游支持,Relay 支持连接保活(keepalive)。
limits.max_concurrent_queries
: Integer, default:
5
在 Relay 开始缓冲请求之前,可以同时从 Relay upstream 发送的最大查询数。
查询是为了获取信息而向上游发出的所有请求,并明确地排除事件提交。查询的并发性还受到
max_concurrent_requests
的限制。
limits.max_event_size
: String, default:
1MiB
事件的最大负载大小。
limits.max_attachment_size
: String, default:
50MiB
每个附件的最大大小。
limits.max_attachments_size
: String, default:
50MiB
信封(envelope)或请求中所有附件的最大组合大小。
limits.max_envelope_size
: String, default:
50MiB
整个信封的最大有效负载大小。个人限制仍然适用。
limits.max_session_count
: Integer, default:
100
每个信封的最大会话项目数。
limits.max_api_payload_size
: String, default:
20MiB
一般 API 请求的最大负载大小。
limits.max_api_file_upload_size
: String, default:
40MiB
文件上传和块(chunks)的最大有效负载大小。
limits.max_api_chunk_upload_size
: String, default:
100MiB
块的最大有效负载大小。
limits.max_thread_count
: Integer, default: number of cpus
为每个 CPU 和 Web Worker 生成的最大线程数。
产生的线程总数大致为
2 * limits.max_thread_count + N
,其中N
是一组固定的管理线程。
limits.query_timeout
: Integer, default:
30
(seconds)允许查询重试的最大秒数。
单个请求的超时时间较短。
limits.max_connection_rate
: Integer, default:
256
一次可以创建的与 Relay 的最大连接数。
limits.max_pending_connections
: Integer, default:
2048
最大挂起连接到 Relay 的数量。这对应于 POSIX 中
listen(2)
的 backlog 参数。
limits.max_connections
: Integer: default:
25_000
Relay 打开的最大传入连接数。
limits.shutdown_timeout
: Integer, default:L
10
(seconds)接收到关闭信号后等待挂起事件的最大秒数。
Logging(日志记录)
logging.level
: String, default:
info
relay 的日志级别。以下之一:
off
error
warn
info
debug
trace
在
debug
和trace
级别,Relay 会发出极其冗长的消息,这可能会对应用程序性能产生严重影响。
logging.log_failed_payloads
: boolean, default:
false
将失败事件的完整事件负载记录到日志流中。
logging.format
: String, default:
auto
控制日志格式。以下之一:
auto
: 自动检测(非常适合 TTY,其他则简化)pretty
: 带有颜色的人类可读格式simplified
: 简化的人类可读日志输出json
: JSON 记录,适用于日志软件
logging.enable_backtraces
: boolean, default:
true
如果启用,将所有内部错误的跟踪写回日志流并将它们包含在 Sentry 错误中。
StatsD Metrics(统计指标)
metrics.statsd
: String, optional
如果设置为 host/port 字符串,则指标将报告给此 StatsD 实例。
metrics.prefix
: String, default:
sentry.relay
应添加到所有指标的前缀。
metrics.default_tags
: Map of strings to strings, default: empty
一组应附加到所有传出 StatsD 指标的默认标签。
metrics.hostname_tag
: String, optional
如果设置,则添加给定名称的标签并将其设置为运行 Relay 的机器的 hostname。此配置对于区分多个 Relay 很有用。
metrics.buffering
: boolean, default:
true
在发送到 StatsD server 之前是否会缓冲发出的指标。
这通常会提高性能,但需要注意的是,在流量较低的情况下,指标可能需要多几秒钟才能传播。
metrics.sample_rate
: Float, default 1.0
所有发出的指标的全局采样率。应该在
0.0
和1.0
之间。
如果超出该范围,该值将被归一化(负值将变为0.0
,大于1.0
的正值变为1.0
)。
例如,0.3
的值意味着只有30%
的已发出指标将被发送。
请注意,实施的采样方法不知道指标类型,例如,当采样率小于1.0
时,不会重新调整计数器值。
Internal Error Reporting(内部错误报告)
为 Relay 中发生的错误配置错误报告。默认禁用。
sentry.enabled
: boolean, default:
false
是否向单独的 DSN 报告内部错误。
false
表示不会发送内部错误,但仍会记录。
sentry.dsn
: String, optional
向其报告内部 Relay 故障的 Sentry DSN。
我们建议将其设置为不会向自身发送 Relay 错误的值。
理想情况下,这个值应该直接向 Sentry 发送错误,而不是另一个 Relay。