微服务框架(二十四)Prometheus监控埋点

服务框架(⼆⼗四)Prometheus监控埋点
此系列⽂章将会描述Java框架Spring Boot、服务治理框架Dubbo、应⽤容器引擎Docker,及使⽤Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中⽇志切⾯等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。
本⽂为Prometheus 监控埋点
本系列⽂章中所使⽤的框架版本为Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。Prometheus + Grafana
SpringBoot2.x上已引⼊第三⽅实现的metrics Facade,默认与micrometer集成,⽽micrometer具有Prometheus的MeterRegistry规范的实现。
Prometheus通过Micrometer拉取及处理SpringBoot应⽤中的监控数据,最后通过Grafana提供的UI界⾯进⾏数据的实时展⽰。
快速集成
Parent POM
版本1.1.2+后⽀持
<parent>
<groupId>com.linghit</groupId>
<artifactId>dubbomon.pom</artifactId>
<version>1.1.2</version>
</parent>
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
立方氮化硼砂轮
<version>${micrometer.version}</version>
</dependency>
application配置
需开启server.port及management.port;若未定义management.port则会默认使⽤server.port
# dubbo endpoints
management.health.dubbo.status.defaults = memory
management.health.as = load,threadpool
# metrics
江苏警官学院学报
management.web.server.auto-time-requests = true
Web埋点
Spring boot⽀持Web及JMX(Java管理拓展)的健康指标监控,JMX的⽅式不适合于可视化监控。现有使⽤Prometheus拉取监控数据,并以Grafana进⾏数据可视化展⽰的⽅案更优
此处Spring Boot Actuator通过REST API提供对应⽤系统的⾃省和监控的集成功能
依赖
spring boot及dubbo的actuator起步依赖
<dependency>
美国证券法
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>${micrometer.version}</version>
mird-124
</dependency>
application配置
management.web.server.auto-time-requests=true
NUEMANN
web容器
undertow的servlet容器
@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass =true)
@ComponentScan("com.linghit")
public class Starter {
public static void main(String[] args){
new SpringApplicationBuilder(Starter.class)
.web(WebApplicationType.SERVLET).run(args);
}
}
Log4j2 Metrics
Spring Boot 2.1.0.RELEASE才开始⽀持Log4j2 metrics的⾃动装配,低版本只⽀持Logback metrics,欲使⽤需升级版本或⾃实现详见
Dubbo埋点
dubbo-spring-boot-actuator提供⽣产就绪(Production-Ready)特性 (⽐如健康检查,OPS端点,及外部化配置)
详见
依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-actuator</artifactId>
<version>${dubbo.springboot.version}</version>
</dependency>
application配置
# dubbo endpoints
management.health.dubbo.status.defaults = memory
management.health.as = load,threadpool
注:需在posure.include添加对应的endpoints,如:dubbo,dubbo-configs,dubbo-properties
Docker埋点
要将Docker守护程序配置为Prometheus⽬标,您需要指定 metrics-address。最好的⽅法是通过daemon.json,默认情况下位于以下位置之⼀。(如果该⽂件不存在,请创建它)
Linux:/etc/docker/daemon.json
原电池电动势的测定Windows Server:C:\ProgramData\docker\config\daemon.json
Docker Desktop for Mac / Docker Desktop for Windows:单击⼯具栏中的Docker->Preferences->Daemon->⾼级
如果⽂件当前为空,请粘贴以下内容:
{
"metrics-addr":"127.0.0.1:9323",
"experimental":true
}
Kong埋点
可⽤指标
Status codes:上游服务返回的HTTP状态码。这些服务适⽤于所有服务和所有服务。
Latencies Histograms:在Kong测量的延迟:
Request:Kong和上游服务为请求服务所花费的总时间。
Kong:Kong为路由请求并运⾏所有已配置的插件所花费的时间。
Upstream:上游服务响应请求所花费的时间。
Bandwidth:流经Kong的总带宽(出⼝/⼊⼝)。该指标可⽤于每项服务,也可作为所有服务的总和。
DB reachability:值为0或1的仪表类型,表⽰Kong节点是否可以到达DB。
Connections:各种Nginx连接指标,如活动,读取,写⼊和已接受连接的数量。
详见Kong
Elasticsearch埋点
es-prometheus监控插件:

本文发布于:2024-09-22 08:33:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/526474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务   监控   花费
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议