Nacos 监控手册
Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus、elastic search和influxdb,下面结合prometheus和grafana如何监控Nacos。与elastic search和influxdb结合可自己查找相关资料
搭建Nacos集群暴露metrics数据
配置application.properties文件,暴露metrics数据
management.endpoints.web.exposure.include=*
访问{ip}:8848/nacos/actuator/prometheus,看是否能访问到metrics数据
搭建prometheus采集Nacos metrics数据
下载你想安装的prometheus版本,地址为download prometheus
linux & mac
解压prometheus压缩包
tar xvfz prometheus-*.tar.gz
cd prometheus-*
修改配置文件prometheus.yml采集Nacos metrics数据
metrics_path: '/nacos/actuator/prometheus'static_configs:- targets: ['{ip1}:8848','{ip2}:8848','{ip3}:8848']
启动prometheus服务
./prometheus --config.file="prometheus.yml"
windows
下载对应的windows版本并解压
修改配置文件prometheus.yml采集Nacos metrics数据
metrics_path: '/nacos/actuator/prometheus'static_configs:- targets: ['{ip1}:8848','{ip2}:8848','{ip3}:8848']
启动prometheus服务
prometheus.exe --config.file=prometheus.yml
通过访问http://{ip}:9090/graph可以看到prometheus的采集数据,在搜索栏搜索nacos_monitor可以搜索到Nacos数据说明采集数据成功
搭建grafana图形化展示metrics数据
和prometheus在同一台机器上安装grafana,使用 yum 安装grafana
mac
brew install grafana
brew services start grafana
linux
sudo yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm
sudo service grafana-server start
windows
参考文档:Install Grafana on Windows | Grafana documentation
访问grafana: http://{ip}:3000
配置prometheus数据源
导入Nacos grafana监控模版
Nacos监控分为三个模块:
- nacos monitor展示核心监控项
- nacos detail展示指标的变化曲线
- nacos alert为告警项
配置grafana告警
当Nacos运行出现问题时,需要grafana告警通知相关负责人。grafana支持多种告警方式,常用的有邮件,钉钉和webhook方式
钉钉告警
钉钉可以通过配置钉钉机器人
配置钉钉通知url
测试告警项
邮件告警
修改defaults.ini配置文件,增加邮件告警
#################################### SMTP / Emailing ##########################
[smtp]
enabled = true
host = smtp.126.com:25
user = xxxxxx
password = xxxxx
;cert_file =
;key_file =
skip_verify = true
from_address = xxxxxx@126.com[emails]
;welcome_email_on_sign_up = false
配置通知邮箱
Nacos metrics含义
jvm metrics
指标 | 含义 |
---|---|
system_cpu_usage | CPU使用率 |
system_load_average_1m | load |
jvm_memory_used_bytes | 内存使用字节,包含各种内存区 |
jvm_memory_max_bytes | 内存最大字节,包含各种内存区 |
jvm_gc_pause_seconds_count | gc次数,包含各种gc |
jvm_gc_pause_seconds_sum | gc耗时,包含各种gc |
jvm_threads_daemon | 线程数 |
Nacos 监控指标
指标 | 含义 |
---|---|
http_server_requests_seconds_count | http请求次数,包括多种(url,方法,code) |
http_server_requests_seconds_sum | http请求总耗时,包括多种(url,方法,code) |
nacos_timer_seconds_sum | Nacos config水平通知耗时 |
nacos_timer_seconds_count | Nacos config水平通知次数 |
nacos_monitor{name='longPolling'} | Nacos config长连接数 |
nacos_monitor{name='configCount'} | Nacos config配置个数 |
nacos_monitor{name='dumpTask'} | Nacos config配置落盘任务堆积数 |
nacos_monitor{name='notifyTask'} | Nacos config配置水平通知任务堆积数 |
nacos_monitor{name='getConfig'} | Nacos config读配置统计数 |
nacos_monitor{name='publish'} | Nacos config写配置统计数 |
nacos_monitor{name='ipCount'} | Nacos naming ip个数 |
nacos_monitor{name='domCount'} | Nacos naming域名个数(1.x 版本) |
nacos_monitor{name='serviceCount'} | Nacos naming域名个数(2.x 版本) |
nacos_monitor{name='failedPush'} | Nacos naming推送失败数 |
nacos_monitor{name='avgPushCost'} | Nacos naming平均推送耗时 |
nacos_monitor{name='leaderStatus'} | Nacos naming角色状态 |
nacos_monitor{name='maxPushCost'} | Nacos naming最大推送耗时 |
nacos_monitor{name='mysqlhealthCheck'} | Nacos naming mysql健康检查次数 |
nacos_monitor{name='httpHealthCheck'} | Nacos naming http健康检查次数 |
nacos_monitor{name='tcpHealthCheck'} | Nacos naming tcp健康检查次数 |
nacos 异常指标
指标 | 含义 |
---|---|
nacos_exception_total{name='db'} | 数据库异常 |
nacos_exception_total{name='configNotify'} | Nacos config水平通知失败 |
nacos_exception_total{name='unhealth'} | Nacos config server之间健康检查异常 |
nacos_exception_total{name='disk'} | Nacos naming写磁盘异常 |
nacos_exception_total{name='leaderSendBeatFailed'} | Nacos naming leader发送心跳异常 |
nacos_exception_total{name='illegalArgument'} | 请求参数不合法 |
nacos_exception_total{name='nacos'} | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) |
client metrics
指标 | 含义 |
---|---|
nacos_monitor{name='subServiceCount'} | 订阅的服务数 |
nacos_monitor{name='pubServiceCount'} | 发布的服务数 |
nacos_monitor{name='configListenSize'} | 监听的配置数 |
nacos_client_request_seconds_count | 请求的次数,包括多种(url,方法,code) |
nacos_client_request_seconds_sum | 请求的总耗时,包括多种(url,方法,code) |
Nacos-Sync监控
随着Nacos 0.9版本发布,Nacos-Sync 0.3版本支持了metrics监控,能通过metrics数据观察Nacos-Sync服务的运行状态,提升了Nacos-Sync的在生产环境的监控能力。 整体的监控体系的搭建参考Nacos监控手册
grafana监控Nacos-Sync
和Nacos监控一样,Nacos-Sync也提供了监控模版,导入监控模版
Nacos-Sync监控同样也分为三个模块:
- nacos-sync monitor展示核心监控项
- nacos-sync detail和alert展示监控曲线和告警
Nacos-Sync metrics含义
Nacos-Sync的metrics分为jvm层和应用层
jvm metrics
指标 | 含义 |
---|---|
system_cpu_usage | CPU使用率 |
system_load_average_1m | load |
jvm_memory_used_bytes | 内存使用字节,包含各种内存区 |
jvm_memory_max_bytes | 内存最大字节,包含各种内存区 |
jvm_gc_pause_seconds_count | gc次数,包含各种gc |
jvm_gc_pause_seconds_sum | gc耗时,包含各种gc |
jvm_threads_daemon | 线程数 |
应用层 metrics
指标 | 含义 |
---|---|
nacosSync_task_size | 同步任务数 |
nacosSync_cluster_size | 集群数 |
nacosSync_add_task_rt | 同步任务执行耗时 |
nacosSync_delete_task_rt | 删除任务耗时 |
nacosSync_dispatcher_task | 从数据库中分发任务 |
nacosSync_sync_task_error | 所有同步执行时的异常 |
相关文章:

