Metrics Configuration Generator(MCG)は、SDV テレメトリー構成の作成を簡素化するサービスです。MCG は、人間が読める形式の JSON 構成を、車載テレメトリー キャンペーンに必要なバイナリ MetricsConfiguration プロトコル バッファ(protobuf)ファイル形式に変換します。
MCG は、標準の HTTP リクエストを使用して操作するウェブサービスです。この API ベースのアプローチにより、curl などのコマンドライン ツールを使用して手動で生成とデバッグを行ったり、MCG をバックエンドとして統合して、構成を作成するためのグラフィカル インターフェースなどの高度なツールを使用したりできます。
機能
車両のテレメトリー サービスには、MetricsConfiguration バイナリ protobuf メッセージが必要です。このメッセージはデバッグ用に textproto 形式で表すことができますが、この形式を直接作成するには、その低レベル構造の詳細な知識が必要であり、面倒でエラーが発生しやすくなります。MCG は、構成の作成を使いやすい JSON 形式に移行することで、このプロセスを効率化します。
MCG には次の機能があります。
- JSON ベースの構成: データソース、処理ロジック、レポートルールなどの指標構成は、人間が読める形式の JSON 形式で定義できます。MCG は、これを必要なバイナリ protobuf 形式にコンパイルします。
- 組み込みの検証: 生成プロセスでは、デプロイ前にエラーを検出するために、シグナル定義とスキーマルールに対して構成が自動的に検証されます。
- メッセージ タイプの自動生成: アグリゲータとレポートは、最終的なバイナリ構成で protobuf メッセージ記述子を使用して定義する必要がある結果を生成します。MCG は、入力シグナル タイプと集計ロジックに基づいてこれらの結果の構造を推測し、必要なメッセージ記述子を自動的に生成します。これにより、中間データ構造またはレポート固有のデータ構造のスキーマを手動で定義する必要がなくなります。
- 式の作成が容易: 式を定義するためのカスタムの人間が読める形式の文法により、式ツリーを手動で作成する必要がなくなります。
ワークフロー
MCG を使用して指標構成を生成するには、 使用する車両シグナル カタログの各バージョンを 1 回アップロードしてから、 個々の指標構成を作成して生成するという 2 つのフェーズがあります。
シグナル定義をアップロードする: この手順は、車両シグナル カタログのバージョンごとに 1 回だけ実行する必要があります。検証と型推論を有効にするには、MCG が構成で参照する車両シグナルの定義にアクセスできる必要があります。これらの定義は、VSIDL カタログの一部として、プロジェクトに protobuf ファイルとしてすでに存在している必要があります(サンプル定義を使用してテストすることもできます)。MCG で使用できるようにするには、車両シグナル カタログにパッケージ化して、API を使用してアップロードします。
- protobuf ファイルを FileDescriptorSet にパッケージ化するには、Create a FileDescriptorSet を作成するをご覧ください。
- カタログを Base64 でエンコードしてアップロードするには、カタログ バージョンを追加または更新するをご覧ください。
構成を作成する: カタログ バージョンが MCG にアップロードされたら、それを参照する指標構成をいくつでも作成できます。JSON 構成では、使用するデータソース、そのデータに対して計算や集計を行う方法、結果が生成されるタイミングを決定するトリガーを定義します。
生成: JSON 構成を MCG API に送信します。API は構成を検証し、
MetricsConfiguration形式にコンパイルします。これは、車載で使用する場合はバイナリ protobuf(application/x-protobuf)として、レビューまたはデバッグの場合は textproto(text/x-protobuf)としてリクエストできます。- 生成するには、POST /api/v1/generate_metrics_config を使用します。
すべてのエンドポイント、リクエストとレスポンスの形式、および 使用例の詳細については、MCG API リファレンスをご覧ください。
デプロイ
MCG はクラウドネイティブ サービスとして、クラウド環境(Google Cloud Run など)にデプロイするように設計されており、チーム全体で構成の生成と検証を一元的に行えます。デプロイ手順については、 Google Cloud にデプロイするをご覧ください。
ローカルでの開発とテストの場合、MCG はデベロッパー マシンでスタンドアロン サービスとして実行することもできます。設定手順については、ローカルで実行するをご覧ください。