Datadog to chmurowa platforma obserwowalności, która łączy monitorowanie infrastruktury, APM, logowanie i doświadczenie cyfrowe w jednym interfejsie. Platforma zbiera metryki, trace'y i logi z serwerów, kontenerów i urządzeń mobilnych w czasie rzeczywistym, umożliwiając zespołom szybkie znajdowanie źródła problemów. Według danych Datadog, 2025, platforma przetwarza ponad 2,5 petabajta danych dziennie od tysięcy klientów na całym świecie. Dla programistów mobilnych Datadog oferuje natywne SDK dla Android i iOS z automatycznym zbieraniem metryk wydajności.
Najważniejsze
Datadog to chmurowa platforma do monitorowania i obserwowalności, uruchomiona w 2010 roku przez Oliviera Pomela i Alexisa Le-Quioca. Platforma zapewnia jeden panel do zbierania metryk, logów i trace'y z infrastruktury, aplikacji i urządzeń użytkowników. W przeciwieństwie do punktowych rozwiązań, Datadog łączy APM, logi, monitorowanie infrastruktury, Synthetic Monitoring i RUM w jednym produkcie.
Architektura Datadoga opiera się na agentach - lekkich programach instalowanych na serwerach lub wbudowywanych w aplikacje. Agent zbiera dane i wysyła je do chmurowej infrastruktury Datadog przez szyfrowane połączenie. Dla platform mobilnych Datadog dostarcza natywne SDK działające na Android (Kotlin, Java) i iOS (Swift, Objective-C).
Według raportu Gartner Magic Quadrant for APM and Observability (2024), Datadog została uznana za lidera w kategorii obserwowalności z najszerszym zestawem zintegrowanych możliwości. Platforma jest używana przez takie firmy jak Samsung, Adidas i Peloton do monitorowania milionów urządzeń dziennie.
Dla zespołów mobilnych Datadog jest szczególnie cenny, ponieważ pozwala powiązać wydajność backendu z doświadczeniem użytkownika na urządzeniu. Jeśli API zaczyna odpowiadać wolniej, Datadog pokazuje nie tylko czas odpowiedzi serwera, ale także jak wpłynęło to na czas uruchamiania lub renderowanie ekranu na konkretnym modelu telefonu.
Infrastructure Monitoring śledzi metryki CPU, pamięci, dysku i sieci dla serwerów, kontenerów i klastrów Kubernetes. APM (Application Performance Monitoring) zbiera trace'e dla każdego żądania przechodzącego przez system rozproszony i pokazuje opóźnienia na każdym etapie. Log Management centralizuje wszystkie logi - od systemowych po aplikacyjne - z możliwością pełnotekstowego wyszukiwania i tworzenia metryk na podstawie logów. Synthetic Monitoring symuluje scenariusze użytkownika z różnych lokalizacji geograficznych. Real User Monitoring (RUM) zbiera dane z rzeczywistych urządzeń użytkowników, w tym telefonów i tabletów.
Datadog stosuje model pay-as-you-go z podziałem na produkty: hosty infrastrukturalne, hosty APM, logi (wolumen w gigabajtach), sesje RUM i testy Synthetic. Każdy produkt jest rozliczany osobno, co pozwala płacić tylko za używane funkcje. Koszt zaczyna się od 15 dolarów za host miesięcznie za monitorowanie infrastruktury i od 1 dolara za 10 000 sesji RUM. Dla startupów dostępny jest program Datadog for Startups z kredytami do 100 000 dolarów.
Application Performance Monitoring (APM) w Datadog to system distributed tracing, który śledzi każde żądanie od momentu wejścia do systemu aż do zakończenia wszystkich zagnieżdżonych operacji. APM automatycznie instrumentuje popularne frameworki i biblioteki: Spring Boot, Django, Express.js, ASP.NET Core i inne. Dla każdego żądania APM tworzy flame graph - wizualną reprezentację czasu wykonania wszystkich fragmentów kodu.
Flame graph pokazuje, ile czasu zajęło każde wywołanie funkcji lub żądanie do zewnętrznego serwisu. Jeśli metoda bazy danych wykonuje się 2 sekundy zamiast oczekiwanych 200 milisekund, jest to od razu widoczne na wykresie. Datadog APM obsługuje OpenTelemetry - otwarty standard zbierania telemetrii, co pozwala podłączyć instrumentację od dowolnych kompatybilnych dostawców.
Według danych Benchling Engineering Blog (2024), migracja na Datadog APM pozwoliła zespołowi skrócić czas diagnozowania incydentów z 45 minut do 8 minut dzięki automatycznej korelacji trace'y z logami i metrykami. Kluczowym scenariuszem jest trace-to-log correlation: po jednym trace ID można znaleźć wszystkie logi dotyczące konkretnego żądania bez ręcznego wyszukiwania.
Service Map to automatycznie budowany graf wszystkich serwisów systemu i ich wzajemnych powiązań. Każdy serwis jest wyświetlany jako węzeł, a połączenia między węzłami pokazują, jakie wywołania zachodzą między serwisami. Kolor węzła odzwierciedla stan zdrowia: zielony - normalna praca, żółty - zwiększone opóźnienie, czerwony - błędy. Service Map pomaga szybko określić, który serwis jest wąskim gardłem, nawet bez wcześniejszego poznania architektury.
import datadog.trace.api.Trace;
import io.opentelemetry.api.trace.Span;
public class PaymentService {
@Trace(resourceName = "PaymentService.processPayment")
public PaymentResult processPayment(Order order) {
Span span = Tracer.buildSpan("validate.payment").start();
try {
PaymentGateway gateway = new PaymentGateway();
PaymentResult result = gateway.charge(order.getAmount());
span.setTag("payment.provider", "stripe");
return result;
} finally {
span.close();
}
}
}
Real User Monitoring (RUM) w Datadog zbiera dane z rzeczywistych urządzeń użytkowników - czas ładowania ekranów, reakcję na dotknięcia, zużycie pamięci, częstotliwość ANR (Application Not Responding) i wskaźnik crashy. RUM SDK dla Android i iOS jest wbudowywane w aplikację i automatycznie tworzy sesje, grupując wszystkie zdarzenia w ramach jednej interakcji użytkownika.
Każda sesja RUM zawiera sekwencję zdarzeń: otwarcie ekranu, naciśnięcie przycisku, żądanie sieciowe, przewijanie. Dla każdego zdarzenia Datadog rejestruje znacznik czasu, czas trwania i parametry techniczne urządzenia: model, system operacyjny, wersję aplikacji, typ połączenia. Pozwala to filtrować metryki według konkretnych wersji i urządzeń. Można na przykład zobaczyć, że czas uruchamiania wzrósł na Android 14 przy użyciu określonego modelu Samsung.
RUM jest ściśle zintegrowany z APM: jeśli sesja użytkownika zakończyła się błędem na ekranie płatności, Datadog automatycznie pokazuje odpowiedni trace z backendu. Przyspiesza to diagnozowanie 5-7 razy w porównaniu z ręcznym dopasowywaniem logów frontendowych i backendowych. Dla zespołów mobilnych RUM udostępnia również raporty watchlist - cotygodniowe podsumowanie pogorszenia kluczowych metryk.
Datadog RUM automatycznie zbiera crash reports z pełnym stacktrace, w tym numery linii kodu źródłowego. Dla Androida działa to poprzez integrację z ACRA lub Firebase Crashlytics, dla iOS - przez PLCrashReporter. Każdy crash jest powiązany z sesją użytkownika, co pozwala odtworzyć sekwencję działań prowadzącą do awarii. RUM śledzi również ANR - jedno z najbardziej krytycznych zdarzeń dla aplikacji Android. Jeśli aplikacja nie odpowiada dłużej niż 5 sekund, Datadog rejestruje ANR i pokazuje pełny thread dump z momentu zablokowania UI.
Log Management w Datadog centralizuje wszystkie logi aplikacji i infrastruktury w jednym magazynie z pełnotekstowym wyszukiwaniem. Logi mobilne (zdarzenia analityczne, błędy API, telemetria) są wysyłane z urządzenia przez SDK i łączone z logami serwerowymi według wspólnego identyfikatora. Datadog automatycznie parsuje logi na ustrukturyzowane pola: poziom (INFO, WARN, ERROR), serwis, host, znacznik czasu, wiadomość.
Do filtrowania logów używany jest własny język zapytań z obsługą wildcard, wyrażeń regularnych i faset. Logi można grupować według wzorców - Datadog automatycznie wykrywa powtarzające się patterny i pokazuje je jako jeden klaster. Jest to szczególnie przydatne przy analizie tysięcy logów z urządzeń mobilnych: identyczne błędy są grupowane, a programista widzi nie 10 000 linii, ale 10 klastrów z częstotliwością występowania.
Metrics to numeryczne serie czasowe zbierane w interwale od 1 sekundy. Datadog obsługuje trzy typy metryk: gauge (bieżąca wartość), count (suma za interwał) i rate (szybkość zmian). Dla aplikacji mobilnych niestandardowe metryki mogą śledzić liczbę otwarć ekranu, czas wykonania kluczowego scenariusza biznesowego lub częstotliwość użycia konkretnej funkcji. Niestandardowe metryki są wysyłane przez DogStatsD - protokół kompatybilny ze StatsD z rozszerzeniami Datadog.
import com.datadog.android.Datadog
import com.datadog.android.log.Logger
class PaymentAnalytics {
private val logger = Logger.Builder()
.setDatadogLogsEnabled(true)
.setNetworkInfoEnabled(true)
.setBundleWithTraceEnabled(true)
.build()
fun trackCheckout(orderId: String, amount: Double) {
logger.info(
"Checkout initiated for order {orderId}",
mapOf(
"order.id" to orderId,
"order.amount" to amount,
"payment.method" to "credit_card"
)
)
}
}
Datadog SDK dla Android i iOS udostępnia jednolity zestaw modułów: Core (inicjalizacja), RUM (monitorowanie doświadczenia użytkownika), Logs (wysyłanie logów), Trace (śledzenie żądań). Dla Androida SDK jest dodawany przez Gradle, dla iOS - przez CocoaPods lub Swift Package Manager. Po instalacji SDK jest inicjalizowany w Application.onCreate (Android) lub w AppDelegate (iOS) z przekazaniem client token, environment i nazwy aplikacji.
Do automatycznego śledzenia żądań sieciowych na Androidzie używany jest OkHttp Interceptor, na iOS - NSURLProtocol lub URLSession delegate. Datadog obsługuje również integrację z popularnymi klientami HTTP: Retrofit, Apollo GraphQL, Ktor, Alamofire. Po podłączeniu Interceptora każde żądanie HTTP jest automatycznie przypisywane do sesji RUM i APM-trace, tworząc jednolity łańcuch od klienta do serwera.
dependencies {
// Główny moduł SDK i RUM
implementation "com.datadoghq:dd-sdk-android-core:2.15.0"
implementation "com.datadoghq:dd-sdk-android-rum:2.15.0"
// Integracja z OkHttp do automatycznego śledzenia
implementation "com.datadoghq:dd-sdk-android-okhttp:2.15.0"
// NDK crash reporting
implementation "com.datadoghq:dd-sdk-android-ndk:2.15.0"
}
import DatadogCore
import DatadogRUM
import DatadogLogs
@main class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
Datadog.initialize(
with: DatadogConfiguration.builder(
clientToken: "your_client_token",
environment: "production"
).build()
)
RUM.enable(
with: RUMConfiguration(applicationID: "your_rum_app_id")
)
return true
}
}
Datadog udostępnia graficzny edytor dashboardów, w którym można łączyć wykresy metryk, tabele logów, treemap rozkładu błędów i widżety SLO. Dashboards obsługują zmienne szablonów - na przykład można stworzyć jeden dashboard dla wszystkich serwisów i przełączać kontekst przez listę rozwijaną z nazwą serwisu. Każdy dashboard można opublikować w trybie tylko do odczytu dla zewnętrznych interesariuszy przez publiczny link.
System Monitors (powiadomień) pozwala ustawić warunki progowe dla dowolnej metryki: jeśli latencja przekracza 500 ms dłużej niż 5 minut - wyślij powiadomienie do Slack, PagerDuty lub e-mailem. Datadog obsługuje złożone warunki: "Jeśli błędy 5xx > 1% i liczba żądań > 1000/min, podnieś priorytet do krytycznego". Dla zespołów mobilnych szczególnie przydatny jest monitor regression detection - Datadog automatycznie porównuje bieżącą metrykę z historyczną linią bazową i powiadamia przy statystycznie istotnym pogorszeniu.
Według danych Gartner Peer Insights (2024), średni czas rozwiązania alertu (MTTR) u zespołów używających monitorów Datadog z automatyczną korelacją spada o 35% w pierwszym miesiącu po wdrożeniu. Osiąga się to dzięki temu, że każde powiadomienie zawiera nie tylko warunek uruchomienia, ale także link do powiązanych dashboardów, logów i trace'y - programista nie musi przełączać się między narzędziami.
Często zadawane pytania
Datadog wyróżnia się jednolitą platformą łączącą metryki, logi, trace'e i RUM w jednym interfejsie. W przeciwieństwie do Grafana + Prometheus (tylko metryki) lub ELK (tylko logi), Datadog zapewnia wbudowaną korelację między wszystkimi typami danych bez konieczności ręcznej konfiguracji integracji.
Koszt zaczyna się od 1 dolara za 10 000 sesji RUM miesięcznie. Dla małych projektów z 50 000 sesji miesięcznie wydatki wyniosą około 5 dolarów. APM i logi są rozliczane osobno. Dla startupów dostępny jest program Datadog for Startups z kredytami do 100 000 dolarów na pierwszy rok.
Datadog SDK obsługuje Android (API 21+, Kotlin i Java), iOS (iOS 13+, Swift i Objective-C) oraz React Native. Dla Flutter i Xamarin dostępne są integracje społecznościowe. SDK jest dystrybuowany przez Maven Central, CocoaPods i Swift Package Manager.
Datadog udostępnia Data Scrubbing - automatyczne usuwanie PII z logów i danych RUM. Można skonfigurować reguły maskowania: zastępować e-mail, telefon i karty kredytowe hashem lub gwiazdkami. Dane są szyfrowane podczas transmisji (TLS 1.3) i przechowywania (AES-256).
Tak, można podłączyć tylko moduł Logs bez APM i RUM. W tym przypadku płaci się tylko za wolumen logów. Datadog rozlicza każdy produkt osobno, co pozwala zacząć od jednego modułu i dodawać kolejne w miarę potrzeb bez ponownej integracji.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również