Grafana-web使用说明

news2024/11/24 20:08:41

本文分别记录了:

  • Grafana使用步骤
  • P50 P99 min max m1_rate等指标分别是什么意思,Metrics为何不会对“吞吐量”指标记录P99 min 等聚合
  • Metrics常用的几种记录方式(我司用了两种)

1.场景

  • Metrics收集日志交给Graphite(Graphite本身也可以做为监控,但我们只是把他作为了一个数据存储,对grafana提供数据接口),Grafana做数据展示

  • Grafana的数据来源于Graphite(由Metrics收集),其监控方式也是通过不停轮询(所以在Grafana中也叫新建query),如果Graphite中没有数据,Grafana中自然也不会显示,举个例子:

    1. 启动了Spring项目,但没有访问接口(此时接口被Metric记录),此时Grafana甚至都不知道是哪个“project”
    2. 请求接口,如果Metric记录了log(“myType . myMetric_key . myMetric_value1”) ,则只会在Grafana中出现value1的选项,不会出现value2(直到log记录到了value2)
  • 上述这个“Metric记录后才有选项”的特性十分重要,涉及到Grafana中的新建query是否有提示

2.web界面操作步骤

2.1创建仪表盘dashboard

仪表盘dashboard属于是最外层,在里面还可以创建row(一个小分组),创建query(一个实际的监测指标)

2.2配置仪表盘dashboard

通用设置

变量设置:这里主要是为了后续配置query时能直接用$host $metric来默认指定

2.3盘内新建分组row

创建一行,后续可以鼠标放上去设置名字

2.4新建监测指标query

还是上面那个图,点“Add Query”即可

3.统计度量

3.1Metrics统计度量类型

Metrics提供了五种基本的度量类型:

  • Gauges:计量器
  • Counters:计数器
  • Histograms:直方图
  • Timers:计时器
  • Meters:TPS计数器

一般来说最后两个满足了绝大部分监控的场景

3.2适用场景

3.2.1 Gauges

Gauges中文名称可以翻译为计量器。它可以表示一个既可以增加, 又可以减少的度量指标值。它是最简单和最基本的Metrics类型,只有一个简单的返回值,通常用来记录一些对象或者事物的瞬时值

计量器的典型使用场景包括:

温度
内存使用量

3.2.2 Counters

Counters中文名称可以翻译为计数器。它是一种累计型的度量指标,数值只能单调递增。

计数器的典型使用场景包括:

服务请求数
任务完成数
错误出现次数

3.2.3 Histograms

Histograms中文名称可以翻译为直方图。它可以用来度量流数据中value的分布情况,Histrogram可以计算最大/小值、平均值,方差,分位数(如中位数,或者95th分位数),如75%,90%,98%,99%的数据在哪个范围内。最大的特点是提供了多种多样的数据统计方式。

直方图的典型使用场景包括:

流量最大值
流量最小值
流量平均值
流量中位值

3.2.4 Meters

Meters中文名称可以翻译为TPS计数器。它是一种只能自增的计数器通常用来度量一系列事件发生的比率(例如记录succeed和failed可以直到接口成功率)。他提供了平均速率,以及指数平滑平均速率,以及采样后的1分钟,5分钟,15分钟速率。

TPS计数器的典型使用场景包括:

平均每秒请求数
最近1分钟平均每秒请求数
最近5分钟平均每秒请求数
最近15分钟平均每秒请求数

3.2.5 Timers

Timers中文名称可以翻译为计时器。Histogram跟Meter的一个组合,另外还提供了对于某段代码执行的耗时的统计及计算功能。

计时器的典型使用场景包括:

请求时延
磁盘读时延

3.3各度量类型提供的属性(非重点)

  • Gauges:

       属性 value (某个属性实时值变化)
    
  • Counter:

      属性count (定时时间间隔之内的请求总数)
    
  • Histrogram:

      属性 count(定时时间间隔之内的请求总数)
      属性 min(定时时间间隔内请求参数的最小值)
      属性 max(定时时间间隔内请求参数的最大值)
      属性 mean(定时时间间隔内请求参数的平均值)
      属性 stddev(定时时间间隔内请求参数的方差)
      属性 median(定时时间间隔内请求参数的中位数)
      属性rate_unit(比率记录单位)
      属性 75% <=(75百分位)
      属性 95% <=(95百分位)
      属性 98% <=(98百分位)
      属性 99% <=(99百分位)
    
  • Meters:

      属性 count(定时时间间隔之内的请求总数)
      属性 meanRate(平均每秒请求数(时间间隔内总请求数/定时任务时间间隔))
      属性 oneMinuteRate(最近1分钟平均每秒请求数)
      属性 FiveMinuteRate(最近5分钟平均每秒请求数)
      属性 FifteenMinuteRate(最近15分钟平均每秒请求数)
    
  • Timer:

      属性 count(定时时间间隔之内的请求总数)
      属性 meanRate(平均每秒请求数(时间间隔内总请求数/定时任务时间间隔))
      属性 oneMinuteRate(最近1分钟平均每秒请求数)
      属性 FiveMinuteRate(最近5分钟平均每秒请求数)
      属性 FifteenMinuteRate(最近15分钟平均每秒请求数)
      属性 min(定时时间间隔统计数据的最小值)
      属性 max(定时时间间隔统计数据的最大值)
      属性 mean(定时时间间隔内统计数据的平均值)
      属性 stddev(定时时间间隔内统计数据的方差)
      属性 median(定时时间间隔内统计数据的中位数)
      属性 rate_unit(比率记录单位)
      属性 duration_unit(时间数值单位)
    

