友邦人寿可观测性体系的架构,总体设计思路是什么?
• 第一层为采集层。 因为要符合友邦的技术架构和建设需求,我们选择用 Java 编写流水线的 CICD数据采集器。研发人员在使用 Jenkins 进行应用的 build 或 deploy 时,该采集 器能将应用构建的数据和部署的数据全部存到数据库里。另外,采集数据时加 上了相关联的 tag,实现了元数据的共享。比如流水线构建的应用名称必须与k8s 的服务名称一致,构建失败时即可快速找到出错的应用。
此外,针对应用的 APM 探针,社区一般使用字节码增强的无侵入技术。但是由 于友邦架构的复杂度,Skywalking 探针无法完全覆盖友邦的场景。同时,友邦 对于深度性能的诊断也有较高要求,希望能够集成阿里开源的 Arthas、Memory dump 等能力,APM 探针也会影响应用性能,因此我们最终选择经过双 11 大 规模检验的 ARMS Agent。
各类云产品中间件、集群的监控指标采集主要通过 Prometheus;应用日志主要 使用 DaemonSet 的方式进行采集,相比于 Sidecar,其占用资源更少,工程上也 更为简单。
• 第二层为存储层。 研发态的元数据和 pipeline 的构建数据因其数据量不大,而且是结构化形态, 因此存储在 MySQL 里。Metrics 监控指标的数据存储在阿里云的 Prometheus 产品上,日志和调用链 Tracing 数据存储在阿里云的 SLS 产品上。考虑到业务 的增长,未来会产生大量的数据,这两款产品能够保证监控系统的稳定性、可 扩展性和高可用性。同时,两款产品都是 Serverless 化持续按量付费,不存在 磁盘或空间浪费。
• 第三层为统一展示层。 通过 Grafana 进行汇聚和展示。当时阿里还未推出托管版的 Grafana,因此我 们选择自建,推荐使用 8.0 以上的版本。为了保证运行的高可用,需要多实例部 署,并将配置的数据统一传到数据库里,然后根据此前设计的监控指标,选择对应的数据源编写查询语句,最终结合 grafana 丰富的图表进行统一展示。 业务监控的实现是通过将采集到 SLS 里的业务日志和应用日志做统计分析。SLS 的 SQL 查询功能非常丰富,语句编写也非常方便。再通过 SLS Grafana 插件集 成到 Grafana 里,最终业务统计数据即可在 Grafana 大盘进行展示。
以上内容摘自 《2021 阿里云可观测技术峰会演讲实录合辑(上)》 电子书,点击https://developer.aliyun.com/ebook/download/7769 可下载完整版
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。