Grafana系列-统一展示-12-RED Method Dashboard

news2024/10/6 0:37:09

系列文章

  • Grafana 系列文章

概述

目前关于监控指标, 主流的有 3 个方法(Method):

  • RED : Rate(访问速率), Errors(错误), Duration(响应时长) - 由 @tom_wilkie 引入
  • USE : Utilization(利用率), Saturation(饱和度), and Errors(错误) - 由 @brendangregg 引入
  • Four Golden Signals:Latency (响应延迟, 和 Duration 类似), Traffic (对你的系统有多大的需求, 和 Rate 类似), Errors, Saturation. 基本上就是 RED + Saturation.

建议同时使用 RED 和 USE Method, 其中:

  • RED Method 关心你的用户以及他们有多快乐
  • 而 USE Method 则是关心你的机器以及它们有多快乐

典型 RED Method 监控指标

如果是通过 Prometheus 监控实现, 那么典型的指标示例如下:

Rate:

sum(rate(request_duration_seconds_count{job="…"}[1m]))

Errors:

sum(rate(request_duration_seconds_count{job="…", status_code!~"2.."}[1m]))

Duration:

histogram_quantile(0.99, sum(rate(request_duration_seconds_bucket{job="…"}[1m])) by (le))

在这里, Duration 推荐使用 50th/90th/99th percentile, 这些会更精确地反映用户真正关心的问题, 同时可以结合 Average Duration 来作为参考.

典型的仪表板示例如下:

RED Method Prometheus Grafana Dashboard

实战 - 基于 ES Access Log 的 RED Method Dashboard

这也是无奈之举, 开发并未基于 Prometheus Client 实现 Requests 的相关指标. 而是只记录了 Access 日志, 并将日志吐到 ES 中, 那么我们只能 workaround, 通过 ES 统计日志和关键词、Terms 以实现类似的效果。实现都是可以实现的,但是在实际使用中,也确实发现基于 ES 的监控,性能会差很多。

具体效果如下:

RED Method ES Grafana Dashboard

Rate(只能实现每分钟请求数):

以 2xx 举例, Query:

request_path.keyword:(-"/actuator/health" -"/metrics" -"*info*" -"*Eureka*") AND status_code:[200 TO 299]

如上, 排除微服务中场景的监控检查和监控类 url.

下方的 Metric:

ES Rate Query - part

ES Rate Query

Errors:

就是 5xx:

request_path.keyword:(-"/actuator/health" -"/metrics" -"*info*" -"*Eureka*") AND status_code:[500 TO 599]

Duration:

Query 不在区分 status code:

origin_path.keyword:(-"/actuator/health" -"/metrics" -"*info*" -"*Eureka*")

Percentiles 配置如下:

Percentiles ES Query

  • Metric: Percentiles
  • Terms 选择 latency (在我这边的实战中, latency 记录的是 Duration)
  • Values 选择 50,99 即计算 50th, 99th percentiles

Average 配置如下:

Average Duration ES Query

  • Metric: Average
  • Terms 选择 latency

最终的效果就是如下:

RED Method ES Grafana Dashboard

RED Method 的使用

为了更方便基于 RED Method 的使用, 可以进行下钻排查, 还基于 Grafana Dashboard Links 做了个简单的关联, 方便跳转.

📝Notes:

关于 Grafana Dashboard Links, 应该会在后续文章中详细介绍. 😜😜😜

我们来基于上图, 做一下实战分析.

在过去 7 天里, 发现最大并发 Error 数有 8 个, 最慢 p99 duration 有 6.29s(高于阈值 5s). 我们希望找到对应的 Error 和慢的请求的具体日志.

分析 Errors

对于 Errors, 点击 Rate & Errors Panel 的 5xx legend, 会显示如下:

Errors

在该 panel 中框选, 缩小时间段, 如下:

Errors panel zoom in

发现发生时间为: 2023-05-11 15:58 左右, 点击右上角的 Dashboard Link, 会跳转到 ElasticSearch 快速搜索仪表板 (跳转时会带上同样的时间范围).

