90个版本
0.13.13 | 2021年3月29日 |
---|---|
0.13.12 | 2020年9月30日 |
0.13.8 | 2020年5月22日 |
0.13.4 | 2020年2月18日 |
0.6.5 | 2018年3月11日 |
#493 在 数据结构
被 4 crates 使用
310KB
7.5K SLoC
metrix
用于监控应用和警报的指标。
目标
应用程序/服务可能有大量指标,其中一个最大的挑战是组织它们。这正是 metrix
试图帮助的地方。
Metrix 并不旨在提供精确的数字,而是旨在进行应用监控。
此crate处于非常 早期 阶段,API 可能仍然会更改。未来可能会提供用于监控解决方案的后端,但目前仅提供可以序列化为JSON的快照。
它是如何工作的
Metrix 基于在运行应用程序时收集的观察结果。然后,这些观察结果将被发送到后端,其中实际的指标(计数器等)将被更新。可以查询配置的指标的快照。
metrix 的主要重点是组织这些指标。有几种构建块可用。大多数都可以有一个名称,然后将成为快照中路径的一部分。
标签
标签将观察结果链接到面板。标签可以是实现 Clone + Eq + Send + 'static
的任何类型的类型。一个 enum
是一个很好的标签选择。
观察结果
在您的应用程序内部进行观察。当观察结果发送到后端时,它必须附加一个标签。然后,将此标签与面板的标签进行匹配,以确定是否处理观察结果以进行更新。
仪器
仪器是仪表、计等。当观察结果中更新有意义时,仪器会更新。仪器按 Panel
进行分组。
您可以在 instruments
模块中找到仪器。
面板
一个 Panel
将同一标签下的仪器分组。因此,面板内的每个仪器都将由具有与面板相同标签的观察结果更新。
比如说,您定义了一个标签 OutgoingRequests
。如果您对请求速率和延迟感兴趣,那么您将创建一个具有标签 OutgoingRequests
的面板,并添加一个直方图和一个计。
驾驶舱
驾驶舱聚合多个 Panel
。驾驶舱可以用来监控组件的不同任务/部分或工作流程。驾驶舱与标签类型相关联。
例如,你有一个服务组件调用外部HTTP客户端。你可能对成功的调用和失败的调用分别感兴趣。所以在这两种情况下,你都会为你的标签创建一个值,然后在驾驶舱中添加两个面板。
驾驶舱位于模块 cockpit
中。
处理器
最重要的处理器是 TelemetryProcessor
。它有一个标签类型作为类型参数,包括一个 TelemetryTransmitter
,该发送观察结果到后端(用于你的应用程序),以及实际的 TelemetryProcessor
,该处理器形成后端并处理观察结果。《TelemetryProcessor》可以为标签类型拥有多个驾驶舱。
还有一个 ProcessorMount
,它不关注标签,可以组合多个处理器。它还可以有一个名称,该名称将包含在快照中。
处理器可以在模块 processor
中找到。
驱动程序
驱动程序 拥有 处理器,并请求 拥有的 处理器处理其消息。您需要将处理器添加到驱动程序中,以启动机器。驱动程序也是一个处理器,这意味着它可以有名称,它也可以是另一个层次结构的一部分。
每个驱动程序都有一个自己的线程来轮询其处理器,因此即使附加到另一个层次结构,所有注册到驱动程序的处理器也只会由该驱动程序驱动。
贡献
欢迎贡献。也欢迎批评!
许可证
Metrix主要在MIT许可证和Apache许可证(版本2.0)的条款下分发。
版权(c)2018 Christian Douven
许可证:Apache-2.0/MIT
依赖项
~1.5–2.2MB
~43K SLoC