Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >聊聊使用错误采集平台sentry踩到的坑

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

原创
作者头像
lyb-geek
发布于 2023-07-11 03:48:56
发布于 2023-07-11 03:48:56
52500
代码可运行
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路
运行总次数:0
代码可运行

前言

sentry简介

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

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

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

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

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

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

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

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

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

问题锦集

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

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

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

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

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

代码语言:text
AI代码解释
复制
Listen queue size is greater than the system max net.core.somaxconn (128)

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

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

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

示例:

代码语言:yaml
AI代码解释
复制
version: '3'
services:
   ...:
    image: ...
    container_name: ...
    privileged: true
    sysctls:
      net.core.somaxcomm: '10240'

可以查看如下文档

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

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

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

代码语言:text
AI代码解释
复制
uWSGI listen queue of socket "127.0.0.1:43523" (fd: 3) full !!! (10241/10240)

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

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

代码语言:text
AI代码解释
复制
client_max_body_size 100m;
 client_body_buffer_size 10M;

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

代码语言:text
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数,示例配置如下

代码语言:python
代码运行次数: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,
 
}

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

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

代码语言:text
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

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

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

总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nginx优化 突破十万并发
文章转载于:http://9388751.blog.51cto.com/9378751/1676821
用户1214487
2018/07/31
3.2K0
nginx优化 突破十万并发
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
重传问题四阶段优化分享
使用wrk模拟http压力打nginx时,发现压测过程中持续出现重传现象,而且在高压下和低压下都会出现不同程度的重传。
mingjie
2022/05/12
1.1K0
重传问题四阶段优化分享
Sentry9-1-2部署
Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node.js、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
YP小站
2020/06/04
1.8K0
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
推荐一款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
Airflow2.2.3 + Celery + MYSQL 8构建一个健壮的分布式调度集群
前面聊了Airflow基础架构🔗,以及又讲了如何在容器化内部署Airflow🔗,今天我们就再来看看如何通过Airflow和celery构建一个健壮的分布式调度集群。 1集群环境 同样是在Ubuntu 20.04.3 LTS机器上安装Airflow集群,这次我们准备三台同等配置服务器,进行测试,前篇文章🔗[1]中,我们已经在Bigdata1服务器上安装了airflow的所有组件,没看过的可以点击链接先看下之前的文章,现在只需要在其他两个节点安装worker组件即可。 Bigdata1(A) Bigdata2
公众号: 云原生生态圈
2022/02/16
2K0
Airflow2.2.3 + Celery + MYSQL 8构建一个健壮的分布式调度集群
从源码与实战分析TCP半连接队列溢出故障
hping3是一个基于C语言编写的网络性能测试工具,由Salvatore Sanfilippo开发。它能够模拟各种类型的网络包,对服务器进行压力测试,并提供丰富的选项来定制测试。hping3不仅适用于HTTP协议,还支持TCP、UDP、ICMP等多种协议,使其成为一个多功能的网络性能测试工具。
五分钟学SRE
2024/05/01
4500
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
除了公开提供其源代码外,Sentry 还提供并维护了一个最小的设置,可以为简单的用例开箱即用。该存储库还可以作为各种 Sentry 服务如何连接以进行完整设置的蓝图,这对于愿意维护更大安装的人很有用。为简单起见,我们为此选择使用 Docker 和 Docker Compose, 以及基于 bash 的安装和升级脚本。
为少
2021/12/15
3.3K0
Sentry 监控 - 私有 Docker Compose 部署与故障排除详解
Nakama Server,服务器配置
YAML 配置文件配置 Nakama 服务器运行方式的许多方面。您可以在不指定配置文件的情况下运行 Nakama(而是依赖默认设置)。
为少
2021/05/27
1.6K0
Nakama Server,服务器配置
案例篇:服务吞吐量下降很厉害,怎么分析?
在 Linux 系统中,常见的动态追踪方法包括 ftrace、perf、eBPF/BCC 以及 SystemTap 等。
早起的鸟儿有虫吃
2020/06/28
2.6K0
案例篇:服务吞吐量下降很厉害,怎么分析?
测试格式
因为系统已经装了 python3.6 所以接下来直接装虚拟环境 virtualvenv
py3study
2020/01/02
7380
Python网络框架——Web服务器
小编说:Web服务器是连接用户浏览器与Python服务器端程序的中间节点,在网站建立的过程中起着重要的作用。目前最主流的Web服务器包括Nginx、Apache、lighthttpd、IIS等。Python服务器端程序在Linux平台下使用最广泛的是Nginx。
博文视点Broadview
2020/06/12
2.1K0
Python网络框架——Web服务器
linux中TCP三次握手与四次挥手介绍及调优
TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。
没有故事的陈师傅
2021/08/13
8980
分布式任务系统gearman的python实战
Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。Gearman是一个分发任务的程序框架,可以用在各种场合,开源、多语言支持、灵活、快速、可嵌入、可扩展、无消息大小限制、可容错,与Hadoop相比,Gearman更偏向于任务分发功能。它的任务分布非常简单,简单得可以只需要用脚本即可完成。Gearman最初用于LiveJournal的图片resize功能,由于图片resize需要消耗大量计算资 源,因此需要调度到后端多台服务器执行,完成任务之后返回前端再呈现到界面。
sunsky
2020/08/20
8800
Nginx工作原理和优化、漏洞。
http://blog.csdn.net/hguisu/article/details/8930668 (排名100多bolg写的很好)
bear_fish
2018/09/20
2.6K0
Nginx工作原理和优化、漏洞。
ARM 环境中部署 Dify
将下面内容保存为 arm-images.yaml,执行 docker compose -f arm-images.yaml pull 拉取所需镜像:
AlphaHinex
2024/11/25
1.8K1
ARM 环境中部署 Dify
『学习笔记』Nginx日志分析与性能调优
🎈今日推荐——https://cloud.tencent.com/developer/article/2472042
二一年冬末
2024/11/29
4620
相关推荐
nginx优化 突破十万并发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验