【Prometheus】PromQL进阶用法

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,云原生k8s,Prometheus监控,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:Prometheus监控系统零基础到进阶
景天的主页:景天科技苑

在这里插入图片描述

文章目录

  • PromQL进阶用法
    • 1、PromQL资源监控案例
      • 1.1 监控系统资源方法论
      • 1.2 使用USE监控系统资源
    • 2、CPU监控案例实践
      • 2.1 CPU重点监控的维度
      • 2.2 计算CPU平均使用率
      • 2.3 计算CPU饱和度
      • 2.4 配置CPU告警规则
    • 3、内存监控案例实践
      • 3.1 内存重点监控的维度
      • 3.2 计算内存使用率
      • 3.3 计算内存饱和度
      • 3.4 配置内存告警规则
    • 4、磁盘监控案例实践
      • 4.1 磁盘重点监控的维度
      • 4.2 计算磁盘空间使用率
      • 4.3 计算磁盘IO吞吐量
      • 4.4 计算磁盘IOPS
      • 4.5 配置磁盘告警规则
    • 5、网络监控案例实践
      • 5.1 网络重点监控的维度
      • 5.2 计算网络传输速率
      • 5.3 计算网络连接数使用率
      • 5.4 配置网络告警规则

PromQL进阶用法

1、PromQL资源监控案例

资源监控无外乎CPU,内存,磁盘,网络等。
怎么监控呢?需要找到具体的指标,寻找指标又要用到方法论,如下:

1.1 监控系统资源方法论

1、Google 的四个黄金指标着眼点在“服务监控”,这四个指标分别是“延迟、
流量、错误、饱和度”
2、RED方法主要着眼点在“用户体验”,它基于Google的黄金指标,细化了
三个关键指标,“请求率、错误数、请求处理时间”
3、USE方法主要着眼点在“系统资源”,的使用情况,这三个指标分别是“使
用率、饱和度、错误”。因此USE方法是最适合系统资源监控的

1.2 使用USE监控系统资源

在监控CPU、内存、磁盘和⽹络等系统资源时,使⽤USE的⽅法论是最为合适
的,它要求我们针对每个资源(也就是CPU、内存 、⽹络等)分别检查三个关键
方面:使用率、饱和度和错误。
使用率:表示资源在占作时占用的平均时间,例如,CPU在过去的60秒内有
30秒被用来执行指令,那么我们可以说这个CPU的使用率是50%。
饱和度:指明资源已经到达或接近其处理能力极限的程度,表明无法再处理
更多的工作量。这通常通过队列长度等指标来衡量。
错误:记录了资源在运行过程中发生的错误事件的次数。网络监控用的比较多

2、CPU监控案例实践

2.1 CPU重点监控的维度

对于CPU资源的监控,采用USE方法论通常关注以下几点:
CPU使用率:衡量CPU在一段时间内处于活跃状态的百分比。高使用率可能表明系统正在密集执行任务。
CPU饱和度:反映了在某一时间点等待CPU时间的进程数量。高饱和度可能意味着有很多任务在争夺CPU资源。
错误:通常对CPU不太有影响;
案例1:监控CPU1分钟的平均使用率;
案例2:监控CPU的饱和度;

2.2 计算CPU平均使用率

计算CPU平均使用率的公式: (1 - CPU 空闲率) * 100 = CPU 使用率

第一步:获取每个CPU模式的变化率,使用irate函数灵敏度更高,反映更接近实际使用率。

rate(node_cpu_seconds_total[1m])

第二步:查询CPU的空闲时间比率,即CPU处于空闲状态的时间比例。

irate(node_cpu_seconds_total{mode="idle"}[1m])

第三步:系统可能会有多个CPU核心,因此我们需要通过avg聚合函数来计算CPU平均空闲率,最后按照实例进行分组统计。

avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)

第四步:使用1减去每个核心的平均空闲率,得到平均使用率,然后将此值乘以100,转换为百分比,最终得出CPU的整体平均使用率

(1 - avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) ) *100

2.3 计算CPU饱和度

