측정항목 구성 생성기 (MCG)는 SDV 원격 분석 구성 작성을 간소화하는 서비스입니다. MCG는 사람이 읽을 수 있는 JSON 구성을 차량 내 원격 분석 캠페인에 필요한 바이너리 MetricsConfiguration 프로토콜 버퍼 (protobuf) 파일 형식으로 변환합니다.
MCG는 표준 HTTP 요청을 사용하여 상호작용하는 웹 서비스입니다. 이 API 기반 접근 방식을 사용하면 수동 생성 및 디버깅을 위해 curl와 같은 명령줄 도구를 사용하거나 구성 빌드를 위한 그래픽 인터페이스와 같은 더 정교한 도구의 백엔드로 MCG를 통합할 수 있습니다.
기능
차량의 원격 분석 서비스에는 MetricsConfiguration 바이너리 protobuf 메시지가 필요합니다. 이 메시지는 디버깅을 위해 textproto 형식으로 표현할 수 있지만, 이 형식을 직접 작성하려면 하위 수준 구조에 대한 자세한 지식이 필요하며 지루하고 오류가 발생하기 쉽습니다. MCG는 구성 작성을 사용자 친화적인 JSON 형식으로 전환하여 이 프로세스를 간소화합니다.
MCG에는 다음 기능이 포함됩니다.
- JSON 기반 구성: 데이터 소스, 처리 로직, 보고 규칙을 포함한 측정항목 구성은 사람이 읽을 수 있는 JSON 형식으로 정의할 수 있으며, MCG는 이를 필요한 바이너리 protobuf 형식으로 컴파일합니다.
- 기본 제공 검증: 생성 프로세스는 신호 정의 및 스키마 규칙에 따라 구성을 자동으로 검증하여 배포 전에 오류를 감지합니다.
- 자동 메시지 유형 생성: 애그리게이터와 보고서는 최종 바이너리 구성에서 protobuf 메시지 설명자를 사용하여 정의해야 하는 결과를 생성합니다. MCG는 입력 신호 유형과 집계 로직을 기반으로 이러한 결과의 구조를 추론하고 필요한 메시지 설명자를 자동으로 생성합니다. 따라서 중간 또는 보고서별 데이터 구조의 스키마를 수동으로 정의할 필요가 없습니다.
- 더 쉬운 표현식 작성: 표현식을 정의하기 위해 사람이 읽을 수 있는 맞춤 문법을 사용하면 표현식 트리를 수동으로 구성하지 않아도 됩니다.
워크플로
MCG를 사용하여 측정항목 구성을 생성하는 과정은 두 가지 주요 단계로 구성됩니다. 먼저 사용하려는 각 차량 신호 카탈로그 버전을 한 번 업로드한 다음 개별 측정항목 구성을 작성하고 생성합니다.
신호 정의 업로드: 이 단계는 차량 신호 카탈로그 버전당 한 번만 실행해야 합니다. 검증 및 유형 추론을 사용 설정하려면 MCG가 구성에서 참조하려는 차량 신호 정의에 액세스할 수 있어야 합니다. 이러한 정의는 VSIDL 카탈로그의 일부로 프로젝트에 protobuf 파일로 이미 존재해야 합니다 (또는 샘플 정의를 사용하여 실험할 수 있음). MCG에서 사용할 수 있도록 하려면 차량 신호 카탈로그에 패키징하고 API를 사용하여 업로드합니다.
- protobuf 파일을 FileDescriptorSet로 패키징하려면 FileDescriptorSet 만들기를 참조하세요.
- 카탈로그를 base64로 인코딩하고 업로드하려면 카탈로그 버전 추가 또는 업데이트를 참조하세요.
구성 작성: 카탈로그 버전이 MCG에 업로드되면 이를 참조하는 측정항목 구성을 원하는 만큼 작성할 수 있습니다. JSON 구성에서 사용할 데이터 소스, 해당 데이터에 대한 계산 또는 집계를 수행하는 방법, 결과가 생성되는 시점을 결정하는 트리거를 정의합니다.
생성: JSON 구성을 MCG API에 제출합니다. API는 구성을 검증하고
MetricsConfiguration형식으로 컴파일합니다. 이는 차량 내 사용을 위해 바이너리 protobuf (application/x-protobuf)로 요청하거나 검토 또는 디버깅을 위해 textproto (text/x-protobuf)로 요청할 수 있습니다.- 생성하려면 POST /api/v2/generate_metrics_config를 사용합니다.
모든 엔드포인트, 요청 및 응답 형식, 사용 예시에 관한 자세한 내용은 MCG API 참조를 참고하세요.
배포
클라우드 네이티브 서비스인 MCG는 클라우드 환경(예: Google Cloud Run)에 배포되도록 설계되어 팀 전반에서 구성 생성 및 검증을 위한 중앙 지점을 제공합니다. 배포 안내는 Google Cloud에 배포를 참조하세요.
로컬 개발 및 테스트를 위해 MCG를 개발자 머신에서 독립형 서비스로 실행할 수도 있습니다. 설정 안내는 로컬에서 실행을 참조하세요.