Datadog dostarcza miliony szczegółowych statystyk wydajności dzięki ProfilingManager
Czas czytania: 4 minuty
Regresje wydajności są notorycznie trudne do odtworzenia, co stanowi ogromne wąskie gardło dla deweloperów mobilnych. Chociaż sygnały takie jak współczynniki ANR wskazują, jakie problemy występują w środowisku produkcyjnym, określenie konkretnej linii kodu, która spowodowała problem z wydajnością, wymagało dotychczas wyczerpującego ręcznego odtwarzania lub spekulatywnych eksperymentów metodą prób i błędów.
Firma Datadog współpracowała z Google, aby złagodzić ten problem, integrując interfejs ProfilingManager API (dostępny na urządzeniach z Androidem 15 lub nowszym) z platformami monitorowania rzeczywistych użytkowników (RUM) i ciągłego profilowania. Ta integracja zmienia przepływ pracy związany z debugowaniem, umożliwiając programistom wyjście poza objawy powierzchowne i wykrywanie przyczyn wąskiego gardła wydajności.
Dzięki wykorzystaniu tego interfejsu API na poziomie systemu Datadog przetwarza obecnie miliony profili produkcyjnych tygodniowo na całym świecie (dane wewnętrzne Datadog z czerwca 2026 r.). Zapewnia zespołom inżynieryjnym nowy poziom wglądu w wydajność w rzeczywistych warunkach, a jednocześnie utrzymuje niski narzut czasu działania na potrzeby monitorowania wydajności na skalę produkcyjną.
Wpływ ProfilingManager
ProfilingManager to usługa systemowa wprowadzona w Androidzie 15, która umożliwia aplikacjom programowe zbieranie danych o wydajności, takich jak próbki stosu wywołań, ślady pól i zrzuty sterty pamięci, bezpośrednio ze środowisk produkcyjnych. Ta funkcja zmienia paradygmat inżynieryjny z reaktywnego ręcznego odtwarzania na proaktywną analizę w terenie.
Na przykład zespół aplikacji komunikacyjnej Google wykorzystał ślady z terenu, aby sprawdzić, dlaczego czas uruchamiania „na zimno” był dłuższy na nowszym, wydajniejszym sprzęcie. Analizując ślady zebrane w terenie i porównując je na różnych typach urządzeń, inżynier odkrył ukryty problem z planowaniem: usługa zamiany tekstu na mowę w tle była niepotrzebnie wstępnie uruchamiana podczas uruchamiania aplikacji. Ślady wykazały, że ten proces w tle monopolizował najwydajniejszy duży rdzeń procesora urządzenia, zmuszając wątek główny aplikacji do przejścia w stan uśpienia podczas wstępnego rozgrzewania.
Rozwiązywanie problemu z widocznością na poziomie kodu na Androidzie
Przed wdrożeniem ProfilingManager monitorowanie rzeczywistych użytkowników (RUM) w Datadog koncentrowało się na ogólnym stanie aplikacji i telemetrii na poziomie sesji, aby ocenić ścieżkę użytkownika. Zespoły inżynieryjne mogą monitorować sygnały wydajności Androida, takie jak czas do pierwszego wyświetlenia, współczynniki ANR, obciążenie procesora i zamrożone klatki. Te statystyki obejmowały szczegółowe interakcje, takie jak opóźnienie sieci, zdarzenia dotyku i zawieszenia głównego wątku. Chociaż te dane skutecznie wskazywały wąskie gardła wydajności, które pojawiały się w terenie, nie wskazywały jasnej ścieżki do zidentyfikowania głównej przyczyny tych awarii.
Aby rozwiązać ten problem, firma Datadog potrzebowała silnika profilowania, który byłby w stanie rejestrować ślady Androida bezpośrednio z urządzeń produkcyjnych przy minimalnym wpływie na wydajność. Po przeanalizowaniu alternatywnych podejść, takich jak napisanie własnego procesora śledzenia za pomocą interfejsów API debugowania Androida, zespół wybrał ProfilingManager, ponieważ jest to najbardziej wydajne rozwiązanie spośród ocenianych opcji profilowania, które przenosi obciążenie związane z decyzjami dotyczącymi próbkowania na system operacyjny.
ProfilowanieManager obsługuje szeroki zakres metod zbierania danych, w tym ślady procesora, próbkowanie stosu wywołań i analizę pamięci za pomocą zrzutów sterty Javy i profili sterty natywnej. Umożliwia programistom profilowanie kompilacji produkcyjnych, przesyłanie plików śledzenia do pamięci zewnętrznej i sprawdzanie ich w interfejsie analizatora śladów Perfetto. Jako dostawca SaaS firma Datadog przesyła, wizualizuje i analizuje te profile zebrane za pomocą pakietu SDK, zapewniając ujednolicony widok stanu aplikacji.
Dzięki scentralizowaniu telemetrii o wysokiej wierności w ujednoliconym interfejsie API do obserwacji ProfilingManager umożliwia Datadog i jej klientom proaktywne monitorowanie, badanie i usuwanie złożonych regresji wydajności Androida dzięki kluczowym zaletom technicznym:
- Szczegółowa diagnostyka sesji: ProfilingManager zwiększa możliwości debugowania, dostarczając bezpośrednie dane śledzenia na poziomie systemu operacyjnego. Pozwala to pokonać problemy z widocznością i dopasowaniem typowe dla niestandardowego rejestrowania w usługach systemowych. Aby uzyskać więcej informacji, programiści mogą pobrać te ślady z Datadog i dokładniej je przeanalizować w narzędziach do wizualizacji, takich jak interfejs Perfetto.
- Automatyczne wyzwalacze telemetrii: wykorzystując natywne zdarzenia systemowe do inicjowania nagrywania śladów w kluczowych punktach optymalizacji, Datadog zmniejsza potrzebę tworzenia niestandardowej logiki zbierania danych. Początkowe wdrożenie koncentruje się na sygnale APP_FULLY_DRAWN, ale planujemy już rozszerzyć tę dostrzegalność o wyzwalacze ANR, OOM i COLD_START.
- Proaktywne migawki śladu: ProfilingManager, komunikując się bezpośrednio z usługą Perfetto na poziomie systemu (śledzoną), wykorzystuje proaktywny model nagrywania w tle, który ma na celu rejestrowanie nieprzewidywalnych problemów. Dzięki temu deweloperzy otrzymują precyzyjną wizualizację zdarzeń prowadzących do anomalii wydajności, co zapewnia poziom wglądu przekraczający możliwości ręcznego instrumentowania.
- Wykrywanie wąskich gardeł na dużą skalę: Datadog potrafi syntetyzować dane telemetryczne z całej globalnej bazy klientów Datadog, aby wykrywać regresje, które pojawiają się tylko w przypadku unikalnych konfiguracji sprzętowych i zmiennych środowisk sieciowych.
- Stabilność zasobów wymuszana przez system: interfejs API wykorzystuje zbieranie próbek śladów, aby zapewnić, że wpływ na wydajność i wygodę użytkowników pozostanie niezauważalny.
- Kontrola danych na urządzeniu: usługa ProfilingManager odfiltrowuje nieistotne informacje z innych procesów na urządzeniu, zanim profil zostanie dostarczony do aplikacji. Minimalizuje to rozmiary plików i zapewnia, że dostarczane są tylko dane istotne dla procesów aplikacji.
Przetwarzanie milionów profili tygodniowo w celu optymalizacji aplikacji w rzeczywistym świecie
Zintegrowanie interfejsu API profilowania na poziomie systemu z globalnym pakietem SDK do monitorowania wymagało rozwiązania problemów z infrastrukturą. ProfilingManager generuje bardzo szczegółowe ślady wydajności, dlatego zespół inżynierów Datadog musiał zbudować potok, który byłby w stanie analizować te profile po stronie serwera na dużą skalę. Oprócz zbierania profili Datadog podkreśla też, jak ważne jest zachowanie równowagi między częstotliwością próbkowania a zbieraniem wystarczającej ilości danych, aby generować przydatne statystyki dotyczące aplikacji. Datadog korzysta z wbudowanego w ProfilingManager ograniczenia liczby żądań jako kluczowego zabezpieczenia stabilności, które zapobiega przeciążeniu urządzeń użytkowników przez nadmierną liczbę żądań telemetrii.
Zespół od miesięcy profiluje własną aplikację natywną Datadog na Androida oraz aplikacje wielu pierwszych użytkowników, zbierając miliony profili, aby zapewnić szybkie i bezbłędne uruchamianie oraz udoskonalić algorytmy wykrywania wydajności. Obecnie integracja produkcyjna jest bezproblemowo skalowana na różnych urządzeniach z Androidem.
Podsumowanie
Dzięki integracji interfejsu ProfilingManager API na Androidzie firma Datadog zdołała zlikwidować lukę w widoczności między systemami backendu a aplikacjami klienckimi na urządzenia mobilne. Przetwarzając miliony profili tygodniowo przy znikomym obciążeniu urządzenia, Datadog zapewnia deweloperom na Androida wgląd w kod niezbędny do natychmiastowego diagnozowania złożonych błędów wydajności, co pomaga im tworzyć płynniej działające aplikacje i poprawiać sygnały wydajności aplikacji w Google Play. Aby wdrożyć interfejs ProfilingManager API bezpośrednio w ramach monitorowania wydajności, zapoznaj się z naszą dokumentacją.
W przyszłości Datadog chce, aby dane profilowania Androida były podstawowym źródłem informacji dla agentów kodujących, którzy będą mogli samodzielnie rozwiązywać problemy z wydajnością, zamykając pętlę informacji zwrotnych między wykrywaniem a usuwaniem problemów. Datadog pracuje nad tym, aby profilowanie Androida było powszechnie dostępne dla deweloperów.
Aby zacząć korzystać z funkcji monitorowania użytkowników w czasie rzeczywistym Datadog opartej na ProfilingManager, odwiedź stronę Datadog Mobile Real User Monitoring.
-
Studia przypadkówKarrot to hiperlokalna, oparta na społeczności aplikacja handlowa peer-to-peer, która umożliwia użytkownikom kupowanie, sprzedawanie i wymienianie produktów z innymi zweryfikowanymi użytkownikami. Od momentu uruchomienia w 2015 roku w Korei Południowej platforma rozszerzyła swoją działalność na rynki globalne i zgromadziła ponad 43 miliony zarejestrowanych użytkowników.
Thomas Ezan, Tracy Agyemang • Czas czytania: 2 minuty -
InstrukcjeWydajność aplikacji jest często utożsamiana z płynnym interfejsem i krótkim czasem uruchamiania, ale pamięć jest cichym fundamentem, na którym opierają się te widoczne wskaźniki. Nie jest tajemnicą, że pamięć urządzenia jest obecnie ważniejsza niż kiedykolwiek wcześniej.
Alice Yuan, Ajesh Pai, Fung Lam • Czas czytania: 10 minut -
Studia przypadkówAplikacja FotMob odnotowała niedawno największy od 5 lat jednodniowy wzrost liczby użytkowników Wear OS, który był 2–3 razy wyższy od średniej dziennej. Tajemnica? Prosty proces instalacji na różnych urządzeniach, który pomaga użytkownikom odkrywać aplikacje na Wear OS bezpośrednio na telefonie.
Garan Jenkin • Czas czytania: 3 minuty
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.