zoukankan      html  css  js  c++  java
  • 监控系统

    prometheus监控系统

    关于Prometheus

    Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据;因此实现一种Profiling监控方式,实时分析系统运行的状态、执行时间、调用次数等,以找到系统的热点,为性能优化提供依据。
    监控方式
    程序代码收集运行数据写入到redis,通过API接口开放给Prometheus,Prometheus定时去抓取接口上的数据,形成时间系数据存入到本地。同时通过promql与开放接口可视化数据到前端。
     
    一、采集运行数据写入到redis
    在采集数据之前,先要明白Prometheus所支持的几种数据类型
     
    Counter,统计类数据
    Counter作为一种计数类数据类型,常用于接口调用次数、请求总数、当前在线人数等等
     
    Gauge,记录对象或许事物的瞬时值
    Gauge是最简单的度量类型,只有一个简单的返回值,他用来记录一些对象或者事物的瞬时值,如CPU使用率、内存使用情况、磁盘空间等。
     
    Histograms,直方图
    Histrogram是用来度量数据中值的分布情况,如程序执行时间:0-100ms、100-200ms、200-300ms、>300ms 的分布情况
     
    在使用Prometheus监控之前,先要明白都需要监控哪些项,以及每一中项都应该采用什么数据类型来表示
     
    明白以上类型之后,就可以开始将监控数据项写入到redis。写入的工具可采用开源的prometheus_client_php;github:https://github.com/Jimdo/prometheus_client_php 
    下载后需要用composer部署其依赖,如果你不知道composer的使用:http://www.phpcomposer.com 
    以下代码记录一个counter数据
     
    复制代码
    require __DIR__ . '/../vendor/autoload.php';
    use PrometheusCollectorRegistry;
    use PrometheusStorageRedis;
    
    Redis::setDefaultOptions(array('host' => 'master.redis.reg'));
    $adapter = new PrometheusStorageRedis();
    $registry = new CollectorRegistry($adapter);
    
    $counter = $registry->registerCounter('test', 'some_counter', 'it increases', ['type']);
    $counter->incBy(1, ['blue']);  //将统计结果增加1
    复制代码
     
    采集的过程比较简单,Gauge与Histograms与此类似
     
    二、提供Prometheus访问的API Gateway
     
    prometheus_client_php工具已经准好了prometheus访问的相关接口,我们至需要几行简单的代码
     
    复制代码
    require __DIR__ . '/../vendor/autoload.php';
    
    use PrometheusCollectorRegistry;
    use PrometheusRenderTextFormat;
    use PrometheusStorageRedis;
    
    Redis::setDefaultOptions(array('host' => 'master.redis.reg')); //对应写入的redis
    $adapter = new PrometheusStorageRedis();
    $registry = new CollectorRegistry($adapter);
    $renderer = new RenderTextFormat();
    $result = $renderer->render($registry->getMetricFamilySamples());
    
    header('Content-type: ' . RenderTextFormat::MIME_TYPE);
    echo $result; //输出结果给prometheus服务
    复制代码
     
    将以上脚本部署,能通过HTTP访问到,下一步即可提供给prometheus服务
     
    三、安装与配置Prometheus
    安装(略过)
    配置Prometheus
    打开prometheus.yml文件,在scrape_configs配置第二步中的API Gateway
     - job_name: 'prometheus2'
        metrics_path: '/metrics.php'
        static_configs:  
          - targets: ['localhost:9999']
     
    配置完成后,启动Prometheus
     
    四、查看监控数据
    Prometheus具有多种模式的可视化数据,可集成Grafana可视化工具。其内置PromDash界面,启动后打开http://localhost:9090(默认9090端口)即可访问内置的PromDash监控界面。
    上图是Prometheus的直方图展现形式,顶部的下拉框是你所监控的数据项,点击Execute点击后查看所监控的数据。输入框部分是是查询的表达式,Prometheus支持丰富的查询表达式,详情参阅:https://prometheus.io/docs/querying/basics/ 。
    图中的每一条线表示大于该桶的数据,红色的数据线是所有桶的总数累计。另外Prometheus还提供了sum与cont的统计。Gauge与Counter数据类型也与此类似。
    知识是我们已知的 也是我们未知的 基于已有的知识之上 我们去发现未知的 由此,知识得到扩充 我们获得的知识越多 未知的知识就会更多 因而,知识扩充永无止境
     
     
  • 相关阅读:
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结v2
    JS设置cookie、读取cookie、删除cookie
    Atitit 图像处理30大经典算法attilax总结
    Atitit数据库层次架构表与知识点 attilax 总结
    Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
    Atitti css transition Animation differ区别
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
    Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/6238463.html
Copyright © 2011-2022 走看看