Sentry(v20.12.1) K8S云原生架构探索,玩转前/后端监控与事件日志大数据分析,高性能高可用+可扩展可伸缩集群部署
Sentry
算是目前开源界集错误监控,日志打点上报,事件数据实时分析最好用的软件了,没有之一。将它部署到 Kubernetes
,再搭配它本身自带的利用 Clickhouse
(大数据实时分析引擎)构建的 Snuba
服务进行数据分析~简直了。(已无敌😂)
在实战之前,我们先跟随官方文档初步了解下 Sentry
的整体项目架构。
项目架构
这一节,来自于官方文铛。
注意:最新官方版 20.12.1
,截止到今天。
它的架构细节可能又发生了演进,从已启动的容器来看。
高层概述
边线表示 Sentry 服务依赖关系图
事件管道
如何保存事件。边线表示通过系统的数据流。
由于布局限制,此图非常简化。此图表中缺少:
- Relay 如何获取项目配置。答:来自 sentry-web
- Relay 如何缓存项目配置。答:在内存中,在 Redis 中
- Relay 如何计数事件并跟踪 quotas(配额)。答案:更多 Redis
- Symbolicator 作为 symbolicate-event 的辅助服务
- 如何触发警报。回答:postprocess-event,一个 Celery 任务,负责报警(由一个Kafka消费者在Sentry中从eventstream读取数据)
- 可能更多
有关更多信息请阅读 Path of an event through Relay 和 Event Ingestion Pipeline。
通过 Relay 的事件路径
事件提取管道
部署实战
Helm Charts
这里我用的是:sentry-kubernetes/charts
Helm 一键部署
注意:Helm 部署是一个比较专业的话题(要玩好,注意拖运维大佬下水😂),如:
- 持久化是否采用分布式存储 or NFS...
- 是否采用外部(公司运维老板维护的)的 Redis 集群
- 是否采用外部的 Kafaka 集群
- 是否采用外部的 RabbitMQ 集群
- 是否采用外部的 Postgresql 集群
- 是否采用外部的 Clickhouse 集群
- 等等......
试玩:
helm repo add sentry https://sentry-kubernetes.github.io/charts
helm repo update
helm search repo sentry
# sentry/sentry 8.1.0 20.12.1 A Helm chart for Kubernetes
# 我这里用的是这个版本
helm install sentry sentry/sentry --version 8.1.0 -n sentry
你没看错,我这里足足给你启动了 34
个容器(too young, too simple, sometimes naive😂
):
中文文档陆续同步到:
我是为少。
微信:uuhells123。
公众号:黑客下午茶。
谢谢点赞支持👍👍👍!
6 声望
1 粉丝
推荐阅读
如何构建一个多人(.io) Web 游戏,第 1 部分
如果您以前从未听说过 .io 游戏:它们是免费的多人 web 游戏,易于加入(无需帐户),并且通常在一个区域内让许多玩家相互竞争。其他著名的 .io 游戏包括 Slither.io 和 Diep.io。
为少阅读 1.9k
从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...
乌柏木赞 60阅读 6k评论 16
再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...
libinfs赞 39阅读 6.2k评论 12
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...
乌柏木赞 41阅读 7.1k评论 6
CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^<...
XboxYan赞 42阅读 2.8k评论 14
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库
XboxYan赞 34阅读 2.2k评论 2
从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...
乌柏木赞 32阅读 6.1k评论 9
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。