Klient telemetrii to aplikacja, która wchodzi w interakcję z usługą telemetrii w celu konfigurowania zbierania danych, zarządzania konfiguracjami danych i otrzymywania raportów telemetrycznych. Klienci używają biblioteki libsdv_telemetry_rust_wrapper Rust do
interakcji z usługą.
Omówienie interfejsu API
Dokumentację interfejsu API znajdziesz w dokumentacji interfejsu API biblioteki klienta telemetrii Rust.
Biblioteka udostępnia interfejs Rusta do interakcji z usługą telemetrii. Odpowiada ona za te obszary:
Zarządzanie cyklem życia usługi: zarządza połączeniem z usługą telemetrii.
- Inicjowanie: nawiązuje połączenie z usługą za pomocą wywołania blokującego. Po nawiązaniu połączenia możesz zarejestrować wywołania zwrotne, aby otrzymywać asynchroniczne powiadomienia o stanie systemu i dostępności nowych raportów.
- Wyłączanie: umożliwia prawidłowe odłączenie się od usługi i wyczyszczenie wszystkich powiązanych zasobów.
Zarządzanie cyklem życia konfiguracji wskaźników: umożliwia kontrolowanie cyklu życia konfiguracji wskaźników.
- Zarządzanie: klienci mogą dodawać, usuwać, aktywować i dezaktywować konfiguracje danych.
- Sprawdzanie: możesz wysłać zapytanie o listę aktywnych i nieaktywnych konfiguracji.
Obsługa i pobieranie raportów: ułatwia dostęp do danych zbieranych przez usługę telemetrii.
- Powiadomienia: asynchronicznie powiadamia klientów za pomocą wywołania zwrotnego, gdy nowy raport o danych jest gotowy do pobrania.
- Dostęp do danych: udostępnia metody pobierania konkretnych raportów według ich identyfikatora UUID i pobierania listy wszystkich dostępnych raportów.
Raportowanie stanu i błędów: zapewnia wgląd w stan usługi telemetrii.
- Asynchroniczne aktualizacje stanu: klienci otrzymują aktualizacje stanu w czasie rzeczywistym, w tym błędy i ostrzeżenia, za pomocą specjalnego wywołania zwrotnego. Umożliwia to wdrożenie niezawodnej obsługi błędów i monitorowanie stanu usługi.
Przykład użycia
Kompletną, kompilowalną aplikację, która pokazuje pełny cykl życia, znajdziesz w przykładowej implementacji klienta:samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs.
Przykładowy klient to narzędzie wiersza poleceń, które wchodzi w interakcję z pełną biblioteką interfejsu API. Ten przykład pokazuje, jak połączyć interfejs biblioteki oparty na wywołaniach zwrotnych z asynchronicznym środowiskiem wykonawczym Rust (Tokio) za pomocą kanałów.
Klient wykonuje tę sekwencję operacji:
- Ustanawia połączenie z usługą telemetrii i rejestruje wywołania zwrotne w celu otrzymywania powiadomień o aktualizacjach stanu i raportach o danych.
- Odczytuje pliki konfiguracji wskaźników podane jako argumenty wiersza poleceń, a następnie dodaje i aktywuje konfiguracje w usłudze.
- Używa zadania w tle do rejestrowania asynchronicznych komunikatów o stanie (błędów lub ostrzeżeń) otrzymywanych z usługi.
- Zarządza pętlą pobierania danych, wykonując te czynności:
- Czeka na powiadomienie o tym, że raport z danymi jest gotowy.
- Pobiera pełne dane raportu o rodzajach danych.
- Opcjonalnie zapisuje raport na dysku jako binarny plik bufora protokołu.
- Usuwa konfigurację danych z usługi po wygenerowaniu pierwszego raportu z danymi. Pamiętaj, że jest to implementacja demonstracyjna, a Twoi klienci mogą otrzymywać dowolną liczbę raportów.
- Płynnie zamyka połączenie z usługą.