最佳实践|springboot应用如何快速接入prometheus监控(代码片段)

阿里巴巴云原生 阿里巴巴云原生     2022-11-29     315

关键词:

<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId>注解。我们以演示项目中的 index 页面接口为例。注意这里,@Timed 注解中的 value 即为暴露到/actuator/prometheus 中的指标名字,histogram=true 表示我们暴露这个接口请求时长的 histogram 直方图类型指标,便于我们后续计算 P99,P90 等请求时间分布情况。
model.addAttribute("products", productDAO.getProductList()); model.addAttribute("FRONTEND_APP_NAME", Application.APP_NAME); model.addAttribute("FRONTEND_SERVICE_TAG", Application.SERVICE_TAG); model.addAttribute("FRONTEND_IP", registration.getHost()); model.addAttribute("PRODUCT_APP_NAME", PRODUCT_APP_NAME); model.addAttribute("PRODUCT_SERVICE_TAG", PRODUCT_SERVICE_TAG); model.addAttribute("PRODUCT_IP", PRODUCT_IP); model.addAttribute("new_version", StringUtils.isBlank(env)); return "index.html"; Counter visitCounter; public DemoService(MeterRegistry registry) visitCounter = Counter.builder("visit_counter") .description("Number of visits to the site") .register(registry); public String visit() visitCounter.increment(); return "Hello World!";

至此,我们的应用代码改造工作到这里就全部完成了,下一步工作就是将应用镜像重新构建并重新部署到已安装 ARMS Prometheus 的 Kubernetes 集群中。之后,我们 ARMS Prometheus 控制台中配置 ServiceMonitor,进行服务发现。


添加好 ServiceMonitor 后,我们可以在 Targets 列表中看到刚注册的应用 Service。

3
 第三步,看板配置

