最新要闻
- 甘肃凉州:让非遗民俗文化“活起来”|观焦点
- 年度最火的KEEP动感单车免费得:连续88天打卡全额返 焦点速看
- 实时:可灭电火、油火 北大青鸟车载灭火器620ml 12.92元
- 真我史上最大底 真我11 Pro+搭载行业最高2亿像素传感器:挑战最强 每日热门
- 环球快资讯丨特斯拉要疯?向所有用户开放超充 车主拍手友商跺脚
- 首发2099元!九号电动V30C发布:50km续航、车架终身质保 当前热点
- 微软修复 Win10 / Win11 上 BlackLotus UEFI 漏洞
- 当前热讯:成功展商要点——2023第十二届北京国际汽车制造业博览会
- 环球即时:传音Tecno Camon 20系列发布:五边形镜组极具辨识度
- 当前资讯!《斗罗大陆双神战双神》首个场景秀公开:虚幻5打造 画面逼真
- 这就很尴尬 男子高速电话指导女友开车 结果自己撞了
- 世界看点:4699元起 九号智能电动车小Q发布:新国标、能跑95km
- 一图看懂联发科旗舰新U天玑9200+:CPU/GPU性能提升10%、功耗更低了
- 环球看点!男童喉咙长菜花样肿块确诊感染HPV
- 2023年梅花金银兔纪念币价格(2023年05月10日)_世界快资讯
- 仅7999元!Redmi MAX 90英寸巨屏电视开售:百级分区、144Hz高刷 即时焦点
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
[系统性能优化实践]JVM进阶实战之监控工具(Prometheus) 焦点速递
0 Prometheus概述
0.1 简介
Prometheus
是一个开源的系统监控和报警系统;- 现在已加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目
- 在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。
0.2 特点
- 1)多维度数据模型
每一个时间序列数据都由metric度量指标名称和它的标签labels键值对集合唯一确定:这个metric度量指标名称指定监控目标系统的测量特征(如:http_requests_total- 接收http请求的总计数)。labels开启了Prometheus的多维数据模型:对于相同的度量名称,通过不同标签列表的结合, 会形成特定的度量维度实例。(例如:所有包含度量名称为/api/tracks的http请求,打上method=POST的标签,则形成了具体的http请求)。这个查询语言在这些度量和标签列表的基础上进行过滤和聚合。改变任何度量上的任何标签值,则会形成新的时间序列图。
2)灵活的查询语言(PromQL):可以对采集的metrics指标进行加法,乘法,连接等操作;
(相关资料图)
3)可以直接在本地部署,不依赖其他分布式存储;
4)通过基于HTTP的pull方式采集时序数据;
5)可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;
6)可通过服务发现或者静态配置来发现目标服务对象(targets)。
7)有多种可视化图像界面,如Grafana等。
8)高效的存储,每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。
9)做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据
0.3 样本
样本
:在时间序列中的每一个点称为一个样本
(sample
)
样本
由以下3部分组成:
指标
(metric):指标名称和描述当前样本特征的 labelsets;时间戳
(timestamp):一个精确到毫秒的时间戳;样本值
(value): 一个 folat64 的浮点型数据表示当前样本的值。表示方式
:通过如下表达方式表示指定指标名称和指定标签集合的时间序列:{
例如,指标名称为 api_http_requests_total,标签为 method="POST" 和 handler="/messages" 的时间序列可以表示为:api_http_requests_total
0.4 架构与组件
从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL
Retrieval
负责在活跃的target主机上抓取监控指标数据Storage
存储主要是把采集到的数据存储到磁盘中PromQL
是Prometheus
提供的查询语言模块。
Prometheus Server
: 用于收集和存储时间序列数据。Client Library
: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。Exporters
: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端,所有向promtheus server提供监控数据的程序都可以被称为exporterAlertmanager
: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。Grafana
:监控仪表盘,可视化监控数据pushgateway
: 各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。
0.5 工作流程
1)Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;
2)Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;
3)Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager
4)Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等
5)Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据
6)Grafana可接入prometheus数据源,把监控数据以图形化形式展示出
0.6 竞品分析:Prometheus vs zabbix
0.7 Prometheus的部署模式
0.7.1 基本高可用模式
基本的HA模式只能确保Promthues服务的可用性问题,但是不解决Prometheus Server之间的数据一致性问题以及持久化问题(数据丢失后无法恢复),也无法进行动态的扩展。因此,这种部署方式适合监控规模不大,Promthues Server
也不会频繁发生迁移的情况,并且只需要保存短周期监控数据的场景。
0.7.2 基本高可用+远程存储
在解决了Promthues服务可用性的基础上,同时确保了数据的持久化,当Promthues Server发生宕机或者数据丢失的情况下,可以快速的恢复。同时Promthues Server可能很好的进行迁移。因此,该方案适用于用户监控规模不大,但是希望能够将监控数据持久化,同时能够确保Promthues Server的可迁移性的场景。
0.7.3 基本HA + 远程存储 + 联邦集群方案
Promthues的性能瓶颈主要在于大量的采集任务,因此用户需要利用Prometheus联邦集群的特性,将不同类型的采集任务划分到不同的Promthues子服务中,从而实现功能分区。例如一个Promthues Server负责采集基础设施相关的监控指标,另外一个Prometheus Server负责采集应用监控指标。再有上层Prometheus Server实现对数据的汇聚。
0.8 Prometheus的数据类型(x4)
0.8.1 Counter(计数器类型)
- Counter 用于累计值,例如记录请求次数、任务完成数、错误发生次数。
- 一直增加,不会减少。
- 重启进程后,会被重置。
# Counter类型示例http_response_total{method="GET",endpoint="/api/tracks"} 100http_response_total{method="GET",endpoint="/api/tracks"} 160
Counter 类型数据可以让用户方便的了解事件产生的速率的变化,在PromQL内置的相关操作函数可以提供相应的分析,比如以HTTP应用请求量来进行说明
- 1)通过rate()函数获取HTTP请求量的增长率:rate(http_requests_total[5m])
- 2)查询当前系统中,访问量前10的HTTP地址:topk(10, http_requests_total)
0.8.2 Gauge(测量器类型)
- Gauge是常规数值,例如温度变化、内存使用变化。
- 可变大,可变小。
- 重启进程后,会被重置
# Gauge类型示例memory_usage_bytes{host="master-01"} 100memory_usage_bytes{host="master-01"} 30memory_usage_bytes{host="master-01"} 50memory_usage_bytes{host="master-01"} 80
对于 Gauge 类型的监控指标,通过 PromQL 内置函数 delta() 可以获取样本在一段时间内的变化情况,例如,计算 CPU 温度在两小时内的差异:dalta(cpu_temp_celsius{host="zeus"}[2h])
你还可以通过PromQL 内置函数 predict_linear() 基于简单线性回归的方式,对样本数据的变化趋势做出预测。例如,基于 2 小时的样本数据,来预测主机可用磁盘空间在 4 个小时之后的剩余情况:predict_linear(node_filesystem_free{job="node"}[2h], 4 * 3600) < 0
0.8.3 Histogram(柱状图)
histogram是柱状图,在Prometheus系统的查询语言中,有三种作用:
- 1)在一段时间范围内对数据进行采样(通常是请求持续时间或响应大小等),并将其计入可配置的存储桶(bucket)中. 后续可通过指定区间筛选样本,也可以统计样本总数,最后一般将数据展示为直方图。
- 2)对每个采样点值累计和(sum)
- 3)对采样点的次数累计和(count)
度量指标名称: [basename]上面三类的作用度量指标名称
1)[basename]bucket{le="上边界"}, 这个值为小于等于上边界的所有采样点数量2)[basename]_sum_3)[basename]_count
小结:如果定义一个度量类型为Histogram,则Prometheus会自动生成三个对应的指标
为什需要用histogram柱状图?在大多数情况下人们都倾向于使用某些量化指标的平均值,例如 CPU 的平均使用率、页面的平均响应时间。这种方式的问题很明显,以系统 API 调用的平均响应时间为例:如果大多数 API 请求都维持在 100ms 的响应时间范围内,而个别请求的响应时间需要 5s,那么就会导致某些 WEB 页面的响应时间落到中位数的情况,而这种现象被称为长尾问题。 为了区分是平均的慢还是长尾的慢,最简单的方式就是按照请求延迟的范围进行分组。例如,统计延迟在 0~10ms 之间的请求数有多少,而 10~20ms 之间的请求数又有多少。通过这种方式可以快速分析系统慢的原因。Histogram 和 Summary 都是为了能够解决这样问题的存在,通过 Histogram 和 Summary 类型的监控指标,我们可以快速了解监控样本的分布情况。
Histogram 类型的样本会提供三种指标(假设指标名称为 ):
1)样本的值分布在 bucket 中的数量,命名为 _bucket{le="<上边界>"}。解释的更通俗易懂一点,这个值表示指标值小于等于上边界的所有样本数量。
# 1、在总共2次请求当中。http 请求响应时间 <=0.005 秒 的请求次数为0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.005",} 0.0 # 2、在总共2次请求当中。http 请求响应时间 <=0.01 秒 的请求次数为0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.01",} 0.0 # 3、在总共2次请求当中。http 请求响应时间 <=0.025 秒 的请求次数为0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.025",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.05",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.075",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.1",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.25",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.5",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="0.75",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="1.0",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="2.5",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="5.0",} 0.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="7.5",} 2.0 # 4、在总共2次请求当中。http 请求响应时间 <=10 秒 的请求次数为 2io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="10.0",} 2.0io_namespace_http_requests_latency_seconds_histogram_bucket{path="/",method="GET",code="200",le="+Inf",} 2.0
2)所有样本值的大小总和,命名为 _sum
# 实际含义: 发生的2次 http 请求总的响应时间为 13.107670803000001 秒io_namespace_http_requests_latency_seconds_histogram_sum{path="/",method="GET",code="200",} 13.107670803000001
3)样本总数,命名为 _count,值和 _bucket{le="+Inf"} 相同
# 实际含义: 当前一共发生了 2 次 http 请求io_namespace_http_requests_latency_seconds_histogram_count{path="/",method="GET",code="200",} 2.0
注意:1)bucket 可以理解为是对数据指标值域的一个划分,划分的依据应该基于数据值的分布。注意后面的采样点是包含前面的采样点的,假设 xxx_bucket{...,le="0.01"} 的值为 10,而 xxx_bucket{...,le="0.05"} 的值为 30,那么意味着这 30 个采样点中,有 10 个是小于 0.01s的,其余 20 个采样点的响应时间是介于0.01s 和 0.05s之间的。
2)可以通过 histogram_quantile() 函数来计算 Histogram 类型样本的分位数。分位数可能不太好理解,你可以理解为分割数据的点。我举个例子,假设样本的 9 分位数(quantile=0.9)的值为 x,即表示小于 x 的采样值的数量占总体采样值的 90%。Histogram 还可以用来计算应用性能指标值(Apdex score)。
0.8.4 Summary(汇总)
与 Histogram 类型类似,用于表示一段时间内的数据采样结果(通常是请求持续时间或响应大小等),但它直接存储了分位数(通过客户端计算,然后展示出来),而不是通过区间来计算。它也有三种作用:
1)对于每个采样点进行统计,并形成分位图。(如:正态分布一样,统计低于60分不及格的同学比例,统计低于80分的同学比例,统计低于95分的同学比例)
2)统计班上所有同学的总成绩(sum)
3)统计班上同学的考试总人数(count)
带有度量指标的[basename]的summary 在抓取时间序列数据有如命名。
1、观察时间的φ-quantiles (0 ≤ φ ≤ 1), 显示为[basename]{分位数="[φ]"}
2、[basename]sum, 是指所有观察值的总和
3、[basename]_count, 是指已观察到的事件计数值
样本值的分位数分布情况,命名为 {quantile="<φ>"}。
# 1、含义:这 12 次 http 请求中有 50% 的请求响应时间是 3.052404983sio_namespace_http_requests_latency_seconds_summary{path="/",method="GET",code="200",quantile="0.5",} 3.052404983 # 2、含义:这 12 次 http 请求中有 90% 的请求响应时间是 8.003261666sio_namespace_http_requests_latency_seconds_summary{path="/",method="GET",code="200",quantile="0.9",} 8.003261666
所有样本值的大小总和,命名为 _sum。
# 1、含义:这12次 http 请求的总响应时间为 51.029495508sio_namespace_http_requests_latency_seconds_summary_sum{path="/",method="GET",code="200",} 51.029495508
样本总数,命名为 _count。
# 1、含义:当前一共发生了 12 次 http 请求io_namespace_http_requests_latency_seconds_summary_count{path="/",method="GET",code="200",} 12.0
Histogram 与 Summary 的异同:它们都包含了 _sum 和 _count 指标,Histogram 需要通过 _bucket 来计算分位数,而 Summary 则直接存储了分位数的值。
prometheus_tsdb_wal_fsync_duration_seconds{quantile="0.5"} 0.012352463prometheus_tsdb_wal_fsync_duration_seconds{quantile="0.9"} 0.014458005prometheus_tsdb_wal_fsync_duration_seconds{quantile="0.99"} 0.017316173prometheus_tsdb_wal_fsync_duration_seconds_sum 2.888716127000002prometheus_tsdb_wal_fsync_duration_seconds_count 216 # 从上面的样本中可以得知当前Promtheus Server进行wal_fsync操作的总次数为216次,耗时2.888716127000002s。其中中位数(quantile=0.5)的耗时为0.012352463,9分位数(quantile=0.9)的耗时为0.014458005s。
0.9 监控内容:Prometheus能监控什么?
# Databases---数据库 Aerospike exporter ClickHouse exporter Consul exporter (official) Couchbase exporter CouchDB exporter ElasticSearch exporter EventStore exporter Memcached exporter (official) MongoDB exporter MSSQL server exporter MySQL server exporter (official) OpenTSDB Exporter Oracle DB Exporter PgBouncer exporter PostgreSQL exporter ProxySQL exporter RavenDB exporter Redis exporter RethinkDB exporter SQL exporter Tarantool metric library Twemproxy# Hardware related---硬件相关 apcupsd exporter Collins exporter IBM Z HMC exporter IoT Edison exporter IPMI exporter knxd exporter Netgear Cable Modem Exporter Node/system metrics exporter (official) NVIDIA GPU exporter ProSAFE exporter Ubiquiti UniFi exporter# Messaging systems---消息服务 Beanstalkd exporter Gearman exporter Kafka exporter NATS exporter NSQ exporter Mirth Connect exporter MQTT blackbox exporter RabbitMQ exporter RabbitMQ Management Plugin exporter# Storage---存储 Ceph exporter Ceph RADOSGW exporter Gluster exporter Hadoop HDFS FSImage exporter Lustre exporter ScaleIO exporter# HTTP---网站服务 Apache exporter HAProxy exporter (official) Nginx metric library Nginx VTS exporter Passenger exporter Squid exporter Tinyproxy exporter Varnish exporter WebDriver exporter# APIs AWS ECS exporter AWS Health exporter AWS SQS exporter Cloudflare exporter DigitalOcean exporter Docker Cloud exporter Docker Hub exporter GitHub exporter InstaClustr exporter Mozilla Observatory exporter OpenWeatherMap exporter Pagespeed exporter Rancher exporter Speedtest exporter# Logging---日志 Fluentd exporter Google"s mtail log data extractor Grok exporter# Other monitoring systems Akamai Cloudmonitor exporter Alibaba Cloudmonitor exporter AWS CloudWatch exporter (official) Cloud Foundry Firehose exporter Collectd exporter (official) Google Stackdriver exporter Graphite exporter (official) Heka dashboard exporter Heka exporter InfluxDB exporter (official) JavaMelody exporter JMX exporter (official) Munin exporter Nagios / Naemon exporter New Relic exporter NRPE exporter Osquery exporter OTC CloudEye exporter Pingdom exporter scollector exporter Sensu exporter SNMP exporter (official) StatsD exporter (official)# Miscellaneous---其他 ACT Fibernet Exporter Bamboo exporter BIG-IP exporter BIND exporter Bitbucket exporter Blackbox exporter (official) BOSH exporter cAdvisor Cachet exporter ccache exporter Confluence exporter Dovecot exporter eBPF exporter Ethereum Client exporter Jenkins exporter JIRA exporter Kannel exporter Kemp LoadBalancer exporter Kibana Exporter Meteor JS web framework exporter Minecraft exporter module PHP-FPM exporter PowerDNS exporter Presto exporter Process exporter rTorrent exporter SABnzbd exporter Script exporter Shield exporter SMTP/Maildir MDA blackbox prober SoftEther exporter Transmission exporter Unbound exporter Xen exporter# Software exposing Prometheus metrics---Prometheus度量指标 App Connect Enterprise Ballerina Ceph Collectd Concourse CRG Roller Derby Scoreboard (direct) Docker Daemon Doorman (direct) Etcd (direct) Flink FreeBSD Kernel Grafana JavaMelody Kubernetes (direct) Linkerd
0.9 Prometheus对kubernetes的监控
对于Kubernetes而言,我们可以把当中所有的资源分为几类:
- 基础设施层(Node):集群节点,为整个集群和应用提供运行时资源
- 容器基础设施(Container):为应用提供运行时环境
- 用户应用(Pod):Pod中会包含一组容器,它们一起工作,并且对外提供一个(或者一组)功能
- 内部服务负载均衡(Service):在集群内,通过Service在集群暴露应用功能,集群内应用和应用之间访问时提供内部的负载均衡
- 外部访问入口(Ingress):通过Ingress提供集群外的访问入口,从而可以使外部客户端能够访问到部署在Kubernetes集群内的服务
因此,如果要构建一个完整的监控体系,我们应该考虑,以下5个方面:
- 集群节点状态监控:从集群中各节点的kubelet服务获取节点的基本运行状态;
- 集群节点资源用量监控:通过Daemonset的形式在集群中各个节点部署Node Exporter采集节点的资源使用情况;
- 节点中运行的容器监控:通过各个节点中kubelet内置的cAdvisor中获取个节点中所有容器的运行状态和资源使用情况;
- 如果在集群中部署的应用程序本身内置了对Prometheus的监控支持,那么我们还应该找到相应的Pod实例,并从该Pod实例中获取其内部运行状态的监控指标。
- 对k8s本身的组件做监控:apiserver、scheduler、controller-manager、kubelet、kube-proxy
1 Prometheus 监控 Spring Cloud Gateway
1.1 简述
- API网关作为应用服务与外部交互的入口,通过对API网关的监控,可以清晰的知道应用整体的请求量,以便根据不同的并发情况进行扩容处理。
对API网关的监控也是相当必要的。
- 通过Prometheus监控Gateway与监控普通Springboot项目几乎没有区别。基本步骤都是引入pom依赖,然后修改端点暴露metrics接口即可。
1.2 配置步骤
1.2.1 Maven 依赖
org.springframework.boot spring-boot-starter-actuator ${springboot.version} io.micrometer micrometer-registry-prometheus runtime
- 需要注意的是
micrometer-registry-prometheus
的版本号需要跟spring-boot-dependencies
中定义的保持一致。Springboot
较高版本的定义统一在micrometer-bom
中,低版本的直接在spring-boot-dependencies
中定义。
1.2.2 配置文件 application.yaml [local or nacos]
--- # 暴露监控端点 配置management: endpoints: # web端点配置属性 web: # 默认端点前缀为/actuator,可修改 base-path: /actuator exposure: # 包含端点,全用直接使用"*"即可,多个场景["prometheus","health"] include: [ "prometheus","health" ] # 排除端点 exclude: [ "shutdown" ] # JMX 端点配置属性 jmx: exposure: include: [ "prometheus" ] exclude: [ "shutdown" ] metrics: tags: application: ${spring.application.name} export: prometheus: descriptions: true enabled: true
按照实际使用情况,开放对应监控端点即可,为了保护应用安全,不使用的不开启
spring-cloud-gateway (embed : netty server)
spring-boot (embed : tomcat server)
1.2.3 Prometheus 相关配置
prometheus.yml
配置
# consul服务发现配置 - job_name: "api_gatway" consul_sd_configs: - server: "10.0.107.55:8500" #consul的服务地址 services: ["api_gateway"] relabel_configs: - source_labels: ["__meta_consul_tags"] regex: .*api_gateway.* action: keep - regex: __meta_consul_service_metadata_(.+) action: labelmap # 指标标签兼容,spring cloud gateway 3.x版本前缀加了spring_cloud_ metric_relabel_configs: - source_labels: [__name__] regex: "gateway(.*)" target_label: "__name__" replacement: "spring_cloud_gateway$1"# file_sd服务发现配置 - job_name: "api_gateway" file_sd_configs: - files: - "./api_gateway_config/*.json" refresh_interval: 15s # 指标标签兼容,spring cloud gateway 3.x版本前缀加了spring_cloud_ metric_relabel_configs: - source_labels: [__name__] regex: "gateway(.*)" target_label: "__name__" replacement: "spring_cloud_gateway$1"
spring cloud gateway
在不同的版本中指标名称不一致,在3.X版本中指标名称加了前缀spring_cloud_
所以,在
prometheus
配置文件中使用metric_relabel_configs
对指标进行统一处理
1.2.4 调用 Actuator API
- curl -X GET http://127.0.0.1/actuator/prometheus
1.2.5 Grafana面板
官方面板:
- https://github.com/spring-cloud/spring-cloud-gateway/blob/main/docs/src/main/asciidoc/gateway-grafana-dashboard.json
Grafana中的面板:
- https://grafana.com/grafana/dashboards/11506-spring-cloud-gateway/ 编号11506
grafana
官方提供的仅支持2.x
的gateway
,对于3.x的gateway存在问题。因此,我们在使用面板的时候同时兼容了2.x和3.x版本,需要根据gateway官方的面板进行自定义。自定义面板:
1.2.6 指标选取
指标 | PromQL |
---|---|
运行状态 | up |
近5分钟QPS | sum by(instance) (rate(spring_cloud_gateway_requests_seconds_count{uri!~“.actuator.”}[5m])) |
近5分钟请求失败次数 | sum by(instance) (increase(spring_cloud_gateway_requests_seconds_count{outcome!=“SUCCESSFUL”}[5m])) |
X 参考文献
- Prometheus监控Spring Cloud Gateway - CSDN 【推荐】
- gateway + prometheus + grafana - _Meditation - 博客园
- Springcloud gateway结合grafana简单自定义监控_kingpand的博客-CSDN博客_gateway_requests_seconds_count - CSDN
- springboot下配置prometheus - 博客园
- Prometheus介绍 - CSDN 【推荐】
关键词:
-
[系统性能优化实践]JVM进阶实战之监控工具(Prometheus) 焦点速递
0Prometheus概述0 1简介Prometheus是一个开源的系统监控和报警系统;现在已加入到CNCF基金会,成为继k8s之
来源: -
STM32【HAL库】使用外部SRAM程序
include<board h> ifdefBSP_USING_SRAM include<drv_common h> include<rtthread h> include<rtdevice h> defineDBG_TAG&
来源: -
世界新资讯:如何通过appuploader把ipa文件上传到App Store教程步骤
iOSAPP上架AppStore其中一个步骤就是要把ipa文件上传到AppStore!下面进行步骤介绍!利用Appuploader这
来源: [系统性能优化实践]JVM进阶实战之监控工具(Prometheus) 焦点速递
STM32【HAL库】使用外部SRAM程序
世界新资讯:如何通过appuploader把ipa文件上传到App Store教程步骤
【高端访谈】碳交易市场将如何影响化工行业?——专访全国化工节能(减排)中心秘书长张华
甘肃凉州:让非遗民俗文化“活起来”|观焦点
年度最火的KEEP动感单车免费得:连续88天打卡全额返 焦点速看
实时:可灭电火、油火 北大青鸟车载灭火器620ml 12.92元
真我史上最大底 真我11 Pro+搭载行业最高2亿像素传感器:挑战最强 每日热门
环球快资讯丨特斯拉要疯?向所有用户开放超充 车主拍手友商跺脚
首发2099元!九号电动V30C发布:50km续航、车架终身质保 当前热点
微软修复 Win10 / Win11 上 BlackLotus UEFI 漏洞
【天天报资讯】java读取文件——以自动贩卖机为例
天天热门:最佳软件测试基础入门教程1简介
环球视点!自建CA和公共CA有什么不同?
基于华为云图引擎GES,使用Cypher子查询进行图探索
每日消息!Vue2组件间通讯
每日快讯!【新华500】新华500指数(989001)10日收跌0.65%
当前热讯:成功展商要点——2023第十二届北京国际汽车制造业博览会
环球即时:传音Tecno Camon 20系列发布:五边形镜组极具辨识度
当前资讯!《斗罗大陆双神战双神》首个场景秀公开:虚幻5打造 画面逼真
这就很尴尬 男子高速电话指导女友开车 结果自己撞了
世界看点:4699元起 九号智能电动车小Q发布:新国标、能跑95km
一图看懂联发科旗舰新U天玑9200+:CPU/GPU性能提升10%、功耗更低了
环球看点!男童喉咙长菜花样肿块确诊感染HPV
今日看点:89.关于类的定义抽象数据类型
全球观速讯丨Mac系统,Qt工程转xcode工程,打包pkg
大幅提升前端工作效率!Numeral.js数值格式化库来了!
无需代码绘制人工神经网络ANN模型结构图的方法
2023年梅花金银兔纪念币价格(2023年05月10日)_世界快资讯
仅7999元!Redmi MAX 90英寸巨屏电视开售:百级分区、144Hz高刷 即时焦点
每日热议!亏电百公里油耗3.9升 比亚迪驱逐舰07申报:凯美瑞、雅阁瑟瑟发抖
保时捷718上新款 157.8万元起!真心无法抗拒 全球简讯
环球快看点丨悦达起亚被曝管理岗轮休 一休就一年!官方回应
中国电信在科技创新中加速释放消费活力 每日聚焦
每日播报!利用Appuploader上架IPA步骤
环球热文:代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。第一章 数组part01
黄道十二宫是什么意思?黄道十二宫是哪个文明首先提出的?
每日看点!98年浙大女学霸曾被视为格力接班人 孟羽童称靠别人永远不如靠自己
金锣玉米热狗香肠20袋到手19.9元:新鲜美味 当前短讯
热讯:为什么这届年轻人基本不走亲戚了?互联网“断亲”情况加剧:专家释疑
【环球新视野】西渝高铁最新进展!200余户已签协议
双商最高的四大星座是什么?十二星座的月份表
神话Eric的妻子是谁?神话Eric个人介绍
2011年快乐女声有哪些评委?2011届快女排名前十名
消失日晖打一字是什么?猜字谜游戏题目及答案
台电平板怎么刷机?台电平板android版如何获取root?
会声会影x4激活步骤是什么?会声会影x4激活代码
华硕f83v笔记本电池充电时橙色充电灯不停闪烁怎么解决?华硕f83v笔记本参数
三星笔记本r467怎么进bios设置u盘启动?三星笔记本r467参数
Vue 前端开发团队风格指南(史上最全)
Linux ARM架构_安装JDK8-银河麒麟V10 Kylin Linux-焦点速递
PSP上哪个火影的游戏最好玩?PSP经典游戏有哪些?
商家广告鼓励偷男友钱喝奶茶被罚 热消息
环球通讯!苹果推出iPad版Final Cut Pro与Logic pro:1个月免费试用
国人秒懂内涵 如何辨别在美国的中国人:看车牌 环球今头条
吸、扫、拖三合一!米家免洗扫拖机器人2正式开售:1999元
深圳一男子举牌相亲 月薪6千要求女方1万2:被路人质疑后神回应 世界热门
史诗级尴尬!马斯克驾驶Cybertruck结果趴窝:在农田里陷车
2023年社保缴费基数怎么调整?什么时候重新申报?_环球新资讯
环球新资讯:2分钟快速上手流水线的创建与运行
当前视讯!接单日记(三)文本处理之词云生成
今日热门!台式电脑有线网络怎么连接_有线网络怎么连接
华为将发布双旗舰笔记本 MateBook新品颜值、性能将迎全面升级
世界热点!任天堂Switch卖不动了?销量下降22% 还要再苟一年
首发9999元 小米电视ES Pro 90寸开售:1000nits高亮度
今日观点!希思黎京东官方自营旗舰店开业 打造全新高端奢护体验
环球今日报丨支持双枪快充!比亚迪赵长江:腾势N7制动距离“遥遥领先”
焦点热讯:首个“三体”线下项目《三体 · 引力之外》有啥不一样?
焦点热议:杭州:西湖景区莲花绽放 花朵水面摇曳身姿
全球即时看!科大智能参设新能源发展公司 经营范围含电池销售
今日快讯:3D建模师用AI把自己变美少女 大叔成偶像
理想老板怒斥媒体人:隔壁吉利的高管羡慕坏了
多家挖呀挖公司注册成立:涉及零售业、服务业-每日资讯
环球滚动:50万级老板专属座驾 新一代国产奔驰E级亮相:车身、轴距全加长
249元 小米智能摄像机3开售:3K超清画质 支持双向语音通话
听说你还回忆我小说 听说你还回忆我
高效c语言1快速入门|焦点热闻
使用IDEA远程Debug调试(详细)|今日快讯
Echarts引入——绘制一个简单的图表|环球信息
世界热点评!豫能控股拟30亿布局新能源转型待考 煤炭涨价助推成本上升两年累亏逾40亿
头条:国内“老头乐一哥”!雷丁汽车申请破产:曾被经销商举报为诈骗
七彩虹发布新款隐星游戏本:RTX 4060首发5999元
【世界聚看点】百万级越野车!仰望U8申报信息公布:搭比亚迪最强2.0T发动机
全球聚焦:蔚来车主 绑架李斌?
比亚迪海豚最强对手来了!五菱宝骏云朵亮相:10万级大五座_热消息
今日视点:再动员再部署!龙湾全面推进这项工作!
VM虚拟机去虚拟化 玩游戏多开 过检测 tp vmp cf dnf
中信证券:下半年全球新能源汽车及储能有望延续高增长
AMD RDNA3甜点卡RX 7600到货了:价格不友好
热资讯!杭州女生地铁上隔空收到陌生信息 果粉热议常被此折磨:苹果回应给解决办法
你遇到没?苹果iPhone天气又崩了:用户吐槽不如安卓
爱犬跳车乱蹿 摩托车骑手高速路上抓狗:险象环生-视点
扫码才能点餐缴费?市消协劝喻商家:不得强制消费者关注公众号或用小程序_当前视讯
聚焦重点靶向发力 万亿税费红利加快释放 全球热文
环球观察:韩国最新民调:尹锡悦就职一周年,施政差评率60%
iOS 16.5 RC准正式版推送!iOS 16系统更新要绝唱了 每日速讯
华为Mate X3国际版亮相:系统是EMUI 13.1
学系统集成项目管理工程师(中项)系列19b_成本管理(下)_世界看点
新坎特伯利传说_关于新坎特伯利传说简介
捡漏上瘾!印度仍在抢购廉价俄油 全球油价将大涨价 环球关注