采样器转发 Inspect 将诊断数据传输到 Cobalt 遥测系统。
如果您的组件使用 Inspect 进行了插桩测试,您可以使用 Cobalt 遥测 (舰队监控),只需更改配置文件即可!如果您想 设备群监控的低门槛(无需新的 FIDL 集成,无新数据) 因此采样器非常适合您!
我能获得什么?
采样器以降低复杂性的方法获取舰队范围的监控 集成到每个组件的调试工具包中。
集中式数据模型
许多开发者发现,同时维护两个独立的数据模型很费力, 一项针对设备端或崩溃报告调试等任务,另一项针对 例如舰队监控
使用采样器时,可以将单个诊断数据模型 (Inspect) 作为数据源 。
避免直接集成的复杂性
对于某些组件(如驱动程序),它们的工作负载对系统至关重要,以至于 找到“正确的时间”执行诊断等非必要的工作 报告是一项复杂的工作。通过将采样集中到采样器, 能够将工作分流到一个可在运行期间 非峰值用户负载即使组件不提供 与 Sampler 集成后,Fucsia 更加健康, 从而实现更明智的抽样时间安排。
与 Cobalt 直接集成需要组件作者考虑其流程 作为客户端向 Cobalt 设备端转发器发送请求。流量 控件隐含在采样器中,因此您可以更侧重于上传常用 而无需添加新的服务依赖项。
使用入门
- 如果您使用的是 V2 组件,请务必公开
diagnostics
目录转到诊断平台。 - 注册 Cobalt 指标 要将“检查”指标转换为何种格式
- 创建采样器配置,定义从 Inspect 到 钴。查看现有配置文件。
采样器配置
我们将使用 FVM 集成作为示例配置。
{
"project_id": 3676913920,
"poll_rate_sec": 3600,
"metrics": [
{
"selector": "bootstrap/driver_manager:root/fvm/partitions/blobfs:total_slices_reserved",
"metric_id": 3000,
"metric_type": "Integer",
"event_codes": [0]
},
{
"selector": "bootstrap/driver_manager:root/fvm/partitions/minfs:total_slices_reserved",
"metric_id": 3000,
"metric_type": "Integer",
"event_codes": [1]
}
]
}
采样器配置会指定顶级项目 ID,该 ID 会指定 采样器代表其进行采样和转发的 Cobalt 客户端。 虽然在采样器 v1.1 中,它还指定了顶级 polpol_rate_seconds 系统将代表客户端将轮询率迁移到按指标配置。
接下来,该配置需要一系列指标转换。在这些 配置时,客户端会提供选择器, 检查指标,以及转发检查所需的 Cobalt 元数据 。
metric_type
是请求的指标转换类型。- 如果您的 Cobalt 指标是用于跟踪 数值聚合,请使用 metric_type 出现次数。
- 如果您的 Cobalt 指标是用于跟踪原始数据的 INTEGER 类型 整数(例如 cpu_load、thermal_temp),请使用 metric_type 整数。
- 如果您的 Cobalt 指标的类型为 INTEGER_HISTOGRAM,请使用 metric_type IntHistogram。
- 如果您的 Cobalt 指标类型为 STRING,请使用 metric_type String。
metric_id
与您在 Cobalt 中注册指标时使用的 ID 相同 yaml 文件。event_codes
是指在 Cobalt 指标的注册率。在 FVM 的情况下,每个指标 与其分区类型相对应的维度值。
注意:采样器配置中维度值的顺序必须 与 YAML 文件中声明维度的顺序一致 定义。