zoukankan      html  css  js  c++  java
  • prometheus statsd 监控

    Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。

    介绍 http://www.cnblogs.com/vovlie/p/Prometheus_CONCEPTS.html

    安装配置 http://www.cnblogs.com/vovlie/p/Prometheus_install.html

    我们公司的监控系统是statsd + graphite + grafana ,但是最近遇到一个需求,需要将所有id的失败成功打到监控中,同时计算出失败率并进行排序。这个需求通过 graphite 这一套是无法实现的,有两个问题:

    1. graphite 对应每个id会生成一个小文件,id多的情况下操作系统文件系统检索很慢。

    2. graphite 没有强大的查询表达式支持。

    纠结之后,选择了Prometheus,目前实现了这个需求,并且可以很好的兼容老的监控系统,业务部门不需要改动代码。

    我们在往statsd_expoter写数据的时候发现并不会类似statsd那样定时清理数据,科学上网之后找到了 https://www.robustperception.io/how-does-a-prometheus-counter-work/ ,这里面介绍了prometheus的counter实现方式,获取增长值要用 increase 函数。

    获取失败率Top10的id示例查询语句:

    topk(10, sort_desc(
        sum(increase(demo_fail[1m]) / (increase(demo_success[1m])+increase(demo_fail[1m])) and increase(demo_fail[1m]) > 10 ) 
         by (id)
    ))
  • 相关阅读:
    3.4.4 反射和泛型
    4.4.2 空合并操作符让比较不再痛苦
    NPOI导出EXCEL 打印设置分页及打印标题
    20、异常和状态管理
    14 字符字符串和文本处理
    15、枚举类型和标志位
    Oracle 数据库连接的一些坑
    17、委托
    《山鬼·九歌》——屈原
    每周一卦测感情,还是这么凶
  • 原文地址:https://www.cnblogs.com/raoshaoquan/p/6930140.html
Copyright © 2011-2022 走看看