指标配置生成器

指标配置生成器 (MCG) 是一项服务,可简化 SDV 遥测配置的编写。MCG 会将人类可读的 JSON 配置转换为车载遥测活动所需的二进制 MetricsConfiguration 协议缓冲区 (protobuf) 文件格式。

MCG 是一项 Web 服务,您可以使用标准 HTTP 请求与其进行交互。这种基于 API 的方法让您可以使用 curl 等命令行工具进行手动生成和调试,也可以将 MCG 集成到更复杂的工具(例如用于构建 build 配置的图形界面)中作为后端。

功能

车辆上的遥测服务需要 MetricsConfiguration 二进制 protobuf 消息。虽然此消息可以表示为 textproto 格式以进行调试,但直接编写此格式需要详细了解其底层结构,并且可能繁琐且容易出错。MCG 将配置编写方式改为人性化的 JSON 格式,从而简化了此流程。

MCG 包含以下功能:

  • 基于 JSON 的配置:指标配置(包括数据源、处理逻辑和报告规则)可以采用人类可读的 JSON 格式进行定义,MCG 会将其编译为所需的二进制 protobuf 格式。
  • 内置验证:生成过程会根据信号定义和架构规则自动验证配置,以便在部署前检测错误。
  • 自动生成消息类型:聚合器和报告会生成结果,这些结果必须在最终二进制配置中使用 protobuf 消息描述符进行定义。MCG 会根据输入信号类型和聚合逻辑推断这些结果的结构,并自动生成所需的消息描述符。这样,您就无需手动为中间数据结构或特定于报告的数据结构定义架构。
  • 更轻松地编写表达式:用于定义表达式的自定义人类可读语法可避免手动构建表达式树。

工作流

使用 MCG 生成指标配置主要涉及两个阶段:一次性上传您打算使用的每个车辆信号目录版本,然后编写并生成各个指标配置。

  1. 上传信号定义:每个车辆信号目录版本只需执行此步骤一次。如需启用验证和类型推断,MCG 必须有权访问您打算在配置中引用的车辆信号定义。这些定义应该已经作为 protobuf 文件存在于您的项目中,作为 VSIDL 目录的一部分(或者您可以使用示例定义进行实验)。如需将其提供给 MCG,请将其打包到车辆信号目录中,并使用 API 上传:

  2. 写入配置:将目录版本上传到 MCG 后,您可以写入任意数量引用该目录版本的指标配置。在 JSON 配置中,您可以定义要使用的数据源、如何对这些数据执行计算或汇总,以及决定何时生成结果的触发器。

  3. 生成:将 JSON 配置提交到 MCG API。该 API 会验证配置并将其编译为 MetricsConfiguration 格式。可以请求以二进制 protobuf (application/x-protobuf) 格式提供,以便在车载设备上使用;也可以请求以 textproto (text/x-protobuf) 格式提供,以便进行审核或调试。

如需详细了解所有端点、请求和响应格式以及使用示例,请参阅 MCG API 参考文档。

部署

作为一项云原生服务,MCG 旨在部署到云环境(例如 Google Cloud Run),为您的团队提供配置生成和验证的中心点。如需了解部署说明,请参阅部署到 Google Cloud。

对于本地开发和测试,MCG 也可以作为独立服务在开发机器上运行。如需查看设置说明,请参阅在本地运行。