- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
prometheus-2.26.0.linux-amd64.tar.gz 。
下载地址:https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz 。
prometheus-2.54.1.linux-amd64.tar.gz 。
下载地址:https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz 。
CentOS 7.9 。
# wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
# tar xvzf prometheus-2.26.0.linux-amd64.tar.gz
# cd prometheus-2.26.0.linux-amd64
# ls
console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool
开始运行之前,先对它进行配置.
Prometheus通过抓取度量HTTP端点来从目标收集指标。由于Prometheus以同样的方式暴露自己的数据,它也可以搜集和监控自己的健康状况。 虽然只收集自身数据的Prometheus服务器不是很有用,但它是一个很好的开始示例。保存以下Prometheus基础配置到一个名为prometheus.yml的文件(安装包自动解压后,解压目录下,默认就就有一个名为prometheus.yml的文件) 。
global:
scrape_interval: 15s # 默认,每15秒采样一次目标
# 与其它外部系统(比如federation, remote storage, Alertmanager)交互时,会附加这些标签到时序数据或者报警
external_labels:
monitor: 'codelab-monitor'
# 一份采样配置仅包含一个 endpoint 来做采样
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
# job_name 将被被当作一个标签 `job=<job_name>`添加到该配置的任意时序采样.
- job_name: 'prometheus'
# 覆盖全局默认值,从该job每5秒对目标采样一次
scrape_interval: 5s
static_configs:
# 如果需要远程访问, localhost 也可以替换为具体IP,比如10.118.71.170
- targets: ['localhost:9090']
有关配置选项的完整说明,请参阅配置文档.
使用新创建的配置文件来启动 Prometheus,切换到包含 Prometheus 二进制文件的目录并运行 。
# 启动 Prometheus.
# 默认地, Prometheus 在 ./data 路径下存储其数据库 (flag --storage.tsdb.path).
# ./prometheus --config.file=prometheus.yml
通过访问 localhost:9000 来浏览状态页。等待几秒让他从自己的 HTTP metric endpoint 来收集数据.
还可以通过访问到其 metrics endpoint(http://localhost:9090/metrics) 来验证 Prometheus 是否正在提供有关其自身的 metrics 。
# firewall-cmd --permanent --zone=public --add-port=9090/tcp
success
# firewall-cmd --reload
success
使用 Prometheus 内置的expressin browser访问 localhost:9090/graph,选择 Graph 导航菜单下的 Table tab页 (Classic UI下为Console tab页).
通过查看localhost:9090/metrics 页面内容可知,Prometheus 导出了关于其自身的一个名为 prometheus_target_interval_length_seconds指标(目标采样之间的实际间隔)。将其作为搜索表达式,输入到表达式搜索框中,点击 Execute 按钮,如下,将返回多个不同的时间序列(以及每个时间序列的最新值),所有时间序列的 metric 名称均为 prometheus_target_interval_length_seconds,但具有不同的标签。 这些标签具有不同的延迟百分比和目标组间隔(target group intervals).
如果我们只对第 99 个百分位延迟感兴趣,则可以使用以下查询来检索该信息:
prometheus_target_interval_length_seconds{quantile="0.99"}
如果需要计算返回的时间序列数,可以修改查询如下:
count(prometheus_target_interval_length_seconds)
更多有关 expression language 的更多信息,请查看 expression language 文档.
要绘制图形表达式,请使用 “Graph” 选项卡.
例如,输入以下表达式以绘制在自采样的 Prometheus 中每秒创建 chunk 的速率:
rate(prometheus_tsdb_head_chunks_created_total[1m])
现在让我们增加一些采样目标供 Prometheus 进行采样.
使用Node Exporter作为采样目标,多关于它的使用请查阅 。
# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
# tar -xvzf node_exporter-1.1.2.linux-amd64.tar.gz
# ./node_exporter --web.listen-address 127.0.0.1:8001
# ./node_exporter --web.listen-address 127.0.0.1:8002
# ./node_exporter --web.listen-address 127.0.0.1:8003
现在,应该存在监听 http://localhost:8080/metrics, http://localhost:8081/metrics 和http://localhost:8082/metrics的示例目标 。
现在,我们将配置 Prometheus 来采样这些新目标。 让我们将所有三个 endpoint 分组为一个称为 “node” 的 job。 但是,假设前两个 endpoint 是生产目标,而第三个 endpoint 代表金丝雀实例。 为了在 Prometheus 中对此建模,我们可以将多个端组添加到单个 job 中,并为每个目标组添加额外的标签。 在此示例中,我们将 group=“ production” 标签添加到第一个目标组,同时将 group=“ canary” 添加到第二个目标.
为此,请将以下job定义添加到 prometheus.yml 中的 scrape_configs 部分,然后重新启动 Prometheus 实例。修改后的 prometheus.yml内容如下 。
global:
scrape_interval: 15s # 默认,每15秒采样一次目标
# 与其它外部系统(比如federation, remote storage, Alertmanager)交互时,会附加这些标签到时序数据或者报警
external_labels:
monitor: 'codelab-monitor'
# 一份采样配置仅包含一个 endpoint 来做采样
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
# job_name 将被被当作一个标签 `job=<job_name>`添加到该配置的任意时序采样.
- job_name: 'prometheus'
# 覆盖全局默认值,从该job每5秒对目标采样一次
scrape_interval: 5s
static_configs:
- targets: ['10.118.71.170:9090']
- job_name: 'node'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:8001', 'localhost:8002']
labels:
group: 'production'
- targets: ['localhost:8003']
labels:
group: 'canary'
查看Targets(Status -> Targets) 。
Graph查询 。
尽管在我们的示例中并不会有问题,但是在聚集了数千个时间序列中查询时可能会变慢。 为了提高效率,Prometheus 允许通过配置的记录规则将表达式预记录到全新的持久化的时间序列中。 假设我们感兴趣的是 5 分钟的窗口内测得的每个实例的所有cpu上平均的cpu时间(node_cpu_seconds_total,保留 Job,instance,和mode 维度))。 我们可以这样写:
avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))
Graph中执行查询,结果如下 。
现在,要将由该表达式产生的时间序列记录到一个名为:job_instance_mode:node_cpu_seconds:avg_rate5m 的新指标,使用以下记录规则创建文件并将其保存 prometheus.rules.yml 。
groups:
- name: cpu-node
rules:
- record: job_instance_mode:node_cpu_seconds:avg_rate5m
expr: avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))
在 prometheus.yml 中添加 rule_files 语句,以便 Prometheus 选择此新规则。 现在,prometheus.yml配置应如下所示:
global:
scrape_interval: 15s # 默认,每15秒采样一次目标
# 与其它外部系统(比如federation, remote storage, Alertmanager)交互时,会附加这些标签到时序数据或者报警
external_labels:
monitor: 'codelab-monitor'
rule_files:
- 'prometheus.rules.yml'
# 一份采样配置仅包含一个 endpoint 来做采样
# 下面是 Prometheus 本身的endpoint:
scrape_configs:
# job_name 将被被当作一个标签 `job=<job_name>`添加到该配置的任意时序采样.
- job_name: 'prometheus'
# 覆盖全局默认值,从该job每5秒对目标采样一次
scrape_interval: 5s
static_configs:
- targets: ['10.118.71.170:9090']
- job_name: 'node'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:8001', 'localhost:8002']
labels:
group: 'production'
- targets: ['localhost:8003']
labels:
group: 'canary'
通过新的配置重新启动 Prometheus,并通过expression brower查询 job_instance_mode:node_cpu_seconds:avg_rate5m,结果如下 。
https://www.kancloud.cn/nicefo71/prometheus-doc-zh/1331204 。
https://prometheus.io/docs/prometheus/latest/getting_started/ 。
最后此篇关于Prometheus入门的文章就讲到这里了,如果你想了解更多关于Prometheus入门的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是普罗米修斯的新手。根据我到目前为止所阅读和尝试的内容,Prometheus 客户端库通过 HTTP 公开收集的指标,Prometheus 定期读取(抓取)。 在 Prometheus 抓取指标之前
我们正在寻求实现监控和警报解决方案,我们希望为每个功能单元提供自己的 prometheus 实例。 目前我们通过 prometheus-operator 使用单个 prometheus 实例运行它,但
在 Prometheus 中,有标签柯里化(Currying)。一些示例方法类似于 CurryWith()。 这是什么意思?抱歉,我没有找到这方面的任何文档。 问题可能与英语不是我的母语有关,我从函数
如何编写一个查询来输出过去 24 小时内实例的平均内存使用情况? 以下查询显示当前内存使用情况 100 * (1 - ((node_memory_MemFree + node_memory_Cache
我正在向 prometheus 发送与两个磁盘相关的数据。我想提醒一个磁盘的指标是否停止发送指标。假设我有 diskA 和 diskB,我正在收集 disk_up 指标。现在diskB失败了。在普罗米
我正在考虑将一些指标导出到 Prometheus,但我对我计划做的事情感到紧张。 我的系统由一个工作流引擎组成,我想跟踪工作流中每个步骤的一些指标。这似乎是合理的,有一个名为 wfengine_ste
我想根据 prometheus 值文件中的环境 qa/prod 设置环境特定的值 ## Additional alertmanager container environment variable
我有一个包含路径和状态代码的请求直方图...如果过去一小时内的错误比前一小时增加了 20%,我如何发出警报? 一个指标示例: {instance="someIp",instance_hostname=
我有一个包含路径和状态代码的请求直方图...如果过去一小时内的错误比前一小时增加了 20%,我如何发出警报? 一个指标示例: {instance="someIp",instance_hostname=
像这样的 Prometheus 规则文件: groups: - name: ./example.rules rules: - alert: ExampleAlert expr: vec
我们有多个在数据中心运行的 Prometheus 实例(我将它们称为 DC Prometheus 实例),以及一个额外的 Prometheus 实例(在下面的文本中我们将其称为“主”),我们在其中从
最近 prometheus-operator图表已弃用,图表已重命名 kube-prometheus-stack更清楚地反射(reflect)它安装了 kube-prometheus 项目堆栈,其中
我在 Amazon linux 2 实例上安装了 prometheus,这是我在用户数据中使用的配置: cat /etc/systemd/system/prometheus.service [Uni
我们正在使用 prometheus 运算符,我们现在想将数据存储在磁盘上,有一个博客对此进行了解释,但不确定来自查询的数字/大小响应 https://www.robustperception.io/h
目标 通过 grafana 和 prometheus 跟踪 RPM 和正常运行时间 情况 我们正在使用 django-prometheus -> To emit metrics fluent-bit
我有 Prometheus 从几台机器上的节点导出器中抓取指标,配置如下: scrape_configs: - job_name: node_exporter static_configs
我的 Prometheus 设置中有一个警报,它会在 someMetric > 100 时发送警报已对 5m 有效然后每隔 24h 重新发送警报根据下面的配置: prometheus-alert.ym
我有两个计数器。一个是测量累加器,另一个是测量计数。如何生成范围向量平均值? 我尝试了以下但得到的结果为空。 rate(my_events{type="sum"}[60s]) / rate(my_ev
因为 Prometheus 仅支持文本指标和许多 json 中的工具返回指标(如 Finatra、Spring Boot),所以我创建了一个简单的代理,将 json 转换为文本。因为我想将它用于多个源
Prometheus 是否可以计算指标具有特定值的持续时间(例如以秒为单位)? 一个简单的例子是 up可以有两个值的度量:1或 0指示系统是否正在运行。想象一下,自上周以来,系统多次上下波动。 我希望
我是一名优秀的程序员,十分优秀!