【译】SpringBoot 微服务监控
原文地址:Monitor Spring Boot microservices 使用 Micrometer、Prometheus 和 Grafana 为 Spring Boot 微服务构建全面的监控能力 作者:Tanmay Ambre 发布时间:2020 年 3 月 11 日 介绍 在使用微服务和事件驱动架构(EDA)时,包括监控、日志、追踪和警报等方面的可观察性是一个架构十分重要的关注点,主要是因为: 大规模的部署需要集中且自动化的监控与可观测能力 架构的异步性和分布式性质使得关联多个组件产生的指标变得困难 解决这个架构问题可以简化架构管理,并加快解决运行时问题的周转时间。它还有助于做出明智的架构、设计、部署和基础设施,以改善平台的非功能特性。此外,自定义指标的产出、收集和可视化可以为业务或运营带来其他有用的信息。 然而在实际的架构应用中,这个问题经常被忽略。本教程通过使用 Micrometer、Prometheus 和 Grafana 等开源工具对 Java 和 Spring Boot 微服务的可观察性进行监控,相信会成为该方面最佳的实践指南。 先决条件 在你开始本教程之前,你需要设置以下环境: 拥有 Docker Compose 工具的 Docker 环境 一个用于克隆和编辑 git repo 中的代码的 Java IDE 预计时间 完成本教程大约需要 2 个小时。 监控概述 监控工具的主要目标是: 监控应用程序性能 为利益相关者(开发团队、基础架构团队、运营用户、维护团队和业务用户)提供自助服务。 协助进行快速问题溯源分析(RCA) 建立应用程序的性能基线 如果使用云服务,提供云使用成本的监测能力,并以集成的方式监控不同的云服务 监控主要体现在以下四类行为: 应用的 指标化 ——对应用进行指标化带来的指标度量对监控应用和维护团队以及业务用户十分重要。有许多非侵入性的方法来度量指标,最流行的是 “字节码检测”、“面向切面的编程 “和 “JMX”。 指标收集 —— 从应用中收集指标,并将其持久化到相应的存储库中。然后,存储库需要提供一种查询和汇总数据的方法,以实现数据的可视化。市面上流行的收集器有 Prometheus、StatsD 和 DataDaog。大多数指标收集工具是时间序列存储库,并提供高级查询能力。 指标可视化 —— 可视化工具指标查询库,建立视图和仪表盘供最终用户使用。它们提供丰富的用户界面来对指标执行各种操作,例如聚合、数据下探等。 告警和通知 —— 当指标超过定义的阈值(例如 CPU 超过 80% 且持续 10 分钟),可能需要人工干预。为此,告警和通知很重要。大多数可视化工具提供了告警和通知能力。 许多开源和商业产品可用于监控。一些著名的商业产品有:AppDynamics、Dynatrace、DataDog、logdna 和 sysdig。开源工具通常被组合使用。一些非常流行的组合是 Prometheus 和 Grafana、Elastic-Logstash-Kibana (ELK) 和 StatsD + Graphite。 ...