Sentry 企業級數據安全解決方案 - Relay 配置選項
Relay 的配置記錄在文件 .relay/config.yml 中。要更改此位置,請將 --config 選項傳遞給任何 Relay 命令:
- ./relay run --config /path/to/folder
所有配置 key 都是 snake_case。
Relay
以下記錄了 Relay 的常規設置:
- : 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
- elay 應該綁定到的主機(網絡接口)。示例: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: 60 (1 minute)
- 不存在的條目的緩存超時。
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 or 1KiB (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。