Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6725
  • 博文数量: 15
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2020-09-27 12:01
个人简介

云原生技术交流阵地,汇聚云原生最新技术资讯、文章、活动,以及云原生产品及用户最佳实践内容。

文章分类

全部博文(15)

文章存档

2022年(5)

2021年(10)

我的朋友

分类: 云计算

2021-12-31 09:53:51

作者

黄雷,腾讯云高级工程师,曾负责构建腾讯云云监控新一代多维业务监控系统,擅长大规模分布式监控系统设计,对 golang 后台项目架构设计有较深理解,后加入TKE团队,致力于研究 Kubernetes 相关运维技术,拥有多年 Kubernetes 集群联邦运维管理经验,目前在团队主要负责大规模集群联邦可观测性提升,主导研发了腾讯云万级 Kubernetes 集群监控告警系统,智能巡检与风险探测系统。

摘要

如果问笔者,在管理 Kubernetes 集群的时候,有什么开源组件是一定会用的,那笔者觉得 Prometheus 一定会是其中之一。Prometheus 拥有强劲的性能,活跃的生态,便捷的部署方式,还有灵活的 PromQL,特别适合用于 Kubernetes 场景下的 master,节点,应用等各个层级的监控数据采集和聚合,再配合炫丽的 Grafana 面板(如下图),可谓是云原生监控的最佳方案。  

固然 Prometheus 和 Grafana 十分强大,但是刚接触的时候,还是有一定的学习成本,不易上手,这点笔者特别有感触。记得几年前笔者还未负责团队云原生可观测性提升的时候,就经常听到边上一刚接触 Prometheus 的哥们成天和笔者吐槽,“哎,Prometheus 的语法怎么这么复杂”,“这东西太恶心了,这怎么写啊”。当时笔者还嘲笑他夸张,但当我也开始学习 Prometheus,开始配 Grafana 面板的时候,也发出过一样的吐槽声,例如下边的语句。

 max(label_replace(
 label_replace(
 label_replace(
 kube_deployment_status_replicas_unavailable, "workload_kind","Deployment","","")
 ,"workload_name","$1","deployment","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)")
 ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace(
 label_replace(
 label_replace(
 kube_daemonset_status_number_unavailable, "workload_kind","DaemonSet","","")
 ,"workload_name","$1","daemonset","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace(
 label_replace(
 label_replace(
 (kube_statefulset_replicas - kube_statefulset_status_replicas_ready), "workload_kind","StatefulSet","","")
 ,"workload_name","$1","statefulset","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace(
 label_replace(
 label_replace(
 (kube_job_status_failed), "workload_kind","Job","","")
 ,"workload_name","$1","job_name","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) or on (namespace,workload_name,workload_kind, __name__) max(label_replace(
 label_replace(
 label_replace(
 (kube_cronjob_info * 0), "workload_kind","CronJob","","")
 ,"workload_name","","cronjob","(.*)"), "__name__", "k8s_workload_abnormal", "__name__","(.*)") ) by (namespace, workload_name, workload_kind,__name__) 

笔者这几年在使用 Prometheus 的过程中积累了一定实践经验,也踩了不少坑。

为了让想要学习 Prometheus 的读者朋友更加快速的入门,少走弯路,提升云原生时代业务监控技能。

笔者整理并总结了一版教程,包括一些最基本,最核心的概念,技巧以及最佳实践分享给大家,让大家用 20% 的时间掌握 80% 最常用的部分。

学会如何从零开始给自己的业务暴露监控指标,如何正确配置服务发现,以及如何配出实用的 Grafana 面板,带领读者光速入门 Prometheus+Grafana,掌握云原生监控的正确姿势。图片

「腾讯云原生」公众号后台回复“ Prometheus”或“光速入门”即可获取教程!一起学起来吧!

小Tips:教材目前有网站版本(需在浏览器中打开)和PDF版本,童鞋们可根据自身需求进行查看。本教材网站版本会持续进行更新,大家可以持续关注~

同时欢迎大家给教程提issue, 此教程会根据大家的反馈不定时更新,扩展,修订!

(提issue的GitHub地址)

教材目录如下

阅读(240) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~