측정항목 구성 생성기

측정항목 구성 생성기 (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. 신호 정의 업로드: 이 단계는 차량 신호 카탈로그 버전당 한 번만 수행해야 합니다. 유효성 검사 및 유형 추론을 사용 설정하려면 MCG가 구성에서 참조하려는 차량 신호 정의에 액세스할 수 있어야 합니다. 이러한 정의는 VSIDL 카탈로그의 일부로 프로젝트에 protobuf 파일로 이미 존재해야 합니다 (또는 샘플 정의를 사용하여 실험할 수 있음). 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는 개발자 머신에서 독립형 서비스로 실행할 수도 있습니다. 설정 안내는 로컬에서 실행을 참고하세요.