当前位置: 首页 > news >正文

怎么创建网站 免费的网站建设及营销方案

怎么创建网站 免费的,网站建设及营销方案,dede仿网站目录,网站建设规模📣前言 随着云原生技术的发展,监控和度量也成为了不可或缺的一部分。Prometheus 是一款最近比较流行的开源时间序列数据库,同时也是一种监控方案。它具有极其灵活的查询语言、自身的数据采集和存储机制以及易于集成的特点。而 Spring Boot 是…

📣前言

  随着云原生技术的发展,监控和度量也成为了不可或缺的一部分。Prometheus 是一款最近比较流行的开源时间序列数据库,同时也是一种监控方案。它具有极其灵活的查询语言、自身的数据采集和存储机制以及易于集成的特点。而 Spring Boot 是一款快速构建应用的框架,其提供了大量自动化的配置和功能,使得开发者可以更加专注于业务逻辑的开发,而不必关心大量的配置和环境搭建。

  本文将介绍 Spring Boot 如何集成 Prometheus 进行应用监控,并结合实际应用场景,给出一些使用 Prometheus 监控应用的案例,以及优缺点分析和测试用例。

  那么,具体如何实现呢?这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!!

🌊环境说明

开发工具:IDEA 2021.3
JDK版本: JDK 1.8
Spring Boot版本:2.3.1 RELEASE
Maven版本:3.8.2


🏆本文收录于《Spring Boot从入门到精通》,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。

本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。


🌊摘要

本文主要介绍如何在 Spring Boot 中集成 Prometheus 进行应用监控,重点讲解以下内容:

  • Prometheus 的概述和优缺点分析
  • Spring Boot 集成 Prometheus 的教学
  • 应用场景案例
  • 实战教学
  • 测试用例
  • 全文小结和结尾

🌊正文


Prometheus 是什么?

Prometheus 是一个开源的系统监控和警报工具包。它实现了完整的数据采集、存储和查询功能,可以帮助开发者对应用的性能和状态进行监控,并提供丰富的查询语言和可视化界面。

Prometheus 具有以下特点:

  • 支持多种数据采集方式,包括 HTTP、JMX、Redis、MySQL、RabbitMQ 等。
  • 灵活的数据查询和展现方式。
  • 方便的告警功能。
  • 模块化的设计,易于扩展和集成。

Spring Boot 是什么?

Spring Boot 是一个快速构建应用程序的框架,它基于 Spring 框架,简化了 Spring 应用的搭建和开发。Spring Boot 提供了自动化的配置和功能,减少了开发者在配置上花费的时间和精力,使得开发人员可以专注于业务逻辑的实现。

Spring Boot 具有以下特点:

  • 快速构建应用。
  • 提供了自动化配置,最大限度减少了配置的工作量。
  • 开发者友好,提供了灵活的扩展和集成方式。

搭建Spring Boot应用

  首先,我们先创建个基础的Spring Boot项目,如果还不会点这里,此处就不详细赘述啦。

Spring Boot 集成 Prometheus

导入 Prometheus 相关依赖

在 Spring Boot 中使用 Prometheus,需要导入以下两个依赖:

<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_spring_boot</artifactId><version>0.5.0</version>
</dependency>
<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_pushgateway</artifactId><version>0.5.0</version>
</dependency>

  simpleclient_spring_boot 是 Prometheus 提供的 Spring Boot 集成包,用于集成 Spring Boot 应用。simpleclient_pushgateway 是用于将采集到的数据推送到 Pushgateway。

配置 Prometheus

在 application.properties 中添加 Prometheus 的配置:

# 启用 Prometheus 进行监控
management.endpoint.metrics.enabled=true
# 设置采集间隔时间,单位为秒,这里设置为 10 秒
management.metrics.export.prometheus.step=10s

这里设置了采集数据的间隔时间为 10 秒。

定义 Controller

在 Controller 中添加用于测试的接口,用于生成一些测试数据:

@RestController
public class TestController {private static final Random random = new Random();@GetMapping("/test")public String test() {// 模拟一些业务逻辑,比如查询数据库、计算等。try {Thread.sleep(random.nextInt(1000));} catch (InterruptedException e) {e.printStackTrace();}// 返回一些测试数据return "Hello World!";}}

监控应用