因为是分析错误日志, 所以可以 status_code varible 中, 选择: 500 TO 599, 直接找到相关日志, 如下:

Error Logs

并可以进一步通过 Logs to Trace 定位.

分析慢请求:

同分析错误请求类似套路:

  1. Durations panel 中缩小时间范围, 发现大概时间是: 2023-05-09 14:52 左右

  2. 通过 Dashboard Links 跳转到ElasticSearch 快速搜索仪表板

  3. 添加 ad hoc filter: latency>5000, 找到具体日志:

    Slow Log

🎉🎉🎉

总结

本文介绍了 3 种常用的监控方法:

  • USE Method(面向机器)
  • RED Method(面向用户)
  • Google SRE Four Golden Signals(RED + Saturation)

并重点基于 RED Method 介绍:

  • 基于 Prometheus + Grafana 的指标获取和展示
  • 基于 ElasticSearch + Grafana 的指标获取和展示

以及实际基于 RED Method 分析用例.

希望对各位读者有所帮助.😄😄😄

参考文档

  • The RED Method: How to Instrument Your Services | Grafana Labs

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

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

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

相关文章

TEMPUS FUGIT: 2

环境准备 靶机链接:百度网盘 请输入提取码 提取码:5i9p 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2022.03 信息收集 1.对靶机进行端口和服务的扫描 nmap -sV -p- -A 10.10.10.130 可以看到22端口是关闭的 2.用…

线段树-哈工大数据结构与算法作业

title: 线段树-哈工大作业 date: 2023-05-16 11:42:26 tags: 数据结构与算法 线段树 问题: 区间查询求和问题:给定一个含有n个整数序列的数组A,查询任意区间最大值与区间和的复杂度为O(n),若进行m次查询,则总的复杂度为O(mn)。…

深析AutosarNM 网络管理

深析AutosarNM 网络管理 深析AutosarNM 网络管理1. AutosarNM 网络管理相关的专业术语2. 各种模式下的各种状态下,报文的收发情况汇总如下表:3. AutosarNM网络管理使用的时间参数:4. AutosarNM网络管理唤醒请求(Wake Up Request)5. ​​​​​…

MySQL 5.7数据库下载与安装教程

说明: 安装环境:Win10 64位 软件版本:MySQL 5.7.35 解压版 一.下载 点击下载地址: MySQL :: Download MySQL Community Server (Archived Versions) https://downloads.mysql.com/archives/community/ 选择合适的版本下载 绿色框框 是正式版&#xff0…

第02讲:SpringCloudStream

