当前位置: 首页 > article >正文

使用 Elasticsearch 与 Kibana 中的 PromQL 调查 Kubernetes 基础设施问题

作者来自 Elastic Miguel Sánchez本文将逐步介绍如何使用 PromQL 在 Elastic Observability 中对 Kubernetes 集群范围内的 CPU 使用情况进行调查从集群到命名空间再到出现问题的 Pod。Elasticsearch 现在已经原生支持 PromQL并且你可以通过 ES|QL 中的 PROMQL source command 在 Kibana 中运行 PromQL 查询。这意味着你可以直接使用 PromQL 查询存储在 Elasticsearch 中的 Kubernetes 指标数据并在 Discover、Dashboards 或 alerting rules 中运行这些查询。当集群 CPU 突然飙升而你需要找出究竟是哪一个 workload导致问题时可以按层级逐步收敛范围从 fleet → namespace → pod一步一步定位。你需要准备的内容一个 Observability Serverless project或版本为 9.4 及以上的 self-managed / Elastic Cloud Hosted StackPromQL 当前作为 metrics 的预览查询语言提供Kubernetes metrics 已写入 Elasticsearch本文示例基于 OpenTelemetry 数据至少一个正在运行 workload 的 Kubernetes 集群以便 group by 查询可以进行对比分析场景你正在管理一组 Kubernetes 集群集群区域角色prod-us-east-1美国东部生产环境服务、ML 训练prod-eu-west-1欧洲西部生产环境区域 Web 层、缓存staging-us-east-1美国东部预发布环境QA、集成测试dev-sandbox美国东部开发者沙箱环境美国东部的生产集群运行着多种服务以及 ML 训练任务分布在多个 namespace 中。此时一个告警触发整个集群的 CPU 使用率升高但只有某一个团队反馈响应时间变慢。你的排查目标是先定位哪个 cluster出问题 → 再定位哪个 namespace→ 最后定位具体哪个 pod。你的目标并不是用一条查询完成完整 root-cause 证明而是快速锁定 “嫌疑对象” 并完成交接。你的数据OpenTelemetry Collector 的 Kubelet Stats Receiver 会生成如下 data streammetrics-kubeletstatsreceiver.otel-default指标遵循 k8s.* 命名规范例如 k8s.pod.cpu.usage并通过如下标签进行切分k8s.cluster.namek8s.namespace.namek8s.pod.name这些标签允许你按 cluster、namespace 或 pod 进行分析。为了确认数据已经存在打开 Discover → 切换到 ES|QL 模式 → 运行TS metrics-* | WHERE data_stream.dataset kubeletstatsreceiver.otel即可验证数据流是否正常写入。调查找出 noisy neighbor噪声邻居步骤 1哪个 cluster 最“热”当你管理多个 Kubernetes 集群时应先从 fleet 层级开始排查。PROMQL sum by (k8s.cluster.name) (k8s.pod.cpu.usage)该查询会按 cluster 聚合所有 pod 的 CPU 使用量。结果中prod-us-east-1 立刻显现异常其 pod 总 CPU 使用量比其他集群高出一个数量级。而欧洲生产集群、staging以及 dev-sandbox 都相对平稳。现在你已经知道问题出在哪个 cluster接下来该继续向下钻取。步骤 2查看热点 cluster 的整体 CPU先过滤到 prod-us-east-1再观察整体 CPU 使用情况PROMQL sum(k8s.pod.cpu.usage{k8s.cluster.nameprod-us-east-1})这会显示整个 cluster 中 pod CPU 使用量随时间变化的整体趋势。如果总量持续上升或出现尖峰说明某些 workload 发生了变化但此时你还不知道具体是谁导致的。步骤 3按 namespace 拆分要最快定位“哪个团队在制造负载”最直接的方法就是按 namespace 进行分组分析。PROMQL sum by (k8s.namespace.name) (k8s.pod.cpu.usage{k8s.cluster.nameprod-us-east-1})设置 Kibana 的 time picker 覆盖你的 incident window。ml-training 在 ~2.0 cores 时占主导而其他每个 namespace 都远低于 0.2 cores。步骤 4下钻到 pod现在你已经知道 namespace接下来定位具体的 podPROMQL sum by (k8s.pod.name) (k8s.pod.cpu.usage{k8s.cluster.nameprod-us-east-1, k8s.namespace.nameml-training})它会按该 namespace 内的 CPU 总使用量对 pod 进行排序。这个图表应该能让异常值一目了然。Pod model-train-v2-run-47-d9j67 正在消耗完整的 2.0 cores。它是一个训练任务已经把分配的资源打满了。步骤 5检查资源利用率比例原始 CPU cores 只能告诉你用了多少而利用率比例可以告诉你距离上限还有多近。一个 pod 如果 CPU 利用率达到 100%说明它正在被 throttling限流既是 noisy neighbor同时也因为自身限制而受影响。PROMQL sum by (k8s.namespace.name) (k8s.container.cpu_limit_utilization{k8s.cluster.nameprod-us-east-1})ml-training 显示约 ~100% 的 CPU limit utilization卡在 2-core 的上限而其他 namespace 都低于 20%。这进一步确认该训练任务已经耗尽其分配资源并可能正在对共享节点造成调度压力。接下来会发生什么PromQL query 已经定位到嫌疑对象训练任务 model-train-v2-run-47 在 ml-training 中。从这里开始日志在 Discover 中按 pod name 过滤查看训练任务在做什么以及是否记录了错误或警告。Kube events检查同一时间窗口内是否有 OOMKilled、throttling 或 eviction 事件。资源策略检查训练任务的 requests 和 limits 是否匹配实际使用情况。request 和 limit 之间的较大差距会让 pod 突破 scheduler 预期的资源规划。考虑在 namespace 上设置ResourceQuota或LimitRange。原文https://www.elastic.co/observability-labs/blog/promql-investigate-kubernetes-infrastructure

