Performance
L'onglet Performances affiche un aperçu détaillé des différents indicateurs clés de performance (KPI) et graphiques liés aux performances des applications. L'onglet Performances vous permet de surveiller, d'analyser et de suivre les indicateurs clés de performance (KPI) qui affectent l'expérience utilisateur et la stabilité des applications. Les indicateurs clés de performance vous aident à identifier les tendances, à optimiser les performances et à garantir une expérience utilisateur fluide sur les différentes versions de l'application.
Technologies prises en charge
La fonctionnalité de collecte des mesures de performance d' Instana s'applique aux applications natives Android et iOS. Cette fonctionnalité est disponible dans les versions suivantes de l'agent :
- Instana Agent Android 6.2.0 ou version ultérieure
- Instana iOS agent 1.9.0 ou version ultérieure
Activation de la collecte des mesures de performance dans l'agent Android
Assurez-vous que le plug-in et le SDK de l'agent Android d' Instana sont intégrés à votre application Android. Pour plus d'informations, consultez les instructions relatives à l'agent Android.
Pour activer la collecte des mesures de performances dans l'agent Android, définissez les propriétés sur true lorsque la Instana.setup() méthode est appelée, comme indiqué dans l'exemple suivant :
class ExampleApp : Application() {
override fun onCreate() {
super.onCreate()
val perf = PerformanceMonitorConfig(
enableAppStartTimeReport = true, // Enable App start time metrics
enableAnrReport = true, // Enable ANR metrics
anrThresholdMs = 5, // This is the wait time until agent report an ANR
enableLowMemoryReport = true) // Enable Low Memory metrics
val instanaConfig = InstanaConfig(
key = "YOUR_APP_KEY",
reportingURL = "YOUR_REPORTING_URL",
enableCrashReporting = true,
performanceMonitorConfig = perf
)
Instana.setup(this, instanaConfig)
}
}
Activation de la collecte des mesures de performances dans l'agent d' iOS
Assurez-vous que l'agent Instana iOS est installé. Pour plus d'informations, consultez les instructions de l'agent d' iOS.
Pour activer la collecte des mesures de performances pour l'agent iOS, définissez les propriétés sur true lorsque la Instana.setup() méthode est appelée, comme illustré dans l'exemple suivant :
import UIKit
import InstanaAgent
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let options = InstanaSetupOptions(enableCrashReporting: true)
options.perfConfig = InstanaPerformanceConfig(
enableAppStartTimeReport = true, // Enable App start time metrics
enableAnrReport: true, // Enable ANR metrics
anrThreshold: 5.0, // This is the wait time until agent report an ANR
enableLowMemoryReport = true) // Enable Low Memory metrics
Instana.setup(
key: "YOUR_APP_KEY",
reportingURL: "YOUR_REPORTING_URL",
options: options
)
return true
}
}
Affichage de l'onglet Performances dans l'interface utilisateur d' Instana
Une fois que vous avez activé la collecte des mesures de performances pour une application, les données relatives aux performances sont envoyées à Instana. Vous pouvez analyser les indicateurs de performance pour mieux comprendre le comportement de l'application et optimiser ses performances.
Pour afficher le tableau de bord des performances, procédez comme suit :
Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez Sites Web et applications mobiles.
Sélectionnez Applications mobiles.
Cliquez sur un élément dans la liste des applications mobiles.
Sélectionnez l'onglet Performances.
Figure 1. Onglet Performances de l'application mobile 
Indicateur de performance pour les applications qui ne répondent pas (ANR)
La surveillance de l'ANR est essentielle pour identifier et résoudre les problèmes de performances dans les applications Android et iOS. Si le thread principal d'une application est bloqué trop longtemps, cela déclenche une erreur ANR, qui perturbe l'expérience utilisateur. Ce résultat peut entraîner l'insatisfaction des utilisateurs, de mauvaises critiques et une diminution de l'interaction avec les utilisateurs. En suivant les ANR, vous pouvez identifier et améliorer les obstacles à la performance, restructurer le code pour alléger les tâches lourdes et utiliser des méthodes qui garantissent des interactions réactives avec les utilisateurs.
Affichage de la section KPI ANR dans l'onglet Performances
Dans l'onglet Performances, deux sections KPI ont été ajoutées pour surveiller et analyser l'impact des ANR et des blocages d'applications sur les sessions utilisateur et les utilisateurs en général. Ces sections consacrées aux indicateurs clés de performance fournissent des informations sur les performances des applications et l'expérience utilisateur.
L'application ne répond pas ou les sessions affectées se figent
La section KPI pour les sessions affectées par des ANR affiche le pourcentage de sessions au cours desquelles les utilisateurs ont rencontré des ANR ou des blocages d'application en fonction de la plage horaire sélectionnée. Vous pouvez calculer le nombre de sessions affectées par des ANR en divisant le nombre de sessions au cours desquelles des ANR se sont produits par le nombre total de sessions uniques, comme indiqué dans la formule suivante.
ANR affected sessions = (Number of sessions with ANRs / Total number of unique sessions) * 100
Vous pouvez utiliser cette formule pour calculer le pourcentage de sessions ayant connu des ANR. De cette manière, vous pouvez identifier les utilisateurs qui rencontrent des problèmes de performances pendant leurs sessions.
L'application ne répond pas ou se bloque pour les utilisateurs concernés
La section KPI pour les utilisateurs affectés par des ANR affiche le pourcentage d'utilisateurs uniques qui ont rencontré des ANR ou des blocages d'application au cours de leur(s) session(s) en fonction de la plage horaire sélectionnée. Vous pouvez calculer le nombre d'utilisateurs concernés par les ANR en divisant le nombre d'utilisateurs pour lesquels des ANR se sont produits par le nombre total d'utilisateurs uniques, comme indiqué dans la formule suivante.
ANR affected users = (Number of users with ANRs / Total number of unique users) * 100
Vous pouvez utiliser cette formule pour identifier les utilisateurs uniques concernés par les ANR. Cette formule donne un aperçu de l'expérience utilisateur et aide à identifier les domaines susceptibles d'être améliorés.
Application ne répondant pas ou gelant le graphique
Le graphique correspond à la fréquence des ANR, classées par plateforme d'applications mobiles ( iOS ou Android) pour une période donnée. L'axe des x représente l'horodatage de la balise et l'axe des y représente le nombre total de balises. Les filtres de plateforme peuvent être sélectionnés à partir du graphique, ce qui vous aide à visualiser le nombre de balises spécifiques à chaque plateforme.
L'application ne répond pas ou se bloque
Si votre balise ANR contient une trace de pile, vous pouvez afficher les messages d'erreur générés pour la balise dans le tableau Application ne répondant pas ou bloquée. Les ANR sont regroupés par message d'erreur.
Pour afficher les détails de l'ANR, cliquez sur le message d'erreur. La page détaillée comprend les occurrences, le nombre d'utilisateurs concernés, la trace de la pile, les versions de l'application, les vues, le système d'exploitation et le nom de l'appareil sur lequel l'ANR s'est produit. Ces informations aident les développeurs à comprendre la cause profonde du signal ANR.
Pour explorer les informations relatives au fil :
Cliquez sur Tous les threads pour afficher la trace brute de tous les threads actifs.
Cliquez sur Threads ciblés pour afficher le nom du thread, son état et la trace de pile des threads concernés par l'ANR.

