Sentry 是集错误监控与性能监控、指标分析于一身的开源软件。可帮助开发人员快速诊断、修复和优化其代码的性能。Sentry 支持 30 多种编程语言。还集成了一大堆有用的工具,如 GitHub、Slack 和 Jira 等。
本文档用作针对 Sentry 进行开发的参考点,以及有关运行 Sentry 服务的更详细信息。
入门
我们建议在对 Sentry 进行更改之前,先浏览一下通用文档。
- Commit 消息
- https://sentry-dev.hacker-linner.com/commit-messages/
- 代码审查
- https://sentry-dev.hacker-linner.com/code-review/
- 环境
- https://sentry-dev.hacker-linner.com/environment/
- 工作流
- https://sentry-dev.hacker-linner.com/workflow/
- Python 依赖
- https://sentry-dev.hacker-linner.com/python-dependencies/
- 翻译
- https://sentry-dev.hacker-linner.com/translations/
- 文档指南
- https://sentry-dev.hacker-linner.com/docs/
您还可以查看 Sentry Dockerfile 以获取有关如何配置 Sentry 服务器(包括其系统依赖项)的更多信息。
- https://github.com/getsentry/sentry/blob/master/docker/Dockerfile
架构
事件管道
如何保存事件。边代表通过系统的数据流。
下图一,简化版本。
Relay
如何获取项目配置。答案:来自sentry-web
Relay
如何缓存项目配置。答案:在内存中,在Redis
中Relay
如何计算事件并跟踪配额。答案:更多Redis
Symbolicator
作为symbolicate-event
的辅助服务- 如何触发警报。答案:
postprocess-event
,负责警报的Celery
任务(由Sentry
中的Kafka consumer
从eventstream
中读取),等等。
更多信息:
- https://getsentry.github.io/relay/relay_server/index.html#path-of-an-event-through-relay