标签: prometheus

Prometheus(在 Docker 容器中)无法在主机上抓取目标

Prometheus 在docker容器(版本 18.09.2,构建 6247962docker-compose.xml如下)中运行,并且刮取目标是localhost:8000由 Python 3 脚本创建的。

为失败的抓取目标 ( localhost:9090/targets)获得的错误是

获取http://127.0.0.1:8000/metrics:拨号 tcp 127.0.0.1:8000:getsockopt:连接被拒绝

问题:为什么 docker 容器中的 Prometheus 无法抓取在主机(Mac OS X)上运行的目标?我们如何让在 docker 容器中运行的 Prometheus 能够抓取在主机上运行的目标?

失败的尝试:尝试替换docker-compose.yml

networks: 
  - back-tier
  - front-tier
Run Code Online (Sandbox Code Playgroud)

network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

但随后我们无法访问 Prometheus 管理页面localhost:9090

无法从类似问题中找到解决方案

docker-compose.yml

version: '3.3'

networks:
  front-tier:
  back-tier:

services:

  prometheus:
    image: prom/prometheus:v2.1.0
    volumes:
      - ./prometheus/prometheus:/etc/prometheus/
      - ./prometheus/prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose prometheus

13
推荐指数
3
解决办法
9435
查看次数

普罗米修斯的简单累积增加

我有一个应用程序,当它收到一个特定的 HTTP 请求时,它会增加一个 Prometheus 计数器。该应用程序在 Kubernetes 中运行,具有多个实例并且每天重新部署多次。使用查询http_requests_total{method="POST",path="/resource/aaa",statusClass="2XX"}生成一个图表,按预期显示每个实例的累积请求计数

我想创建一个 Grafana 图,显示过去 7 天内收到的请求的累积频率。

我的第一个想法是increase(...[7d])为了考虑 7 天窗口之外的任何指标(如图所示),然后sum是这些值。

我已经意识到sum(increase(http_requests_total{method="POST",path="/resource/aaa",statusClass="2XX"}[7d]))事实上确实给出了时间点的正确答案。然而,生成的图表并不完全符合要求,因为组件increase(...) 值会随着一周而增加/减少。

我将如何创建一个图表来显示过去 7 天内这些指标增加的累积总和?例如,给定以下简化数据

| Day | # Requests |
|-----|------------|
| 1   | 10         |
| 2   | 5          |
| 3   | 15         |
| 4   | 10         |
| 5   | 20         |
| 6   | 5          |
| 7   | 5          |
| …
Run Code Online (Sandbox Code Playgroud)

grafana prometheus promql

13
推荐指数
1
解决办法
1563
查看次数

使用 Prometheus 获取总磁盘空间和可用磁盘空间

我尝试在我的 Kubernetes VM 上获取 Total 和 Free 磁盘空间,以便我可以在其上显示占用空间的百分比。我尝试了名称中包含“文件系统”的各种指标,但没有一个显示正确的总磁盘大小。应该使用哪一个来做到这一点?

这是我尝试过的指标列表

node_filesystem_size_bytes
node_filesystem_avail_bytes
node:node_filesystem_usage:
node:node_filesystem_avail:
node_filesystem_files
node_filesystem_files_free
node_filesystem_free_bytes
node_filesystem_readonly
Run Code Online (Sandbox Code Playgroud)

grafana kubernetes prometheus

13
推荐指数
2
解决办法
3万
查看次数

格式化来自 Grafana 的 Slack 通知

从 Grafana 获取 Slack 警报。但它的格式不太好。有没有办法在 Grafana 的 slack 中自定义通知?我正在使用节点导出器导出指标。仪表板从https://grafana.com/grafana/dashboards/1860下载

如何自定义通知,例如:

标题:服务器上的 CPU 负载警报

实例 IP:192.xxxx 值:CPU 使用率 90% 优先级:高

随附了 slack 中的示例输出。

在此输入图像描述

grafana prometheus grafana-api grafana-alerts prometheus-node-exporter

13
推荐指数
1
解决办法
3438
查看次数

如何重新启动容器?

我喜欢使用Prometheus和cAdvisor监视容器,这样当容器重启时,我会收到警报.我想知道是否有人为此提供样本普罗米修斯警报.

prometheus cadvisor

12
推荐指数
4
解决办法
6916
查看次数

如何在查询中使用选定的时间段?

我正在使用Grafana和Prometheus,我想构建一个查询,该查询取决于在屏幕右上角选择的选定时间段.

在查询字段中是否有任何变量(或类似的东西)?

换句话说,如果我选择24小时,我想在查询中使用该数据.

grafana prometheus promql grafana-templating

