本文已参与「新人创作礼」活动,一起开启掘金创作之路
前言
今天是除夕,祝大家新年快乐。昨天想要引入amis低代码,但是使用Vue3的解决方案没找到。自己集成了一会,但是遇到了很多问题,到最后也没有集成成功,暂时搁浅了。今天来讲一下项目部署和集成普罗米修斯。
普罗米修斯集成到项目中
- 我们在pom.xml中添加依赖如下
<!-- prometheus -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
- 在我们的Application启动类中,添加一个bean,全部代码如下
package code.liang.top.admin.boot;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
/** * @author lmh */
@SpringBootApplication
public class AdminBootApplication {
public static void main(String[] args) {
SpringApplication.run(AdminBootApplication.class, args);
}
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name:Default}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
}
至此我们就集成了普罗米修斯
spring boot 部署到docker
我们这里使用docker部署一下我们的后端项目
- 开放自己服务器的2375端口 这里建议不要再正式的服务器中开启2375端口,防止恶意入侵
我们打开下边这个文件
vi /usr/lib/systemd/system/docker.service
然后将这一行的配置
ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock \
替换为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
然后我们执行下列命令重启docker
systemctl daemon-reload
systemctl restart docker
- 通过idea连接docker 我们在idea插件市场中搜素并安装docker插件,然后添加一个docker的配置如下 -编写Dockerfile 在项目根目录下新建Dockerfile文件,内容如下
FROM openjdk:17-slim
ADD /target/*.jar /starter/app.jar
ENTRYPOINT ["java","-jar","/starter/app.jar"]
这里我们是简单的部署,所以先编写能让项目启动起来的配置就行了
第一行我们指定jdk的镜像为openjdk17
第二行我们把target下的所有以.jar结束的文件复制到容器的start目录下命名为app.jar 第三行我们就直接执行 java -jar /start/app.jar
- 编译项目 我们执行mvn的打包方法,生成项目的jar包
- 启动项目 我们新建一个docker的idea启动配置,如下所示 我们在最后直接点击idea的运行按钮即可自动发布到对应的docker服务器上去
druid问题修复
在发布完项目后,我们发现如果访问服务器上的druid会报错,经过查询我们发现是没有设置信任ip,我们可以直接添加一下,添加后druid的配置如下
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:mysql://???:3306/xxx?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: supporter
type: com.alibaba.druid.pool.DruidDataSource
# 数据源其他配置
druid:
# 配置初始化大小、最小、最大线程数
initialSize: 5
minIdle: 5
# CPU核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降
maxActive: 20
# 最大等待时间,内网:800,外网:1200(三次握手1s)
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最大空间时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
# 设置从连接池获取连接时是否检查连接有效性,true检查,false不检查
testOnBorrow: true
# 设置从连接池归还连接时是否检查连接有效性,true检查,false不检查
testOnReturn: true
# 可以支持PSCache(提升写入、查询效率)
poolPreparedStatements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 保持长连接
keepAlive: true
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
db-type: mysql
stat-view-servlet: #配置监控页功能
enabled: true #默认开启,这里显示说明
login-username: root #登录名
login-password: supporter #登录密码
reset-enable: false #禁用重置按钮
allow:
web-stat-filter: #监控web
enabled: true
url-pattern: /* #监控所有
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*' #放行
filter:
stat: #对上面filters里的stat的详细配置
slow-sql-millis: 1000 #慢sql时间是毫秒单位的 执行时间1秒以上的为慢SQL
log-slow-sql: true #日志记录
enabled: true
wall:
enabled: true
config:
drop-table-allow: false #禁用删除表的SQL
此时重启项目并重新发布的话,任意IP都可以访问我们的druid监控
结语
更文挑战已经写了20天了,以后可能会更新的慢一点大家多谅解。本篇文章集成了普罗米修斯,下篇文章我们介绍一下使用grafna可视化
本文所有代码已上传的gitee,欢迎有兴趣的掘友们startgitee.com/liangminghu…
欢迎关注我的掘金账号:juejin.cn/user/261290…
下期预告:grafna可视化普罗米修斯数据的docker部署
今天的文章从头开始开发一个java后端项目:9普罗米修斯监控springboot、spring boot项目部署分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/22434.html