首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >聊聊使用错误采集平台sentry踩到的坑

聊聊使用错误采集平台sentry踩到的坑

作者头像
lyb-geek
发布于 2023-09-05 04:41:26
发布于 2023-09-05 04:41:26
74600
代码可运行
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路
运行总次数:0
代码可运行

01

前言

sentry简介

Sentry 是一款专业的企业级错误跟踪和日志分析工具,旨在帮助开发人员、管理员和产品经理跟踪、分析和解决应用程序错误和性能问题。

Sentry 的主要功能和优点包括:

错误跟踪: Sentry 可以跟踪应用程序中的错误,并将它们记录下来,以便开发人员能够快速定位和解决问题。

日志分析: Sentry 可以分析应用程序的日志,并提供详细的信息,如错误级别、调用堆栈、数据库访问等,以帮助开发人员快速定位和解决问题。

通知和警报: Sentry 可以通过电子邮件、Slack、PagerDuty 等渠道通知开发人员错误和性能问题的发生,以便及时响应和解决问题。

可扩展性: Sentry 支持自定义错误消息、扩展错误跟踪功能等,开发人员可以根据自己的需求进行自定义和扩展。

团队协作: Sentry 支持团队协作,可以方便地共享错误和日志信息,并支持多人同时编辑和评论。

总的来说,Sentry 是一款功能强大、易于使用的企业级错误跟踪和日志分析工具,可以帮助开发人员和管理人员更好地管理和解决应用程序中的错误和性能问题。

本文主要聊下在使用sentry过程中遇到的一些问题

02

问题锦集

01

问题一:uWSGI listen queue of socket "127.0.0.1:42563" (fd: 3) full !!! (101/100)

这是由于uWSGI的监听队列满了,默认的监听队列长度为100,把监听队列调大就行

具体操作,修改/onpremise/sentry/sentry.conf.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SENTRY_WEB_OPTIONS = {
    ....
    "listen":10240,
   ....
}

不过调了,重启后大概率会报

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Listen queue size is greater than the system max net.core.somaxconn (128)

此时要修改系统参数,如果是通过宿主机部署,则执行vim /etc/sysctl.conf,添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 用于设置内核无法及时处理网络接口收到的数据包时允许发送到队列的最大数据包数目,默认为128。也就是每个监听的socket,在没有accept之前,等待处理的socket队列长度
net.core.somaxconn = 10240

然后执行sysctl -p 重新加载参数。不过如果是基于docker-compose部署sentry,这么加是没效果的。得通过在docker-compose.yml做如下配置

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
   ...:
    image: ...
    container_name: ...
    privileged: true
    sysctls:
      net.core.somaxcomm: '10240'

可以查看如下文档

https://github.com/docker/compose/issues/3765#issuecomment-402929969

02

问题二:a client request body is buffered to a temporary file

在运行大概一周会,再次报

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uWSGI listen queue of socket "127.0.0.1:43523" (fd: 3) full !!! (10241/10240)

说明队列又满了,于是看了nginx,出现问题二的错误,这个问题是因为客户端请求体的缓冲区太小导致写入临时文件

因此可以通过配置如下参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client_max_body_size 100m;
client_body_buffer_size 10M;

将请求体缓存区大小调大。不过调了这个并没解决

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uWSGI listen queue of socket "127.0.0.1:43523" (fd: 3)

后边调大uWSGI 线程数(默认workers是4,thread是3)和keepalive(默认是30s)时长,具体操作如下,修改/onpremise/sentry/sentry.conf.py ,根据系统的cpu核数,适当的调整workers数和thread数,示例配置如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SENTRY_WEB_OPTIONS = {
   ....
    "so-keepalive": True,
    # Keep this between 15s-75s as that's what Relay supports
    "http-keepalive": 60,
    # the number of web workers
    "workers": 8,
    "threads": 8,
 
}

03

问题三:worker 3 lifetime reached, it was running for 86401 second(s)

程序运行大概一周后,不再报

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uWSGI listen queue of socket "127.0.0.1:43523" (fd: 3) full

转而报问题三的错,后边通过

https://stackoverflow.com/questions/66489889/uwsgi-resets-worker-on-lifetime-reached-causes-downtime

找到解决方案,就是将max-worker-lifetime改为 max-worker-lifetime-delta 具体原因可以查看

