开发者社区 > 云原生 > 云原生可观测 > 正文

友邦人寿可观测性体系的架构,总体设计思路是什么?

已解决

友邦人寿可观测性体系的架构,总体设计思路是什么?

展开
收起
游客lmkkns5ck6auu 2022-08-24 10:51:28 342 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    • 第一层为采集层。 因为要符合友邦的技术架构和建设需求,我们选择用 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 可下载完整版

    2022-08-24 15:48:27
    赞同 展开评论 打赏

云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。

相关电子书

更多
MaxCompute Serverless 架构演进 立即下载
阿里云消息队列的 Serverless架构演进 立即下载
青团社云原生架构实践—亿级灵活用工平台的架构实践 立即下载