惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
MyScale Blog
MyScale Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
Last Week in AI
Last Week in AI
罗磊的独立博客
G
Google Developers Blog
Y
Y Combinator Blog
博客园 - 【当耐特】
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
美团技术团队
宝玉的分享
宝玉的分享
Jina AI
Jina AI
小众软件
小众软件
T
Tailwind CSS Blog
A
About on SuperTechFans

est の 输入 输出和出入

海南之行后记 The httpx 1.0 situation Mimocode/Opencode 的 Responses API 支持 git fetch 实现断点续传 继续搓英汉双解词典v3 邮箱生态调研2026 “畜牲” 飞书并入豆包,文档是否减少? 从菲尔兹奖谈「包养」 iosevka字体让中文 ASCII diagram 图表对齐 为什么 Github OAuth 故意拦截 CORS gitweets改版,复刻微信「朋友圈」 MiMoCode 干完活儿发通知 写作能力和 locate cost grep vs sqlite 谁更适合微信聊天记录? [AI] curl -NT. 导致100% CPU原因 或许「数羊」真是个有效的入睡法 唯物主义「天命」论 我的 Vibe Coding 最佳实践——ADR文档 MacOS 快速插入当前时间 locate cost 基于 git 的零拷贝静态web服务器 AI和柜台费 Sutton 论 discovery Elon Musk 五步工作法 Playlet:DLNA听歌神器 免安装app播放NAS里的歌 不修改nginx接收websocket AI 硬伤 理解LLM的范式——它就是个差分机? 路径依赖
Sentry 替代品 Bugsink 安装配置
est · 2026-05-06 · via est の 输入 输出和出入

如果你像我一样需要一个线上异常 traceback 跟踪工具,又没法忍受 Kafka/ClickHouse/Snuba/Zookeeper 这一坨依赖,那么归根结底有三个选择

  1. sentry<10.0 大概是2019年之前的版本,只依赖db/redis,太老
  2. glitchtip 除了错误跟踪也支持 uptime 等
  3. bugsink。不支持 Android/Java 的在线符号化(无 mapping 上传)

最后选了 bugsink 。记录一下 pip 安装部署的坑

下面的配置指 bugsink-create-conf 命令生成的 bugsink_conf.py

避免安装 MySQLdb

docker编译环境一坨,改纯py的 pymysql 代替,在配置顶部写

import pymysql; pymysql.install_as_MySQLdb()

CSRF

前面有一层 nginx 反代,然后一直报 CSRF 错误,因为 X-Forwarded-Proto 没值,所以 django csrf middleware 当成http给拦了。修改方法是配置里加一行

SECURE_PROXY_SSL_HEADER = ("HTTP_ORIGIN", BUGSINK['BASE_URL'])

厂家遥测

配置里 PHONEHOME = False

如果不这样干,我记得会启动报错。需要

from django.apps import apps
Installation = apps.get_model("phonehome", "Installation")
Installation.objects.create()

绕过 migration 建表

手上没pg,django高版本居然限制死了 mysql > 8.0 无语。

直接配置里加两句

from django.db.backends.mysql.features import DatabaseFeatures
DatabaseFeatures.minimum_database_version = None

实测 bugsink跑在mysql 5.6 完全ok,没用到任何高版本特性。纯纯是 django框架在作妖,懒得支持 EOF

跳过 migration

我执行 bugsink-manage migrate 发现mysql 5.6 太老了。于是想办法直接建表而不是一步一步migrate。获得所有建表语句是:

import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bugsink_conf")
django.setup()

from django.apps import apps
from django.db import connection

with connection.schema_editor(collect_sql=True) as editor:
    for model in apps.get_models():
        editor.create_model(model)

print("\n".join(editor.collected_sql))

打印出来比较乱,建议让AI重新整理一版,让 CONSTRAINT,FOREIGN KEY 都写到一起。更加方便一次性生效

吐槽下 django 这种 migration 真是不方便。明明新系统直接一次性建表就行。

建表之后要登记一下 migration 完毕 python manage.py migrate --fake-initial

日期格式

本来想配置里加

DATETIME_FORMAT = "c"   # ISO 8601
DATE_FORMAT = "Y-m-d"
TIME_FORMAT = "H:i:s"

不过发现bugsink代码里日期格式是写死的。改起来太麻烦,作罢