关键词:
本文介绍SpringBoot使用蚂蚁金服SOFA-Lookout配合Prometheus进行监控。
1.SOFA-Lookout介绍
上一篇已经介绍使用Prometheus进行暴露SpringBoot的一些指标进行监控,传送门,这一篇介绍如何使用SOFA-Lookout配合Prometheus。
SOFA-Lookout是蚂蚁金服开源的一款解决系统的度量和监控问题的轻量级中间件服务。它提供的服务包括:Metrics 的埋点、收集、加工、存储与查询等。
正如介绍的,SOFA-Lookout提供了一些常用的监控指标,比如JVM线程,JVM类加载,JVM内存,JVM垃圾回收,机器文件系统信息和机器信息。在1.5.0版本之后默认也提供了一些Linux操作系统的信息。具体可以查看:https://www.sofastack.tech/sofa-lookout/docs/client-ext-metrics
2.SpringBoot使用SOFA-Lookout
2.1 配置依赖
新建项目,在项目中加入SOFA依赖,完整pom如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dalaoyang</groupId>
<artifactId>springboot2_sofa_lookout</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot2_sofa_lookout</name>
<description>springboot2_sofa_lookout</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alipay.sofa.lookout</groupId>
<artifactId>lookout-sofa-boot-starter</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>com.alipay.sofa.lookout</groupId>
<artifactId>lookout-reg-prometheus</artifactId>
<version>1.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.2 配置SOFA-Lookout端口
这里需要配置一个SOFA-Lookout的端口,生产环境使用的话一定要查看这个端口是不是被占用了。配置如下,这里配置的端口是8081。
spring.application.name=springboot2_sofa_lookout
com.alipay.sofa.lookout.prometheus-exporter-server-port=8081
其实到这里,SpringBoot项目已经配置完成了,当然还可以自定义一些指标,这里不做介绍。
3.Prometheus配置
Prometheus需要配置一下刚刚SOFA-Lookout的端口,如下:
- job_name: 'springboot2_sofa_lookout'
scrape_interval: 5s
static_configs:
- targets: ['localhost:8081']
4.Grafana
这里也可以将Prometheus展示给Grafana,我也查询了很多,但是貌似目前Grafana还没有默认推荐的Dashboard,大家可以根据情况自行构建,当然,如果有好的也希望可以推荐一下。
5.测试
启动SpringBoot应用,控制台如下所示。
看到红框部分就是启动成功了。接下来查看Prometheus界面,如下。
这里Grafana在看一下Grafana界面,如图。
6.源码
源码地址:https://gitee.com/dalaoyang/springboot_learn/tree/master/springboot2_sofa_lookout
springboot——实现系统启动任务
系统任务:在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行web基础中的三大组件(Servlet、Filter、Listener),通过Listener定义一个ServletContextListener,然后就可以监听到... 查看详情
springboot整合websocket遇到的坑
参考技术A如果客户端关闭了websocket,但服务端没有监听到关闭事件,即onClose方法没有调用,这是会发生的情况此时如果服务端向客户端推送消息,会出现异常告诉开发者:关闭了一个连接,并重新调用onClose方法 查看详情
oninput事件(解决onkeyup无法监听到复制黏贴)
onkeyup无法监听到复制黏贴导致的内容变化,可以使用oninput事件注:IE下用onpropertychange<textareang-keydown="addReason(event)"oninput="angular.element(this).scope().addReason(event)"onproperty="angular.element(this).scope().ad 查看详情
家居环境监測系统设计(pc上位机版)(手机app版待定)
...据、对数据进行通信异常分析等功能。(上位机測试及其使用视频:点击打开链接) 查看详情
十九springboot整合elasticsearch实战(万字篇)
本章开始学习springboot整合ElasticSearch 7.X版本并通过小demo实现基本的增删改查。实现如下案例:1、当向数据新增一个商品信息时,同时向rabbitMQ发起消息(异步实现),让监听到消息的类去向ElasticS... 查看详情
ini监(代码片段)
《python机器学习及实践》----无监督学习之数据聚类
...百度网盘上下载的,或者是sklearn自带数据下载到本地使用的。代码片段:#coding:utf-8#分别导入numpy、matplotlib以及pandas,用于数学运算、作图以及数据分析。importnumpyasnpimportmatp 查看详情
《python机器学习及实践》----无监督学习之特征降维
...百度网盘上下载的,或者是sklearn自带数据下载到本地使用的。代码片段:#coding:utf-8importnumpyasnpM=np.array([[1,2],[2,4]])np.linalg.matrix_rank(M,tol=No 查看详情
springboot——四大核心之指标监控(actuator)(代码片段)
1.写在前面首先肯定要说一下SpringBoot的四大核心了:自动装配:简单配置甚至零配置即可运行项目起步依赖:场景启动器Actuator:指标监控命令行界面:命令行这篇文章呢,我来和大家聊聊指标监控这个东... 查看详情
为啥props里面的值不能监听到
参考技术AReact的props吗?props不是处于观察状态的,自然是监听不到的,不过你可以在componentWillReceiveProps中可以监听到props的变化的。 查看详情
无监督学习之聚类2——dbscan
根据学生月上网时间数据运用DBSCAN算法计算:#coding=utf-8importnumpyasnpimportsklearn.clusterasskcfromsklearnimportmetricsimportmatplotlib.pyplotaspltmac2id=dict()onlinetimes=[]f=open(‘F:dataTestData.txt‘,encoding=‘utf 查看详情
我应该如何监听从 ObjectContext 添加/删除的实体?
】我应该如何监听从ObjectContext添加/删除的实体?【英文标题】:HowshouldIlistenforentitiesbeingadded/deletedfromanObjectContext?【发布时间】:2012-01-0815:22:31【问题描述】:据我所知,ObjectContext没有公开任何直接监听添加/删除项目的方法。... 查看详情
springaop能监听到修改之前的值吗
参考技术Aaop可以控制在方法运行前还是方法运行后执行。方法运行前,就可以设法获取原值了。 查看详情
springboot配置热部署(两步即可)(代码片段)
代码配置(步骤一)maven<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope></dependency>yml#Springspring:devtools:restart:#默认为trueenabled:trueIDEA配置ÿ... 查看详情
无监督学习之聚类1——kmeans
Kmeans算法分析31省市消费水平#coding=utf-8importnumpyasnpfromsklearn.clusterimportKMeansdefloadData(filepath):fr=open(filepath,‘r+‘)lines=fr.readlines()retData=[]retCityName=[]forlineinlines:items=line.strip().s 查看详情
无监督学习之rbm和autoencoder
几种学习方式半监督学习TransferLearningSelf-talkLearningRBMRBM的类别BoltzmannMachineRestrictedBoltzmannMachineEvaluationInferenceTraining网络结构训练过程概率分布计算与GibbsSampling对比散度ContrastiveDivergence泛化实例AutoEncoder特点实例有标签的数据 查看详情
摄像头监測是否“授权”
ios7苹果公司增加了摄像头隐私设置选项:在app中监測手机摄像头是否授权给APP:#definePHOTOGRAPH_ACCREDIT if(VALID_VERSION(7.0)){ if(!([AVCaptureDeviceauthorizationStatusForMediaType: 查看详情
父组件可以监听到子组件的生命周期吗?
参考技术A比如有父组件Parent和子组件Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,可以通过以下写法实现:以上需要手动通过$emit触发父组件的事件,更简单的方式可以在父组件引用子组件时通过@hook来监听即可... 查看详情