  启动 Spring Boot 应用后,访问 http://localhost:8080/actuator/prometheus 即可查看采集到的数据。

例如,可以查看应用的请求数、请求处理时间、内存使用情况等。

应用场景案例

监控数据库连接池

  数据库连接池是应用中非常重要的资源,过多的连接池占用会导致应用的性能下降,因此需要对其进行监控。在 Spring Boot 应用中可以通过以下方式对数据库连接池进行监控:

  1. 定义一个 health indicator,用于检测连接池的健康状况。
@Component
public class DataSourceHealthIndicator implements HealthIndicator {@Autowiredprivate DataSource dataSource;@Overridepublic Health health() {try (Connection connection = dataSource.getConnection()) {// 如果可以获取到连接,则认为连接池正常return Health.up().build();} catch (Exception e) {// 如果出现异常,则表示连接池不正常return Health.down().withException(e).build();}}}
  1. 配置 Prometheus 进行监控

在 application.properties 中添加以下配置:

# 启用 Prometheus 进行监控
management.endpoint.metrics.enabled=true
# 设置采集间隔时间,单位为秒,这里设置为 10 秒
management.metrics.export.prometheus.step=10s

监控应用日志

  应用的日志是了解应用运行情况的重要依据,现在有一些日志组件可以与 Prometheus 进行集成,例如 logback-prometheus-appender,其可以将日志输出到 Prometheus 的指标中,方便进行监控。

  在 Spring Boot 应用中可以使用以下方式与 logback-prometheus-appender 集成:

  1. 导入 logback-prometheus-appender 依赖:
<dependency><groupId>io.github.microutils</groupId><artifactId>logback-prometheus-appender</artifactId><version>1.1.0</version>
</dependency>
  1. 在 logback.xml 中添加 appender 和 logger:
<appender name="PROMETHEUS" class="io.github.microutils.vertx.prometheus.LogbackPrometheusAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%rEx</pattern></encoder>
</appender><logger name="io.github.microutils.vertx.prometheus" level="INFO"><appender-ref ref="PROMETHEUS"/>
</logger>

  这里定义了一个名为 PROMETHEUS 的 appender,并配置了 encoder 和 logger,将日志输出到 Prometheus 的指标中。

实战教学

项目结构

  本例中,我们将构建一个简单的 Spring Boot 项目,用于演示如何集成 Prometheus 进行应用监控。项目结构如下:

├── pom.xml
└── src└── main├── java│   └── io│       └── github│           └── example│               ├── ExampleApplication.java│               └── TestController.java└── resources└── application.properties
  • ExampleApplication:Spring Boot 应用的启动类。
  • TestController:用于生成一些测试数据的 Controller。
  • application.properties:用于配置 Prometheus 和 Spring Boot 应用的属性。

导入依赖

我们需要在 pom.xml 中添加以下依赖:

<dependencies><!-- Spring Boot Web Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.6</version></dependency><!-- Prometheus Simple Client for Spring Boot --><dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_spring_boot</artifactId><version>0.10.0</version></dependency>
</dependencies>

  这里我们引入了 Spring Boot Web Starter 和 Prometheus Simple Client for Spring Boot 两个依赖。

配置 Prometheus

在 application.properties 中添加以下内容:

# Prometheus 监控端口
management.server.port=8081
# Prometheus 监控路径
management.endpoints.web.base-path=/actuator/prometheus
# 开启 Micrometer 的 Prometheus 支持
management.metrics.export.prometheus.enabled=true

  这里,我们将 management.server.port 设置为 8081,代表 Prometheus 监控的端口号。management.endpoints.web.base-path 是管理端点的基础路径,用于提供 Prometheus 监控 API。最后,我们开启了 Micrometer 的 Prometheus 支持,这是实现 Spring Boot 应用监控的必要配置。

编写代码

ExampleApplication.java 中添加以下代码:

@SpringBootApplication
public class ExampleApplication {public static void main(String[] args) {SpringApplication.run(ExampleApplication.class, args);}@Beanpublic CollectorRegistry collectorRegistry() {return CollectorRegistry.defaultRegistry;}
}