评估主机的CPU饱和度,最常用的方法是跟踪系统的平均负载。通常情况下,如
果这个负载的值低于CPU核心的数量,可以认为系统运行正常。然而,当平均负
载持续高于CPU核心数量的两倍时,这通常是CPU已经非常饱和了。
计算CPU饱和度的公式:1分钟平均负载 / (CPU核⼼数*2) * 100 = CPU饱和度
的百分比,当大于80%则认为CPU已经接近处理能力的极限。

第一步:获取1分钟平均负载值,然后按照实例和job进行分组计算。

sum(node_load1) by (instance,job)

第二步:获取CPU的核心数,然后乘以2,按实例进行分组计算每个实例的核心数。 这个mode找空闲的还是其他的都可以,因为是要查找CPU核心数

(count(node_cpu_seconds_total{mode="idle"}) by (instance,job) * 2)

第三步:计算CPU饱和度百分比,如果这个百分比大于80%,我们认为CPU已经
非常饱和,并且已经达到了处理能力的极限。

sum(node_load1) by (instance,job) / (count(node_cpu_seconds_total{mode="idle"}) by (instance,job) * 2) * 100 > 80

在这里插入图片描述

2.4 配置CPU告警规则

1、定义CPU告警规则组,然后注入两条规则
cat /etc/prometheus/rules/node_rules.yml
以groups开头

groups:
- name: CPU告警规则rules:- alert: 节点CPU使用率超过80%expr: ( 1 - avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance,job) ) * 100 > 80for: 1mlabels:severity: warningannotations:summary: "主机CPU利用率过高,实例:{{ $labels.instance }}, 任务:{{ $labels.job }}"description: "该实例的CPU利用率高于80%,当前利用率:{{ $value }}%。请及时检查。"- alert: CPU饱和度过高expr: sum(node_load1) by (instance,job) / (count(node_cpu_seconds_total{mode="idle"}) by (instance,job) * 2) * 100 > 80for: 2mlabels:severity: criticalannotations:summary: "CPU饱和度过高,实例:{{ $labels.instance }}, 任务:{{ $labels.job }}"description: "该实例的1分钟平均CPU负载超过了核心数的两倍,已经持续2分钟,当前CPU饱和度:{{ $value }}%。需要立即检查系统负载情况。"

在这里插入图片描述

如果想要prometheus读取到我们配置的告警规则,需要让prometheus能够读取到该配置文件
我们先看下默认的prometheus.yml配置文件写法
需要指定告警规则的yml文件路径
在这里插入图片描述

如果告警规则比较多,我们可以指定某个路径下的所有yml文件
在这里插入图片描述

然后执行prometheus热加载

curl -X POST http://localhost:9090/-/reload

检查配置文件格式是否正确

./promtool check config prometheus.yml

在这里插入图片描述

然后在prometheus的alert界面,就可以看到我们配置的告警规则
在这里插入图片描述

3、内存监控案例实践

3.1 内存重点监控的维度

对于内存资源的监控,采用USE方法论通常关注以下几点:
1、内存使用率:衡量系统内存被使用的程度。
2、内存饱和度:表明系统内存的负载程度。内存饱和度,通常监控SWAP的使用率来评估。
3、内存错误:通常较少发生。
案例1:计算内存使用率;
案例2:计算内存饱和度;

3.2 计算内存使用率

计算内存使用率百分比公式: ( 总内存 - 可用内存)/ 总内存 * 100 = 内存使用率

