监控的意义

  • 监控服务状态是否宕机
  • 监控服务运行指标(内存、虚拟机、线程、请求等)
  • 监控日志
  • 管理服务(服务下线)

监控的实施方式

大部分监控平台都是主动拉取监控信息,而不是被动地等待应用程序传递信息

应用程序要设置:是否能被监控、开放那些信息给显示监控信息的服务器(监控平台)

可视化监控平台

Spring Boot Admin :开源社区项目,用于监督和管理SpringBoot应用程序,

客户端注册到服务端后,通过HTTP请求方式,服务端定期从客户端获取对应信息,

并通过UI界面展示对应信息

服务端

  • 坐标↓(可以在创建时在Ops中勾选)
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.7.4</spring-boot-admin.version>
</properties> <dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency> <dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  • 将程序配成一个web服务↓
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

  • 配置端口,使用时要防止与本机的其他应用程序的端口冲突
server:
port: 8080

  • 在主启动类开启AdminServer:@EnableAdminServer

客户端

  • 客户端创建时要勾选Ops下的Client,而且必须是web程序

  • 要在配置文件中设置被哪个服务端监控

server:
port: 80 spring:
boot:
admin:
client:
url: http://localhost:8080

  • 在客户端配置哪些信息可以被监控↓
spring:
boot:
admin:
client:
url: http://localhost:8080 management:
endpoint: # 这里设置对外开放是否开放对应功能
health:
enabled: true # health端点必须开放
show-details: always
info:
enabled: true
endpoints:
web:
exposure:
include: "*" # 配在web端能不能看到,默认是health
enabled-by-default: true # 开放所有端点

监控原理

Actuator

actuator提供了SpringBoot生产就绪功能,通过端点的配置与访问,获取端点信息

端点描述了一组监控信息,SpringBoot提供了多个内置端点,也可以根据需要自定义端点信息

访问当前应用的所有端点信息:/actuator

访问端点详细信息:/actuator/端点名称

info端点指标控制

management:
endpoint: # 这里设置对外开放是否开放对应功能
health:
show-details: always
enabled: true
info:
enabled: true
endpoints:
web:
exposure:
include: "*" # 配在web端能不能看到,默认是health
enabled-by-default: true info:
appName: @project.artifactId@
version: @project.version@
author: 王东林 # 在info中配置一个值叫:author,具体值是:王东林
复杂的info信息(在Client端设置)
@Component
public class InfoConfig implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("runTime", System.currentTimeMillis()); Map infoMap = new HashMap();
infoMap.put("buildTime", "2006");
builder.withDetails(infoMap); //支持链式编程
}
}

health端点指标控制

  • 自定义健康指标↓
@Component
public class HealthConfig extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
boolean condition = false;
if (condition) {
builder.status(Status.UP);
builder.withDetail("haha1", "哈哈1");
builder.withDetail("haha2", "哈哈2");
builder.withDetail("haha3", "哈哈3");
} else {
builder.status(Status.OUT_OF_SERVICE);
builder.withDetail("上线了吗?", "并没有");
} }
}

metrics端点指标控制

  • metrics 即性能指标
  • 自定义metrics端点↓

自定义监控

@Component
//声明该类是端点,id是访问名称,第二个参数是是否默认开启
@Endpoint(id = "pay", enableByDefault = true)
public class PayEndpoint { @ReadOperation //声明当读取该端点调用该方法
public Object pay() {
Map payMap = new HashMap();
payMap.put("level", 600);
payMap.put("level2", 1000);
payMap.put("level5", 9999);
return payMap;
}
}