12
推荐指数
2
解决办法
6628
查看次数

普罗米修斯的增加()有时会使价值增加一倍:如何避免?

我发现对于某些图表,我从普罗米修斯得到的双打值应该只是:

图表与上面的两个酒吧

查询我使用:

increase(signups_count[4m])
Run Code Online (Sandbox Code Playgroud)

刮擦间隔设置为建议的最大值 2分钟.

如果我查询存储的实际数据:

curl -gs 'localhost:9090/api/v1/query?query=(signups_count[1h])'

"values":[
     [1515721365.194, "579"],
     [1515721485.194, "579"],
     [1515721605.194, "580"],
     [1515721725.194, "580"],
     [1515721845.194, "580"],
     [1515721965.194, "580"],
     [1515722085.194, "580"],
     [1515722205.194, "581"],
     [1515722325.194, "581"],
     [1515722445.194, "581"],
     [1515722565.194, "581"]
],
Run Code Online (Sandbox Code Playgroud)

我看到只有两次增加.事实上,如果我查询这些时间,我会看到预期的结果:

curl -gs 'localhost:9090/api/v1/query_range?step=4m&query=increase(signups_count[4m])&start=1515721965.194&end=1515722565.194'

"values": [
     [1515721965.194, "0"],
     [1515722205.194, "1"],
     [1515722445.194, "0"]
],
Run Code Online (Sandbox Code Playgroud)

但是Grafana(以及GUI中的普罗米修斯)倾向于step在查询中设置不同,对于不熟悉普罗米修斯内部工作的人,我会得到一个非常意外的结果.

curl -gs 'localhost:9090/api/v1/query_range?step=15&query=increase(signups_count[4m])&start=1515721965.194&end=1515722565.194'

... skip ...
 [1515722190.194, "0"],
 [1515722205.194, "1"],
 [1515722220.194, "2"],
 [1515722235.194, "2"],
... skip ...
Run Code Online (Sandbox Code Playgroud)

知道这increase()只是函数的特定用例的语法糖rate(),我想这是应该如何工作的情况.

如何避免这种情况?我如何让Prometheus/Grafana给我看一些,两次两次,大部分时间?除了通过增加刮擦间隔(这将是我的最后手段).

我知道普罗米修斯不是一种精确的工具,所以如果我不是在任何时候都有一个好的数字,但大部分时间都可以. …

prometheus

12
推荐指数
2
解决办法
4544
查看次数

Prometheus 在计算两个指标的比率时不返回任何数据

我想计算两个指标的比率,但我没有得到任何数据...

我有一些指标,例如:

fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"}   50.0
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"}   100.0
Run Code Online (Sandbox Code Playgroud)

当我尝试执行任何操作(设备、乘法、加法、减法)时,例如:

fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}
Run Code Online (Sandbox Code Playgroud)

普罗米修斯返回:

no data
Run Code Online (Sandbox Code Playgroud)

当我在 Prometheus 表达式浏览器中单独查询每个指标时,我确实得到了指标值。

怎么了?

prometheus promql

12
推荐指数
1
解决办法
8557
查看次数

Prometheus 2.x 限制内存使用

基本上我正在寻找相当于 1.x storage.local.target-heap-size 的东西。

我有一个 prometheus 应用程序(在 6 核、32G 的盒子中运行),它从 2000 个虚拟机中提取主机指标。刮痧间隔5分钟。

在几分钟内,我的 RAM 使用量增加到 29-30GB,后来在 10-15 分钟内,它因 OOM 或服务器从 UI 不可用而死亡。

我们可以通过任何方式告诉普罗米修斯使用定义的最大 RAM 吗?

prometheus

12
推荐指数
0
解决办法
2014
查看次数

kubernetes 秘密中的 helm 值?

我正在使用这个图表:https ://github.com/helm/charts/tree/master/stable/prometheus-mongodb-exporter

该图表需要MONGODB_URI环境变量或mongodb.uri填充在values.yaml文件中,因为这是一个连接字符串,我不想将其签入 git。我正在考虑 kubernetes 秘密并提供来自 kubernetes 秘密的连接字符串。我一直未能成功找到此问题的解决方案。

我还尝试创建另一个舵图并将其用作该图表的依赖项并为MONGODB_URIfrom提供值secrets.yaml,但这也不起作用,因为在prometheus-mongodb-exporter图表中MONGODB_URI定义为所需值,然后将其传递到secrets.yaml该图表中的文件中,因此依赖项因此图表永远不会被安装。

实现这一目标的最佳方法是什么?

kubernetes prometheus kubernetes-helm prometheus-operator

12
推荐指数
1
解决办法
3万
查看次数