应用的监测数据已成功收集并存储到 ARMS Prometheus。接下来,也是最关键的一步,就是根据这些数据,配置相应的大盘及告警。这里,我们借助 Grafana 社区中开源大盘模板来构建我们自己的业务监测模板。主要基于以下两个模板:

  • Spring Boot 2.1 Statistics:
    https://grafana.com/grafana/dashboards/10280

  • JVM (Micrometer):
    https://grafana.com/grafana/dashboards/4701

  • 借助这些模板以及 ARMS Prometheus 内置的 Grafana 服务,我们可以很方便地将日常开发和运维过程中非常关心的指标组织在一张的 Grafana Dashboard 上。这里给大家抛砖引玉一下,放一张我们内部基于上述模板和自身业务构建的一个真实的大盘。这里面包含了一些总览,比如组件运行时间,内存使用率等等,也有一些细节指标,如堆内堆外内存,分代 GC 情况等等,还有像接口请求的 RED 等等,这里就不过多赘述了,大家可以充分发挥自己的想象力来创造独一无二的酷炫大盘~



    点击“阅读原文”,了解更多阿里云可观测实践案例。

    往期推荐




    1、阿里云云原生微服务可观测实践

    2、深度解密|基于 eBPF 的 Kubernetes 问题排查全景图发布

    3、系统架构面临的三大挑战,看 Kubernetes 监控如何解决?

    springboot最佳实践快速入门

    一、关于SpringBoot在开始了解SpringBoot之前,我们需要先了解一下Spring,因为SpringBoot的诞生和Spring是息息相关的,SpringBoot是Spring发展到一定程度的一个产物,但并不是Spring的替代品,SpringBoot是为了让程序员更好的使用Spring。说到... 查看详情

    最佳实践|从producer到consumer,如何有效监控kafka

    ...Prometheus最佳实践系列。第一期我们讲解了《最佳实践|SpringBoot应用如何接入Prometheus监控》,今天将 查看详情

    节点的通用日志记录,快速应用程序——最佳实践?

    】节点的通用日志记录,快速应用程序——最佳实践?【英文标题】:Commonloggingfornode,expressapplication--bestpractice?【发布时间】:2012-11-2519:22:24【问题描述】:我正在开发一个带有几十个模块并使用bunyan进行日志记录的node.js应用... 查看详情

    keycloak快速上手指南,只需10分钟即可接入springboot/vue前后端分离应用实现s

    登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生。本文将简... 查看详情

    keycloak快速上手指南,只需10分钟即可接入springboot/vue前后端分离应用实现sso单点登录

    登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生。本文将简... 查看详情

    springboot2.x最佳实践《一》之springboot2.x初体验

    SpringBoot2.X最佳实践前言本系列文章,从零基础接触 SpringBoot2.x新版本,基础入门使用,热部署,到整合各个主流框架Redis4.x,消息队列AciveMQ,RocketMQ等,搜索框架ElasticSearch5.6版本,到web-flux反应式编程,到Actuator监控应用信息... 查看详情

    51cto视频课程上线:如何快速搭建it试验环境?-vmwareworkstations最佳实践

    ...视频课程上线:如何快速搭建IT试验环境?-VMWareWorkstations最佳实践最近花了一些时间,将同学们在日常自学时常碰到搭建试验环境问题上录了一门课程,希望可以帮到。课程链接:https://edu.51cto.com/course/17271.html课程介绍这是一门... 查看详情

    springboot与mybatis整合最佳实践

    前言:Springboot怎么使用想必也无需我多言,Mybitas作为实用性极强的ORM框架也深受广大开发人员喜爱,有关如何整合它们的文章在网络上随处可见。但是今天我会从实战的角度出发,谈谈我对二者结合与使用的最佳实践。一、依... 查看详情

    [springboot]springboot最佳实践模板引擎thymeleaf集成

    1Thymeleaf介绍  Thymeleaf是一种JavaXML/XHTML/HTML5模板引擎,可以在Web和非Web环境中使用。它更适合在基于MVC的Web应用程序的视图层提供XHTML/HTML5,但即使在脱机环境中,它也可以处理任何XML文件。它提供了完整的SpringFramework集成。... 查看详情

    [springboot]springboot最佳实践模板引擎thymeleaf集成

    1Thymeleaf介绍  Thymeleaf是一种JavaXML/XHTML/HTML5模板引擎,可以在Web和非Web环境中使用。它更适合在基于MVC的Web应用程序的视图层提供XHTML/HTML5,但即使在脱机环境中,它也可以处理任何XML文件。它提供了完整的SpringFramework集成。... 查看详情

    最佳实践——在应用之间共享 Spring-boot Service 和 Repo 层代码

    ...2022-01-0814:50:20【问题描述】:需要一些关于基于层模块化Springboot应用程序的经典需求的最佳实践建议。一些背景信息:少于10名开发人员的中小型SpringBoot项 查看详情

    使用docker部署springboot并接入skywalking(代码片段)

    一、概述最近在研究skywalking,打算使用k8s部署skywalking并将pod中的应用接入skywalking进行服务链路追踪。这篇文章先不介绍skywalking在k8s中的部署和使用,而是先介绍如何使用手动和docker的方式使用skywalking。在整个实践过程中查阅... 查看详情

    构建/dockerizing具有数据库连接的spring Boot应用程序的最佳实践是啥?

    】构建/dockerizing具有数据库连接的springBoot应用程序的最佳实践是啥?【英文标题】:What\'sthebestpractiseofbuilding/dockerizingspringBootapplicationwhichhasadatabaseconnection?构建/dockerizing具有数据库连接的springBoot应用程序的最佳实践是什么?【... 查看详情

    springboot最佳实践模板引擎thymeleaf集成

    一、Thymeleaf介绍Thymeleaf是一种JavaXML/XHTML/HTML5模板引擎,可以在Web和非Web环境中使用。它更适合在基于MVC的Web应用程序的视图层提供XHTML/HTML5,但即使在脱机环境中,它也可以处理任何XML文件。它提供了完整的SpringFramework集成。关... 查看详情

    springboot最佳实践模板引擎thymeleaf集成

    一、Thymeleaf介绍Thymeleaf是一种JavaXML/XHTML/HTML5模板引擎,可以在Web和非Web环境中使用。它更适合在基于MVC的Web应用程序的视图层提供XHTML/HTML5,但即使在脱机环境中,它也可以处理任何XML文件。它提供了完整的SpringFramework集成。关... 查看详情

    设计模式最佳实践探索—策略模式

    根据不同的应用场景与意图,设计模式主要分为创建型模式、结构型模式和行为型模式三类。本文主要探索行为型模式中的策略模式如何更好地应用于实践中。前言在软件开发的过程中,需求的多变性几乎是不可避免的&#... 查看详情

    springboot最佳实践,它来了,它来了(代码片段)

    前言上篇博文(SpringBoot自动配置原理,你真的懂吗?)我们详细的介绍了SpringBoot是如何完成自动配置功能的,以及具体的原理。SpringBoot的强大,大家也有所了解了,SpringBoot更加强大的地方是提供了很... 查看详情

    web安全头号大敌xss漏洞解决最佳实践(代码片段)

    XSSXSS代码攻击及危害分析——><script快速创建springboot应用:     <groupId>org.owasp.antisamy</groupId>     <artifactId>antisamy</artifactId&g 查看详情