אנו משלבים את New Relic APM באפליקציות מובייל ל-iOS ול-Android. מערכת זו מציגה לא רק קריסות אלא גם האטות בממשק המשתמש, בקשות רשת איטיות וירידות בהמרות. אתה מקבל מעקב יחיד מהקשה על כפתור ועד שאילתת SQL — ללא צורך במתאם נוסף. כותרת newrelic (W3C TraceContext) מועברת אוטומטית. ב-New Relic One, ניתן לפתוח בקשת HTTP מהאפליקציה ולצלול לתוך מעקב השרת. השלמנו יותר מ-30 אינטגרציות לפרויקטים עם קהל של 50,000 משתמשים פעילים יומיים (DAU). אנו מבטיחים יציבות ניטור ודגימה נכונה.
מדוע Distributed Tracing הוא חובה לניטור מובייל
ללא Distributed Tracing, אתה רואה רק את הצד של הלקוח. אם בקשה נכשלת עם שגיאת 500 בשרת, לא תדע את הסיבה. עם ניטור מעקב מופעל, כל קריאת HTTP מקבלת מזהה ייחודי. סוכן המובייל מוסיף כותרות traceparent ו-tracestate. סוכן New Relic בצד השרת קולט אותן ויוצר מעקב יחיד. אתה רואה תזמון לכל קטע: קריאת רשת, SQL, מטמון. תיעוד New Relic ממליץ להפעיל Distributed Tracing עבור כל היישומים עם ארכיטקטורת מיקרוסרביסים.
כיצד להתקין את סוכן New Relic על iOS ו-Android
iOS באמצעות Swift Package Manager:
// Package.swift
.package(url: "https://github.com/newrelic/newrelic-ios-agent-spm", from: "7.4.0")
// AppDelegate.application(_:didFinishLaunchingWithOptions:)
import NewRelic
NewRelic.start(withApplicationToken: "AA-XXXXXXXX-XXXX")Android באמצעות Gradle:
// build.gradle (project level)
classpath("com.newrelic.agent.android:agent-gradle-plugin:7.+")
// build.gradle (app level)
apply plugin: 'newrelic'
implementation("com.newrelic.agent.android:android-agent:7.+")
// Application.onCreate()
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX")
.withLoggingEnabled(false)
.start(applicationContext)לאחר ההתקנה, הסוכן מבצע אינסטרומנטציה אוטומטית של קריאות HTTP: iOS מיירט את URLSession באמצעות swizzling, ו-Android באמצעות אינסטרומנטציה של bytecode עבור OkHttp ו-HttpURLConnection. אם אתה משתמש בשכבות רשת מותאמות אישית (NWConnection, URLProtocol מותאם אישית), ודא שהמעקב עובד במפורש.
כיצד לוודא אינסטרומנטציה אוטומטית
מיד לאחר ההשקה, פתח את הכרטיסייה // Package.swift .package(url: "https://github.com/newrelic/newrelic-ios-agent-spm", from: "7.4.0") // AppDelegate.application(_:didFinishLaunchingWithOptions:) import NewRelic NewRelic.start(withApplicationToken: "AA-XXXXXXXX-XXXX") ב-New Relic One. אם בקשות מופיעות עם משכים וסטטוסים נכונים, האינטגרציה מוגדרת כראוי. אחרת, בדוק שהסוכן מאותחל לפני בקשת הרשת הראשונה.
מה זה Distributed Tracing וכיצד להפעיל אותו
Distributed Tracing מופעל כברירת מחדל רק עבור Infinite Tracing. עבור דגימה רגילה, הוסף:
NewRelic.enableFeatures([.NRFeatureFlag_DistributedTracing]) ב-Android, אין צורך בדגל דומה — המעקב פועל לאחר הפעלה בהגדרות New Relic. כותרת TraceContext מועברת אוטומטית לבקשות השרת, שם סוכן New Relic APM קולט אותה ויוצר מעקב יחיד.
כיצד אירועים מותאמים אישית משפרים מדדים עסקיים
אירועים מותאמים אישית מאפשרים מעקב אחר משפכים עסקיים. לדוגמה, רשום אירוע // build.gradle (project level) classpath("com.newrelic.agent.android:agent-gradle-plugin:7.+") // build.gradle (app level) apply plugin: 'newrelic' implementation("com.newrelic.agent.android:android-agent:7.+") // Application.onCreate() NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX") .withLoggingEnabled(false) .start(applicationContext) עם מאפיינים Distributed traces, NewRelic.enableFeatures([.NRFeatureFlag_DistributedTracing]) , CheckoutCompleted.
// iOS
NewRelic.recordCustomEvent("CheckoutCompleted", attributes: ["order_id": orderId, "total": total, "payment_method": method])
// Android
NewRelic.recordCustomEvent("CheckoutCompleted", mapOf("order_id" to orderId, "total" to total))אירועים אלה זורמים ל-NRQL — שפה חזקה דמוית SQL. אנו בונים לוחות מחוונים עם סדרות זמן, FACET לפי שיטות תשלום, ומחשבים המרת משפך.
מעקב אחר שגיאות וקריסות
קריסות נאספות אוטומטית. חריגות מטופלות נרשמות במפורש:
// iOS
do {
try performPayment()
} catch {
NewRelic.recordError(error, attributes: ["context": "checkout"])
}
// Android
NewRelic.recordError(exception, mapOf("context" to "checkout"))דוחות קריסה כוללים Thread State של כל ה-threads, אירועי ANR, ו-Breadcrumb Trail — רצף פעולות שהוביל לקריסה.
מדוע New Relic עדיף על Firebase Crashlytics עבור מדדים עסקיים
| קריטריון | New Relic APM | Firebase Crashlytics |
|---|---|---|
| סוג ניטור | ביצועים + שגיאות | שגיאות בלבד |
| Distributed Tracing | כן, עד לשאילתת SQL | לא |
| אירועים עסקיים מותאמים אישית | כן, עם NRQL | יומני שגיאות בלבד |
| התראות על המרות | כן, מבוסס על NRQL | לא |
| חשבון יחיד עם השרת | כן | לא |
New Relic מאפשר לך להגדיר התראה על ירידה בשיעור ללא קריסות מתחת ל-99.5% או לתאם בין שיעור שגיאות רשת למדד עסקי. Firebase לא מציעה זאת.
כיצד אנו מגדירים התראות NRQL
התראות טיפוסיות שאנו מגדירים:
| מדד | תנאי | ערוץ הודעה |
|---|---|---|
| שיעור ללא קריסות | < 99.5% | Slack |
| משך ממוצע של בקשת HTTP | > 2 שניות | PagerDuty |
| המרת תשלום | ירידה > 10% בשעה | דוא"ל |
דוגמה לתצורת סוכן עבור Android
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX")
.withLoggingEnabled(true)
.withCrashReporting(true)
.withHttpResponseBodyCaptureEnabled(true)
.start(applicationContext) כיצד אנו מיישמים את New Relic
- ניתוח האפליקציה הנוכחית — זיהוי תרחישים מרכזיים, בקשות רשת, אירועים עסקיים.
- התקנת הסוכן על iOS ו-Android, אימות אינסטרומנטציה אוטומטית של HTTP.
- הגדרת Distributed Tracing עם סוכן השרת, אימות מעקבים.
- יצירת אירועים מותאמים אישית למשפך העסקי — רישום, צפייה, רכישה.
- הגדרת התראות NRQL עם הודעות ל-Slack/PagerDuty.
- מסירת תיעוד — לוחות מחוונים, התראות, הוראות לשיפורים נוספים.
מה כלול בעבודה
- התקנת סוכן iOS/Android (כולל React Native באמצעות
order_id) - אימות אינסטרומנטציה אוטומטית של HTTP
- הגדרת Distributed Tracing
- אירועים מותאמים אישית למשפך העסקי
- התראות NRQL
- תיעוד ללוחות מחוונים והתראות
- הדרכת צוות על New Relic One
- תמיכה למשך שבועיים לאחר השחרור
ציר זמן
אינטגרציה בסיסית עם אינסטרומנטציה אוטומטית: 1–2 ימים. אירועים מותאמים אישית ולוחות מחוונים: +יום אחד. העלות נקבעת בנפרד עבור הפרויקט שלך.
קבל ייעוץ על אינטגרציית New Relic לאפליקציית המובייל שלך — צור קשר כדי לדון בפרטים. הזמן הגדרת ניטור היום.