3.4我司常用指标

监控指标一般分为两大类:

  • 离散的有限状态:如:调用Metrics的meter.mark(k,v),v的选择是有限且离散的(如succeed和failed)
  • 连续的无限状态:如:调用Metrics的指定key值对应的timer对象:timer.update(value,TimeUnit.MILLISECONDS),value就是一个连续无限的“end-start时间”

3.4.1 P系列指标解释

p50, p90, p99(或者写作pct 50,pct90,pct 99)都是数据聚合统计一种方式,跟百分比相关(p的含义是percentile)。

p50:数据集按升序排列,第50分位置大的数据(即升序排列后排在50%位置的数据)。
p90:数据集按升序排列,第90分位置大的数据(即升序排列后排在90%位置的数据)。
p99:数据集按升序排列,第99分位置大的数据(即升序排列后排在99%位置的数据)。
P99.9:同上,精度到达99.9%,一般用P99和P99.9来展示绝大部分用户的接口响应时间,满足绝大部分用户的体验

3.4.2 统计函数指标

“stddev”: 方差

“count”: 总次数

max”: 最长时间

mean”: 平均时间

min”: 最短时间

3.4.3 比率相关(x分钟内平均)

“m15_rate”: 15分钟 请求数/每秒的比率

m1_rate”: 1分钟内 请求数 / 每秒 即OPS

“m5_rate”: 5分钟 请求数/每秒的比率

“mean_rate”:平均每秒请求数

“duration_units”: “seconds”,//该Timer的单位

“rate_units”: “calls/second”//比率单位

4.统计指标在Grafana中的体现

4.1连续无限:timer.update()


当我们记录了一条值,调用了一次这个方法,刚刚注册过的一堆指标都能选了

4.2离散有限:meter.mark()

但是如果调用meter.mark(),就只能看到一些离散的结果值,因为Metrics不会对这种值进行计算“平均值,百分值”等,想想也不合理嘛

5.functions函数

一般来说常用的就两个:sumSeries()maxSeries(),用于观测整体status状态,host来自多个数据源时,通过聚合函数可以将其合并达到观测整体的效果

5.1maxSeries()监测整体最大延迟

  • 对于记录响应时间Timer.updata()的指标(P99、max、mean、m1_rate),如果Grafana同时监测了多个host的数据源,每次P99、max等“响应指标”都会有多个(host几个就几个),这时候需要使用maxSeries()来取最大值,来监测99%的用户最大延迟是多少

5.2sumSeries()监测整体数量

  • 对于记录响应结果状态Meter.mark()的指标(m1_rate),这种指标只有数量一说,因此只需要通过sumSeries()达到聚合整体观测的效果

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

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

相关文章

第九节:类和对象【三】【static、代码块、对象的打印】

目录 &#x1f947;1.什么是封装 &#x1f4d8;1.1封装的实现 &#x1f392;2.static成员 &#x1f4d2;2.1 再谈学生类 ​编辑 &#x1f4d7;2.2 static修饰成员变量 2.3 static修饰成员方法 &#x1f4d5;2.4 static成员变量初始化 &#x1f532;3. 代码块 &#x…

第四届全国中医药院校大学生程序设计竞赛 : 二进制码(Python)

文章目录题目描述输入输出样例输入 Copy样例输出 Copy代码测试题目描述 在计算机中&#xff0c;对于定点数有三种不同的表示方法。在本题中&#xff0c;假定码的长度固定为 8 位&#xff0c;从左往右依次编号为第 1 到 8 位&#xff0c;第 1 位为最高位。 x 的原码&#xff1a…

Python爬虫实战(七):某讯较真辟谣小程序爬虫

追风赶月莫停留&#xff0c;平芜尽处是春山。 文章目录追风赶月莫停留&#xff0c;平芜尽处是春山。一、准备工作二、目标分析二、接口分析url分析返回数据分析三、编写代码获取数据保存数据完整代码大四考研狗没时间更新博客了&#xff0c;大家勿怪&#xff0c;等我有学上了&a…

手把手带你搭建个人博客系统(二)

⭐️前言⭐️ 因文章篇幅较长&#xff0c;所以整个流程分两篇文章来完成。 &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞…

Matplotlib设置限制制作

Matplotlib自动到达要沿着图的x&#xff0c;y(以及3D图的情况下为z轴)轴显示的变量的最小值和最大值。但是&#xff0c;可以使用set_xlim()和set_ylim()函数显式设置限制。 在下图中&#xff0c;显示了x和y轴的自动缩放限制 - #! /usr/bin/env python #codingutf-8 import matp…

