本页简要介绍了 SDV 遥测,并阐述了架构、功能和集成等关键方面。
SDV 遥测功能为原始设备制造商 (OEM) 提供了一种安全、高效且可扩缩的方式来收集、整理和处理车辆数据。您可以通过以下方式使用数据:
- 车辆健康状况监控:跟踪系统性能、发现潜在问题,并实现主动维护。
- 基于驾驶行为的保险:为保险提供商提供数据驱动型分析洞见。
- 车祸数据收集:在发生车祸时收集数据,以提升车辆安全性。
- 功能开发:了解使用模式,以指导功能开发。
- 性能优化:识别瓶颈并优化车辆性能。
- 车队管理:收集车辆信息,以管理和优化商用车辆车队的效率。
主要特性
SDV 遥测提供以下主要功能:
可伸缩性
多个遥测实例可在单个 SDV(或 IVI)实例上运行,从而允许从车辆内的不同区域收集数据。这种灵活的设计可适应不同的车辆架构,在这些架构中,车辆区域之间的通信受到限制,并且可以从不同的 ECU 独立收集数据。
安全
该系统采用 Rust 实现,可防止内存漏洞利用,并使用 Android 的内置安全功能,例如 SELinux 和进程隔离。使用 protobuf 的结构化输入在处理之前会经过验证,以避免出错。
可更新性
SDV 遥测的所有组件都可以独立更新,确保系统可以得到维护和改进。使用遥测广告系列可以完全配置数据收集。
可配置性
遥测广告系列由指标配置定义,可以在云端创建和更新。这些配置定义了要收集哪些数据、如何处理这些数据以及何时生成报告。
边缘处理
为了减少向云端传输的数据量,该系统包含一个边缘处理引擎,可在车辆本地处理数据,并仅将相关信息发送到云端。
灵活性
该系统旨在同时适用于 SDV 和 IVI 实例。核心数据收集组件可重复使用,而特定于目标平台的组件可用于访问特定于目标平台的数据源。
可测试性
借助模拟框架,您可以在将指标配置部署到车辆之前对其进行验证。
Telemetry SDK
使用 SDK 与 SDV 遥测进行交互。这样做有助于集成使用可配置发布者注册表的遥测客户端和遥测数据源。该 SDK 适用于 Rust。我们为 Java 提供了一个实验性版本。
组件
此图显示了关键遥测组件:
遥测服务
遥测服务是一种车载 SDV 代理,负责从车辆中的数据源收集数据。它会读取指标配置(数据收集和转换的定义),并生成包含所收集数据的指标报告。此服务包含边缘处理引擎。
Telemetry SDK:遥测客户端库
此库可方便地访问遥测服务,并帮助 OEM 客户端应用管理指标配置、收集指标报告和接收相关事件通知。
如需了解详情,请参阅 Rust 遥测客户端库。
Telemetry SDK:可配置的发布商注册表库
可配置的发布商注册表库简化了创建自定义遥测发布商并将其注册到可配置的发布商注册表的过程。我们提供了 Java 和 Rust 的实现。
如需了解详情,请参阅可配置的发布商注册表库。
遥测模拟器
一种 CLI 工具,可让您根据预先录制或人工生成的发布商数据模拟指标配置。
指标配置生成器 (MCG)
此云服务旨在从用户友好的 JSON 格式生成高度优化的基于 protobuf 的指标配置。MCG 还会验证指标配置,并可根据观测到的和处理过的车辆信号自动推断消息类型。
基于云的遥测模拟
一种后端系统,可让您在 Google Cloud 上大规模管理和运行遥测模拟。您可以在任何 Google Cloud 租户上使用 Terraform 部署基于云的模拟系统。