  这里,我们启用了 Spring Boot 应用,并创建了一个 CollectorRegistry bean。这个 bean 将与 Prometheus 一起使用,以暴露应用程序的度量指标。

接下来,在 TestController.java 中添加以下代码:

@RestController
public class TestController {private final Random random = new Random();@Autowiredprivate CollectorRegistry collectorRegistry;@RequestMapping("/test")public String test() throws InterruptedException {// 模拟请求处理Thread.sleep(random.nextInt(500));// 增加指标值Counter.builder("example_requests_total").register(collectorRegistry).inc();return "Test completed";}
}

  这里,我们创建了一个 REST 控制器,包含 /test 端点。在这个端点中,我们模拟了请求处理,并增加了 example_requests_total 计数器的值。

运行和测试

现在,我们可以运行应用程序并进行测试了。

首先,启动应用程序:

mvn spring-boot:run

  然后在浏览器中访问 http://localhost:8080/test 。每次访问 /test 端点时,计数器 example_requests_total 将增加一个值。

  接下来,我们使用 Prometheus 来收集应用程序度量指标。在 Prometheus 的配置文件中,添加以下内容:

scrape_configs:- job_name: 'example-app'metrics_path: '/actuator/prometheus'static_configs:- targets: ['localhost:8081']

  最后,访问 http://localhost:9090/graph ,在 Query 输入框中输入 example_requests_total,即可看到计数器的值。

小结

  本文介绍了如何在 Spring Boot 应用中集成 Prometheus 进行应用监控,重点讲解了 Prometheus 的概述、Spring Boot 集成 Prometheus 的教学、应用场景案例、实战教学和测试用例。在实践中,我们可以使用 Prometheus 监控数据库连接池、应用日志、文件上传、定时任务等多种场景,通过灵活配置和扩展,帮助我们更好地了解应用的性能和状态。

总结

  Prometheus 是一款开源的系统监控和警报工具包,其具有可扩展性、灵活的数据查询和展现方式、方便的告警功能和模块化的设计等优点。Spring Boot 是一款快速构建应用程序的框架,其提供了自动化的配置和功能,减少了开发者在配置上花费的时间和精力。

  在 Spring Boot 应用中集成 Prometheus,需要导入 Prometheus 相关依赖,配置 Prometheus 和定义 Controller,以便实现数据采集和监控。同时,我们可以根据具体的应用场景,使用不同的方法和工具,对应用的性能和状态进行监控和调优。

  通过本文的介绍和实践,相信大家已经掌握了如何在 Spring Boot 应用中集成 Prometheus 进行应用监控的方法和技巧。希望大家能够灵活运用这些知识,提升应用的性能和稳定性,为业务发展提供有力的保障。

… …

  ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看如下的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬。

「赠人玫瑰,手留余香」,咱们下期拜拜~~

🌊热文推荐

滴~如下推荐【Spring Boot 进阶篇】的学习大纲,请小伙伴们注意查收。

Spring Boot进阶(01):Spring Boot 集成 Redis,实现缓存自由

Spring Boot进阶(02):使用Validation进行参数校验

Spring Boot进阶(03):如何使用MyBatis-Plus实现字段的自动填充

Spring Boot进阶(04):如何使用MyBatis-Plus快速实现自定义sql分页

Spring Boot进阶(05):Spring Boot 整合RabbitMq,实现消息队列服务

Spring Boot进阶(06):Windows10系统搭建 RabbitMq Server 服务端

Spring Boot进阶(07):集成EasyPoi,实现Excel/Word的导入导出

Spring Boot进阶(08):集成EasyPoi,实现Excel/Word携带图片导出

Spring Boot进阶(09):集成EasyPoi,实现Excel文件多sheet导入导出

Spring Boot进阶(10):集成EasyPoi,实现Excel模板导出成PDF文件

Spring Boot进阶(11):Spring Boot 如何实现纯文本转成.csv格式文件?

Spring Boot进阶(12):Spring Boot 如何获取Excel sheet页的数量?

Spring Boot进阶(13):Spring Boot 如何获取@ApiModelProperty(value = “序列号“, name = “uuid“)中的value值name值?

Spring Boot进阶(14):Spring Boot 如何手动连接库并获取指定表结构?一文教会你

Spring Boot进阶(15):根据数据库连接信息指定分页查询表结构信息

Spring Boot进阶(16):Spring Boot 如何通过Redis实现手机号验证码功能?

Spring Boot进阶(17):Spring Boot如何在swagger2中配置header请求头等参数信息

Spring Boot进阶(18):SpringBoot如何使用@Scheduled创建定时任务?

Spring Boot进阶(19):Spring Boot 整合ElasticSearch

Spring Boot进阶(20):配置Jetty容器

Spring Boot进阶(21):配置Undertow容器

Spring Boot进阶(22):Tomcat与Undertow容器性能对比分析

Spring Boot进阶(23):实现文件上传

Spring Boot进阶(24):如何快速实现多文件上传?

Spring Boot进阶(25):文件上传的单元测试怎么写?

Spring Boot进阶(26):Mybatis 中 resultType、resultMap详解及实战教学

Spring Boot进阶(27):Spring Boot 整合 kafka(环境搭建+演示)

Spring Boot进阶(28):Jar包Linux后台启动部署及滚动日志查看,日志输出至实体文件保存

Spring Boot进阶(29):如何正确使用@PathVariable,@RequestParam、@RequestBody等注解?不会我教你,结合Postman演示

Spring Boot进阶(30):@RestController和@Controller 注解使用区别,实战演示

… …

