- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
上一篇文章说了重启 sentry 的事 。
因为过程太折腾了,一度想过放弃 sentry 换成其他比较轻量级的开源监控系统 。
这不就给我找到了另外俩个 。
这次就来试试这个 glitchtip 。
用了之后才发现,这个也是用 Django 开发的,而且兼容 sentry 协议,连 SDK 都用的 sentry 的… 。
就是个 sentry 的轻量级平替版 。
相比起 sentry ,glitchtip 非常的轻量,只用到了 redis 和 celery 。
日志数据是存在 PostgreSQL 里的 。
这就很舒服了,部署起来比 sentry 这种重量级的框架简单多了 。
本文的部署基于官方的 docker-compose 配置修改而来 。
首先准备数据库 。
官方的 compose 里带有一个数据库,不过我服务器上已经有数据库了,就不要重复搞那么多容器 。
services:
db:
image: postgres
container_name: pgsql
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=数据库管理员密码
expose:
- 5432
ports:
- 5432:5432
volumes:
- ./data:/var/lib/postgresql/data
networks:
- default
networks:
default:
name: pgsql
把pgsql启动之后,先来创建 glitchtip 用到的数据库和用户 。
-- 创建用户: 使用 CREATE ROLE 或 CREATE USER 命令来创建一个新用户。
CREATE USER glitchtip WITH PASSWORD 'glitchtip用户密码';
-- 赋予权限: 要确保 glitchtip 用户只能访问 glitchtip 数据库,你需要为该用户设置适当的权限。
GRANT ALL PRIVILEGES ON DATABASE glitchtip TO glitchtip;
-- 授予在 public 模式中创建表的权限
GRANT CREATE ON SCHEMA public TO glitchtip;
-- 授予在 public 模式中使用的权限
GRANT USAGE ON SCHEMA public TO glitchtip;
这里数据库的就搞定了 。
如果想在网页上管理数据库,可以启动一个 adminer 服务 。
services:
adminer:
image: adminer
container_name: adminer
restart: always
networks:
- swag
- pgsql
- mysql
networks:
swag:
name: swag
external: true
pgsql:
name: pgsql
external: true
mysql:
name: mysql
external: true
启动之后在 swag 做一下8000端口的反代即可.
redis 比较轻,建议使用 glitchtip 里的即可,不需要使用共用的 Redis 。
除非搭了集群 。
我修改了一下官方提供的 compose 配置 。
有几点需要注意:
urllib.parse.quote()
转义,我这里依然使用企业邮箱,不过试了smtp://
和smtps://
前缀都没法发送成功x-environment: &default-environment
DATABASE_URL: postgres://glitchtip:glitchtip用户密码@pgsql:5432/glitchtip
SECRET_KEY: 建议32位随机密码 # 可以使用命令生成 openssl rand -hex 32
PORT: 8000
EMAIL_URL: smtp://邮箱地址:邮箱密码@smtp.exmail.qq.com:465
GLITCHTIP_DOMAIN: https://glitchtip.example.com
DEFAULT_FROM_EMAIL: 邮箱地址
CELERY_WORKER_AUTOSCALE: "1,3"
CELERY_WORKER_MAX_TASKS_PER_CHILD: "10000"
x-depends_on: &default-depends_on
- redis
services:
redis:
image: redis
restart: unless-stopped
networks:
- default
web:
image: glitchtip/glitchtip
depends_on: *default-depends_on
ports:
- "8000:8000"
environment: *default-environment
restart: unless-stopped
volumes:
- ./uploads:/code/uploads
networks:
- default
- pgsql
- swag
worker:
image: glitchtip/glitchtip
command: ./bin/run-celery-with-beat.sh
depends_on: *default-depends_on
environment: *default-environment
restart: unless-stopped
volumes:
- ./uploads:/code/uploads
networks:
- default
- pgsql
migrate:
image: glitchtip/glitchtip
depends_on: *default-depends_on
command: "./manage.py migrate"
environment: *default-environment
networks:
- pgsql
- default
networks:
default:
name: glitchtip
swag:
name: swag
external: true
pgsql:
name: pgsql
external: true
启动就完事了 。
首次启动后需要 migrate ,这时候 worker 会报错,没事,等 migrate 完成就好了.
登录后注册、创建一个新组织,就可以正常使用了.
如果单纯用 glitchtip,当成 sentry 来用就行了 。
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="YOUR-GLITCHTIP-DSN-HERE",
integrations=[DjangoIntegration()],
auto_session_tracking=False,
traces_sample_rate=0.01,
release="1.0.0",
environment="production",
)
就这么朴实无华 。
PS: 话说为什么要和sentry同时使用?
sentry_sdk 默认不支持同时初始化多个实例 。
所以通过一些额外的逻辑来实现这个功能 。
class GlitchtipSentrySdk:
def __init__(self, dsn):
self.client = sentry_sdk.Hub(sentry_sdk.Client(dsn))
def capture_exception(self, exc):
with self.client:
sentry_sdk.capture_exception(exc)
glitchtip = GlitchtipSentrySdk('https://balabalaba@glitchtip.example.com/1')
搞定了 。
简单体验下来,glitchtip真的简陋很多 。
不过最基本的错误收集功能还是有的 。
如果服务器性能不够的话,作为sentry的平替还是不错的.
还有个 highlight 我还没部署上,里面的配置有点复杂.
最后此篇关于兼容sentry协议的轻量级监控,glitchtip的文章就讲到这里了,如果你想了解更多关于兼容sentry协议的轻量级监控,glitchtip的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个工作正常的 Sentry 服务器。 raven test -> Sending a test message... success! 我有一台装有 django 1.3 和 raven 1.
使用 Sentry 7.7,在 Docker 的前提下。一切正常,但消息分组很奇怪: 它们是相同的事件,只有一条消息和一个时间戳,但它们并没有组合在一起,为什么? 最佳答案 谢谢@David, 使用指
例如: 我通过在搜索栏中搜索特定用户的电子邮件地址来搜索发生在特定用户身上的错误。这让我回到了错误列表。当我单击其中一个错误时,它会向我显示发生在其他用户身上的类似错误。如何找到我搜索的用户发生的确切
我知道如何开始哨兵。 但是,当我更改sentry.conf.py时,如何使其起作用? 我运行了岗哨帮助,找不到岗哨停止或重新启动commond。 有没有一种方法可以重新启动哨兵服务器? 最佳答案 我自
如何在 Sentry 中自定义用户反馈表? 默认情况下,它会说“看起来我们遇到了一些内部问题”。 是否可以更改消息、收集的数据等? 谢谢。 最佳答案 有一个 API here ,但你必须得到一个 ev
我目前正在将 Sentry 集成到 Angular 网络应用程序中。我成功地将 Sentry 中的 console.log/warn/error 和异常报告为“问题”。 但是,当对我的服务器的请求失败
我是新来的哨兵。 Sentry 中的客户端 key (DSN) 在哪里? 在我的项目页面中,有问题、概览、用户反馈、发布选项卡。 但是没有设置。 哨兵说 “正在寻找 SDK 的 DSN?您会在 [项目
这是给 Sentry (Open-source error tracking)用户。 我尝试了一些代码,但没有成功。我希望你能调查一下。 提前感谢大家。 我已经下载了 SDK zip 并将其上传到服务
即使错误已成功发送,Sentry Dashboard 仍未更新的原因是什么? 我尝试模拟错误并在 Raven 库中记录从获取异常到发送给 Sentry 的整个过程。 Raven 返回了 200 Htt
我正在尝试在我的项目上启用用户反馈功能。到目前为止,我尝试了几件事但没有成功。我正在使用 django 1.11 和 raven 6.8.0 我也遵循了这个解决方案 - [DOCS] Django I
我接手了一个使用 python 和 flask 的项目(我也是 python/flask 的新手!)。我想向其中添加 Sentry 以捕获发生的任何错误/异常。为了增加复杂性,该项目被拆分为多个相互链
我已经包含 Sentry 来跟踪我的移动应用程序的崩溃。它工作正常,现在我想向 Sentry 发送警告消息以跟踪它们。有没有办法从 JavaScript 端做到这一点。谢谢。 最佳答案 // set
我有一个 create-react-app 项目,我希望部署过程生成一个 Sentry 版本并将源映射也上传到 Sentry。 最佳答案 此脚本将为 package.json 文件中指定的版本创建一个
我将为我的 Android 应用程序使用 Sentry。我公司使用的是自托管的 Sentry,版本 9.0.0。当我使用 sentry-cli 运行 sentry-cli info 命令时,我得到以下
我正在使用 Tomcat (7.0.70) + sentry(sentry 和 sentry-spring)+ JUL 以及以下 logging.properties WEB-INF/classes
编辑:标题并添加一些代码示例。 我正在尝试弄清楚如何使用相同的 DSN 将 Celery 工作程序和 Flask 日志记录发送到 Sentry。 设置如下: Flask 应用向 Celery Work
我将为我正在处理的 Android 项目使用 Sentry。我公司使用的是自托管的 Sentry,版本 9.0.0 我关注了Sentry.io Installation Guide . 这些权限已添加
我的应用程序正在使用 slf4j,自然地,我有一个 logback.xml 文件。我尝试向该文件添加一个 Sentry 附加程序。这是我的 logback.xml 文件。
我正在使用 webpack 构建我的应用程序,它可以在本地使用 @sentry/webpack-plugin – 它自动生成发布并将源 map 上传到 Sentry。 但是,如果我尝试在 Heroku
背景: 默认情况下,Sentry 服务将用户 hive、hue 和 impala 作为哨兵管理员。这与 Cloudera Manager (CM) sentry.service.admin.group
我是一名优秀的程序员,十分优秀!