相关文章:

使用 Elasticsearch 与 Kibana 中的 PromQL 调查 Kubernetes 基础设施问题

作者:来自 Elastic Miguel Snchez 本文将逐步介绍如何使用 PromQL 在 Elastic Observability 中对 Kubernetes 集群范围内的 CPU 使用情况进行调查,从集群到命名空间再到出现问题的 Pod。 Elasticsearch 现在已经原生支持 PromQL,并且你可以通…...

GRT 深度解剖:单芯片雷达基础模型的全栈技术图谱

文献:Huang T., Prabhakara A., Chen C., et al. "Towards Foundational Models for Single-Chip Radar." ICCV, 2025. 项目主页:https://wiselabcmu.github.io/grt/ 一、论文全景架构:从问题到答案的完整地图 我们先不急着钻细节…...

瓷砖规格有哪些?瓷砖用量如何计算?

瓷砖规格有哪些?瓷砖用量如何计算? 目前建材市场上出现的瓷砖规格有许多种,每一种瓷砖规格所装饰出来的效果都各有千秋,如果想节省瓷砖和降低造价,那么在购买瓷砖前计算要铺贴的使用量就十分必要。了解瓷砖规格以及瓷砖用量,对于购买瓷砖的消费者而言,一定会有所帮助的…...

Android Studio中文界面完整指南:3分钟实现全中文开发环境

Android Studio中文界面完整指南:3分钟实现全中文开发环境 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack Android St…...

创优必看!鲁班奖工程的八项基本要求

创优必看!鲁班奖工程的八项基本要求 作为建筑工程行业的最高级别奖项,鲁班奖的评选工作严格贯彻执行国家有关基本建设的法律、法规和方针政策,以及国家、行业现行的技术标准、施工规范和技术规程。那么,什么样的工程才能荣获鲁班奖呢? 本文根据《鲁班奖评选工作细则》总…...

全面掌握Wand-Enhancer:零成本解锁WeMod Pro高级功能的实用攻略

全面掌握Wand-Enhancer:零成本解锁WeMod Pro高级功能的实用攻略 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 想免费体验WeMod Pro的所有高…...

Adobe-GenP 3.0:AutoIt实现的Adobe CC二进制补丁机制深度分析

Adobe-GenP 3.0:AutoIt实现的Adobe CC二进制补丁机制深度分析 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe Creative Cloud系列软件作为创意行业…...

终极SOCD清理工具:Hitboxer让你的游戏操作精准如职业选手

终极SOCD清理工具:Hitboxer让你的游戏操作精准如职业选手 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否曾在激烈的游戏对战中,明明同时按下了左右方向键,角色却做出奇…...

Windows Cleaner:专业级Windows系统优化终极指南

Windows Cleaner:专业级Windows系统优化终极指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的开源系统…...

BetterGI:原神自动化助手终极指南 - 告别重复劳动,智能解放双手

BetterGI:原神自动化助手终极指南 - 告别重复劳动,智能解放双手 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一…...

OpenClaw插件实战:为Telegram审批消息添加一键操作按钮

