这篇文章回顾了我们在自托管之外使用Relay时的指导方法,即在您的硬件上运行Relay并将事件转发到sentry.io。注意事项我们建议使用DockerHub上可用的带有Git修订标识符的官方Docker映像(getsentry/Relay)运行Relay,而不是从源代码构建。https://hub.docker.com/r/getsentry/relay/我们建议至少运行两个Relay实例(容器),前面有一个反向代理(例如HAProxy或Nginx),以提高可用性并简化Relay更新。https://www.haproxy.org/https://nginx.org要监控您的中继设置、配置日志记录、指标和健康检查。https://docs.sentry.io/product/relay/monitoring/#logginghttps://docs.sentry.io/product/relay/monitoring/#metricshttps://docs.sentry.io/product/relay/monitoring/#health-checks系统要求和建议以下建议假定Relay在Docker中运行。ResourceRecommendedCPURequired:x86-64(amd64)CPUarchitecture多核CPU内存建议每个Relay容器至少有2GB的RAM。网络带宽:确保您有足够的容量来接收和转发计划的数据量。默认情况下,Relay会将所有上游请求压缩到sentry.io,但压缩率可能会因提交事件的类型和形状而异。延迟:中继可以容忍网络延迟达到一定程度。但建议将到上游的往返时间保持在5秒以下。存储中继目前不需要磁盘存储。Relay是一个多线程应用程序,它试图利用所有可用的CPU内核。因此,Sentry强烈推荐在多核CPU上运行Relay。如果您的设置预计每秒处理超过100个请求,我们建议在至少四(4)个CPU内核上运行Relay。默认情况下,每个Relay实例将使用可用核心的总数来调整其线程池的大小。此行为通过配置limits.max_thread_count进行调整。示例配置此示例配置设置基本日志记录和指标设置,并更改默认并发级别。---relay:#TheupstreamhostnameitakenfromyourDSNs.#GotoyourProjectSettings,然后“ClientKeys(DSN)”查看它们。上游:https://___ORG_INGEST_DOMAIN___.host:0.0.0.0port:3000logging:level:infoformat:jsonmetrics:statixsd:117:81prefix:127.0.0.0:relaylimits:#Basesizeofvariousinternalthreadpools.DefaultstothenumberoflogicalCPUcoresmax_thread_count:8有关所有可用选项的详细说明,请参阅配置选项页面。PerformanceTuningRelay提供多种配置选项。更改某些选项比其他选项更能影响中继的行为。下面的列表列出了几个选项,当您想要将Relay调整到组织的环境和工作负载时,您应该首先检查这些选项:limits.max_concurrent_requests(默认值:100)您的Relay实例可以向上游发送的并发请求数(哨兵)。如果您的事件量或Sentry的连接延迟很高,您可以增加此值以获得额外的吞吐量,尽管增加是以额外的网络连接为代价的。cache.event_buffer_size(默认值:1000)中继在开始拒绝新事件之前可以在其本地队列中缓冲多少事件。例如,当网络问题阻止Relay将接收到的消息转发给Sentry时,增加该值也会增加Relay潜在的内存消耗。cache.event_expiry(以秒为单位,默认值:600)中继在丢弃事件之前可以将缓冲事件保留在内存中多长时间。如果您预计中继可能需要将事件保留在内存中的时间超过默认值,则可以增加此值。cache.project_expiry(以秒为单位,默认值:300)为了跟上进度,Relay会定期从上游的Sentry获取项目配置。此设置控制中继获取此配置的频率。您可以减小此值以使配置传播更频繁。例如,如果您稍后在Sentry的项目设置中更改数据清理选项,您的Relay实例将更快地意识到这些更改。cache.project_grace_period(以秒为单位,默认:0)项目配置过期后还能使用多长时间。当上游无法访问时,增加此值可能会有所帮助;例如,由于网络问题。请求路由SDK在一组端点上与哨兵通信。Relay提供相同的API以进行无缝替换。这需要访问一组端点:/api//envelope//api//minidump//api//security//api//store//api//unreal/根据SDK或客户端,请求这些端点使用Compressedcontent-encoding或chunkedtransfer-encoding执行。基于Relay前面的基础结构,请检查以下HTTP标头是否设置正确:Host:到此Relay的公共主机名X-Forwarded-For:到客户端IP地址X-Sentry-Auth:提供的值通常由客户端代理的Request设置默认的最大bodysize。特别是本机崩溃报告和附件可能会超出这些限制。我们建议将最大客户端正文大小配置为100MB。在内部,Relay向已配置的上游发出请求以转发数据和检索项目配置。我们强烈建议不要限制这些请求。目前,Relay向以下端点发出基本操作请求:以上所有端点:/api/0/relays/projectconfigs//api/0/relays/publickeys//api/0/relays/register/challenge//api/0/relays/register/response/【责任编辑:吴晓燕TEL:(010)68476606】