【关于Linux中----进程控制和进程替换】

文章目录一、进程创建二、进程终止2.1进程退出场景2.2进程退出方法三、进程等待3.1进程等待必要性3.2进程等待的方法3.3获取子进程status四、进程程序替换4.1替换原理4.2替换函数4.3命名理解五、总结一、进程创建 谈到创建进程&#xff0c;不得不提到一个函数----fork。 在li…

【Python】一个矩阵根据某一列选择大于或小于范围的数据

data_all data_all[data_all[:,3]>54201]data_all data_all[data_all[:, 3] < 54220] 上面就是根据数据的第3列&#xff0c;选取54201到54220的范围的数据&#xff1a;

单片机最小系统

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 下面给出一个51单片机的最小系统电路图. 晶振电路&#xff1a; 单片机里都有晶振&#xff0c;在单片机系统里晶振作用…

2013年第四届C/C++ A组蓝桥杯省赛真题+解析+代码

目录 第一题&#xff1a;高斯日记 题目描述 思路分析 AC代码 第二题&#xff1a;排它平方数 题目描述 思路分析 AC代码 第三题&#xff1a;振兴中华 题目描述 思路分析 AC代码 第四题&#xff1a;颠倒的价牌 题目描述 思路分析 AC代码 第五题&#xff1a;前缀…

jsp就业管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 就业管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发&#xff0c;数据库为Mysql&#xff0c;使用ja…

蓝桥杯备赛(三)

目录 前言&#xff1a; 一、门牌制作 解析&#xff1a; 代码实现 二、寻找2020 解析&#xff1a; 代码实现 三、蛇形填数 解析&#xff1a; 代码实现 四、成绩分析 解析&#xff1a; 代码实现 五、单词分析 解析&#xff1a; 代码实现 小结&#xff1a; 前言&am…

热门Java开发工具IDEA入门指南——了解并学习IDE

IntelliJ IDEA&#xff0c;是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 本…

面试了1个月连续失败4次,自动化测试真没想象的那么简单

我干测试6年了&#xff0c;最近面试又碰壁了… 这大概是我这一个月来第4次面试失败了&#xff0c;起初我投简历比较勇猛&#xff0c;奔着薪资高的有点儿名气的企业就开始海投&#xff0c;碰上了2家还不错的邀约面试&#xff0c;前面交流还行&#xff0c;一问到自动化测试就傻眼…

怎么进行视频恢复?推荐使用这4种方法

电脑视频怎么恢复&#xff1f;很多朋友在使用电脑的过程中&#xff0c;如果系统或者是存储文件出现问题的话&#xff0c;可能会出现视频丢失的情况。因为在使用电脑运行视频软件时&#xff0c;系统或者存储文件存在一些质量问题从而导致视频丢失。那么想要进行视频恢复&#xf…

【Leetcode】拿捏链表(一)——206.反转链表、203.移除链表元素

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 206.反转链表 203.移除链表元素 206.反转链表 力扣https://leetcode…

“工程化”对于大型数据平台而言,意味着什么?StartDT Hackathon来了

日前&#xff0c;2022 第三季 StartDT Hackathon 正式落下帷幕&#xff0c;以“产品工程化与可扩展性提升”为主题&#xff0c;主攻数据云这个“庞然大物”的工程化难题。 本届黑客松共吸引到 9 组参赛&#xff0c;均在 72 小时内完成项目并提测通过。有“单排孤勇者”&#x…

.NET JIT

定义 即时编译器 (JIT) 是 .NET 中公共语言运行时 (CLR) 的一部分&#xff0c;它负责管理 .NET 程序的执行&#xff0c;而与任何 .NET 编程语言无关。 工作流 特定于语言的编译器将源代码转换为中间语言。 然后&#xff0c;这种中间语言由即时 (JIT) 编译器转换为机器代码。 …

一篇文章学会React

React基础 文章目录React基础React介绍React特点React基本使用安装使用React脚手架&#xff08;***&#xff09;生成的项目的目录结构src下的index.js入口文件介绍脚手架中使用ReactJSX什么是JSX产生原因介绍JSX概述JSX语法注意事项JSX语法原理JSX学习声明式渲染条件渲染循环渲…

YOLOX改进

这是yolox的第2季了 如何设计在 mAP 和延迟方面表现良好的单级轻量级检测器&#xff1f;新型的单阶段轻量检测器和各种操作的准确性和延迟。此基础上分别提出了GPU和CPU的最佳操作和架构。一份YOLOX改进的实验报告&#xff1a;如何设计性能优异的单阶段轻量级目标检测器 论文…

Android Studio App自定义控件中视图的构造和测量方法讲解及实战(附源码 实现下拉刷新功能 超详细必看)

需要全部源码或者图片集请点赞关注收藏后评论区留言~~~ 一、视图的构造方法 Android自带的控件往往外观欠佳&#xff0c;开发者常常需要修改某些属性&#xff0c;比如按钮控件Button就有好几个问题&#xff0c;其一字号太小&#xff0c;其二文字颜色太浅&#xff0c;其三字母默…