Django-CSR架构总结Sentry

解决问题

  • 应用的错误,异常监控统计,报警通知
  • 性能监控统计,对问题进行跟踪

Sentry架构之美

  • API简单、易用,自动集成
  • 安装简单:架构依赖多,但使用Docker可以一个命令安装
  • 自动对错误,异常进行统计聚合,按照上下文的Tag进行聚合
  • 可以对性能进行统计分析,可抽样
  • 可视化的趋势分析
  • 多租户,支持双因素认证,敏感内容自动脱敏
  • 开放的架构:可与AD域账号集成,与Google/Stackoverflow等账号集成
  • 开放的架构:有完善的插件支持:webhook/GitlablJira/Slack/PushOver/….
  • 支持不同环境(开发测试、预发、线上)
  • 可以配置灵活的告警
  • 跨端的支持:Python/Java/JavaScript/Ruby/Go/ …, Android /iOS/Web/…

Sentry中的概念

Sentry中的概念

  • symbolicator:用来解析函数名,堆栈中的文件位置,代码上下文
  • Relay:用来处理收到的请求,会立刻返回200或者429,然后把事件放在内存中排队,然后发到Kafka ingest-events
  • ngest-consumer:消费处理Relay发出的消息
  • process_event:堆栈处理,插件预处理
  • postgresql:用来保存完整的事件数据
  • Snuba:事件数据的存储和查询服务
  • clickhouse:用作数据仓库,用于OLAP,搜索,聚合,标签统计

Sentry整体架构

Sentry整体架构

Snuba的作用

Snuba的作用

  • 用作搜索,图计算,规则处理查询
  • Snuba对 ClickHouse进行抽象和隔离
  • 由两个部分组成的服务
  • 提供数据的查询、聚合统计分析服务