0Pricing
Kubernetes Basics · 课时

使用 Prometheus 与 Grafana 处理指标

设置 Prometheus 收集 Cluster 和应用指标,并使用 Grafana 将其可视化。

使用 Prometheus 与 Grafana 处理指标 是 CoddyKit 上的免费 Kubernetes Basics 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kubernetes Basics 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kubernetes Basics 课程共包含 4 节课。

指标的作用

指标是描述应用程序和基础设施状态及性能的数值测量结果。您可以将它们视为软件的生命体征!

它们可以为以下方面提供有价值的洞察:

  • 性能:您的应用响应速度有多快?
  • 资源使用情况:您的服务器是否即将耗尽内存?
  • 可用性:您的服务是否正在运行并可供用户使用?

通过跟踪指标,您可以了解趋势、检测异常,并主动排查问题。

认识普罗米修斯

普罗米修斯是一个开源监控系统,专为可靠性和可扩展性而设计。它是云原生可观测性技术栈中的重要工具。

它的主要任务是:

  • 抓取:从已配置的目标(例如您的应用程序)收集指标。
  • 存储:将这些指标保存到时间序列数据库中。
  • 查询:允许您针对收集的数据提出问题。

普罗米修斯可以帮助您清晰了解 Kubernetes 集群内部正在发生的情况。

普罗米修斯的“抓取”模型

普罗米修斯使用“拉取”模型收集指标。应用程序不是将数据推送给普罗米修斯,而是由普罗米修斯主动从应用程序中“抓取”或拉取指标。

其一般工作方式如下:

  1. 您的应用程序在特定的 HTTP 端点公开指标(通常是 /metrics)。
  2. 普罗米修斯配置有一个目标列表(例如应用程序的 IP 和端口)。
  3. 普罗米修斯按固定时间间隔向每个目标的 /metrics 端点发送 HTTP 请求。
  4. 目标返回当前指标,普罗米修斯随后将其存储。

指标:键值对

普罗米修斯将数据存储为时间序列:由带时间戳的值组成的数据流。每个时间序列都由一个指标名称和一组称为标签的键值对唯一标识。

示例:http_requests_total{method="GET", path="/api"}

普罗米修斯有以下核心指标类型:

  • 计数器:只能递增的累积指标(例如请求总数)。
  • 仪表盘:可以增加或减少的值(例如当前 CPU 使用率)。
  • 直方图/摘要:用于对观测值进行采样,并将其计入可配置的区间(例如请求持续时间)。

让应用程序“说出”指标

要让普罗米修斯抓取指标,您的应用程序需要以普罗米修斯能够理解的格式公开这些指标。通常可以通过 HTTP 端点实现。

许多编程语言都提供客户端库,可以轻松为代码添加指标采集功能:

  • 在事件发生时递增计数器。
  • 为当前状态设置仪表盘值。
  • 记录操作的持续时间。

下面来看一个公开基本计数器指标的极简应用程序示例。

公开指标的 Python 应用程序

这是一个非常小的 Python Flask 应用程序,它公开了一个简单的计数器指标,用于模拟统计页面浏览量。

运行此代码,然后尝试在浏览器或终端中访问 /metrics(例如,运行后访问 http://localhost:5000/metrics)。

from flask import Flask
from prometheus_client import Counter, generate_latest
import time

app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')

@app.route('/')
def hello():
    c.inc() # Increment the counter
    return "Hello, CoddyKit!"

@app.route('/metrics')
def metrics():
    return generate_latest().decode('utf-8')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

集群中的普罗米修斯

在 Kubernetes 中,高效部署普罗米修斯通常需要使用普罗米修斯运算符。这个运算符可以帮助管理普罗米修斯实例和配置。

普罗米修斯使用的关键 Kubernetes 资源:

  • ServiceMonitor:告知普罗米修斯从何处查找指标端点(例如要抓取哪些 Service 和 Pod)。
  • PodMonitor:与 ServiceMonitor 类似,但直接以 Pod 为目标。

这些资源允许普罗米修斯自动发现并抓取已部署应用程序的指标。

Grafana:仪表板大师

普罗米修斯负责收集和存储指标,而 Grafana 是用于将指标可视化的首选工具。它是一个开源的分析和交互式可视化 Web 应用程序。

Grafana 允许您:

  • 创建美观且信息丰富的仪表板。
  • 查询多个数据源(例如普罗米修斯)。
  • 根据指标阈值设置警报。

它可以将原始指标数据转化为可采取行动的洞察。

Grafana 与普罗米修斯:强大组合

Grafana 本身不存储指标数据,而是从外部数据源查询数据。要将 Kubernetes 指标可视化,您需要在 Grafana 中将普罗米修斯配置为数据源。

步骤:

  1. 在 Grafana 中添加新的数据源。
  2. 选择“普罗米修斯”作为类型。
  3. 提供普罗米修斯服务器的 URL。
  4. 使用普罗米修斯的查询语言 PromQL 开始构建仪表板!

这种组合让您可以全面控制集群监控。

测试您的知识!

现在来检查您对普罗米修斯和 Grafana 的理解吧!

回顾:指标与可视化

做得很好!在本课中,您学习了:

  • 指标对于可观测性的重要性。
  • 普罗米修斯作为抓取和存储时间序列指标的强大系统。
  • 应用程序如何公开指标供普罗米修斯收集。
  • Grafana 如何创建有洞察力的仪表板并将指标数据可视化。

理解这些工具对于保持 Kubernetes 应用程序健康且高性能至关重要。请继续探索如何为自己的应用程序添加指标采集功能!

常见问题解答

「使用 Prometheus 与 Grafana 处理指标」课时是免费的吗?

是的 — 「使用 Prometheus 与 Grafana 处理指标」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kubernetes Basics 课程的其余内容,请升级到 CoddyKit PRO。 Kubernetes Basics 课程共包含 4 节课。

「使用 Prometheus 与 Grafana 处理指标」这节课中我会学到什么?

设置 Prometheus 收集 Cluster 和应用指标,并使用 Grafana 将其可视化。 你通过在浏览器中直接运行的动手代码来练习 Kubernetes Basics,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Kubernetes Basics 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Kubernetes Basics 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用 Prometheus 与 Grafana 处理指标」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Kubernetes Basics 课中编写并运行代码吗?

能。每节 Kubernetes Basics 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 kubectl logs 查看日志
  2. 使用 Prometheus 与 Grafana 处理指标
  3. 健康检查:存活与就绪探针
  4. 分布式追踪与事件
← 返回 Kubernetes Basics