  若想系统完整的从0到1的学习,可以参考这篇专栏总结《2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)》,本专栏致力打造最硬核 Spring Boot 进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中。欢迎大家订阅持续学习。

  如果想快速定位学习,可以看这篇【教程导航帖】导航目录,你想学习的都被收集在内,快速投入学习!!两不误。

  在入门及进阶之途,我必助你一臂之力,系统性学习,从入门到精通,带你不走弯路,直奔终点;投资自己,永远性价比最高,都这么说了,你还不赶紧来学??

  本文涉及所有源代码,均已上传至GitHub开源,供同学们一对一参考 GitHub传送门,同时,原创开源不易,欢迎给个star🌟,想体验下被🌟的感jio,非常感谢❗

📣文末

我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

http://www.sczhlp.com/news/105666/

相关文章:

  • 什么叫网站app网站管理系统有哪些
  • 建筑人才网官方网站评职称青海省wap网站建设公司
  • ps网站首页直线教程旅行社手机网站建设
  • 权变与权力异化,是斗争的根源,超越自我,良性循环
  • 元推理AGI,是人类文明的结晶,超越爱因斯坦相对论,是文明进步的必然
  • 南昌旅游网站建设方案360免费wifi下载安装
  • 黑龙江省和城乡建设厅网站东阳海天建设集团网站
  • 南昌市建设局官方网站深圳网站设计招聘信息
  • seo网站描述之间用什么标点符号卓天商务怎么入驻
  • 网站开发中 视频播放卡微信推广
  • 厦门网站建设要多少钱微信营销典型案例
  • 私人做的不错的网站wordpress主题翻译插件
  • 荣耀手机官网网站国外域名网站
  • 网站结构优化wordpress 文章 调用
  • 做好网站建设工作yellow的视频播放
  • 表单大师 做网站个人网站成品
  • 长春网站优化实战wordpress 多站
  • PLC结构化文本设计模式——原型模式(Prototype Pattern)
  • 【一步步开发AI运动APP】十二、自定义扩展新运动项目1
  • 百度搜不到公司网站app 开发
  • 苏州 网站设计百度推广代理查询
  • 用什么制作网站中职电子商务专业就业方向
  • 重庆免费微网站建设活动推广软文
  • 做单位网站的公司吗中国企业建设协会网站
  • 【Linux】人事档案——用户及组管理 - 详解
  • 自然堂网站建设平台分析wordpress 微视频主题
  • 含山县建设局网站做地推的网站
  • 滨州网站开发新手用什么框架做网站比较好
  • 百姓网网站建设wordpress支持论坛
  • iis 建设网站百度搜索排行seo