Prometheus收集自定义时间格式的指标值,并在Grafana中展示

遇到的问题

需求场景如下:在Prometheus我想通过自己开发的metrics接口,收集达梦数据库最后一次备份成功备份的时间点,并在Grafana中展示。(基于prometheus2.46.0版本)其实需求很简单,但是在指标值传递和展示的过程中遇到了一些不可描述的困难:
1、在自定义metrics接口中,不支持yyyy/mm/dd HH24:MM:ss格式的指标值,会报错,因为自定义接口中只能传入float类型的值,所以我就改成UNIX时间戳,即1970-01-01 00:00:00到当前时间已经经过的描述(达梦数据库中用的是from_unixtime()函数)。
2、时间戳是传过来了,但是在PromQL中,2.26版本的Prometheus不知道怎么转为可读的时间,chatgpt和文心一言上至少问的有30多个问题,最后发现给的答案中的timestamp函数不好用,而且2.26版本中一些函数也没找到。

解决方法

既然指标值中没法传递,换个思路,那就使用指标的label进行传递,直接传递时间的字符串,而且在grafana中展示:
1、指标名后边加入label,对应的值为想要传递的yyyy/mm/dd HH24:MM:ss时间戳,例如last_succeed_database_backup_time{times=\"2024-01-05 01:00:00\"} 0(指标值直接传0就行,反正这个也用不到了)
2、在grafana的dashboard中,使用Stat面板,加入指标的query后,在右侧的Value Options中,选择对应的label即可直接使用label值,截图(公司纯内网没法用电脑截图):
在这里插入图片描述

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Prometheus配置报警,需要在配置文件添加报警规则,并将报警通过通知方式发送出去。 Prometheus的配置文件是一个YAML文件,通常名为prometheus.yml。要在该文件添加报警规则,可以在文件添加一个名为"rules"的数组,并在数组添加每个报警规则。每个报警规则由两部分组:触发条件和通知方式。 例如,以下是一个简单的报警规则,当CPU使用率超过80%时会发送报警: ``` rules: - alert: high_cpu_usage expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: "High CPU usage" description: "Instance {{ $labels.instance }} has high CPU usage (current value: {{ $value }})" ``` 上面的报警规则,"alert"字段指定了报警的名称,"expr"字段指定了触发报警的条件,"for"字段指定了报警持续的时间,"labels"字段指定了报警的标签,"annotations"字段指定了报警的注释。 报警规则配置完后,还需要在配置文件添加通知方式。通知方式可以是邮件、电话、微信等,具体的配置方式取决于所使用 ### 回答2: 要配置Prometheus报警并从Grafana展示,需要以下步骤: 1. 首先,确保PrometheusGrafana已经安装和启动。可以从官方网站下载并按照指南进行安装。 2. 配置Prometheus的报警规则。在Prometheus的配置文件`prometheus.yml`添加报警规则,可以使用PromQL语句定义规则,例如: ``` groups: - name: example rules: - alert: HighErrorRate expr: job:errors:rate5m > 0.5 for: 5m labels: severity: critical annotations: summary: "High error rate detected" description: "Error rate is currently {{ $value }} per second." ``` 3. 启动Prometheus并重新加载配置,使报警规则生效。可以使用以下命令重载配置: ``` $ killall -HUP prometheus ``` 4. 在Grafana创建一个新的数据源。登录到Grafana控制面板,导航到Configuration -> Data Sources,并添加一个Prometheus数据源,指定Prometheus的URL。 5. 创建报警面板。在Grafana控制面板上,创建一个新的Dashboard,并添加一个新的Panel。在Panel的配置,选择数据源为先前创建的Prometheus数据源,并选择相应的PromQL查询来检查报警规则。 6. 配置报警通知渠道。在Grafana的Alerting选项,添加通知渠道,如电子邮件、Slack、PagerDuty等。配置报警规则以及报警面板定义的报警通知方式,以便在报警触发时接收通知。 7. 保存并部署Dashboard。确保所有配置都已保存,并将Dashboard部署到Grafana。 现在,当Prometheus监测到报警规则定义的条件时,会触发报警,并通过配置的通知渠道发送通知。报警的数据也会显示Grafana的Dashboard上,以便更好地监控和可视化当前系统状态。 ### 回答3: 要配置Prometheus的报警并在Grafana展示,以下是大致的步骤: 1. 首先,确保PrometheusGrafana已经安装和运行。Prometheus是一个监控系统和时间序列数据库,而Grafana是一个数据可视化工具。 2. 在Prometheus的配置文件(prometheus.yml),定义报警规则。报警规则用于确定何时触发报警,并指定报警的接收者及其联系方式。例如: ``` groups: - name: example rules: - alert: HighCpuUsage expr: avg(cpu_usage) > 80 for: 5m labels: severity: warning annotations: summary: High CPU usage detected description: The average CPU usage is above 80% for the past 5 minutes. ``` 在上述示例,当cpu_usage的平均超过80%持续5分钟时,会触发名为HighCpuUsage的报警。 3. 配置Prometheus告警管理器(Alertmanager)来处理报警。Alertmanager负责整理和发送报警以及去重处理。在Alertmanager的配置文件(alertmanager.yml),指定报警的接收方式和目标。例如: ``` receivers: - name: email-notify email_configs: - to: 'your-email@example.com' ``` 上述示例,将报警发送到指定的电子邮件地址。 4. 在Grafana创建仪表板并添加Prometheus数据源。打开Grafana的界面,进入仪表板的编辑界面,在添加数据源选择Prometheus,并配置Prometheus服务器的地址。 5. 在Grafana仪表板添加报警面板。选择添加面板,然后选择报警面板。在报警面板,选择要展示的联合规则和报警规则,并为报警规则设置相应的阈。 ``` - expr: avg(cpu_usage) > 80 name: High CPU usage no_data_state: alerting for: 5m ``` 在上述示例,设置了一个当cpu_usage的平均超过80%持续5分钟时触发的报警规则。 6. 保存并更新仪表板,然后即可在Grafana看到报警的展示。 通过上述步骤,您可以在Prometheus配置报警规则,并通过Grafana展示和监控这些报警。这样,在有需要时,您将实时收到报警通知,并能够通过Grafana直观地查看报警相关的指标数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值