1. 项目概述:为OpenClaw的Telegram频道添加一键审批按钮如果你正在使用OpenClaw,并且像我一样,把Telegram作为主要的交互和通知渠道,那你肯定对下面这个场景不陌生:AI助手在执行某个需要授权的命令(比如exe…...

Blender 3MF插件终极指南:如何实现3D打印工作流无缝对接

Blender 3MF插件终极指南:如何实现3D打印工作流无缝对接 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender 3MF插件是连接3D建模与3D打印制造的关键桥梁…...

从安装到实战:用Python+Neo4j Driver构建你的第一个社交网络图谱(含完整代码)

从零构建社交网络图谱:Python与Neo4j全流程实战指南 社交网络分析正在重塑我们对复杂关系的理解。想象一下,当我们需要分析Twitter上的信息传播路径、LinkedIn的职业关系网或是电商平台的用户推荐系统时,传统的关系型数据库往往显得力不从心。…...

Ubuntu 18.04上Qt程序报‘xcb’插件错误?别急着重装,试试这个ldd排查法

Ubuntu 18.04 Qt程序xcb插件错误排查指南:从日志分析到依赖修复 当你满怀期待地在Ubuntu 18.04上启动精心开发的Qt应用程序时,屏幕上突然跳出"Could not load the Qt platform plugin xcb"的错误提示,这种挫败感开发者都深有体会。…...

通过API Key管理与审计日志功能加强企业级应用的安全管控

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过API Key管理与审计日志功能加强企业级应用的安全管控 应用场景类,企业级应用在集成大模型能力时,需严格…...

在Node.js服务中集成Taotoken实现稳定的大模型调用方案

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Node.js服务中集成Taotoken实现稳定的大模型调用方案 应用场景类,针对需要构建AI功能的后端开发者,阐述如…...

LinkSwift:九大网盘直链下载,告别限速烦恼

LinkSwift:九大网盘直链下载,告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

QueryExcel终极指南:5分钟批量查询上百个Excel文件的完整解决方案

QueryExcel终极指南:5分钟批量查询上百个Excel文件的完整解决方案 【免费下载链接】QueryExcel 多Excel文件内容查询工具。 项目地址: https://gitcode.com/gh_mirrors/qu/QueryExcel 你是否曾在海量Excel文件中迷失方向?当数据分散在数十个甚至上…...

从卡顿到流畅:WaveTools如何让你的《鸣潮》体验脱胎换骨

从卡顿到流畅:WaveTools如何让你的《鸣潮》体验脱胎换骨 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否曾经在《鸣潮》的激烈战斗中因为突然的卡顿而错失良机?是否觉得60帧的…...

2025届毕业生推荐的六大降AI率神器解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于有那种需求去规避人工智能内容检测的用户来讲,在这儿推荐使用专业的降AI率网…...

深入剖析`ReentrantReadWriteLock`源码——虚拟线程时代机遇、挑战与演进

引言:并发范式的革命性转变 Java 21 正式引入了虚拟线程(Virtual Threads),这标志着 Java 并发编程进入了一个全新的时代。Project Loom 的目标是让编写、维护和观测高吞吐量的并发应用程序变得如同编写顺序代码一样简单。虚拟线程…...

WPS-Zotero插件终极指南:5步实现科研写作效率翻倍的完整教程

WPS-Zotero插件终极指南:5步实现科研写作效率翻倍的完整教程 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为学术论文的文献管理而烦恼吗?每次…...

QMC音频转换工具终极指南:快速免费解锁加密音乐文件

QMC音频转换工具终极指南:快速免费解锁加密音乐文件 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾遇到过下载的音乐文件无法在普通播放器中播放的困扰…...

告别配置烦恼!用VS2019属性表一键搞定OpenCV 4.3环境(附常见错误排查)

告别配置烦恼!用VS2019属性表一键搞定OpenCV 4.3环境(附常见错误排查) 在计算机视觉开发中,OpenCV无疑是最受欢迎的库之一。然而,对于许多开发者来说,配置OpenCV环境往往成为项目开始前的第一道门槛。特别是…...

Windows Cleaner终极指南:快速免费解决C盘爆红问题

Windows Cleaner终极指南:快速免费解决C盘爆红问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾因C盘爆红而焦急万分?系统运行…...

视频硬字幕提取终极指南:本地AI一键生成SRT字幕文件

视频硬字幕提取终极指南:本地AI一键生成SRT字幕文件 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提…...

终极指南:3分钟免费完成OFD转PDF,彻底解决电子发票打印难题

终极指南:3分钟免费完成OFD转PDF,彻底解决电子发票打印难题 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 你是否曾因收到OFD格式的电子发票而无法在手机或普通电脑上打开&am…...

TikTok评论采集终极指南:5分钟学会免费批量提取用户评论

TikTok评论采集终极指南:5分钟学会免费批量提取用户评论 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 想要快速获取TikTok视频下的所有用户评论进行数据分析?TikTokCommentScraper…...

告别恼人的JDK版本警告!手把手教你为IDEA+Maven项目永久锁定Java 8(保姆级避坑图解)

彻底根治IDEAMaven项目的JDK版本警告:从项目配置到环境锁定的终极方案 每次打开IntelliJ IDEA,那个刺眼的黄色警告"Warning:java: 源值1.5已过时"就像代码世界里的蟑螂,虽然无害但令人极度不适。作为有代码洁癖的开发者&#xff0c…...

Gradle多模块项目实战:从settings.gradle配置到自定义目录结构的完整指南

Gradle多模块项目实战:从settings.gradle配置到自定义目录结构的完整指南 当你的代码库从单体应用演化为包含数十个服务的分布式系统时,项目结构的复杂度会呈指数级增长。我曾见证过一个电商平台在三年内从单一代码库裂变为包含38个微服务的迷宫——开发…...