标签: prometheus

如何拆分 Prometheus 配置文件?

现在我们使用Prometheus进行监控,我们有很多配置(我们的 prometheus.yml 主配置文件有 1400 多行)。

我想将其拆分为逻辑分组(可能是 DEV/TEST/PROD?),但我似乎找不到任何关于如何在 Prometheus 配置文件语法中使用“包含”(或类似)的文档。

有没有人用他们的 Prometheus 配置文件做过这个?如果是这样,你是怎么做到的?

configuration configuration-management prometheus

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

如何找出Prometheus LevelDB中存储的时间序列数量

我负责维护我们公司的 Prometheus 服务器。然而,这些指标是由团队提供的。

有没有办法找出存储在 Prometheus 数据库中的时间序列的数量?我们使用默认的 LevelDB 数据存储。我需要这些值来确定是否需要调整 Prometheus 实例的本地存储设置。

谢谢你的帮助。

monitoring system-monitoring prometheus

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

普罗米修斯:没有度量 node_cpu

我已经设置了 Prometheus 和 node_exporter。我发现的所有示例图都在使用,node_cpu但我没有这个指标。我最接近的是node_cpu_seconds_total。我是否遗漏了什么,或者我的 Prometheus 版本与这些图表不兼容?

prometheus

8
推荐指数
1
解决办法
4709
查看次数

未发现目标的 Prometheus 警报规则

我正在尝试编写一个通用规则来在发现的目标丢失时发出警报。特别是使用 kubernetes_sd_configs 为抓取和自动发现注释的 kubernetes pod。

形式的表达式:absent(up{job="kubernetes-pods"}==1)不返回作为正常运行时间序列的一部分可用的任何其他标签。如果一个 pod 被删除(比如错误),它就会作为目标从 prometheus 中消失。触发了基于缺席()的警报,但我没有关于丢失什么 pod 的信息。

我认为自动发现的 kubernetes 服务也会发生同样的情况。如果它被误删除了,它就会作为监视目标消失。我不确定具有 ip 范围的target_groups ( https://prometheus.io/blog/2015/06/01/advanced-service-discovery/ )的行为是否相同- 也就是说,如果物理节点已关闭指标只是停止和上升 == 0 不可用。

以一般方式检测自动发现的目标何时消失的正确方法是什么?或者我是否需要明确地为每个服务/节点/pod 硬编码规则,即使它是自动发现的?

prometheus

7
推荐指数
2
解决办法
5358
查看次数

平滑 Grafana 图

我正在对我的公司基础设施进行监控。我安装了 Grafana 和 Prometheus 数据源。我构建了仪表板并拥有相当“尖峰”的图表。我想知道是否有任何方法可以让它变得更平滑,以便它更具可读性。

谢谢 !

monitoring grafana prometheus

5
推荐指数
1
解决办法
9435
查看次数

Prometheus node_exporter 指标 - Grafana 中的巨大峰值

我们的设置包括:

  • 一些 Debian 9.12 节点,安装了 Prometheus node_exporter v. 0.18.1 作为服务
  • Prometheus 服务器 v.2.14.0(在 Windows Server 2016 上)从节点抓取指标
  • Grafana 可视化指标

基本上,我们的负载可能会不稳定,因此我们希望捕获详细信息,因此目前我们每 10 秒抓取一次指标,并在 Grafana 中显示 1 分钟的速率,查询如下:

rate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[1m])*8
Run Code Online (Sandbox Code Playgroud)

在 Grafana 中,我们看到巨大的峰值,对于平均吞吐量低于 100Mbit/s 的网络实例,峰值超过每秒数百吉比特,这显然在技术上是不可能的。CPU 负载、CPU 等待时间、磁盘 iops 和其他node_exporter指标也会发生同样的情况,通常看起来像这样,看看平均值和最大值之间的巨大差异:

网络接口尖峰

显然,发生这种情况是因为普罗米修斯似乎“错过”了单点数据,并且根据rate工作原理,它将“最后”点与node_network_receive_bytes_total自上次启动以来累积的零到当前值进行比较,并大幅提高了输出。如果我们尝试切换到irate尖峰,就会跳得更高,这似乎证明了我们的猜测。

查询我们的 Prometheus 收集服务器以获取出现峰值的特定时间范围内的数据点rate,我们没有看到任何归零点,“尖峰”时间范围内的数据看起来连续增加:

