­

Sentry 企業級數據安全解決方案 – Relay 配置選項

Relay 的配置記錄在文件 .relay/config.yml 中。要更改此位置,請將 --config 選項傳遞給任何 Relay 命令:

❯ ./relay run --config /path/to/folder

所有配置 key 都是 snake_case

系列

Relay

以下記錄了 Relay 的常規設置:

relay.mode

: String, default: managed, 可能的值: managed, static, proxycapture


控制 Relay 如何獲取事件的項目配置。有關這些模式的詳細說明,請參閱 Relay模式

relay.upstream

: String, default: //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_expirycache.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 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

debugtrace 級別,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.01.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。