Rust 원격 분석 클라이언트 라이브러리

텔레메트리 클라이언트는 텔레메트리 서비스와 상호작용하여 데이터 수집을 구성하고, 측정항목 구성을 관리하고, 텔레메트리 보고서를 수신하는 앱입니다. 클라이언트는 libsdv_telemetry_rust_wrapper Rust 라이브러리를 사용하여 서비스와 상호작용합니다.

API 노출 영역 개요

API 문서는 Rust 텔레메트리 클라이언트 라이브러리 API 참조를 확인하세요.

이 라이브러리는 기본 텔레메트리 서비스와 상호작용하기 위한 Rust 인터페이스를 제공합니다. 이 라이브러리는 다음 영역을 담당합니다.

  • 서비스 수명 주기 관리: 텔레메트리 서비스에 대한 연결을 관리합니다.

    • 초기화: 차단 호출을 사용하여 서비스에 대한 연결을 설정합니다. 연결 후 콜백을 등록하여 시스템 상태 및 새 보고서의 사용 가능 여부에 관한 비동기 알림을 수신할 수 있습니다.
    • 종료: 서비스에서 정상적으로 연결을 해제하고 연결된 모든 리소스를 정리하는 방법을 제공합니다.
  • 측정항목 구성 수명 주기 관리: 측정항목 구성의 수명 주기를 제어할 수 있습니다.

    • 관리: 클라이언트는 측정항목 구성을 추가, 삭제, 활성화, 비활성화할 수 있습니다.
    • 검사: 활성 및 비활성 구성 목록을 쿼리할 수 있습니다.
  • 보고서 처리 및 검색: 텔레메트리 서비스에서 수집한 데이터에 대한 액세스를 용이하게 합니다.

    • 알림: 새 측정항목 보고서를 검색할 준비가 되면 콜백을 사용하여 클라이언트에 비동기식으로 알립니다.
    • 데이터 액세스: UUID별로 특정 보고서를 가져오고 사용 가능한 모든 보고서 목록을 검색하는 메서드를 제공합니다.
  • 상태 및 오류 보고: 텔레메트리 서비스의 상태 및 상태에 관한 통계를 제공합니다.

    • 비동기 상태 업데이트: 클라이언트는 전용 콜백을 통해 오류 및 경고를 포함한 실시간 상태 업데이트를 수신합니다. 이를 통해 강력한 오류 처리를 구현하고 서비스의 상태를 모니터링할 수 있습니다.

사용 예시

전체 수명 주기를 보여주는 컴파일 가능한 전체 앱은 샘플 클라이언트 구현 samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs를 참고하세요.

샘플 클라이언트는 전체 라이브러리 API와 상호작용하는 명령줄 유틸리티입니다. 이 샘플은 채널을 사용하여 라이브러리의 콜백 기반 인터페이스를 비동기 Rust 런타임 (Tokio)과 연결하는 방법을 보여줍니다.

클라이언트는 다음 작업 시퀀스를 실행합니다.

  1. 텔레메트리 서비스에 대한 연결을 설정하고 상태 업데이트 및 측정항목 보고서 알림을 위한 콜백을 등록합니다.
  2. 명령줄 인수로 제공된 측정항목 구성 파일을 읽은 다음 서비스에 구성을 추가하고 활성화합니다.
  3. 백그라운드 작업을 사용하여 서비스에서 수신한 비동기 상태 메시지 (오류 또는 경고)를 로깅합니다.
  4. 다음 작업을 실행하여 데이터 검색 루프를 관리합니다.
    • 측정항목 보고서가 준비되었다는 알림을 기다립니다.
    • 전체 측정항목 보고서 데이터를 가져옵니다.
    • 원하는 경우 보고서를 바이너리 프로토콜 버퍼 파일로 디스크에 씁니다.
  5. 첫 번째 측정항목 보고서를 생성하면 서비스에서 측정항목 구성을 삭제합니다. 이는 데모 구현이며 자체 클라이언트는 원하는 수의 보고서를 수신할 수 있습니다.
  6. 서비스에 대한 연결을 정상적으로 닫습니다.