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。