自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 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 263

原创 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 1652

原创 用动态分片解决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 435

原创 分布式c/s ping & http 探测

## ps 基于open-falcon做监控现在有点落伍了,目前我这里有更好的方案,感兴趣的+qq 907974064或者github issue留言## 地址 [https://github.com/ning1875/xprober](https://github.com/ning1875/xprober)## 预览图### http 探测结果### 互ping 结果# 项目说明`xprober` is a distributed c/s architecture..

2020-05-26 19:33:21 570

原创 我对开源版本openfalcon的变更

地址 https://github.com/ning1875/falcon-plus###新增proxy模块支持api查询多机房###我重写了聚合器,重写聚合器目的 poly_metric VS aggregator解决endpoint多的聚合断点问题解决聚合器单点问题,使得横向扩展得以实现解耦聚合器各个单元,可以方便的增加新的聚合入口和聚合策略###.falcon agent自...

2020-04-22 17:00:15 211

原创 运维开发讲师眼中几个课程平台的对比

其实是B站课程部分上线了备份策略。

2024-01-23 22:00:54 867

原创 k8s默认调度器关于pod申请资源过滤的源码细节

k8s默认调度器关于pod申请资源过滤的源码细节

2023-01-03 16:20:48 141

原创 开源项目: self_upgrade: C/S架构中 agent如何自升级(以falcon-agent为例)

项目地址代码地址 https://github.com/ning1875/falcon-plus/tree/master/modules/agent前言在我们日常运维/运维开发工作中各种系统主要分为两大流派本文主要讨论下有agent侧一些注意事项客户端服务端的C/S架构优点c/s架构相比于基于ssh的并发和吞吐量要高的多利用agent可做的事情很多以及更精准的控制缺点功能更新需要升级agentagent如果保活是个头疼的问题[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下

2021-01-08 17:22:32 607

原创 从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 1068

原创 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 142

原创 服务树系列(一):什么是服务树及其核心功能

前言服务树这个名词几乎所有运维和运维开发同学都不陌生,但是服务树的原理和为啥用服务树估计大家并不了解,本文先来讨论下这些基本概念,下文讨论如何实现,下图为其核心组件stree-index现已开源开源项目地址:项目地址: https://github.com/ning1875/stree-index介绍文章 服务树系列(二):开源项目:stree-index 物化路径+倒排索引实现的开源服务树核心组件服务树与资源管理其实无论是引入CMDB或服务树的一个重要目的是完成对应用运行所依赖的

2021-01-08 17:17:24 895

原创 开源项目: 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 183

原创 开源项目 : 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 226 2

原创 服务树系列(二):开源服务树:stree-index 物化路径+倒排索引实现的开源服务树核心组件

开源项目地址:项目地址: https://github.com/ning1875/stree-index什么是服务树及其核心功能服务树效果图可以看我之前写的文章 服务树系列(一):什么是服务树及其核心功能核心功能有三个树级结构灵活的资源查询权限相关今天仅讨论前两种的实现树级结构实现调研后发现有下列几种实现方式左右值编码区间嵌套闭包表物化路径而stree-index采用的是物化路径物化路径原理在创建节点时,将节点的完整路径进行记录,方案借助了unix文件目录的

2021-01-08 14:58:19 233

原创 开源项目: 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 230

原创 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 189

原创 监控聚合器系列之: 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 337

原创 粗读web框架之go gin和python django

为什么引入web框架 web应用的本质浏览器发送一个HTTP请求; 服务器收到请求,生成一个HTML文档; 服务器把HTML文档作为HTTP响应的Body发送给浏览器; 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示; 涉及的问题 解析http请求 找到对应的处理函数 生成并发送http响应web框架工作流程中间件中间...

2019-06-10 10:54:53 2300

原创 童年回忆

今天来聊聊童年趣事,开裆照镇楼生在农村,小时候的好玩儿的事自然不少。部分故事有一些艺术上的加工,小伙伴隐匿名字由于小学和初中都是在村旁边,所以颠儿着就能去上学(每每看到冬天还要哼哧哼哧蹬自行车上学家里离得远的小伙伴我心里还有些优越感呢。。)。嘿嘿,现在回想起来我们家应该是学区房吧,至于学校质量嘛。。。。小时候一年四季啥时候都很有意思:    春天篇---春天到了,又到了动物交配的...

2018-08-04 23:34:06 394

原创 解读两个一致性哈希算法

最重要的一点忘了写了:一致性哈希算法为啥能在节点变更的时候只有少量key迁移是因为sortkeys列表其实就是一个哈希环,客户端的哈希值和存量的节点哈希值在有序的sortkeys列表中的相对位置没有变,变的是下线节点前面的哈希到再前面一个之间的值所以变更率为:1-n/mopen-falcon中transfer会为judge和graph生成两个一致性哈希环func initNodeRi...

2018-08-03 17:06:33 1105

原创 open-falcon-alarm 代码分析

总结:alarm消费由judge产生的redis报警事件,根据优先级高低是否做合并,发往不同的报警通道高优先级报警比如p0: judge产生报警事件-->写入redis event:p0队列 -->alarm消费-->获取发送对象并处理调用回调函数(如果有)-->根据策略不同生成不同通道的报警(im,sms,mail,phone)等-->写入redis各个通道的发送队...

2018-07-12 16:41:31 780

原创 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 657

原创 运维发展路线之我见

随着工作时间的增长,接触不少的op sre,有大神但是更多是靠年限增长的普通人。对运维工作发展路线有了一个清晰的认识:简单说,如果你想在运维方面变得十分牛逼,以下三点不能躲开1.对于linux内核和系统底层的理解2.丰富的coding经验3.熟悉网络协议和底层转发流程下面分别来说下:自己是否对linux内核有了深刻的理解:包括但不限于:系统调用,内核数据结构,内存管理,io层,文件系统,中断和同...

2018-04-17 13:28:12 1505

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除