Prometheus 官网阅读笔记 简介篇
Prometheus 官网阅读笔记 简介篇一、参考资料https://prometheus.ac.cn/docs/introduction/overview/二、笔记总结1 简介1.1 概述什么是 PrometheusPrometheus 是一个开源系统监控和告警系统Prometheus 采集并将其指标存储为时间序列数据即指标信息与记录时的时间戳一同存储。特性PromQL一种 灵活的查询语言。时间序列数据采集通过基于 HTTP 的拉取Pull模型进行通过中间网关支持推送时间序列数据通过服务发现或静态配置来发现目标支持多种图形和仪表板展示模式什么是指标对于 Web 服务器它可能是请求耗时对于数据库它可能是活动连接数或活动查询数等等。时间序列这一术语指的是随着时间推移对变化进行的记录。指标在理解您的应用程序为何以某种方式运行方面起着重要作用。假设您运行着一个 Web 应用程序并发现它变慢了。为了了解您的应用程序发生了什么您需要一些信息。例如当请求数很高时应用程序可能会变慢。如果您拥有请求计数指标就可以查明原因并增加服务器数量来处理负载。组件Prometheus 生态系统由多个组件组成其中许多是可选的。主要的 Prometheus 服务器用于抓取和存储时间序列数据。用于为应用程序代码添加监控功能的客户端库用于支持短期任务的 Pushgateway用于处理告警的 Alertmanager大多数 Prometheus 组件都是用 Go 语言编写的这使得它们易于构建和部署为静态二进制文件。架构Prometheus 直接或间接通过 Pushgateway用于短期任务从作业中抓取指标。它在本地存储所有抓取的样本从数据中聚合和记录新的时间序列或者生成告警。可以使用 Grafana 或其它软件来将收集到的数据可视化。由于 Prometheus 的拉取模型要求目标持续暴露 HTTP 端点而许多任务生命周期极短等不到 Prometheus 的轮询就已经退出导致监控数据丢失。Pushgateway用于短期任务解决这个问题。什么时候适用Prometheus 非常适合记录任何纯数字的时间序列。在微服务时代它对多维数据收集和查询的支持是一大特色优势。Prometheus 专为可靠性而设计旨在成为您在发生故障时所求助的系统以便快速诊断问题。每个 Prometheus 服务器都是独立的不依赖网络存储或其他远程服务。什么时候不适用Prometheus 注重可靠性。如果您需要 100% 的准确率例如按请求计费Prometheus 并不是一个好选择因为收集的数据可能不够详细和完整。1.2 入门Prometheus 入门Prometheus 是一个监控平台通过从被监控目标的 HTTP 指标端点抓取指标来收集数据。您将下载、安装并运行 Prometheus。您还将下载并安装一个导出器这是一种在主机和服务上公开时间序列数据的工具。下载 Prometheus下载 | Prometheus - Prometheus 监控系统tarxvfz prometheus-*.tar.gzcdprometheus-*运行该二进制文件并传入--help标志来查看其选项帮助./prometheus--help配置 PrometheusPrometheus 的配置采用 YAML 格式Prometheus 下载包中包含一个名为 prometheus.yml 的示例配置文件。global:scrape_interval:15sevaluation_interval:15srule_files:# - first.rules# - second.rulesscrape_configs:-job_name:prometheusstatic_configs:-targets:[localhost:9090]示例配置文件中有三个配置块global、rule_files 和 scrape_configs。global 块控制 Prometheus 服务器的全局配置。scrape_interval它控制 Prometheus 抓取目标的频率。在此示例中全局设置是每 15 秒抓取一次。evaluation_interval 选项控制 Prometheus 创建新的时间序列并生成告警的频率。rule_files 块指定了我们希望 Prometheus 服务器加载的任何规则的位置。scrape_configs它控制 Prometheus 监控哪些资源。由于 Prometheus 也将自身数据作为 HTTP 端点暴露因此它可以抓取和监控自身的健康状况。在默认配置中有一个名为 prometheus 的作业它抓取 Prometheus 服务器暴露的时间序列数据。这个默认作业通过 URL https://:9090/metrics 进行抓取。返回的时间序列数据将详细描述 Prometheus 服务器的状态和性能。配置文件完整说明启动 Prometheus./prometheus--config.fileprometheus.yml访问其自身的指标端点来验证 Prometheus 是否正在提供关于自身的指标https://:9090/metrics。使用表达式浏览器要使用 Prometheus 内置的表达式浏览器请访问 https://:9090/query并选择 Table 选项卡。Prometheus 暴露的关于自身的其中一个指标是 promhttp_metric_handler_requests_totalPrometheus 服务器处理的 /metrics 请求总数请将此指标输入到检索框。这应该会返回许多不同的时间序列以及每个序列记录的最新值它们都具有指标名称 promhttp_metric_handler_requests_total但带有不同的标签。这些标签表示不同的请求状态。如果我们只对 HTTP 状态码为 200 的请求感兴趣可以使用此查询来检索该信息。promhttp_metric_handler_requests_total{code200}要计算返回的时间序列数量您可以这样写count(promhttp_metric_handler_requests_total)有关表达式语言的更多信息使用图形界面要绘制表达式图形请导航到 https://:9090/query 并使用“Graph”选项卡。例如输入以下表达式以绘制 Prometheus 服务器处理的 /metrics 请求返回状态码为 200 的每秒 HTTP 请求速率。rate(promhttp_metric_handler_requests_total{code200}[1m])监控其他目标Prometheus 对自身的监控并不能很好地展现 Prometheus 的全部功能为了更好地了解 Prometheus 的用途我们建议查阅其他导出器的文档。使用 Node Exporter 监控 Linux 或 macOS 主机指标指南总结在本指南中您安装了 Prometheus配置了一个 Prometheus 实例来监控资源并学习了在 Prometheus 表达式浏览器中处理时间序列数据的一些基础知识。