监控系统
文章平均质量分 91
从源码和实操角度加深对监控系统的认识,可以逐步对现有监控工具的问题,并二次开发
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
ning1875
这个作者很懒,什么都没留下…
展开
-
prometheus 本地存储解析及其使用的那些“黑科技“
本文代码基于prometheus 2.19.2分析基本概念什么是tsdbTime Series DBMS are designed to efficiently collect, store and query various time series with high transaction volumesprometheus 基本概念sample 数据点type sample struct { t int64 v float64}sample代表一个数据点size:16byt原创 2021-01-08 17:27:10 · 313 阅读 · 0 评论 -
从PVC使用率看k8s 监控控制平面指标稳定性规范KEP
前言kubernetes家大业大,监控纷繁复杂,感兴趣的小伙伴可以看看我之前写的文章从容器监控kube-stats-metrics看k8s众多组件k8s中pv使用率监控说明虽然k8s最擅长的是无状态的pod,不建议有状态的存储型pod上但是总有些使用场景需要,比如statefulset使用的pv那么pv的使用率监控就非常有必要了我们可以使用 kubelet_volume_stats_used_bytes/kubelet_volume_stats_capacity_bytes表征pod pv原创 2021-01-08 17:21:28 · 1162 阅读 · 0 评论 -
m3db-node oom追踪和内存分配器代码查看
m3dbnode oomoom时排查内存火焰图: 80G内存bytes_pool_get_on_empty qps 很高db read qps增长 80%node cpu kernel 暴涨看图结论m3dbnode 内存oom过程很短,很剧烈:总时间不超过7分钟内存从27G增长到250G节点sys态cpu暴涨:因为大量的mem_alloca sys_call内存增长曲线和db_read_qps曲线和bytes_pool_get_on_empty曲线高度吻合原创 2021-01-08 17:19:43 · 159 阅读 · 0 评论 -
开源项目: pre_query: 给prometheus 重(heavy_query)查询提速
项目地址pre_query https://github.com/ning1875/pre_query术语解释什么是heavy_query顾名思义 就是查询表现出来返回时间较长,对应调用服务端资源较多的查询一般我们定义在1小时内的range_query 响应时间超过3秒则认为较重了instance_query当前点查询,用作报警查询或展示当前分布情况,对应调用的是prometheus 的/api/v1/query接口range_query查询一段时间的曲线,,对应调用的是promethe原创 2021-01-08 17:11:54 · 213 阅读 · 0 评论 -
开源项目 : prome-route: 使用反向代理实现prometheus分片
开源项目地址:项目地址: https://github.com/ning1875/prome-routePS: 这是一个仅用时半天就写完的项目架构图prometheus HAprometheus本地tsdb性能出色,但是碍于其没有集群版本导致HA较差实现手段注意这些手段都是要数据的统一存储可以通过remote_write 到一个提供HA的tsdb存储中通过联邦收集到一个prometheus里问题来了,搞不定集中式的tsdb集群,或者集群挂了咋办本项目介绍原理介绍肯定有一组p原创 2021-01-08 16:50:42 · 292 阅读 · 2 评论 -
服务树系列(二):开源服务树:stree-index 物化路径+倒排索引实现的开源服务树核心组件
开源项目地址:项目地址: https://github.com/ning1875/stree-index什么是服务树及其核心功能服务树效果图可以看我之前写的文章 服务树系列(一):什么是服务树及其核心功能核心功能有三个树级结构灵活的资源查询权限相关今天仅讨论前两种的实现树级结构实现调研后发现有下列几种实现方式左右值编码区间嵌套闭包表物化路径而stree-index采用的是物化路径物化路径原理在创建节点时,将节点的完整路径进行记录,方案借助了unix文件目录的原创 2021-01-08 14:58:19 · 278 阅读 · 0 评论 -
开源项目: prome_shard :consulwatch+动态分片实现Prometheus采集端高可用
开源项目地址: 项目地址: https://github.com/ning1875/prome_shard项目说明prometheus采集端单点问题采集类型采集机器级别的指标采集k8s基础监控指标采集部署在lb后面的vm业务指标采集部署在pod里的业务指标采集各种中间件的指标 如kafka zk clickhouse等面对如此复杂的采集类型,一般会使用一批采集Prometheus各司其职sd发现问题面对不同的采集来源,有对应的服务发现类型,如k8s_sd,我们修改Promethe原创 2021-01-08 14:56:41 · 265 阅读 · 0 评论 -
k8s监控指标汇总,prometheus采集k8s原理解析
监控需求我们使用k8s后一般需要监控一下四大块指标指标类型采集源应用举例发现类型grafana截图容器基础资源指标kubelet 内置cadvisor metrics接口查看容器cpu、mem利用率等k8s_sd node级别直接访问node_ipk8s资源指标kube-stats-metrics (简称ksm)具体可以看从容器监控kube-stats-metrics看k8s众多组件 看pod状态如pod waiting状态的原因 数个数如:查看node原创 2021-01-08 13:20:54 · 1762 阅读 · 0 评论 -
promethues系列之:追踪k8s容器指标的打tag的流程
# k8s中容器资源的监控## 在promethues中如何配置采集容器指标* 采用promethues的kubernetes_sd_configs中 node级别的role```yaml- job_name: kubernetes-nodes-cadvisor honor_timestamps: false scrape_interval: 30s scrape_timeout: 10s metrics_path: /metrics scheme: https kube...原创 2020-07-17 10:02:33 · 214 阅读 · 0 评论 -
监控聚合器系列之: open-falcon新聚合器polymetric
![image.png](/img/bVbI3Gm)# 聚合在监控中的作用* 简单来说:需要将分散的大量监控数据按照一定的维度(idc/service)及一定的算法(avg/sum/max/min/quantile分位)得到一个结果值* 比如: 想知道服务a下面的100台机器的平均* 又比如: 想知道查询接口b的99分位延迟值# open-falcon原版聚合器## aggregator 介绍:* aggregator聚合器就是从falcon_portal.cluster表中取出用户在.原创 2020-07-04 18:08:41 · 362 阅读 · 0 评论 -
用动态分片解决pushgateway的HA问题
dynamic-sharding项目地址: https://github.com/ning1875/dynamic-shardingdynamic-sharding 基于cosul的service健康坚检测实现一致性哈希环动态分片:一个典型应用场景就是mock pushgateway的 HA(pgw100%的HA实现起来较为困难)主要解决pgw 单点问题case,实现原理如下:dynamic-sharding服务启动会根据配置文件注册pgw服务到consul中由consul定时对pgw s原创 2020-06-10 18:00:13 · 450 阅读 · 0 评论 -
我对开源版本openfalcon的变更
地址 https://github.com/ning1875/falcon-plus###新增proxy模块支持api查询多机房###我重写了聚合器,重写聚合器目的 poly_metric VS aggregator解决endpoint多的聚合断点问题解决聚合器单点问题,使得横向扩展得以实现解耦聚合器各个单元,可以方便的增加新的聚合入口和聚合策略###.falcon agent自...原创 2020-04-22 17:00:15 · 248 阅读 · 0 评论 -
解读两个一致性哈希算法
最重要的一点忘了写了:一致性哈希算法为啥能在节点变更的时候只有少量key迁移是因为sortkeys列表其实就是一个哈希环,客户端的哈希值和存量的节点哈希值在有序的sortkeys列表中的相对位置没有变,变的是下线节点前面的哈希到再前面一个之间的值所以变更率为:1-n/mopen-falcon中transfer会为judge和graph生成两个一致性哈希环func initNodeRi...原创 2018-08-03 17:06:33 · 1125 阅读 · 0 评论 -
open-falcon-alarm 代码分析
总结:alarm消费由judge产生的redis报警事件,根据优先级高低是否做合并,发往不同的报警通道高优先级报警比如p0: judge产生报警事件-->写入redis event:p0队列 -->alarm消费-->获取发送对象并处理调用回调函数(如果有)-->根据策略不同生成不同通道的报警(im,sms,mail,phone)等-->写入redis各个通道的发送队...原创 2018-07-12 16:41:31 · 1028 阅读 · 0 评论 -
open-falcon-aggregator代码解析
总结:aggregator聚合器就是从falcon_portal.cluster表中取出用户在页面上配置的表达式,然后解析后,通过api拿到对应机器组的所有机器,通过api查询graph数据算出一个值重新打回transfer作为一个新的点。定时从db中拿出所有的聚合器配置放到一个map中第一次启动时遍历聚合器map生成workers map 这两个map的key都是id+updatetime同时下...原创 2018-07-12 14:03:04 · 670 阅读 · 0 评论