SpringBootAdmin_监控的更多相关文章

  1. 使用Monit监控本地进程

    目前用它监控某些服务,失败自动重启,同时监控特定的日志文件,如果有变化,就发邮件报警 安装不细写了,网上好多 我先用cat /proc/version看了下我的系统是el6的,于是wget http: ...

  2. node服务的监控预警系统架构

    需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...

  3. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  4. Logstash实践: 分布式系统的日志监控

    文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

  5. C# 利用性能计数器监控网络状态

    本例是利用C#中的性能计数器(PerformanceCounter)监控网络的状态.并能够直观的展现出来 涉及到的知识点: PerformanceCounter,表示 Windows NT 性能计数器 ...

  6. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  7. 【开源】.net 分布式架构之监控平台

    开源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor .net 简单监控平台,用于集群的性能监控,应用耗时监控管理,统一日志管理 ...

  8. Opserver开源的服务器监控系统(ASP.NET)

    Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...

  9. Performance Monitor4:监控SQL Server的IO性能

    SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Applicati ...

  10. IT运维监控解决方案介绍

    现状 •小公司/ 创业团队< 500台服务器规模 开源方案:Zabbix.Nagios.Cacti- 云服务提供商:监控宝.oneAlert等 •BAT级别> 10万台服务器 投 ...

随机推荐

  1. Vue3基本功能实现

    vue3 介绍 # Vue3的变化 # 1.性能的提升 打包大小减少41% 初次渲染快55%, 更新渲染快133% 内存减少54% # 2.源码的升级 使用Proxy代替defineProperty实 ...

  2. 基于 Probe 的实时全局光照方案(Probe-based Global Illumination)

    目录 Precomputed Probe 预放置 probes 四面体镶嵌(Tetrahedral Tessellations) Indirect Light Cache Volumetric Lig ...

  3. 《设计模式的运用》使用策略模式+工厂模式优化代码中的if else

    使用策略模式优化if else 有这样一段逻辑 function{ for{ if() if() if( if( ) ) ... } } 公司有的祖传的代码,是一段规则校验,校验的越多,每一个请求都会 ...

  4. 1.8 运用C编写ShellCode代码

    在笔者前几篇文章中,我们使用汇编语言并通过自定位的方法实现了一个简单的MessageBox弹窗功能,但由于汇编语言过于繁琐在编写效率上不仅要考验开发者的底层功底,还需要写出更多的指令集,这对于普通人来 ...

  5. ISP图像处理—紫边Purple Fringing

    图像紫边存在数码相机.监控摄像头等数字成像图像,使用设备在逆光.大光圈条件下拍摄图像的高反差区域容易出现紫边,解决图像自编问题有助设备得到完美图像. 紫边成因分析和确定有助与紫边消除的图像处理算法研究 ...

  6. 进程相关API

    ID与句柄 如果我们成功创建一个进程,CreateProcess函数会给我们返回一个结构体,包括四个数 据:进程编号(ID).进程句柄.线程编号(ID).线程句柄. 进程ID其实我们早见过了,通常我们 ...

  7. MAUI Blazor项目中如何添加一个返回服务,并支持安卓返回键

    前言 MAUI Blazor中,安卓项目的返回键体验很不好,只能如同浏览器一样返回上一页.但很多时候,我们想让他返回的上一页,不一定就是实际上的上一页.而且也想让返回键去支持一些事件,按下返回键触发, ...

  8. 记一次 .NET某培训学校系统 内存碎片化分析

    一:背景 1. 讲故事 前些天有位朋友微信上找到我,说他们学校的Web系统内存一直下不去,让我看下到底是怎么回事,老规矩让朋友生成一个dump文件丢给我,看一下便知. 二:WinDbg 分析 1. 托 ...

  9. 线性关系和非线性关系在.net中的应用

    在数学中,线性关系和非线性关系是描述两个变量之间函数关系的两种不同类型. 线性关系是指两个变量之间可以用一条直线来表示的关系.具体来说,如果存在一个一次函数 y = kx + b,其中k和b是常数,使 ...

  10. 11、Mybatis之逆向工程

    11.1.正向与逆向工程概述 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表:例如Hibernate是支持正向工程的. 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成Ja ...