Datadog este o platformă de observabilitate în cloud care combină monitorizarea infrastructurii, APM, logarea și experiența digitală într-o singură interfață. Platforma colectează metrici, trace-uri și loguri de la servere, containere și dispozitive mobile în timp real, permițând echipelor să găsească rapid cauza problemelor. Conform Datadog, 2025, platforma procesează peste 2,5 petabyți de date zilnic de la mii de clienți din întreaga lume. Pentru dezvoltatorii mobili, Datadog oferă SDK-uri native pentru Android și iOS cu colectare automată a metricilor de performanță.
Principalele puncte
Datadog este o platformă cloud pentru monitorizare și observabilitate, lansată în 2010 de Olivier Pomel și Alexis Le-Quioc. Platforma oferă un panou unic pentru colectarea metricilor, logurilor și trace-urilor din infrastructură, aplicații și dispozitive ale utilizatorilor. Spre deosebire de soluțiile punctuale, Datadog combină APM, loguri, monitorizarea infrastructurii, Synthetic Monitoring și RUM într-un singur produs.
Arhitectura Datadog este construită pe agenți - programe ușoare instalate pe servere sau încorporate în aplicații. Agentul colectează date și le trimite către infrastructura cloud Datadog printr-o conexiune criptată. Pentru platformele mobile, Datadog oferă SDK-uri native care funcționează pe Android (Kotlin, Java) și iOS (Swift, Objective-C).
Conform raportului Gartner Magic Quadrant for APM and Observability (2024), Datadog a fost recunoscută ca lider în categoria de observabilitate cu cel mai larg set de capabilități integrate. Platforma este folosită de companii precum Samsung, Adidas și Peloton pentru monitorizarea a milioane de dispozitive zilnic.
Pentru echipele mobile, Datadog este deosebit de valoros deoarece permite legarea performanței backend-ului de experiența utilizatorului pe dispozitiv. Dacă API-ul începe să răspundă mai lent, Datadog arată nu doar timpul de răspuns al serverului, ci și cum a afectat acest lucru timpul de lansare sau randarea ecranului pe un anumit model de telefon.
Infrastructure Monitoring urmărește metricile CPU, memorie, disc și rețea pentru servere, containere și clustere Kubernetes. APM (Application Performance Monitoring) colectează trace-uri pentru fiecare cerere care trece printr-un sistem distribuit și arată întârzierile la fiecare etapă. Log Management centralizează toate logurile - de la sistem la aplicații - cu posibilitatea de căutare full-text și creare de metrici pe baza logurilor. Synthetic Monitoring simulează scenarii ale utilizatorilor din diferite locații geografice. Real User Monitoring (RUM) colectează date de pe dispozitivele reale ale utilizatorilor, inclusiv telefoane și tablete.
Datadog folosește modelul pay-as-you-go cu împărțire pe produse: hosturi de infrastructură, hosturi APM, loguri (volum în gigabyți), sesiuni RUM și teste Synthetic. Fiecare produs este facturat separat, permițând plata doar pentru funcționalitățile utilizate. Costul începe de la 15 dolari per host pe lună pentru monitorizarea infrastructurii și de la 1 dolar pentru 10.000 de sesiuni RUM. Pentru startup-uri este disponibil programul Datadog for Startups cu credite de până la 100.000 de dolari.
Application Performance Monitoring (APM) în Datadog este un sistem de distributed tracing care urmărește fiecare cerere de la momentul intrării în sistem până la finalizarea tuturor operațiunilor imbricate. APM instrumentează automat framework-uri și biblioteci populare: Spring Boot, Django, Express.js, ASP.NET Core și altele. Pentru fiecare cerere, APM construiește un flame graph - o reprezentare vizuală a timpului de execuție a tuturor segmentelor de cod.
Flame graph arată cât timp a luat fiecare apel de funcție sau cerere către un serviciu extern. Dacă o metodă de bază de date se execută în 2 secunde în loc de 200 de milisecunde așteptate, acest lucru este imediat vizibil pe grafic. Datadog APM suportă OpenTelemetry - un standard deschis de colectare a telemetriei, permițând conectarea instrumentației de la orice furnizor compatibil.
Conform Benchling Engineering Blog (2024), migrarea la Datadog APM a permis echipei să reducă timpul de diagnosticare a incidentelor de la 45 de minute la 8 minute datorită corelării automate a trace-urilor cu logurile și metricile. Scenariul cheie este trace-to-log correlation: printr-un singur trace ID se pot găsi toate logurile referitoare la o cerere specifică fără căutare manuală.
Service Map este o diagramă grafică construită automat a tuturor serviciilor sistemului și a interconexiunilor lor. Fiecare serviciu este afișat ca un nod, iar conexiunile dintre noduri arată ce apeluri au loc între servicii. Culoarea nodului reflectă starea de sănătate: verde - funcționare normală, galben - întârziere crescută, roșu - erori. Service Map ajută la identificarea rapidă a serviciului care este un blocaj, chiar fără studierea prealabilă a arhitecturii.
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) în Datadog colectează date de pe dispozitivele reale ale utilizatorilor - timpul de încărcare a ecranelor, răspunsul la atingeri, consumul de memorie, frecvența ANR (Application Not Responding) și rata de crash. SDK-ul RUM pentru Android și iOS este încorporat în aplicație și creează automat sesiuni, grupând toate evenimentele în cadrul unei singure interacțiuni a utilizatorului.
Fiecare sesiune RUM conține o secvență de evenimente: deschiderea ecranului, apăsarea unui buton, cerere de rețea, derulare. Pentru fiecare eveniment, Datadog înregistrează un marcaj temporal, durata și caracteristicile tehnice ale dispozitivului: model, sistem de operare, versiunea aplicației, tipul conexiunii. Acest lucru permite filtrarea metricilor după versiuni și dispozitive specifice. De exemplu, se poate vedea că timpul de lansare a crescut pe Android 14 la utilizarea unui anumit model Samsung.
RUM este strâns integrat cu APM: dacă sesiunea unui utilizator s-a încheiat cu o eroare pe ecranul de plată, Datadog arată automat trace-ul corespunzător din backend. Aceasta accelerează diagnosticarea de 5-7 ori în comparație cu potrivirea manuală a logurilor frontend și backend. Pentru echipele mobile, RUM oferă, de asemenea, rapoarte watchlist - un rezumat săptămânal al deteriorării metricilor cheie.
Datadog RUM colectează automat rapoarte de crash cu stacktrace complet, inclusiv numerele rândurilor de cod sursă. Pentru Android, aceasta funcționează prin integrarea cu ACRA sau Firebase Crashlytics, pentru iOS - prin PLCrashReporter. Fiecare crash este legat de sesiunea utilizatorului, permițând reproducerea secvenței de acțiuni care a dus la cădere. RUM urmărește, de asemenea, ANR - unul dintre cele mai critice evenimente pentru aplicațiile Android. Dacă aplicația nu răspunde mai mult de 5 secunde, Datadog înregistrează ANR și arată un thread dump complet din momentul blocării UI.
Log Management în Datadog centralizează toate logurile aplicației și infrastructurii într-un singur depozit cu căutare full-text. Logurile mobile (evenimente analitice, erori API, telemetrie) sunt trimise de pe dispozitiv prin SDK și combinate cu logurile serverului printr-un identificator comun. Datadog parsează automat logurile în câmpuri structurate: nivel (INFO, WARN, ERROR), serviciu, host, marcaj temporal, mesaj.
Pentru filtrarea logurilor se folosește un limbaj de interogare propriu cu suport pentru wildcard, expresii regulate și fațete. Logurile pot fi grupate după șabloane - Datadog detectează automat modelele repetitive și le arată ca un singur cluster. Acest lucru este deosebit de util la analiza a mii de loguri de pe dispozitive mobile: erorile identice sunt grupate, iar dezvoltatorul vede nu 10.000 de rânduri, ci 10 clustere cu frecvența de apariție.
Metrics sunt serii temporale numerice colectate la intervale de la 1 secundă. Datadog suportă trei tipuri de metrici: gauge (valoarea curentă), count (suma pe interval) și rate (viteza de schimbare). Pentru aplicațiile mobile, metricile personalizate pot urmări numărul de deschideri ale ecranului, timpul de execuție a unui scenariu cheie de business sau frecvența de utilizare a unei funcții specifice. Metricile personalizate sunt trimise prin DogStatsD - un protocol compatibil cu StatsD cu extensii 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 pentru Android și iOS oferă un set unitar de module: Core (inițializare), RUM (monitorizarea experienței utilizatorului), Logs (trimiterea logurilor), Trace (urmărirea cererilor). Pentru Android, SDK-ul se adaugă prin Gradle, pentru iOS - prin CocoaPods sau Swift Package Manager. După instalare, SDK-ul este inițializat în Application.onCreate (Android) sau în AppDelegate (iOS) cu transmiterea client token, environment și a numelui aplicației.
Pentru urmărirea automată a cererilor de rețea pe Android se folosește OkHttp Interceptor, pe iOS - NSURLProtocol sau URLSession delegate. Datadog suportă, de asemenea, integrarea cu clienți HTTP populari: Retrofit, Apollo GraphQL, Ktor, Alamofire. După conectarea Interceptorului, fiecare cerere HTTP este atașată automat la sesiunea RUM și APM-trace, formând un lanț unic de la client la server.
dependencies {
// Modulul principal SDK și RUM
implementation "com.datadoghq:dd-sdk-android-core:2.15.0"
implementation "com.datadoghq:dd-sdk-android-rum:2.15.0"
// Integrare cu OkHttp pentru urmărire automată
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 oferă editorul grafic de dashboard-uri în care se pot combina grafice de metrici, tabele de loguri, treemap de distribuție a erorilor și widget-uri SLO. Dashboard-urile suportă variabile de șabloane - de exemplu, se poate crea un dashboard pentru toate serviciile și se poate comuta contextul printr-o listă derulantă cu numele serviciului. Fiecare dashboard poate fi publicat în modul doar citire pentru părțile interesate externe printr-un link public.
Sistemul Monitors (notificări) permite setarea condițiilor de prag pentru orice metrică: dacă latența depășește 500 ms mai mult de 5 minute - trimite o notificare în Slack, PagerDuty sau prin e-mail. Datadog suportă condiții compuse: „Dacă erorile 5xx > 1% și numărul de cereri > 1000/min, crește prioritatea la critic“. Pentru echipele mobile, monitorul de detectare a regresiei este deosebit de util - Datadog compară automat metrica curentă cu linia de bază istorică și notifică la o deteriorare statistic semnificativă.
Conform Gartner Peer Insights (2024), timpul mediu de rezolvare a alertelor (MTTR) la echipele care folosesc monitoare Datadog cu corelare automată scade cu 35% în prima lună după implementare. Acest lucru se realizează deoarece fiecare notificare conține nu doar condiția de declanșare, ci și linkuri către dashboard-urile, logurile și trace-urile asociate - dezvoltatorul nu trebuie să comute între instrumente.
Întrebări frecvente
Datadog se diferențiază printr-o platformă unică ce combină metrici, loguri, trace-uri și RUM într-o singură interfață. Spre deosebire de Grafana + Prometheus (doar metrici) sau ELK (doar loguri), Datadog oferă corelare integrată între toate tipurile de date fără a fi necesară configurarea manuală a integrărilor.
Costul începe de la 1 dolar pentru 10.000 de sesiuni RUM pe lună. Pentru proiecte mici cu 50.000 de sesiuni pe lună, costurile vor fi de aproximativ 5 dolari. APM și logurile sunt facturate separat. Pentru startup-uri este disponibil programul Datadog for Startups cu credite de până la 100.000 de dolari în primul an.
Datadog SDK suportă Android (API 21+, Kotlin și Java), iOS (iOS 13+, Swift și Objective-C) și React Native. Pentru Flutter și Xamarin sunt disponibile integrări ale comunității. SDK-ul este distribuit prin Maven Central, CocoaPods și Swift Package Manager.
Datadog oferă Data Scrubbing - eliminarea automată a PII din loguri și date RUM. Se pot configura reguli de mascare: înlocuirea e-mailurilor, telefoanelor și cardurilor de credit cu hash sau asteriscuri. Datele sunt criptate în timpul transmisiei (TLS 1.3) și al stocării (AES-256).
Da, se poate conecta doar modulul Logs fără APM și RUM. În acest caz, plătiți doar pentru volumul de loguri. Datadog facturează fiecare produs separat, permițând începerea cu un singur modul și adăugarea celorlalte pe măsură ce apar necesități, fără reintegrare.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și