Sentry 企業級資料安全解決方案 - Relay 配置選項

為少發表於2022-01-07

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: 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_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。

相關文章