草庐IT

Kube-Prometheus

全部标签

大厂经典运维监控(Zabbix+Prometheus)面试题整理汇总

1、监控原则监控是基础设施,目的是为了解决问题,不要只朝着大而全去做,尤其是不必要的指标采集,浪费人力和存储资源(ToB商业产品例外)。需要处理的告警才发出来,发出来的告警必须得到处理。简单的架构就是最好的架构,业务系统都挂了,监控也不能挂。GoogleSre里面也说避免使用Magic系统,例如机器学习报警阈值、自动修复之类。这一点见仁见智吧,感觉很多公司都在搞智能AI运维。2、Zabbix有哪些组件ZabbixServer:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行DatabaseStorage:专用于存储所有配置信息,以及有zabbix收集的数据

docker - 如何在 Docker 容器中运行的 Prometheus 中持久化数据?

我正在开发一些需要Prometheus在重启之间保留其数据的东西。按照说明操作$dockervolumecreatea-new-volume$dockerrun\--publish9090:9090\--volumea-new-volume:/prometheus-data\--volume"$(pwd)"/prometheus.yml:/etc/prometheus/prometheus.yml\prom/prometheus我在主机的正确目录中有一个有效的prometheus.yml,Prometheus正在从容器中读取它。目前我只是为了测试目的而抓取了几个HTTP端点。但是当我重

docker - 如何在 Docker 容器中运行的 Prometheus 中持久化数据?

我正在开发一些需要Prometheus在重启之间保留其数据的东西。按照说明操作$dockervolumecreatea-new-volume$dockerrun\--publish9090:9090\--volumea-new-volume:/prometheus-data\--volume"$(pwd)"/prometheus.yml:/etc/prometheus/prometheus.yml\prom/prometheus我在主机的正确目录中有一个有效的prometheus.yml,Prometheus正在从容器中读取它。目前我只是为了测试目的而抓取了几个HTTP端点。但是当我重

go - Prometheus Exporter - 直接检测与自定义收集器

我目前正在为遥测网络应用程序编写Prometheus导出器。我在这里阅读了文档WritingExporters虽然我了解实现自定义收集器以避免竞争条件的用例,但我不确定我的用例是否适合直接检测。基本上,网络指标由网络设备通过gRPC流式传输,因此我的导出器只接收它们,而不必有效地抓取它们。我使用了以下代码的直接检测:我使用promauto包声明我的指标以保持代码紧凑:packagemetricsimport("github.com/lucabrasi83/prom-high-obs/proto/telemetry""github.com/prometheus/client_golang

email - Prometheus 电子邮件警报以显示指标值

我在Prometheus/AlertManager中有一个标签cs_job_time,我想在满足另一项工作的条件时发送电子邮件提醒。电子邮件发送正常,但是否可以在电子邮件中包含cs_job_time的值?我可以使用{{$value}}作为相关指标,但我还想打印cs_job_time的值。我遇到了this但是当我尝试time="{{`cs_job_time{instance='%s',job='/'}`$labels.instance|query|first}}或类似变体,我收到错误消息“使用数据'{map[]2123}'扩展警报模板CSJobAlert时出错:运行时错误:无效内存地址或

go - 在 golang 的单独端口中公开 Prometheus 指标

在运行gin-gonic的微服务中,我试图在路由器中收集指标并将它们暴露在第二个路由器上,但​​似乎这是不可能的。有没有人有这方面的经验?我找到的所有文档都将prometheus处理程序设置到同一个应用程序路由器中。预期结果请参阅promhttp_metric_handler_requests_total{code="200"}每次访问:8000/test路由都会增加实际结果promhttp_metric_handler_requests_total{code="200"}每次访问:7100/metrics路由增加示例代码(以下是可以解释问题的完整应用程序)packagemainimp

go - 为 golang prometheus 收集器添加标签

我正在尝试弄清楚如何向普罗米修斯收集器添加标签。任何想法我在这里缺少什么?我有两个文件:main.go和collector.go我使用以下链接作为指南。https://rsmitty.github.io/Prometheus-Exporters/我模拟了这个例子,所以我可以把它贴在这里。我最终不会为命令提取“date+%s”。只是不知道在哪里添加标签。我正在尝试为标签添加主机名,所以我得到的结果如下:#HELPcmd_resultShowsthecmdresult#TYPEcmd_resultgaugecmd_result{host="my_device_hostname"}1.919

java - 使用 Marathon/Mesos 的 Prometheus 动态端口服务发现

经过几天的谷歌搜索,我一直无法找到这个问题的答案。我有一个在Marathon/Mesos中运行的服务。我有一个Prometheus集群抓取指标。我的Marathon指标端口配置如下所示:{"containerPort":8081,"hostPort":0,"servicePort":31301,"protocol":"tcp","labels":{"metrics":"/metrics"}}Prometheus,仅配置了样板marathon-sd配置,成功找到了这个目标,但它随后会监听以下指标:__address__=[NodeIP]:31301;因此它使用服务端口而不是动态分配的主机

go - 如何在 prometheus/client_golang 中禁用 go_collector 指标

我正在使用NewGaugeVec来报告我的指标:elapsed:=prometheus.NewGaugeVec(prometheus.GaugeOpts{Name:"gogrinder_elapsed_ms",Help:"Currenttimeelapsedofgogrinderteststep",},[]string{"teststep","user","iteration","timestamp"})prometheus.MustRegister(elapsed)一切正常,但我注意到我的自定义导出器包含来自prometheus/go_collector.go的所有指标:#HELPg

go - 如何从 .kube/config 中设置的当前上下文获取命名空间

我正在尝试在Go中以编程方式获取~/.kube/config中当前上下文的命名空间。到目前为止,我尝试的是这些模块:"k8s.io/client-go/tools/clientcmd""k8s.io/client-go/kubernetes"kubeconfig:=filepath.Join(os.Getenv("HOME"),".kube","config",)config,err:=clientcmd.BuildConfigFromFlags("",kubeconfig)iferr!=nil{log.Fatal(err)}fmt.Printf("Namespace:%s\n",co