Indicateur de performance pour le temps de démarrage ou de lancement de l'application
Le temps de démarrage ou de lancement d'une application désigne le temps nécessaire à l'application pour devenir pleinement interactive. Le suivi de cet indicateur de performance aide les développeurs à optimiser les temps de démarrage et à améliorer l'expérience utilisateur globale.
Les heures de démarrage des applications sont classées en trois types :
Démarrage à froid : se produit lorsque l'application est lancée à partir d'un état terminé sans aucun processus existant en mémoire. Le démarrage à froid est généralement le type de démarrage le plus lent et celui qui prend le plus de temps.
Démarrage à chaud : se produit lorsque l'application est relancée à partir d'un état d'arrière-plan. Peu de ressources mémoire sont mises en cache ou présentes dans la mémoire, de sorte que le démarrage à chaud nécessite moins de temps que le démarrage à froid.
Démarrage à chaud : se produit lorsque l'application est déjà en cours d'exécution en arrière-plan et que le système ramène l'activité de l'application au premier plan. Comme l'application est active en mémoire, le système n'a pas besoin de répéter l'initialisation ni de charger à nouveau les ressources, ce qui lui permet de redémarrer instantanément avec un temps de démarrage ultra-rapide.
Carte KPI « Temps de démarrage à froid »
La carte KPI « Temps de démarrage à froid » de l'onglet « Performances » indique le 75e centile des démarrages à froid sur une période pendant laquelle l'application est lancée à partir d'un état complètement arrêté. La métrique indique que 75 % des baisses observées de la durée du démarrage à froid sont inférieures à cette valeur au cours d'une période donnée.
Ce calcul de la métrique de démarrage à froid aide à évaluer les performances typiques de l'application en matière de démarrage à froid. Il exclut les 25 % des temps de démarrage les plus lents qui pourraient être influencés par des valeurs aberrantes ou des conditions extrêmes. L'agrégation du 75e centile (également appelé troisième quartile) est plus robuste face aux valeurs aberrantes et fournit une vision plus réaliste des performances de l'application que le calcul de la moyenne.
La carte KPI « Temps de démarrage à froid » aide les développeurs à mieux représenter les performances des applications en identifiant les tendances et l'expérience de la majorité des utilisateurs. Cela leur permet de cibler les optimisations pour accélérer le démarrage des applications et améliorer l'expérience utilisateur globale.
Tableau des temps de démarrage à froid
Le graphique du temps de démarrage à froid de l'onglet Performances indique le 75e percentile des temps de démarrage à froid catégorisés par plateforme Android et iOS sur une période sélectionnée.
Axe X : horodatages des balises (série chronologique).
Axe Y : 75e centile des durées de démarrage à froid sur la période sélectionnée.
Le graphique des temps de démarrage à froid permet aux développeurs d'analyser le 75e centile des temps de démarrage à froid par plateforme ( iOS et Android) et d'identifier les goulots d'étranglement spécifiques à chaque plateforme ainsi que les possibilités d'optimisation.
Indicateur de performance pour mémoire insuffisante
Les événements de mémoire insuffisante se produisent lorsqu'un appareil manque de ressources, ce qui entraîne un ralentissement des réponses et des plantages. Cela pourrait nuire à l'expérience utilisateur et avoir un impact significatif sur l'activité. Il est essentiel de signaler les événements de mémoire insuffisante à Instana afin que les développeurs puissent rapidement identifier les problèmes sous-jacents et fournir des solutions appropriées.
Tableau de mémoire insuffisante
Le graphique correspond à la fréquence des événements de mémoire insuffisante, classés par plateforme d'application mobile ( iOS ou Android) pour une période donnée. L'axe des x représente l'horodatage de la balise et l'axe des y représente le nombre total de balises. Les filtres de plateforme peuvent être sélectionnés à partir du graphique, ce qui vous aide à visualiser le nombre de balises spécifiques à chaque plateforme.
Indicateur de performance pour l'utilisation excessive du réseau en arrière-plan (ENU)
Pour optimiser les performances des applications et la santé des appareils, chaque plateforme dispose de directives visant à limiter l'utilisation excessive du réseau en arrière-plan. Si une application dépasse ces seuils, Instana alerte l'utilisateur, ce qui permet aux développeurs d'ajuster leur code et d'optimiser les processus en arrière-plan afin d'atténuer ces problèmes.
Pour activer la surveillance d' Instana s concernant les occurrences ENU, les paramètres trustDeviceTiming et enableBackgroundEnuReport ( voir Surveillance Android API ) doivent être définis sur « true ». Les balises ENU ne sont déclenchées que lorsque l'utilisation des données en arrière-plan dépasse 50 Mo et sont limitées à une occurrence par période de 24 heures. Cette fonctionnalité n'est prise en charge que sur les appareils Android fonctionnant sous la version 21 d' API, ou une version ultérieure, et n'est pas disponible lorsque l'application utilise des widgets. Les restrictions de la plateforme iOS ne permettent pas la prise en charge de cette fonctionnalité.