https://github.com/unbit/uwsgi/issues/2020

示例配置

修改/onpremise/sentry/sentry.conf.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SENTRY_WEB_OPTIONS = {
    ....
    "max-worker-lifetime-delta":86400,
   ....
}

至此sentry运行了大半年都没出现上述问题

03

总结

本文主要是记录在使用sentry过程中,遇到的问题,为什么会记录,因为我在排错的过程中,我一开始是去官方github看issues,看有没有解决答案,其中看到要么是纯理论要么是建议升级版本,通过搜索引擎查了一些资料,也试了很多,发现没解决问题,或者看似解决了,后面又复现了。于是就写了这篇文章,一来可以复盘一下,二来是希望可以帮助到有出现类似问题的伙伴

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sentry9-1-2部署
Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node.js、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
YP小站
2020/06/04
1.8K0
Installing sentry 9.0.0 with postgresql in Centos7
Sentry是一个开源错误跟踪工具,可帮助您实时监控和修复bug。支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
阿dai学长
2019/04/03
1.3K0
Installing sentry 9.0.0 with postgresql in Centos7
uwsgi异常服务器内存cpu爆满
记录线上服务器通过linux性能检测工具glances检测到 cpu、内存爆满,且是uwsgi进程占用,对于服务器内核,以及uwsgi配置优化 参考文章 https://blog.csdn.net/orangleliu/article/details/48531759 uwsgi.log日志报错 Tue Jun 2 17:33:27 2015 - *** uWSGI listen queue of socket "127.0.0.1:9080" (fd: 3) full !!! (101/100) ***
超蛋lhy
2019/12/04
8.9K0
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
除了公开提供其源代码外,Sentry 还提供并维护了一个最小的设置,可以为简单的用例开箱即用。该存储库还可以作为各种 Sentry 服务如何连接以进行完整设置的蓝图,这对于愿意维护更大安装的人很有用。为简单起见,我们为此选择使用 Docker 和 Docker Compose, 以及基于 bash 的安装和升级脚本。
为少
2021/12/15
3.3K0
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
重传问题四阶段优化分享
使用wrk模拟http压力打nginx时,发现压测过程中持续出现重传现象,而且在高压下和低压下都会出现不同程度的重传。
mingjie
2022/05/12
1.1K0
重传问题四阶段优化分享
案例篇:服务吞吐量下降很厉害,怎么分析?
在 Linux 系统中,常见的动态追踪方法包括 ftrace、perf、eBPF/BCC 以及 SystemTap 等。
早起的鸟儿有虫吃
2020/06/28
2.6K0
案例篇:服务吞吐量下降很厉害,怎么分析?
linux中TCP三次握手与四次挥手介绍及调优
TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。
没有故事的陈师傅
2021/08/13
8980
测试格式
因为系统已经装了 python3.6 所以接下来直接装虚拟环境 virtualvenv
py3study
2020/01/02
7390
『学习笔记』Nginx日志分析与性能调优
🎈今日推荐——https://cloud.tencent.com/developer/article/2472042
二一年冬末
2024/11/29
4620
从源码与实战分析TCP半连接队列溢出故障
hping3是一个基于C语言编写的网络性能测试工具,由Salvatore Sanfilippo开发。它能够模拟各种类型的网络包,对服务器进行压力测试,并提供丰富的选项来定制测试。hping3不仅适用于HTTP协议,还支持TCP、UDP、ICMP等多种协议,使其成为一个多功能的网络性能测试工具。
五分钟学SRE
2024/05/01
4500
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
Sentry 为 Docker 提供了一个抽象,以在开发中运行所需的服务,称为 devservices。
为少
2021/12/20
1.7K0
Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS)
推荐一款Python应用错误追踪神器!
Sentry 是一个开源的实时错误追踪系统,用于监视应用程序中的错误并提供详细的错误报告。它支持多种编程语言和框架,如 Python、JavaScript、Node.js、Django、Flask 等,帮助开发人员快速诊断和解决问题,以确保应用程序稳定运行。Sentry 的服务分为服务端和客户端 SDK 两部分,服务端可以直接使用其提供的在线服务,也可以本地自行搭建;客户端 SDK 则提供了对多种主流语言和框架的支持。
测试开发技术
2024/07/11
3810
推荐一款Python应用错误追踪神器!
为最佳性能调优 Nginx
通常来说,一个优化良好的 Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,然而我的 Nginx 服务器可以稳定地达到 904,000 次/秒 的处理性能,并且我以此高负载测试超过 12 小时,服务器工作稳定。 这里需要特别说明的是,本文中所有列出来的配置都是在我的测试环境验证的,而你需要根据你服务器的情况进行配置: 从 EPEL 源安装 Nginx: yum -y install nginx 备份配置文件,然后根据你的需要进行配置: cp /etc/nginx/ngi
用户1263954
2018/01/30
2.4K0
django开发个人简易Blog—nginx+uwsgin+django1.6+mysql 部署到CentOS6.5
前面说完了此项目的创建及数据模型设计的过程。如果未看过,可以到这里查看,并且项目源码已经放大到github上,可以去这里下载。 代码也已经部署到sina sea上,地址为http://fengzhen
古时的风筝
2018/01/08
1.2K0
django开发个人简易Blog—nginx+uwsgin+django1.6+mysql 部署到CentOS6.5
K8S OS 内核性能参数调优
[1] ES Configuration: https://www.elastic.co/guide/en/elasticsearch/reference/2.1/setup-configuration.html#vm-max-map-count [2] root cause kernel soft lockups · Issue #37853 · kubernetes/kubernetes (github.com): https://github.com/kubernetes/kubernetes/issues/37853 [3] service-node-port-range and ip_local_port_range collision · Issue #6342 · kubernetes/kops (github.com): https://github.com/kubernetes/kops/issues/6342 [4] Image: We should tweak our sysctls · Issue #261 · kubernetes-retired/kube-deploy (github.com): https://github.com/kubernetes-retired/kube-deploy/issues/261 [5] Upgrading docker 1.13 on nodes causes outbound container traffic to stop working · Issue #40182 · kubernetes/kubernetes (github.com): https://github.com/kubernetes/kubernetes/issues/40182 [6] arp_cache: neighbor table overflow! · Issue #4533 · kubernetes/kops (github.com): https://github.com/kubernetes/kops/issues/4533
东风微鸣
2022/04/22
2.1K0
vivo AI计算平台 Kubernetes集群Ingress网关实践
vivo 人工智能计算平台小组从 2018 年底开始建设 AI 计算平台至今,已经在 kubernetes 集群、以及离线的深度学习模型训练等方面,积累了众多宝贵的开发、运维经验,并逐步打造出稳定的基础容器平台 - AI 容器平台(VContainer)。为了支撑公司 AI 在线业务的发展,满足公司对算力资源的高效调度管控需求,需要将在线业务,主要包括 C 端、推理等业务,由原来的虚拟机或物理机迁移至 AI 容器平台。于是小组从 2020 年初开始,基于在线业务的需求对 AI 容器平台进行进一步建设,并将平台与公司的 CMDB、CICD 等基础模块进行打通,使在线业务能够顺利从虚拟机、物理机迁移至 AI 容器平台。
深度学习与Python
2020/12/18
7550
Linux 内核参数
对于TCP的初始接收窗口大小,linux和centos的实现是不一样的,如linux内核3.10版本的初始接收窗口定义为10mss,但centos 3.10内核中的初始窗口大小定义为TCP_INIT_CWND * 2,即20*MSS大小。(看着linux源码在centos7.4系统上测试,纠结了好久。。)
charlieroro
2020/03/23
8.9K0
nginx优化 突破十万并发
文章转载于:http://9388751.blog.51cto.com/9378751/1676821
用户1214487
2018/07/31
3.2K0
nginx优化 突破十万并发
分布式任务系统gearman的python实战
Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,开源、多语言支持、灵活、快速、可嵌入、可扩展、无消息大小限制、可容错,与Hadoop相比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资 源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。
sunsky
2020/08/20
8800
Nginx工作原理和优化总结。
NGINX以高性能的负载均衡器,缓存,和web服务器闻名,驱动了全球超过 40% 最繁忙的网站。在大多数场景下,默认的 NGINX 和 Linux 设置可以很好的工作,但要达到最佳性能,有些时候必须做些调整。首先我们先了解其工作原理。
黄规速
2022/04/14
1.2K0
Nginx工作原理和优化总结。
相关推荐
Sentry9-1-2部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验