一、什么是SpringCloudStream SpringCloudStream是SpringCloud的一个子项目,他提供了一套更加通用的操作MQ的解决方案 Destination Binder(目标绑定器) :微服务与消息中间件通信的组件Destination Bindings(目标绑定&…

2023爱分析・云原生 IDE 市场厂商评估报告-行云创新(CloudToGo)

1. 研究范围定义 企业数字化转型初期,通过资源池云化,解决了IDC时代运维、部署、扩容的难题,但传统应用单体架构厚重、烟囱式架构等带来的一系列应用层面的问题并没有得到有效解决,云对业务的价值主要还停留在资源供给的阶段…

Scaled dot-prodect Attention的原理和实现(附源码)

文章目录 背景什么是AttentionAttention权重的计算方法1. 多层感知机法2. Bilinear方法3. Dot Product4. Scaled Dot Product Scaled dot-prodect Attention的源码实现 背景 要了解深度学习中的Attention,就不得不先谈Encoder-Decoder框架(sequence to s…

拍立淘API接口说明文档 按图搜索淘宝商品API 实时数据返回

开发背景: 随着电商行业的不断发展,人们的购物需求日益增多。在购买商品时,很多人会通过搜索引擎、社交媒体等手段来获取信息或灵感。但是,在这些渠道中找到想要的商品并不容易,因为其中可能会混杂着一些广告或无关内…

Android内存优化检测工具LeakCanary使用

一、什么是LeakCanary leakCanary是Square开源框架,是一个Android和Java的内存泄露检测库。如果检测到某个activity有内存泄露,LeakCanary就是自动地显示一个通知,所以可以把它理解为傻瓜式的内存泄露检测工具。通过它可以大幅度减少开发中遇…

Java 并发队列详解

一,简介 1,并发队列两种实现 以ConcurrentLinkedQueue为代表的高性能非阻塞队列以BlockingQueue接口为代表的阻塞队列 2,阻塞队列与非阻塞队列的区别 当阻塞队列是空的时,从队列中获取元素的操作将会被阻塞,试图从…

【BFS】华子20230506笔试第三题(动态迷宫问题)Java实现

文章目录 题目链接思路BFS板子我的解答 题目链接 塔子哥的codeFun2000:http://101.43.147.120/p/P1251 测试样例1 输入 3 2 1 0 1 2 2 1 2 0 100 100 100 100 000 100 000 000 001输出 1测试样例2 输入 3 2 1 0 2 0 0 1 2 2 000 000 001 010 101 101 110 010 …

在docker容器中启动docker服务并实现构建多平台镜像的能力

在docker容器中启动docker服务并实现构建多平台镜像的能力 背景 在容器中运行docker,是devops中无法避免的场景,通常被应用于提供统一的镜像构建工具,出于安全考虑,不适合将主机的docker进程暴露给公司的内部人员使用&#xff0…

SpringCloud alibaba微服务b2b2c电子商务平台

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务、系统服务、中间件服务) 2. 核心架构 Spring Cloud、Spring Boot2、My…

飞书开发流程

1、进入飞书并创建一个应用 链接: 创建应用 创建应用成功后需要审核通过,如果你拥有管理权限则可以自己进入管理后台通过审核,否则需要联系管理员通过审核 2、进入开发者后台 链接: 发者后台 3、在该调试平台上测试 以这个订阅审批事件为例 这一步…

DHCP协议简单配置

实验原理 网络中主机需要与外界进行通信时,需要配置自己的IP地址、网关地址、DNS服务器等网络参数信息。手工在每台主机上配置维护成本高,容易出错,而且不利于管理员统一维护。 通过DHCP地址自动配置协议,使终端设备能自动获取地址,实现即插即用且IP地址统一由服务器管理…

springboot+java充电桩充电额维修管理系统

项目介绍 Spring Boot 是 Spring 家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之前采用SSM(Spring MVC Spring MyBatis )框架进行开发的过程。 系统基于B/S即所谓浏览器/服务器模式…

STM32 学习笔记_9 定时器中断:编码器接口模式

TIM编码器接口 之前我们处理旋转编码器,是转一下中断一次,挺消耗资源的。 我们可以利用TIM的编码器功能,隔一段时间取一下旋转器值使得cnt或–,以此判断旋转位置以及计算速度,相比中断节约资源。相当于外接了一个有方…

Kubernetes那点事儿——暴露服务之Service

Kubernetes那点事儿——暴露服务之Service 前言一、Service二、Service与Pod关系三、Service常用类型ClusterIPNodePortLoadBalancer 四、Service代理模式IptablesIPVS修改代理模式 前言 K8s中,我们将应用跑在Pod里。多数情况下是一组Pod,用户如何访问这…

凌恩生物美文分享 | 提升科研有一套 | 宏基因组磷循环分析又出新!

磷是包括微生物在内的所有生命体中不可缺少的元素。在生物大分子核酸、高能量化合物ATP、以及生物体内糖代谢的某些中间体中,都有磷的存在。在自然界中,磷的循环包括可溶性无机磷的同化、有机磷的矿化、不溶性磷的溶解等。微生物分解含磷化合物的作用&am…

操作系统面试相关知识

目录 一、简介1、什么是操作系统2、操作系统主要有哪些功能? 二、操作系统结构1、什么是内核?2、什么是用户态和内核态?3、 用户态和内核态是如何切换的? 三、 进程和线程1、并行和并发有什么区别?2、什么是进程上下文…