栏目分类
热点资讯
91porn vip Prometheus 教程
发布日期:2024-10-25 04:12 点击次数:129
若是要对我方的代码进行状貌化91porn vip,则应遵命何如使用 Prometheus 客户端库对代码进行状貌化的一般递次。从其他监控或状貌系统获取筹画时,事情时时不是那么瑕瑜分明。
本文档包含在编写导出器或自界说采集器时应试虑的事项。所触及的表面也会引起告成使用仪器的用户的酷爱。
可戒备性和刚直度在编写导出才调(Exporter)时,您需要作念出的主要决定是,为了得到竣工的筹画,您情愿付出若干致力于。
若是关商量统只须少许数很少变化的筹画,那么让所贪图齐尽善尽好意思是一个精真金不怕火的遴选,HAProxy 输出才调便是一个很好的例子。
另一方面,若是系统有数百个筹画,况且这些筹画会跟着新版块的推出而时常变化,而你却试图将一切齐作念到竣工,那么你就会面对多数的赓续性使命。MySQL 输出才调就属于这种情况。
节点导出才调(node exporter)是上述几种才调的搀和体,复杂程度因模块而异。例如,mdadm 采集器会手动明白文献,并公开专为该采集器创建的度量筹画,因此咱们最好能正确处理度量筹画。关于 meminfo 采集器,不同内核版块的后果各不疏通,因此咱们最终只需进行裕如的转机即可创建有用的筹画。
配置在处理愚弄才调时,除了告诉它愚弄才调的位置外,用户不需要对导出器进行任何自界说配置。若是某些筹画在大型建树中过于细巧和欢乐,您可能还需要提供过滤掉这些筹画的功能,例如HAProxy 输出才调允许过滤每个就业器的统计数据。雷同,有些欢乐的筹画可能会被默许禁用。
在使用其他监控系统、框架和契约时,您无为需要提供非常的配置或定制,以生成稳健 Prometheus 的筹画。在最好情况下,监控系统的数据模子与 Prometheus 裕如相似,您不错自动笃定何如转机筹画。Cloudwatch、SNMP 和 collectd 便是这种情况。在大多数情况下,咱们需要让用户遴选他们思要索要的筹画。
在其他情况下,笔据系统和底层愚弄才调的使用情况,来自系统的筹画是实足非程序的。在这种情况下,用户必须告诉咱们何如转机筹画。在这种情况下,JMX 输出才调是最恶运的,Graphite 和 StatsD输出才调也需要配置才能索要标签。
冷漠确保导出器开箱即用,无需配置,并在需要时提供用于转机的配置示例。
YAML 是程序的 Prometheus 配置形状,所有配置默许齐应使用 YAML。
prometheus 告白位
筹画定名一般来说,筹画称呼应能让练习 Prometheus 但不练习特定系统的东说念主猜出筹画的含义。名为 http_requests_total 的筹画并不口角常有用 —— 这筹画是在它们参预时、在某个过滤器中如故在它们到达用户代码时进行测量的?requests_total 筹画称呼就更恶运了,到底是什么类型的央求?
在告成仪器中,一个给定的度量筹画应正巧存在于一个文献中。相应地,在导出器和采集器中,一个筹画应适用于一个子系统,并相应定名。
除非是在编写自界说采集器或导出器时,不然绝弗成按才调生成筹画称呼。
愚弄才调的筹画称呼一般应以出口才调称呼为前缀,如 haproxy_up。
筹画单元必须使用基本单元(如秒、字节),并将其转机为图形器用更易读取的单元。不管最终使用什么单元,筹画称呼中的单元必须与使用的单元一致。雷同,要使用比率,而不是百分比。更好的作念法是,为比率的两个构成部分分别指定一个计数器。
筹画称呼不应包括导出时使用的标签,如 by_type,因为若是标签被团员,就没挑升旨了。
一个例外情况是,当你通过多个筹画导出带有不同标签的疏通数据时,在这种情况下,这无为是分歧它们的最合理方式。关于告成仪器,只须在导出包含所有标签的单一筹画值会导致卡入渡过高时才会出现这种情况。
Prometheus 的筹画和标签称呼以蛇形大小写书写。将 camelCase 转机为 snake_case 是可取的,不外自动转机并不总能为 myTCPExample 或 isNaN 等产生好的后果,因此无意最好保持原样。
公开的筹画不应包含冒号,这些冒号是为用户界说的记载递次保留的,以便在汇总时使用。
筹画称呼中只须 [a-zA-Z0-9:_] 有用。
_sum、_count、_bucket 和 _total 后缀用于汇总、直方图和计数器。除非您要制作这些图表,不然应幸免使用这些后缀。
_total 是计数器的惯例,若是使用 COUNTER 类型,则应使用它。
process_ 和 scrape_ 前缀是保留的。若是它们的语义相匹配,也不错添加我方的前缀。例如,Prometheus 使用 scrape_duration_seconds 来暗意一次捏取破耗了多长本领,那么好的作念法是也使用一个以导出器为中心的筹画,例如 jmx_scrape_duration_seconds,来暗意特定导出器完成任务破耗了多长本领。关于不错造访 PID 的进度统计,Go 和 Python 齐提供了采集器来帮你处理。HAProxy 输出才调便是一个很好的例子。
若是有得手央求计数和失败央求计数,最好的方法是将其当作一个总央求筹画和另一个失败央求筹画。这么不错简短狡计失败率。不要使用带有失败或得手标签的筹画。雷同,关于缓存的射中或未射中,最好使用一个筹画来暗意总射中率,另一个筹画暗意射中率。
筹商使用监控的东说念主对筹画称呼进行代码或鸠集搜索的可能性。若是这些称呼还是相称锻练,况且不太可能在练习这些称呼的东说念主员(例如 SNMP 和鸠集工程师)以外使用,那么保留这些称呼可能是个好主意。这种逻辑并不适用于所有导出器,例如,MySQL 导出器筹画可能会被不同的东说念主使用,而不单是是 DBA。带有原始称呼的 HELP 字符串不错提供与使用原始称呼疏通的大多数公正。
标签幸免使用类型当作标签称呼,因为它过于通用,无为毫意外旨。还应尽可能幸免使用可能与场合标签破裂的称呼,如 region、zone、cluster、availability_zone、az、datacenter、dc、owner、customer、stage、service、environment 和 env。不外,若是愚弄才调便是这么称呼某些资源的,最好不要从头定名,以免形成羞耻。
幸免因为共用一个前缀就将其归入一个筹画。除非你笃定某样东西当作一个度量程序是合理的,不然使用多个度量程序更为安全。
标签 le 关于直方图有额外意旨,而关于汇总表则有量化意旨。一般应幸免使用这些标签。
读/写和发送/招揽最好当作单独的度量筹画91porn vip,而不是当作一个标签。这无为是因为您每次只原宥其中一个筹画,这么使用起来更简短。
教养法例,一个筹画在乞降或求平均值时应该是合理的。在使用导出器时还有一种情况,那便是数据基本上是表格表情的,若是不这么作念,用户就必须对度量称呼进行重界说才能使用。筹商到主板上的电压传感器,天然在它们之间进行数学运算毫意外旨,但将它们放在一个度量单元中,而不是每个传感器一个度量单元,如故很挑升旨的。一个筹画中的所有值(果真)齐应使用疏通的单元,例如,若是电扇速率与电压混在一说念,而你又莫得想法自动将它们分开,那么就不错筹商使用疏通的单元。
不要这么作念:
my_metric{label="a"} 1 my_metric{label="b"} 6 my_metric{label="total"} 7
大略这么
my_metric{label="a"} 1 my_metric{label="b"} 6 my_metric{} 7
前者会让对你的度量值进行 sum() 的东说念主崩溃,后者会让乞降崩溃,况且相称难以使用。一些客户端库(例如 Go)会主动不毛你在自界说采集器中使用后者,而所有客户端库齐应不毛你使用告成仪器使用后者。千万不要使用这两种方法,而应使用 Prometheus 团员。
若是你的监控披露了这么一个总额,那就销毁这个总额。若是出于某种原因必须保留测度,例如测度包含了未单独狡计的内容,则应使用不同的筹画称呼。
仪器标签应尽量减少,每多一个标签,用户在编写 PromQL 时就需要多筹商一个标签。因此,应幸免使用可删除而不影响本领序列唯独性的状貌标签。不错通过信息度量添加商量度量的附加信息,商量示例,请参阅下文何如处理版块号。
不外,在某些情况下,果真所有度量筹画的用户齐但愿得到附加信息。在这种情况下,添加一个非唯独标签,而不是信息筹画,便是正确的惩处决策。例如,mysqld_exporter 的 mysqld_perf_schema_events_statements_total 的摘要标签是完整查询模式的哈希值,足以保证唯独性。关联词,若是莫得东说念主类可读的 digest_text 标签,它就莫得什么用处了,因为关于长查询来说,它只包含查询模式的肇始部分,因此不是唯独的。因此,咱们最终会同期使用摘要文本标签和摘要标签来保证唯独性。
prometheus 告白位
场合标签,而不是静态捏取标签若是你发现我方思给所贪图贴上并吞个标签,请停驻来。
无为有两种情况会出现这种情况。
第一种情况是在度量筹画上使用某些有用的标签,如软件的版块号。请使用https://www.robustperception.io/how-to-have-labels-for-machine-roles/ 上描摹的方法。
第二种情况是标签实质上是场合标签。这些标签包括区域、群集称呼等,它们来自基础架构建树而非愚弄才调本人。愚弄才调在标签分类中的位置不是由愚弄才调决定的,而是由初始 Prometheus 就业器的东说念主员配置的,况且监控并吞愚弄才调的不同东说念主员可能会给它起不同的名字。
因此,这些标签属于 Prometheus 通过您使用的任何就业发现进行的捏取配置。在这里愚弄机器脚色的想法亦然不错的,因为这很可能是至少对某些捏取东说念主员有用的信息。
类型您应尽量将筹画类型与 Prometheus 类型相匹配。这无为是指计数器和状貌。汇总的 _count 和 _sum 也相比常见,无意您还会看到量化值。直方图相比罕有,若是您碰到直方图,请记取发挥形状自大的是积累值。
筹画类型无为并不彰着,尤其是在自动处理一组度量时。一般来说,UNTYPED 是一个安全的默许值。
计数器弗成递减,是以若是你的计数器类型来自其他可递减的状貌系统,例如 Dropwizard 筹画,那么它就不是计数器,而是状貌。UNTYPED 可能是最稳健的类型,因为若是将状貌用作计数器,会产生误导。
匡助字符串在转机度量筹画时,用户不错追猜度原始筹画是什么,以及导致转机的递次是什么。在匡助字符串中输入采集器或导出器的称呼、愚弄的任何递次的 ID 以及原始度量的称呼和翔实信息,将对用户大有匡助。
Prometheus 不可爱一个度量值有不同的匡助字符串。若是要从好多其他度量程序中创建一个度量程序,请遴选其中一个放入匡助字符串。
例如来说,SNMP 输出才调使用 OID,而 JMX 输出才调则使用 mBean 称呼示例。HAProxy输出才调使用手写字符串。节点输出器也有多样种种的示例。
销毁不那么有用的统计数据除了最小值、最大值和程序偏差外,一些状貌系统还会自大 1m、5m、15m 速率,以及自愚弄才调启动以来的平均速率(例如,在 Dropwizard 筹画中称为平均值)。
这些筹画齐应活该心,因为它们用处不大,还会增多杂沓。Prometheus 不错自行狡计速率,况且无为更准确,因为披露的平均值无为是指数衰减的。你不知说念最小值或最大值是在什么本领狡计出来的,程序偏差在统计上也莫得用,若是需要狡计,你不错随时公开平日和、_sum 和 _count。
量值也有关联问题,您不错遴选销毁它们或将它们放在摘要中。
好多监控系统莫得标签,而是使用 my.class.path.mymetric.labelvalue1.labelvalue2.labelvalue3 这么的标签。
Graphite 和 StatsD 输出才调分享了一种用袖珍配置谈话转机标签的方法。其他输出才调也应经受雷同的方法。这种转机当今仅在 Go 谈话中达成,若是能将其分解为一个单独的库,将大有裨益。
采集在为 Exporter 才调实施采集器时,千万不要使用无为的告成仪器方法,然后在每次捏取时更新度量筹画。
而是每次齐创建新的度量筹画。在 Go 中,这不错通过 Collect() 方法中的 MustNewConstMetric 来达成。Python 请参见 https://github.com/prometheus/client_python#custom-collectors,Java 请在您的 collect 方法中生成 List<MetricFamilySamples>,请参见 StandardExports.java 以了解示例。
徐可欣 拳交这么作念有两个原因。最初,两次捏取可能同期发生,而告成检测使用的实质上是文献级全局变量,因此会出现竞争条目。其次,若是标签值消除了,它仍然会被导出。
通过告成状貌对导出器本人进行状貌化是没问题的,例如导出器在所有捏取中传输的总字节数或履行的调用。关于黑盒导出器和 SNMP 导出器等不与单个场合绑定的导出器,这些信息只应在普通 /metrics 调用中公开,而不是在对特定场合的捏取中公开。
商量捏取本人的筹画无意,您但愿导出商量捏取的筹画,例如捏取用了多长本领或处理了若干札记载。
这些筹画应当作计量器导出,因为它们与事件、捏取和以导出器称呼为前缀的筹画称呼商量,例如 jmx_scrape_duration_seconds。无为情况下,_exporter 是不包括在内的,若是 Exporter 也不错只当作采集器使用,那么一定要将其排斥在外。
机器和进度筹画任何系统(例如 Elasticsearch)齐会披露 CPU、内存和文献系统信息等机器筹画。由于 Prometheus 生态系统中的 node exporter 才调提供了这些信息,因此应销毁此类筹画。
在 Java 寰球中,好多状貌框架齐会披露 CPU 和 GC 等进度级和 JVM 级统计数据。Java 客户端和 JMX 输出才调已通过 DefaultExports.java 以首选表情包含了这些数据,因此也应销毁这些数据。
其他谈话和框架亦然如斯。
prometheus 告白位
开辟每个 Exporter 齐应监控一个实例愚弄才调,最好就在并吞台机器上的支配。也便是说,每初始一个 HAProxy,就初始一个 haproxy_exporter 进度。关于每台有 Mesos Worker 的机器,你齐要在上头初始Mesos Exporter 才调,若是一台机器同期有两个 Mesos Worker,还要为主愚弄才调初始另一个。
这么作念的表面依据是,若是要告成使用仪器,就必须这么作念,而咱们正试图在其他布局中尽可能接近这一丝。这意味着所有就业发现齐在 Prometheus 中完成,而不是在 Exporter 中。这么作念的另一个公正是,Prometheus 不错得到所需的场合信息,从而允许用户使用黑盒 Exporter 探查您的就业。
有两种例外情况:
第一种情况是,在监控愚弄才调支配初始实足没挑升旨。SNMP、黑盒和 IPMI Exporter 便是这方面的主要例子。IPMI 和 SNMP Exporter 着实立无为齐是黑盒子,不可能在上头初始代码(不外若是能在上头初始节点输出才调就更好了),而黑盒子 Exporter 要监控的是 DNS 称呼之类的东西,也莫得什么可初始的。在这种情况下,Prometheus 仍应进行就业发现,并传递要捏取的场合。商量示例,请参阅黑盒和 SNMP 输出才调。
请矜重,当今只须 Go、Python 和 Java 客户端库不错编写这种类型的导出器。
第二种例外情况是,您要从一个系统的随即实例中索要一些统计数据,但并不原宥与哪个实例对话。筹商到您思针对数据初始一些业务查询,然后导出一组 MySQL 复制。使用无为的负载平衡方法与一个副本对话的输出才调是最理智的方法。
这不适用于监控有主遴选的系统,在这种情况下,应单独监控每个实例,并在 Prometheus 中处理 "主属性" 问题。这是因为并不老是只须一个主控,调动 Prometheus 眼下的场合会导致奇怪的情愿。
转换只须在 Prometheus 捏取时,才应从愚弄才调中索要筹画,Exporter 不应笔据我方的计时器履行捏取。也便是说,所有捏取齐应该是同步的。
因此,不应在披露的筹画上建树本领戳,而应让 Prometheus 来处理。若是您以为需要本领戳,那么您可能需要使用 Pushgateway。
若是一个筹画的检索本钱终点高,即需要一分钟以上,那么缓存它是不错接受的。这一丝应在 HELP 字符串中注明。
Prometheus 的默许 scrape 超时常间为 10 秒。若是您的导出器可能会跨越这一超时常间,则应在用户文档中明确发挥。
推送有些愚弄才调和监控系统只推送筹画,例如 StatsD、Graphite 和 collectd。
这里有两个矜重事项。
最初,筹画何时逾期?Collectd 和与 Graphite 通讯着实立齐会如期导出筹画,当它们住手导出时,咱们但愿住手公开筹画。Collectd 包含逾期本领,是以咱们使用它,而 Graphite 莫得,是以它是导出器上的一个符号。
StatsD 有点不同,因为它处理的是事件而不是筹画。最好的模式是在每个愚弄旁初始一个输出器,并在愚弄重启时从头启动它们,以便清除气象。
其次,这类系统时时允许用户发送增量或原始计数器。您应尽可能依赖原始计数器,因为这是 Prometheus 的一般模式。
关于就业级筹画,例如就业级批处理功课,您应该让您的导出器推送到 Pushgateway 并在事件发生后退出,而不是我方处理气象。关于实例级批处理筹画,当今还莫得明确的模式。可供遴选的决策有:浪掷节点出口才调的文本文献采集器、依赖内存气象(若是不需要在重启后耐久化,可能是最好的遴选)或达成与文本文献采集器访佛的功能。
失败的捏取在与您对话的愚弄才调莫得反应或有其他问题的情况下,当今有两种模式可处理捏取失败。
第一种是复返 5xx 无理。
第二种是建树一个 myexporter_up(例如 haproxy_up)变量,其值为 0 或 1,取决于捏取是否得手。
后者的公正是,即使捏取失败,仍能得到一些有用的筹画,例如 HAProxy 输出才调提供的进度统计信息。关于用户来说,前者更容易处理,因为不错按老例方式初始,但无法分歧 Exporter 宕机和愚弄才调宕机。
着陆页面若是造访 的用户看到的是一个精真金不怕火的 HTML 页面,上头有输出才调的称呼,以及指向 /metrics 页面的相连,那就更好了。
端标语用户可能会在并吞台机器上安设多个 Exporter 和 Prometheus 组件,因此为了简短起见,每个输出才调和组件齐有一个唯独的端标语。
https://github.com/prometheus/prometheus/wiki/Default-port-allocations 是咱们追踪它们的地方,不错公开剪辑。
在开辟你的 Exporter 时,最好在公开辟布之前,平定获取下一个免费端标语。若是您还没准备好发布,写上您的用户名和 WIP 也不错。
这是一个让用户生计更削弱的注册表,而不是开辟特定导出才调的承诺。关于里面愚弄才调的导出才调,咱们冷漠使用默许端口分派界限以外的端口。
发布一朝您准备好向全寰球晓示您的 Exporter 91porn vip,请向邮件列表发送电子邮件并发送 PR,将其添加到可用Exporter 列表中。