node_network_receive_bytes_total{device="ens8",instance="cassandra-xxxxxxxxx0:9100",job="cassandra-xxxxxxxxx"}
3173659836137 @1585311247.489
3173678570634 @1585311257.49
3173696782823 @1585311267.491
3173715943503 @1585311277.492
3173715937480 @1585311277.493
3173731328095 @1585311287.495
3173743034248 @1585311297.502
3173756482486 @1585311307.497
3173775999916 @1585311317.497
3173796096167 @1585311327.498
3173814354877 @1585311337.499
3173833456218 @1585311347.499
3173852345655 @1585311357.501
Run Code Online (Sandbox Code Playgroud)

同样在图上:

普罗米修斯图

rate查询 …

grafana prometheus

5
推荐指数
1
解决办法
1254
查看次数

Prometheus - Kubernetes 中角色端点和角色 pod 的服务发现用例

在阅读 Prometheus 配置文档和一些示例抓取配置时,我发现了一些带有 role service& role endpoints& role的 kubernetes_sd_configspod

- job_name: kube-state-metrics
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - action: keep
    regex: prometheus;kube-state-metrics
    source_labels:
    - __meta_kubernetes_namespace
    - __meta_kubernetes_pod_label_component
Run Code Online (Sandbox Code Playgroud)
- honor_labels: true
  job_name: prometheus-pushgateway
  kubernetes_sd_configs:
  - role: service
  relabel_configs:
  - action: keep
    regex: pushgateway
    source_labels:
    - __meta_kubernetes_service_annotation_prometheus_io_probe
Run Code Online (Sandbox Code Playgroud)
- job_name: node-exporter
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - action: labelmap
    regex: __meta_kubernetes_pod_label_(.+)
  - action: replace
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    source_labels:
    - __address__
    - __meta_kubernetes_pod_container_port_number …
Run Code Online (Sandbox Code Playgroud)

kubernetes prometheus

5
推荐指数
1
解决办法
5377
查看次数

Netdata、prometheus 和 grafana - 为什么在这个星座推荐?

目前我正在为我们的服务器设置监控服务。我找到了一些文章,推荐使用:Netdata, prometheus and grafana

所以我想知道使用这三种方法有什么好处。任何人都可以向我解释一下,为什么推荐 prometheus 和 grafana,如果 netdata 似乎与这两者做同样的事情?

即使在 netdata-documentations 中,也有一篇关于此设置的文章: https: //learn.netdata.cloud/docs/agent/backends/prometheus/#filtering-metrics-sent-to-prometheus

这个星座有什么好处呢?

monitoring grafana prometheus netdata

5
推荐指数
1
解决办法
5574
查看次数

如何配置Prometheus的Alertmanager的日志级别?

我已经设置了 Prometheus 的 Alertmanager 来管理来自 Prometheus 的警报。我收到了从 Prometheus 发送到 Alertmanager 的警报,但故事到此结束。Alertmanager 永远不会将警报发送到我的电子邮件端点。

为了弄清楚警报在 Alertmanager 内部的具体位置结束其旅程,我想将日志级别从信息级别更改为调试级别,但无法弄清楚如何操作。即使现在找到日志似乎也是一个艰巨的任务,它不存在/var/log并且journalctl -u alertmanager包含的​​内容太少,以至于可能在某个地方还有另一条日志。

配置Alertmanager的手册页没有提到调试级别。我查看了源代码中提到的 log 并发现该设置应该命名为log.level. 将以下代码片段添加到配置 YAML 也没有帮助:

log:
  level: debug
Run Code Online (Sandbox Code Playgroud)

因为 Alertmanager 无法启动,无法解析其配置文件。

prometheus

4
推荐指数
1
解决办法
2万
查看次数

我可以跟踪 docker-compose 组中一个容器的日志吗?

我仍然在努力理解为什么我的 ipmi_exporter 容器不会与我的 Prometheus、Grafana、snmp_exporter 和 Alertmanager 在同一个“pod”中运行。当我调出“pod”时,docker-compose ipmi_exporter 已启动,但docker-compose ps找不到容器。我希望能够看到包含 ipmi_exporter 启动的日志,如果我的帖子标题中没有明确说明的话。

另外,docker-compose 容器组叫什么?Pod 是 K8 的东西。

docker-compose prometheus

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