Prometheus学习系列(四)之FAQ

Johnny21
• 阅读 1850

一、一般问题

1. Prometheus是什么?

Prometheus是一款高活跃生态系统的开源系统监控和警告工具包。详见概览

2. Prometheus与其他的监控系统比较

详见比较

3. Prometheus有什么依赖?

Prometheus服务独立运行,没有其他依赖

4. Prometheus有高可用的保证吗?

是的,在多台服务器上运行相同的Prometheus服务,相同的报警会由警告管理器删除
警告管理器当前不能保证高可用,但高可用是目标

5. 我被告知Prometheus"不能水平扩展"

事实上,有许多方式可以扩展Prometheus。 阅读Robust Percetion的博客关于Prometheus的扩展

6. Prometheus是什么语言写的?

大多数Prometheus组件是由Go语言写的。还有一些是由Java,Python和Ruby写的

7. Prometheus的特性、存储格式和APIs有多稳定?

Prometheus从v1.0.0版本开始就非常稳定了,我们现在有一些版本功能规划,详见路线图

8. 为什么是使用的是pull而不是push?

基于Http方式的拉模型提供了一下优点:

  • 当开发变化时,你可以在笔记本上运行你的监控
  • 如果目标实例挂掉,你可以很容易地知道
  • 你可以手动指定一个目标,并通过浏览器检查该目标实例的监控状况

总体来说,我们相信pull模式比push模式要好一些,但是当考虑一个监控系统时,它不是主要的考虑点
Push vs. Pull监控在Brian Brazil的博客中被详细的描述

如果你必须要用Push模式,我们提供Pushgateway

9. 怎么样把日志推送到Prometheus系统中?

简单地回答:千万别这样做,你可以使用ELK栈去实现
比较详细的回答:Prometheus是一款收集和处理度量指标的系统,并非事件日志系统。Raintank的博客有关日志、度量指标和图表在日志和度量指>
标之间,进行了详尽地阐述。

如果你想要从应用日志中提取Prometheus度量指标中。 谷歌的mtail可能会更有帮助

10. 谁写的Prometheus?

Prometheus项目发起人是Matt T. Proud和Julius Volz。 一开始大部分的开发是由SoundCloud赞助的
现在它由许多公司和个人维护和扩展

11. 当前Prometheus的许可证是用的哪个?

Apache 2.0

12. Prometheus单词的复数是什么?

Prometheis

13. 我能够动态地加载Prometheus的配置吗?

是的,通过发送SIGHUP信号量给Prometheus进行,将会重载配置文件。不同的组件会优雅地处理失败的更改

14. 我能发送告警吗?

是的,通过警告管理器
当前,下面列表的外部系统都是被支持的

15. 我能创建Dashboard吗?

是的,但是在生产使用中,我们推荐用GrafanaPromDash和[Console templates](https://prom
etheus.io/docs/visualization/consoles/)也可以

16. 我能改变timezone和UTC吗?

不行。为了避免任何时区的困惑和混乱,我们用了UTC这个通用单位

二、仪表

1. 哪些语言有工具库?

这里有很多客户端库,用Prometheus的度量指标度量你的服务。详见client库
如果你对功能工具库非常感兴趣,详见exposition formats

2. 我能监控机器吗?

是的。Node Exporter暴露了很多机器度量指标,包括CPU使用率、内存使用率和磁盘利用率、文件系统的余量和网络带宽等数据。

3. 我能监控网络数据吗?

是的。SNMP Exporter允许监控网络设备。

4. 我能监控批量任务吗?

是的,通过Pushgateway. 详见最佳实践

5. Prometheus开箱即用的监控应用程序是什么?

详见the list of exporters and integrations.

6. 我能通过JMX监控JVM应用程序吗?

是的。不能直接使用Java客户端进行测试的应用程序,你可以将JMX Exporter单独使用或者Java代理使用

7. 工具对性能的影响是什么?

客户端和语言的性能可能不同。对于Java,基准表明使用Java客户端递增计数器需要12~17ns,具体依赖于竞争。最关键的延迟关键代码之外的所有代码都是可以忽略的。

三、故障排除

1. 我的Prometheus 1.x服务器需要很长时间才能启动并使用有关崩溃恢复的大量信息来保存日志。。

你的服务可能遭到了不干净的关闭。Prometheus必须在SIGTERM后彻底关闭,特别地对于一些重量级服务可能需要比较长的时间去。如果服务器崩溃或者强制杀死(如:在等待Prometheus关闭时,内核的OOM杀死你的Promethe
us服务),必须执行崩溃恢复,这在正常情况下需要不到一分钟。详见崩溃恢复

2. 我的Prometheus 1.x服务器内存不足。

请参阅有关内存使用情况的部分,以配置Prometheus可用的内存量。

3. 我的Prometheus 1.x服务器报告处于“匆忙模式”或“存储需要限制”。

您的存储空间很重。阅读有关配置本地存储的部分,了解如何调整设置以获得更好的性能。

四、实现

1. 为什么所有样品值都是float64数据类型?我想要integer数据类型。

我们限制了float64以简化设计,IEEE 754双精度二进制浮点格式支持高达253的值的整数精度。如果您需要高于253但低于263的整数精度,支持本地64位整数将有帮助。原则上,支持不同的样本值类型 (包括某种大整数
,支持甚至超过64位)可以实现,但它现在不是一个优先级。 注意,一个计数器,即使每秒增加100万次,只有在超过285年后才会出现精度问题。

2. 为什么Prometheus服务器组件不支持TLS或身份验证? 我可以添加这些吗?

注意:Prometheus团队在2018年8月11日的开发峰会期间已经改变了对此的立场,现在正在项目的路线图中支持TLS和服务端点的身份验证。 代码更改后,将更新此文档。

虽然TLS和身份验证是经常被请求的功能,但我们故意没有在Prometheus的任何服务器端组件中实现它们。 我们已经决定专注于构建最佳监控系统,而不是在每个服务器组件中支持完全通用的TLS和身份验证解决方案,因此有两个不同的选项和参数(仅TLS的10多个选项)。

如果您需要TLS或身份验证,我们建议将反向代理放在Prometheus前面。 参见例如使用Nginx添加对Prometheus的基本认证。

这仅适用于入站连接。 Prometheus确实支持删除TLS-和auth启用的目标,以及其他创建出站连接的Prometheus组件具有类似的支持。

本文转自 https://www.jianshu.com/p/2940e32adaf1,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
2个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Johnny21 Johnny21
3年前
Prometheus学习系列(一)之Prometheus简介
前言Prometheus官网的非官方中文手册,翻译截至Prometheuslatest(2.9)。什么是prometheus?是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
8个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这