Datadog dostarcza miliony szczegółowych informacji o wydajności dzięki ProfilingManager
Czas czytania: 4 min
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 rozwiązać ten problem. Zintegrowała 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 (według wewnętrznych danych Datadog z czerwca 2026 r.). Zapewnia zespołom inżynieryjnym nowy poziom wglądu w wydajność w rzeczywistych warunkach, a jednocześnie utrzymuje niskie obciążenie środowiska wykonawczego 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 aplikacja komunikacyjna Google wykorzystała ś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 główny wątek aplikacji do uśpienia podczas wstępnego rozgrzewania.
Rozwiązywanie problemu z widocznością na poziomie kodu Androida
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, które wąskie gardła wydajności 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 umożliwiałby rejestrowanie śladów Androida bezpośrednio z urządzeń produkcyjnych przy minimalnym wpływie na wydajność. Po ocenie alternatywnych podejść, takich jak napisanie własnego procesora śledzenia za pomocą interfejsów Android Debug API, 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.
Klasa ProfilingManager obsługuje wiele metod zbierania danych, w tym ślady procesora, próbkowanie stosu wywołań i analizę pamięci za pomocą zrzutów sterty Java i profili sterty natywnej. Umożliwia programistom profilowanie kompilacji produkcyjnych, przesyłanie plików śladów 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 ramach ujednoliconego interfejsu 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 Perfetto UI.
- 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ątkowo wdrożenie będzie dotyczyć sygnału APP_FULLY_DRAWN, ale planujemy już rozszerzenie tej funkcji 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ą. Menedżer profilowania generuje bardzo szczegółowe dane o 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ż znaczenie równoważenia częstotliwości próbkowania z gromadzeniem wystarczającej ilości danych do generowania przydatnych statystyk dotyczących 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 aplikacji 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 w Androidzie firma Datadog zlikwidowała 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 Androida wgląd na poziomie kodu, który jest niezbędny do natychmiastowego diagnozowania złożonych błędów wydajności. Pomaga to deweloperom 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 kodowania, 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 rzeczywistych użytkowników Datadog opartej na ProfilingManager, odwiedź stronę Datadog Mobile Real User Monitoring.
-
Studia przypadkówKarrot to hiperlokalna, oparta na społeczności aplikacja handlowa typu peer-to-peer, która umożliwia użytkownikom kupowanie, sprzedawanie i wymienianie produktów z innymi zweryfikowanymi użytkownikami. Od momentu wprowadzenia w Korei Południowej w 2015 r. platforma rozszerzyła swoją działalność na rynki globalne, gromadząc ponad 43 miliony zarejestrowanych użytkowników.
Thomas Ezan, Tracy Agyemang • Czas czytania: 2 minuty -
Studia przypadkówZespół stworzył bazę kodu interfejsu użytkownika opartą na AI, która jest o 50% mniejsza niż pierwotna implementacja, a jednocześnie pozwala skrócić czas wykonywania agenta AI o 35%, zmniejszyć liczbę wymian informacji między inżynierem a agentem o 32% i obniżyć koszt tokenów o 33%.
Pavlo Stavytskyi, Rebecca Franks • Czas czytania: 11 min -
Studia przypadkówWhatsApp to największa na świecie platforma do przesyłania wiadomości, z której korzystają miliardy użytkowników na całym świecie. Jest to domyślne narzędzie komunikacyjne dla osób z różnych regionów, które umożliwia użytkownikom prywatną, niezawodną i bezpieczną komunikację.
Niharika Arora, Tracy Agyemang, Mayank Jain • Czas czytania: 8 minut
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.