• Grafana使用总结


    Metrics

    Metrics即为度量,主要用于监控和服务度量。以key-values的方式进行存储。

    Metrics支持以下几种类型:

       - Gauges:  某个key的value为特定值。 如Guages(haha, 3), 则haha这个key对应的value即为3.

       - Counter:  某个key的value进行变更。如Counter(haha, +1), 则haha这个key对应的value从3变成了4.

       - Meters:   度量某件事情发生的速率。如,1分钟内调用Meter(haha)5次,则haha这个key对应的value为5/min

       - Histograms:  Histogram统计数据的分布情况。比如1分钟内调用了很多次update(hehe, x), 则会根据x的计算分布。

       - Timer: Meters & Histogram 的结合。 

    metrics,底层使用的可以是opentsdb

    opentsdb

    opentsdb是一个时间序列的数据库。就是一段时间内某些特定指标量的一些列数据点。
    这里结合metrics来讲
     
    调用顺序:
     1.解析并验证,保证格式正确。
    2.扫描底层数据,抓取匹配metric_name&timestamp的数据
    3.分组
    4.降采样
    5.使用特定聚合器聚合每组数据
    6.检查是否使用rate
    7.返回数据
     
    一、降采样
    比如metrics 30s一个点,但是当我查询一天或者几天的数据的时候,我觉得30s一个点太多了,我
    想5min一个点,就可设置降采样区间为5m。
    设置5m,它显示的时间戳表示的是它的时间以及之后5min的值聚合成一个值。
    这里可以设置聚合方法,比如使用avg.如原本是30s一个点,那么5min有10个点,那使用avg,就是把这10点的值相加,然后除以10。
     
    二、查询过滤器
    3.1、literal_or ,或查询,区分大小写。类似sql的in,使用时用|分割
    • host=literal_or(web01|web02|web03),类似于SQL:where host in(‘web01’,’web02’,’web03’)
    3.2、iliteral_or 大致同上,不区分大小写。所以效率低,因为他是处理存储中的所有行。
    3.3、not_literal_or 类似not in
    3.4、not_iliteral_or 同
    3.5、wildcard 区分大小写,类似sql的like,host=wildcard(*mysite.com), SQL: where host=’%mysite.com’,使用*
    3.6、iwildcard同上 ,不区分大小写
    3.9 、regexp 使用正则表达式匹配.例:regexp(web[0-9].com)
     
    三、聚合器
    这里说下它的存储方式,以metrics为例
    我们使用的时候,会设置它的metric_name ,多个(tagk,tagv)对,时间戳,值.
    格式类似于:metric_name,tagk1=tagv1,tagk2=tagv2,时间戳,值这种形式
    metrics中默认,除了你设置的tag外,会加上host和dc
    这里和过滤器配合使用。
    当使用降采样后,比如这个时间点有4点,他们的metric_name 和时间戳是一致的。tag不一样,分别是:
    1.host=h1,dc=lf value=1 
    2.host=h1,dc=hl value=2 
    3.host=h2,dc=lf value=3 
    4.host=h2,dc=hl value=4
    这里,当我们不选择过滤器的时候,默认是出来一条线的,也就是说把这里的4个点聚合成一个点。假设这里使用avg ,那值就是:(1+2+3+4)/4=2.5
     
    这里假如我们选择过滤器host,那会出来两条线,分别是h1线和h2线。
    这里假如选择avg ,  h1:(1+2)/2=1.5     h2:(3+4)/2=3.5
     
    mertic:metric_name,aggregator,选择聚合方式
    dev:求标准差
    zimsum:求和,但是少数据的不进行插值,而是用0替代
    mimmin:最小值,但是当缺少数据时,会返回数据类型的最大值,比如long.maxvalue
    minmax:最大值,但是当缺少数据时,会返回数据类型的最小值,比如long.minvalue
     
    alias:线条名,当和filters结合使用的时候,使用$tag_key的方式,可以用filters中的key,作为线条名
     
    downsample:降采样,interval:降采样的时间范围,格式有:30s,1m,5m,1h等
     
  • 相关阅读:
    E
    牛客比赛—身体训练
    前缀和例题
    欧拉函数模板
    3.30训练题
    poj1321棋盘问题
    记set学习
    B. K-th Beautiful String
    codeforces1293C
    LightOJ 1370 Bi-shoe and Phi-shoe
  • 原文地址:https://www.cnblogs.com/codingforum/p/13535434.html
Copyright © 2020-2023  润新知