Nacos 监控手册
Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus、elastic search和influxdb,下面结合prometheus和grafana如何监控Nacos。与elastic search和influxdb结合可自己查找相关资料…...

项目需求分析5大常见问题及解决方案
需求分析过程中,往往容易导致需求不准确和不完整,引起需求频繁变更,导致项目进度延误和成本增加;而需求分析的误解问题,导致交付产品无法满足客户期待,降低用户满意度和资源浪费。 那么在需求分析中&#x…...

C#学习系列相关之多线程(四)----async和await的用法
一、async、await用法的作用 async用法主要是用来作为修饰符将方法作为异步方法使用,await关键字只用作为在异步方法才能使用,也就是只有当方法有async修饰后,才能在方法中使用await,await后跟Task新的任务启动。(awai…...
极智AI | 大模型优化之KV Cache
欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 大模型优化之KV Cache。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq 在大模型的优化中经常会听到的一个技术叫…...
Android 使用 registerForActivityResult() 打开系统相册或相机获取图像
一、简介 当使用了 AndroidX 后,发现 startActivityForResult() 标记为过时了,而是推荐我们使用 registerForActivityResult() 函数。 registerForActivityResult() 函数是 Android 中用于启动 Activity 结果回调的新方式。这个函数的目的是简化在 Act…...
如何制作网页 ico
1. 制作 icon 可以通过 https://www.iconfont.cn/collections/detail?spma313x.7781069.1998910419.de12df413&cid13720 或者自己在 PPT 制作,然后截图导出png 文件。 2. 转换为 ico 文件 使用:https://www.bitbug.net/ 上传并且转换成自己要的…...
golang gorm 增删改查以及使用原生SQL(以操作mysql为例)
gorm mysql增删改查 model定义 package _caseimport "gorm.io/gorm"func init() {DB.Migrator().AutoMigrate(Teacher{}, Course{}) } type Roles []stringtype Teacher struct {gorm.ModelName string gorm:"size:256"Email string gorm:&q…...
代码随想录 单调栈part2
503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数…...
详解利用高斯混合模型拆解多模态分布 + 精美可视化
文章目录 一、前言二、主要内容三、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 本文旨在介绍如何利用高斯混合模型(Gaussian Mixture Models,简称 GMMs)将一维多模态分布拆分为多个分布。作为统计 / / /机器学习领域常用的概率模型...

排序算法之【归并排序】
📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 👍…...

Qt中QTimer定时器的用法
Qt中提供了两种定时器的方式一种是使用Qt中的事件处理函数,另一种就是Qt中的定时器类QTimer。 使用QTimer类,需要创建一个QTimer类对象,然后调用其start()方法开启定时器,此后QTimer对象就会周期性的发出timeout()信号。 1.QTimer…...
vue-组件定义注册使用
vue组件使用的步骤 定义组件注册组件使用组件 定义组件 Vue.extend(options) 其中options和new Vue(options)出入的options对象几乎一样,但是也有不同。 创建 el不用写—最终所有组件需要经过一个vm的管理,由vm的el决定服务哪个容器。 data必须写成函…...

斑馬打印機打印中文
创建项目 首先說一下,本文章是借鉴了其他大佬的文章,然后我记录一下的文章。 首先创建好一个.net framework的winform项目。 这里面主要用到两个库文件: Fnthex32.dll、LabelPrint.dll。 Fnthex32这个有8位参数和9位参数的,我这…...

(一)Apache log4net™ 手册 - 介绍
0、相关概念 Log4j 几乎每个大型应用程序都包含自己的日志记录或跟踪 API。根据这一规则,E.U. SEMPER 🌹项目决定编写自己的跟踪 API。那是在 1996 年初。经过无数次的增强、几个化身和大量的工作,API 已经发展成为 log4j —— 一个流行的 Ja…...

基于Java的民宿管理系统设计与实现(源码+lw+部署文档+讲解等)(民宿预约、民宿预订、民宿管理、酒店预约通用)
文章目录 前言具体实现截图论文参考详细视频演示代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技…...

039:mapboxGL更换地图上的鼠标样式
第039个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中更换地图上的鼠标的样式。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共74行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:htt…...

【云原生】K8S对外服务之Ingress
目录 一、Ingress 简介1.1Ingress 组成1.3Ingress-Nginx 工作原理 二、部署 nginx-ingress-controller2.1部署ingress-controller Pod及相关资源2.2ingress 暴露服务的方式2.3 采用方式二:DaemonSetHostNetworknodeSelector 三、采用方式二:DeploymentNo…...

分布式锁如何实现
分布式是现在的比较主流的技术,常常和微服务一起出现。那么对于多个实例之间,如何证分布式系统中多个进程或线程同步访问共享资源呢?我们其实一想到的就是锁,我们在java里边有 synchronized, 在python里有lock,但是这个…...

Mysql存储-EAV模式
Mysql存储-EAV模式 最近又又又搞一点新东西,要整合不同业务进行存储和查询,一波学习过后总结了一下可扩展性MAX的eav模式存储。 在eav这里的数据结构设计尤为关键,需要充分考虑你需要使用的字段、使用场景,当数据结构设计完成后便…...

全局变量报错:\Output\STM32.axf: Error: L6218E: Undefined symbol
全局变量报错: .\Output\STM32.axf: Error: L6218E: Undefined symbol key_num (referred from main.o). 这里只说全局变量哦,这是因为你在调用的.c文件里 把定义写在了函数里面,写函数外面就没事了 改为: .h的声明文件根本不用写…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...