(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100

在这里插入图片描述

3.3 计算内存饱和度

计算内存饱和度百分比公式: (总SWAP - 未使用的SWAP) / 总SWAP * 100> 20

(node_memory_SwapTotal_bytes - node_memory_SwapFree_bytes) / node_memory_SwapTotal_bytes * 100

3.4 配置内存告警规则

1、定义内存告警规则组,然后注入两条规则
[root@prom-node01 ~]# cat /etc/prometheus/rules/node_rules.yml

groups:
- name: 内存告警规则rules:- alert: 主机内存不足expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 80for: 2mlabels:severity: warningannotations:summary: "主机内存使用率较高, 实例:{{ $labels.instance }}, 任务:{{ $labels.job }}"description: "该实例的内存使用率持续2分钟高于80%,当前利用率:{{ $value}}%"- alert: 内存饱和度高expr: (node_memory_SwapTotal_bytes - node_memory_SwapFree_bytes) / node_memory_SwapTotal_bytes * 100 > 10for: 2mlabels:severity: warningannotations:summary: "主机内存内存饱和度高, 实例:{{ $labels.instance }}, 任务:{{ $labels.job }}"description: "SWAP内存使用率已连续2分钟超过10%,表明内存饱和度过高,当前SWAP使用率为:{{ $value }}%。"

我们可以去掉–name 和rules
在这里插入图片描述

这样,告警规则就在一个分组下
在这里插入图片描述

如果我们加上,就单独是一个分组
在这里插入图片描述
在这里插入图片描述

4、磁盘监控案例实践

4.1 磁盘重点监控的维度

对于磁盘,我们不光需要度量磁盘使用率,甚至还需要度量 磁盘IO读写吞吐量、以及磁盘IOPS
1、磁盘使用率:衡量磁盘空间使用率、Inode使用率;
2、磁盘延迟:有些磁盘明确标注了延迟,我们可以监控磁盘的读写延迟,而后进行判定;
3、磁盘饱和度:通过监控I/O吞吐量和IOPS,可以衡量磁盘在繁忙时段的饱和度情况。

案例1:计算磁盘空间使用率、磁盘Inode空间使用率;
案例2:计算磁盘的IO吞吐量的饱和度;
案例3:计算IOPS每秒读写次数的饱和度;

常规磁盘的每秒的IOPS能力和IO吞吐量,有标准后,就好基于标准进行触发器设定,例如当IOPS每秒读写次数的饱和度超过80%则需要关注了
在这里插入图片描述

4.2 计算磁盘空间使用率

计算磁盘空间使用率:(总的磁盘空间 - 可用的磁盘空间 = 已用的磁盘空间) / 总的磁盘空间 * 100
计算Inode空间使用率:( 总的Inode数 - 可用的inode数) / 总的inode数 * 100

1、计算不同分区的磁盘空间使用率(排除tmpfs的分区)

( node_filesystem_size_bytes{device!="tmpfs"} - node_filesystem_avail_bytes{device!="tmpfs"} ) / node_filesystem_size_bytes{device!="tmpfs"} * 100 

在这里插入图片描述

2、计算inode使用率(排除tmpfs的分区)

(node_filesystem_files{device!="tmpfs"} - node_filesystem_files_free{device!="tmpfs"} ) / node_filesystem_files{device!="tmpfs"} * 100 

在这里插入图片描述

4.3 计算磁盘IO吞吐量

I/O吞吐量:衡量在单位时间内磁盘能够读写多少数据量,通常以MB/s(兆字节每秒)为单位。
I/O吞吐量饱和度(%)=(当前IO吞吐量 / 磁盘的最大IO吞吐量能力)× 100
要根据不同的磁盘类型来确定磁盘的最大IO吞吐能力,如果使用云主机,厂商告诉你磁盘的最大吞吐能力为多大

磁盘吞吐量指标
在这里插入图片描述

1、模拟IO写入吞吐量,并限制写入IO最大20MB/s

yum install pv -ydd if=/dev/zero bs=1M count=10000 | pv -L 20M > /tmp/bigdata

在这里插入图片描述

2、获取当前磁盘最近1分钟的,写入吞吐量最大的值,然后按实例进行分组计算,最后将结果转为MB

max(rate(node_disk_written_bytes_total[1m])) by (instance,job) / 1024 /1024

在这里插入图片描述

3、使用当前IO写入吞吐量 除以 磁盘最大写入I/O吞吐量30MB/s,而后乘以100,获取I/O吞吐的饱和度百分比

(max(rate(node_disk_written_bytes_total[1m])) by (instance,job) / 1024 /1024) / 30 * 100

在这里插入图片描述

# 告警(当IO写入吞吐大于80%则触发告警),round四舍五入取整数
round(max(rate(node_disk_written_bytes_total[1m])) by (instance,job) / 1024/1024 / 30 * 100) > 60

4、模拟IO读取吞吐量,并限制读取IO最大20MB/s

# yum install pv -y
pv -L 20M /tmp/bigdata > /dev/null

在这里插入图片描述

5、获取当前磁盘最近1分钟的,读取吞吐量最大的值,然后按实例进行分组计算,最后将结果转为MB

max(rate(node_disk_read_bytes_total[1m])) by (instance,job) / 1024 /1024

在这里插入图片描述

6、使用当前IO读取吞吐量 除以 磁盘最大读取I/O吞吐量30MB/s,而后乘以100,获取I/O吞吐的饱和度百分比

max(rate(node_disk_read_bytes_total[1m])) by (instance,job) / 1024 /1024 /30 * 100

在这里插入图片描述

# 告警(当IO读取吞吐大于60%则触发告警)
round(max(irate(node_disk_read_bytes_total[1m])) by (instance,job) / 1024 /1024 /30 * 100 ) > 60

4.4 计算磁盘IOPS

IOPS:衡量在单位时间内磁盘能够读写操作的次数。
IOPS饱和度(%)=(当前IOPS / 磁盘的最大IOPS能力)× 100

iops指标
在这里插入图片描述

1、模拟IO写入,也相当于有大量IOPS

dd if=/dev/zero bs=1M count=10000 | pv -L 100M > /tmp/bigdata

在这里插入图片描述

2、获取当前磁盘最近1分钟的,IOPS写入次数的最大的值,然后按实例进行分组计算

max(irate(node_disk_writes_completed_total[1m])) by (instance,job)

在这里插入图片描述

3、使用当前IOPS写入次数 除以 磁盘最大IOPS,这里是120,而后乘以100,获取IOPS写入的饱和度百分比

max(irate(node_disk_writes_completed_total[1m])) by (instance,job) / 120 *100

在这里插入图片描述

# 告警(当IOPS饱和度大于60%则触发告警)
round(max(irate(node_disk_writes_completed_total[1m])) by (instance,job) /120 * 100) > 60

4、模拟IO读取,也相当于有大量IOPS

yum install pv -y
pv -L 50M /tmp/bigdata > /dev/null

在这里插入图片描述

5、获取当前磁盘最近1分钟的,读取IOPS最大次数的值,然后按实例进行分组计算

max(irate(node_disk_reads_completed_total[1m])) by (instance,job)

在这里插入图片描述

6、使用当前IO读取吞吐量 除以 磁盘最大读取I/O吞吐量,而后乘以100,获取IOPS读取的饱和度百分比

max(irate(node_disk_reads_completed_total[1m])) by (instance,job) / 120 * 100

在这里插入图片描述

# 告警(当IOPS读取大于60%则触发告警)
round(max(irate(node_disk_reads_completed_total[1m])) by (instance,job) / 120 * 100) > 60

4.5 配置磁盘告警规则

1、编写磁盘告警规则文件

groups:
- name: 磁盘告警规则rules:- alert: 磁盘空间告急expr: ( node_filesystem_size_bytes{device!="tmpfs"} - node_filesystem_avail_bytes{device!="tmpfs"} ) / node_filesystem_size_bytes{device!="tmpfs"} * 100 > 70for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 磁盘 {{ $labels.mountpoint }}分区空间不足"description: "实例 {{ $labels.instance }} 磁盘 {{ $labels.mountpoint}} 分区空间使用率已超过 70%,当前使用率为 {{ $value }}%,请及时处理。"- alert: 磁盘Inode空间告急expr: (node_filesystem_files{device!="tmpfs"} - node_filesystem_files_free{device!="tmpfs"} ) / node_filesystem_files{device!="tmpfs"} * 100 > 70for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 磁盘 {{ $labels.mountpoint }}分区Inode空间不足"description: "实例 {{ $labels.instance }} 磁盘 {{ $labels.mountpoint}} 分区的Inode空间使用率已超过 70%,当前使用率为 {{ $value }}%,请及时处理。"- alert: 磁盘IOPS写入较高#expr: sum(rate(node_disk_writes_completed_total[1m])) by (instance,job) / 120 * 100 >60#round函数可以对值进行四舍五入expr: round(max(irate(node_disk_writes_completed_total[1m])) by (instance,job) / 120 * 100,0.01) > 60for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} IOPS每秒写入次数超过120次/s"description: 目前磁盘IOPS写入饱和度是 {{ $value }}%,目前磁盘IOPS每秒写入最大 {{ printf `max(rate(node_disk_writes_completed_total{instance="%s",job="%s"}[1m]))` $labels.instance $labels.job | query | first | value | printf "%.2f" }} 次/s- alert: 磁盘IOPS读取较高expr: round(max(irate(node_disk_reads_completed_total[1m])) by (instance,job) / 120 * 100) > 60for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} IOPS每秒读取次数超过120次/s"description: 目前磁盘IOPS读取饱和度是 {{ $value }}%,目前磁盘IOPS每秒读取最大{{ printf `max(rate(node_disk_reads_completed_total{instance="%s",job="%s"}[1m]))` $labels.instance $labels.job | query | first | value | printf "%.2f" }} 次/s- alert: 磁盘IO写入吞吐较高expr: round(max(rate(node_disk_written_bytes_total[1m])) by (instance,job) / 1024 /1024 / 30 * 100) > 60for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 磁盘IO写入每秒超过最大30MB/s"description: 目前磁盘IO写⼊吞吐量的饱和度是 {{ $value }}%。目前磁盘IO写入吞吐量每秒最大是 {{ printf `max(rate(node_disk_written_bytes_total{instance="%s",job="%s"}[1m])) /1024/1024` $labels.instance $labels.job | query | first | value | printf "%.2f" }}MB/s- alert: 磁盘IO读取吞吐较高expr: round(max(rate(node_disk_read_bytes_total[1m])) by (instance,job) / 1024 /1024 /30 * 100 ) > 60for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 磁盘IO读取每秒超过最大30MB/s"description: 目前磁盘IO读取吞吐量的饱和度是 {{ $value }}%。目前磁盘IO读取吞吐量每秒最大是 {{ printf `max(rate(node_disk_read_bytes_total{instance="%s",job="%s"}[1m])) /1024/1024` $labels.instance $labels.job | query | first | value | printf "%.2f" }}MB/s

在这里插入图片描述
在这里插入图片描述

5、网络监控案例实践

5.1 网络重点监控的维度

对于网络,通常使用USE方法监控如下几个维度:
1、网络传输速率:即当前网络每秒传输的带宽。
2、网络饱和度:对于网络饱和度,通常查看网络是否丢包严重,如果持续有丢包情况则认为目前网络比较饱和;
3、网络错误率:可以通过监控网络发送和接收的错误来获得;
案例1:计算网络每秒传输带宽;
案例2:计算网络饱和度,例如:当带宽速率达到100%,并且发送和接收的丢包率持续上升则告警 node_network_transmit_drop_total、node_network_receive_drop_total
案例3:计算网络TCP连接数使用率;

5.2 计算网络传输速率

网络传输速率 = irate(网络接口 “发送/接收” 的总数据量) * 8 /1024 /1024 =Mbps

1、模拟带宽

# 1、在两个测试的节点上安装:yum install iperf -y
# 2、服务端运行并指定端口:iperf -s -p 9999

在这里插入图片描述

3、客户端模拟带宽发送命令,-b指定发送大小,-t指定发送持续时间:iperf -c -p 9999 -b 300M -t 60
在这里插入图片描述

2、获取最大的下载带宽,也就是每秒能接收多少Mbps

max(irate(node_network_receive_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device)

在这里插入图片描述

3、获取最大的上传带宽,也就是每秒能上传多少Mbps

max(irate(node_network_transmit_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device)

在这里插入图片描述

4、假设公司带宽是500Mbps,我希望达到400Mbps时则触发告警,计算公式: 网络每秒传输带宽 / 网络最大带宽 * 100 >= 80
下载

max(irate(node_network_receive_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device) / 500 * 100 >= 80

在这里插入图片描述

上传

max(irate(node_network_transmit_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device) / 500 * 100 >= 80

在这里插入图片描述

5.3 计算网络连接数使用率

网络连接率 = 当前活跃TCP连接数 / 系统内核最大支持的TCP连接数 * 100

(node_nf_conntrack_entries / node_nf_conntrack_entries_limit) * 100
# 告警
(node_nf_conntrack_entries / node_nf_conntrack_entries_limit) * 100 > 80

在这里插入图片描述

5.4 配置网络告警规则

1、配置网络告警规则

- name: 网络告警规则rules:- alert: 网络下载带宽占用过高,超过80%expr: max(irate(node_network_receive_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device) / 50 * 100 >= 80for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 的 {{ $labels.device }} 接口下载流量即将超过公司实际50Mbps"description: 目前下载带宽已经达到 {{ printf `(irate(node_network_receive_bytes_total{instance="%s",job="%s",device="%s"}[1m]) * 8 / 1024 / 1024)` $labels.instance $labels.job $labels.device | query | first | value | printf "%.2f"}} Mbps/s 目前下载带宽使用率在 {{ $value }}%- alert: 网络上传带宽占用过高,超过80%expr: max(irate(node_network_transmit_bytes_total[1m]) * 8 / 1024 / 1024) by (instance,job,device) / 50 * 100 >= 80for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 的 {{ $labels.device }} 接口上传流量即将超过公司实际50Mbps"description: 目前上传带宽已经达到 {{ printf `(irate(node_network_transmit_bytes_total{instance="%s",job="%s",device="%s"}[1m]) * 8 / 1024 / 1024)` $labels.instance $labels.job $labels.device | query | first | value | printf "%.2f"}} Mbps/s 目前上传带宽使用率在 {{ $value }}%- alert: 网络TCP连接数过高,超过80%expr: node_nf_conntrack_entries / node_nf_conntrack_entries_limit * 100 > 80for: 1mlabels:severity: criticalannotations:summary: "实例 {{ $labels.instance }} 的 tcp连接数超过80%"description: 目前TCP连接数是 {{ printf `node_nf_conntrack_entries{instance="%s",job="%s"}` $labels.instance $labels.job | query | first | value" }} 目前TCP连接使用率是 {{ $value }}%

最后一个TCP的没法用,我们先去掉
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络介质访问控制全攻略:从信道划分到协议详解!!!

一、信道划分介质访问控制 介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突? 时分复用(TDM) 时分复用:将时间分为等长的“…

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置

Prometheus部署及linux、mysql、monog、redis、RocketMQ、java_jvm监控配置 1.Prometheus部署1.2.Prometheus修改默认端口 2.grafana可视化页面部署3.alertmanager部署4.监控配置4.1.主机监控node-exporter4.2.监控mysql数据库mysqld_exporter4.3.监控mongod数据库mongodb_expo…

基于tldextract提取URL里的子域名、主域名、顶级域

TLD是TopLevel Domain的缩写。‌tldextract‌ 是一个用于从URL中提取子域、主域名和顶级域(TLD)的Python库。它利用公共后缀列表(Public Suffix List)来确保即使是复杂或不常见的URL结构也能被正确解析。tldextract能够处理包括IC…

常见Arthas命令与实践

Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件,可快速生成…

win32汇编环境,对多行编辑框添加或删除文本

;运行效果 ;win32汇编环境,对多行编辑框添加或删除文本 ;主要要先设置文本的开始点与结束点,然后把一段文本顶替上去。没有添加文本或删除文本的概念,只有顶替。如果开始点与结束点都是前面文本的长度值,则成了从后面添加文本的效果。如果结束…

CSDN年度回顾:技术征途上的坚实步伐

嘿,时光过得可真快呀,就像那匹跑得飞快的白马,嗖的一下,2024 年的日历就这么悄无声息地翻到了最后一页。这会儿我回头看看在 CSDN 上度过的这一年,心里那叫一个感慨万千,满满的都是喜悦,就像心里…

人脸识别打卡系统--基于QT(附源码)

逃离舒适区 项目源代码放在我的仓库中,有需要自取 项目地址 https://gitcode.com/hujiahangdewa/Face_recognition.git 文章目录 一、项目结构分析二、服务器的搭建三、客户端的搭建四、人脸识别库的申请五、基于人脸识别库的识别判断六、QT人脸识别----调用百度ai…

人工智能在数字化转型中的角色:从数据分析到智能决策

引言 在数字化转型浪潮中,人工智能(AI)正迅速崛起,成为推动企业创新和变革的关键力量。面对日益复杂的市场环境和激烈的行业竞争,企业亟需借助技术手段提高运营效率、优化决策过程,并增强市场竞争力。而AI…

react install

react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤: 使用 Create React App Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…

Android系统开发(二十):字体活起来,安卓自定义字体改造指南

为什么要写这篇文章? 你是否厌倦了千篇一律的安卓默认字体?想让你的设备从“乏味的配角”变成“炫酷的主角”?好消息!从Android 12到Android 15,自定义字体变得更简单、更强大。尤其是表情字体的更新,不仅…

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)

前情: 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)-CSDN博客 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(2.换掉付费的Event Hubs)-CSDN博客 python脚本实现 厉害的…

python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖

【1】引言 前序学习了使用numpy创建单通道的灰色图像,并对灰色图像的局部进行了颜色更改,相关链接为: python学opencv|读取图像(九)用numpy创建黑白相间灰度图_numpy生成全黑图片-CSDN博客 之后又学习了使用numpy创…

Linux系统常用指令

查找文件 find / -name "<文件名>" 2>/dev/null //遍历系统查找指定文件名文件ls -l | grep "<文件名>" //列出当前目录下有关文件名的文件find -name sw_sfp_alarm_cfg.xml //查找文件名对应路径 切换目录 编辑文件 vi <文件…

【Unity】ScrollViewContent适配问题(Contentsizefilter不刷新、ContentSizeFilter失效问题)

最近做了一个项目&#xff0c;菜单栏读取数据后自动生成&#xff0c;结果用到了双重布局 父物体 尝试了很多方式&#xff0c;也看过很多大佬的文章&#xff0c;后来自己琢磨了一下&#xff0c;当子物体组件自动生成之后&#xff0c;使用以下以下代码效果会好一些&#xff1a; …

AI辅助医学统计分析APP

AI辅助医学统计分析APP 医学统计分析的困难点在于开始阶段分析的规划和得出分析结果之后分析结果的解释&#xff0c;前者之所以困难是因为分析方法繁多又有不同的使用条件&#xff0c;后者则是因为结果中术语较多&#xff0c;且各种分析方法术语又有不同&#xff0c;非统计专业…

[STM32 HAL库]串口中断编程思路

一、前言 最近在准备蓝桥杯比赛&#xff08;嵌入式赛道&#xff09;&#xff0c;研究了以下串口空闲中断DMA接收不定长的数据&#xff0c;感觉这个方法的接收效率很高&#xff0c;十分好用。方法配置都成功了&#xff0c;但是有一个点需要进行考虑&#xff0c;就是一般我们需要…

AutoSar架构学习笔记

1.AUTOSAR&#xff08;Automotive Open System Architecture&#xff0c;汽车开放系统架构&#xff09;是一个针对汽车行业的软件架构标准&#xff0c;旨在提升汽车电子系统的模块化、可扩展性、可重用性和互操作性。AUTOSAR的目标是为汽车电子控制单元&#xff08;ECU&#xf…

算法竞赛之差分进阶——等差数列差分 python

目录 前置知识进入正题实战演练 前置知识 给定区间 [ l, r ]&#xff0c;让我们把数组中的[ l, r ] 区间中的每一个数加上c,即 a[ l ] c , a[ l 1 ] c , a[ l 2] c , a[ r ] c; 怎么做&#xff1f;很简单&#xff0c;差分一下即可 还不会的小伙伴点此进入学习 进入正题 …

TDengine 做 Apache SuperSet 数据源

‌Apache Superset‌ 是一个现代的企业级商业智能&#xff08;BI&#xff09;Web 应用程序&#xff0c;主要用于数据探索和可视化。它由 Apache 软件基金会支持&#xff0c;是一个开源项目&#xff0c;它拥有活跃的社区和丰富的生态系统。Apache Superset 提供了直观的用户界面…

金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践

导读&#xff1a;中信银行信用卡中心每日新增日志数据 140 亿条&#xff08;80TB&#xff09;&#xff0c;全量归档日志量超 40PB&#xff0c;早期基于 Elasticsearch 构建的日志云平台&#xff0c;面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此…