Exporter la télémétrie depuis Application Insights

Souhaitez-vous conserver votre télémétrie plus longtemps que la période de conservation standard ? Ou voulez-vous la traiter d’une manière spécialisée ? L’exportation continue est idéale à cet effet. Les événements que vous voyez dans le portail Application Insights peuvent être exportés vers le stockage dans Azure au format JSON. À partir de là, vous pouvez télécharger vos données et écrire le code dont vous avez besoin pour les traiter.

Important

Avant de configurer l’exportation continue, d’autres options doivent être prises en considération :

Une fois que l’exportation continue a copié vos données dans le stockage, où elles peuvent rester aussi longtemps que vous le souhaitez, elles restent disponibles dans Application Insights pendant la période de conservation habituelle.

Régions prises en charge

L’exportation continue est prise en charge dans les régions suivantes :

  • Asie Sud-Est
  • Centre du Canada
  • Inde centrale
  • Europe Nord
  • Sud du Royaume-Uni
  • Australie Est
  • Japon Est
  • Centre de la Corée
  • France Centre
  • Asie Est
  • USA Ouest
  • USA Centre
  • USA Est 2
  • États-Unis - partie centrale méridionale
  • USA Ouest 2
  • Afrique du Sud Nord
  • Centre-Nord des États-Unis
  • Brésil Sud
  • Suisse Nord
  • Sud-Australie Est
  • Ouest du Royaume-Uni
  • Allemagne Centre-Ouest
  • Suisse Ouest
  • Centre de l’Australie 2
  • Émirats arabes unis Centre
  • Brésil Sud-Est
  • Centre de l’Australie
  • Émirats arabes unis Nord
  • Norvège Est
  • OuJapon Est

Notes

L’exportation continue fonctionnera encore pour les applications des régions USA Est et Europe Ouest si l’exportation a été configurée avant le 23 février 2021. Les nouvelles règles d’exportation continue ne peuvent être configurées sur aucune application des régions USA Est ou Europe Ouest, quel que soit le moment où l’application a été créée.

Configuration de stockage avancée de l’exportation continue

L’exportation continue ne prend pas en charge les fonctionnalités ou configurations du Stockage Azure suivantes :

Créer une exportation continue

Notes

Une application ne peut pas exporter plus de 3 To de données par jour. Si plus de 3 To sont exportés par jour, l’exportation est désactivée. Pour exporter sans limite, utilisez l’exportation basée sur les paramètres de diagnostic.

  1. Dans la ressource Application Insights de votre application, sous Configurer, à gauche, ouvrez Exportation continue et sélectionnez Ajouter.

  2. Choisissez les types de données de télémétrie que vous souhaitez exporter.

  3. Créez ou sélectionnez un compte de Stockage Azure où vous voulez stocker les données. Pour plus d’informations sur les options des tarifs de stockage, consultez la page des tarifs.

    Sélectionnez Ajouter>Destination de l’exportation>Compte de stockage. Ensuite, créez un magasin ou choisissez un magasin existant.

    Avertissement

    Par défaut, l’emplacement de stockage est défini dans la même région géographique que votre ressource Application Insights. Si vous utilisez une autre région pour le stockage, des frais de transfert peuvent vous être facturés.

  4. Créez ou sélectionnez un conteneur dans votre stockage.

Notes

Une fois que vous avez créé votre exportation, les données nouvellement ingérées commencent à circuler vers le Stockage Blob Azure. L’exportation continue transmet uniquement la nouvelle télémétrie créée ou ingérée après l’activation de l’exportation continue. Les données qui existaient avant l’activation de l’exportation continue ne sont pas exportées. Aucune méthode n’est prise en charge pour exporter rétroactivement des données précédemment créées à l’aide de l’exportation continue.

Il peut y avoir un délai d'environ une heure avant que les données n’apparaissent dans le stockage.

Une fois la première exportation terminée, vous trouverez la structure suivante dans votre conteneur de Stockage Blob. (Cette structure varie en fonction des données que vous collectez.)

Nom Description
Disponibilité Consigne les tests web de disponibilité.
Event Événements personnalisés générés par TrackEvent().
Exceptions Signale des exceptions sur le serveur et dans le navigateur.
Messages Envoyé par TrackTrace et par les adaptateurs de journalisation.
Métriques Généré par les appels d’API des métriques.
PerformanceCounters Compteurs de performances collectés par Application Insights.
Demandes Envoyées par TrackRequest. Les modules standards utilisent les requêtes pour consigner le temps de réponse du serveur, mesuré au niveau du serveur.

Modifier l’exportation continue

Sélectionnez Exportation continue puis le compte de stockage à modifier.

Arrêter l’exportation continue

Pour arrêter l’exportation, sélectionnez Désactiver. Lorsque vous sélectionnez à nouveau Activer, l’exportation redémarre avec de nouvelles données. Vous n’obtiendrez pas les données qui sont arrivées sur le portail alors que l’exportation était désactivée.

Pour arrêter définitivement l’exportation, supprimez-la simplement. Cette opération ne supprime pas vos données du stockage.

Impossible d’ajouter ou de modifier une exportation ?

Pour ajouter ou modifier des exportations, vous devez disposer de droits d’accès de propriétaire, de contributeur ou de contributeur Application Insights. En savoir plus sur les rôles.

Quels sont les événements que vous obtenez ?

Les données exportées sont la télémétrie brute que nous recevons de votre application, à laquelle s’ajoutent des données de localisation provenant de l’adresse IP du client.

Les données qui ont été ignorées par l’échantillonnage ne sont pas incluses dans les données exportées.

Les autres mesures calculées ne sont pas incluses. Par exemple, nous n’exportons pas l’utilisation moyenne du processeur, mais nous exportons la télémétrie brute à partir de laquelle la moyenne est calculée.

Les données incluent également les résultats de n’importe quel test web de disponibilité que vous avez configuré.

Notes

Si votre application envoie beaucoup de données, la fonctionnalité d’échantillonnage peut fonctionner et envoyer seulement une partie de la télémétrie générée. En savoir plus sur l'échantillonnage.

Inspection des données

Vous pouvez inspecter le stockage directement sur le portail. Sélectionnez Accueil dans le menu le plus à gauche. En haut, où il est indiqué Services Azure, sélectionnez Comptes de stockage. Sélectionnez le nom du compte de stockage, puis, dans la page Vue d’ensemble, sélectionnez Services>Objets blob. Enfin, sélectionnez le nom du conteneur.

Pour examiner le Stockage Azure dans Visual Studio, sélectionnez Afficher, >Cloud Explorer. Si vous n’avez pas cette commande de menu, vous devez installer le SDK Azure. Ouvrez la boîte de dialogue Nouveau projet, développez Visual C#/Cloud, puis sélectionnez Obtenir Microsoft Azure SDK pour .NET.

Lorsque vous ouvrez votre magasin d’objets blob, vous voyez un conteneur avec un ensemble de fichiers blob. Vous verrez l’URI de chaque fichier dérivé du nom de votre ressource Application Insights, sa clé d’instrumentation, ainsi que le type, la date et l’heure de la télémétrie. Le nom de la ressource est tout en minuscules et la clé d’instrumentation omet les tirets.

Capture d’écran montrant l’inspection du magasin d’objets blob avec un outil approprié.

Notes

Le support de l’ingestion de clé d’instrumentation prendra fin le 31 mars 2025. L’ingestion de clé d’instrumentation continuera de fonctionner, mais nous ne fournirons plus de mises à jour ni de support pour la fonctionnalité. Passez aux chaînes de connexion pour tirer parti des nouvelles fonctionnalités.

La date et l’heure sont au format UTC, et correspondent au moment où la télémétrie a été placée dans le magasin, et pas au moment où elle a été générée. C’est pour cette raison que, si vous écrivez du code pour télécharger les données, il peut parcourir les données de façon linéaire.

Voici le format du chemin d’accès :

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

Où :

  • blobCreationTimeUtc correspond à l’heure de création de l’objet blob dans le stockage de préproduction interne.
  • blobDeliveryTimeUtc correspond à l’heure de copie de l’objet blob dans le stockage de destination de l’exportation.

Format de données

Les données sont formatées de telle sorte que :

  • Chaque objet blob est un fichier texte qui contient plusieurs lignes séparées par des \n. Il contient les données de télémétrie traitées sur une période de trente secondes environ.

  • Chaque ligne représente un point de données de télémétrie, par exemple une demande ou un affichage de page.

  • Chaque ligne est un document JSON sans mise en forme. Si vous souhaitez afficher les lignes, ouvrez le blob dans Visual Studio, puis sélectionnez Modifier>Avancé>Format de fichier.

    Capture d’écran montrant l’affichage de la télémétrie avec un outil approprié

Les durées sont exprimées en nombre de cycles, où 10 000 cycles = 1 ms. Par exemple, ces valeurs indiquent une durée de 1 ms pour envoyer une demande à partir du navigateur, 3 ms pour la recevoir et 1,8 s pour traiter la page dans le navigateur :

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

Pour obtenir des informations de modèle de données détaillé concernant les types et les valeurs de propriétés, consultez Modèle d’exportation de données Application Insights.

Traiter les données

À petite échelle, vous pouvez écrire du code pour décomposer vos données et les lire dans une feuille de calcul. Par exemple :

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

Pour obtenir un exemple de code plus long, consultez Utilisation d’un rôle de travail.

Supprimer les anciennes données

Il vous incombe de gérer votre capacité de stockage et de supprimer les anciennes données, le cas échéant.

Régénérer votre clé de stockage

Si vous modifiez la clé de votre stockage, l’exportation continue cesse de fonctionner. Vous voyez alors une notification dans votre compte Azure.

Sélectionnez l’onglet Exportation continue, puis modifiez votre exportation. Modifiez la valeur Destination de l’exportation, mais laissez le même stockage sélectionné. Sélectionnez OK pour confirmer.

L’exportation continue redémarre.

Exemples d’exportation

Pour obtenir des exemples d’exportation, consultez :

À plus grande échelle, envisagez d’utiliser des clusters Hadoop HDInsight dans le cloud. HDInsight fournit diverses technologies pour la gestion et l’analyse du Big Data. Vous pouvez l’utiliser pour traiter des données qui ont été exportées à partir d’Application Insights.

Forum aux questions

Cette section fournit des réponses aux questions fréquentes.

Puis-je obtenir un téléchargement occasionnel d’un graphique ?

C’est possible. En haut de l’onglet, sélectionnez Exporter des données.

J’ai configuré une exportation, mais pourquoi n’y a-t-il pas de données dans mon magasin ?

Application Insights a-t-il reçu de la télémétrie de votre application depuis que vous avez configuré l’exportation ? Vous recevrez uniquement les nouvelles données.

J’ai essayé de configurer une exportation, mais pourquoi l’accès m’a-t-il été refusé ?

Si le compte appartient à votre organisation, vous devez être membre des groupes Propriétaires ou Contributeurs.

Puis-je exporter directement vers mon propre magasin local ?

Non. Actuellement, notre moteur d’exportation fonctionne uniquement avec le Stockage Azure.

Existe-t-il une limite à la quantité de données qu’il est possible de placer dans mon magasin ?

Non. Nous transmettons les données jusqu’à ce que vous supprimiez l’exportation. Nous arrêterons si nous atteignons les limites extrêmes du Stockage Blob, mais cette limite représente un volume très important. C’est à vous de contrôler la quantité de stockage vous utilisez.

Combien d’objets blob devrais-je voir dans le stockage ?

  • Pour chaque type de données que vous avez choisi d’exporter, un objet blob est créé toutes les minutes, si les données sont disponibles.
  • Pour les applications avec un trafic élevé, des unités de partition supplémentaires sont allouées. Dans ce cas, chaque unité crée un objet blob par minute.

J’ai régénéré la clé de mon stockage ou modifié le nom du conteneur, mais pourquoi l’exportation ne fonctionne-t-elle pas ?

Modifiez l’exportation et sélectionnez l’onglet Destination de l’exportation. Conservez le même stockage que celui sélectionné précédemment, puis sélectionnez OK pour confirmer. L’exportation redémarre. Si la modification a eu lieu dans les derniers jours, vous ne perdrez pas de données.

Est-il possible de suspendre l’exportation ?

Oui. Sélectionnez Désactiver.

Exemples de code

Exportation basée sur les paramètres de diagnostic

L’exportation des paramètres de diagnostic est recommandée, car elle fournit des fonctionnalités supplémentaires :

  • Comptes de stockage Azure avec des réseaux virtuels, des pare-feu et des liaisons privées.
  • Exportation vers Azure Event Hubs.

L’exportation des paramètres de diagnostic diffère davantage de l’exportation continue de la manière suivante :

  • Schéma mis à jour.
  • Les données de télémétrie sont envoyées à mesure qu’elles arrivent au lieu des chargements par lots.

Important

Des coûts supplémentaires peuvent être facturés en raison d’une augmentation des appels à la destination, comme un compte de stockage.

Pour migrer vers l’exportation des paramètres de diagnostic :

  1. Activez les paramètres de diagnostic sur Application Insights classique.
  2. Configurez votre exportation de données : sélectionnez Paramètres>de diagnostic Ajouter un paramètre de diagnostic à partir de votre ressource Application Insights.
  3. Vérifiez que votre nouvelle exportation de données est configurée de la même façon que vous exportez en continu

Attention

Si vous souhaitez stocker les journaux de diagnostic dans un espace de travail Log Analytics, il existe deux points à prendre en compte pour éviter de voir des données en double dans Application Insights :

  • La destination ne peut pas être le même espace de travail Log Analytics sur lequel repose votre ressource Application Insights.
  • L’utilisateur Application Insights ne peut pas avoir accès aux deux espaces de travail. Définissez le mode de contrôle d’accès Log Analytics sur Exiger des autorisations d’espace de travail. Utilisez le Contrôle d’accès en fonction du rôle Azure pour garantir que l’utilisateur a accès uniquement à l’espace de travail Log Analytics sur lequel est basée la ressource Application Insights.

Ces étapes sont nécessaires car Application Insights accède à la télémétrie de ressources Application Insights, notamment des espaces de travail Log Analytics, pour assurer des opérations de transaction de bout en bout et fournir des cartographies d’application précises. Étant donné que les journaux de diagnostic utilisent les mêmes noms de table, il se peut que la télémétrie s’affiche en double si l’utilisateur a accès à plusieurs ressources qui contiennent les mêmes données.

Modèle d’exportation de données Application Insights

Cette table répertorie les propriétés de télémétrie envoyées à partir des Kits SDK Application Insights au portail. Vous verrez ces propriétés dans les données issues d’une exportation continue. Elles apparaissent également dans les filtres de propriétés, dans Metrics Explorer et dans Recherche de diagnostic.

Points à noter :

  • [0] dans ces tables désigne un point dans le chemin d’accès au niveau duquel vous devez insérer un index ; il ne s’agit pas toujours de 0.
  • Les durées sont énoncées en dixièmes de microsecondes, donc 10000000 = 1 seconde.
  • Les dates et les heures sont indiquées au format UTC, et respectent la norme ISO yyyy-MM-DDThh:mm:ss.sssZ

Exemple

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Context

Tous les types de données de télémétrie sont accompagnés d’une section de contexte. Tous ces champs ne sont pas transmis avec tous les points de données.

Path Type Notes
context.custom.dimensions [0] objet [ ] Paires clé-valeur définies par le paramètre des propriétés personnalisées. Longueur maximale de clé 100, longueur maximale de valeur 1024. Plus de 100 valeurs uniques, la propriété peut faire l’objet d’une recherche, mais ne peut pas être utilisée pour la segmentation. 200 clés maximum par ikey.
context.custom.metrics [0] objet [ ] Paires clé-valeur définies par le paramètre des mesures personnalisées et par TrackMetrics. Longueur maximale de clé 100, les valeurs peuvent être numériques.
context.data.eventTime string UTC
context.data.isSynthetic boolean Requête transmise par un robot ou un test web.
context.data.samplingRate nombre Pourcentage de télémétrie générée par le Kit SDK qui est envoyé vers le portail. Plage 0.0-100.0.
context.device object Appareil client
context.device.browser string IE, Chrome, ...
context.device.browserVersion string Chrome 48.0, ...
context.device.deviceModel string
context.device.deviceName string
context.device.id string
context.device.locale string en-GB, de-DE, ...
context.device.network string
context.device.oemName string
context.device.os string
context.device.osVersion string Système d’exploitation hôte
context.device.roleInstance string ID de l’hôte du serveur
context.device.roleName string
context.device.screenResolution string
context.device.type string PC, navigateur...
context.location object Dérivé de clientip.
context.location.city string Dérivé de clientip, s’il est connu
context.location.clientip string Dernier octogone anonyme (0).
context.location.continent string
context.location.country string
context.location.province string État ou province
context.operation.id string Les éléments qui affichent le même operation id sont représentés en tant qu’éléments associés dans le portail. Généralement le request id.
context.operation.name string nom d’URL ou de requête
context.operation.parentId string Autorise les éléments liés imbriqués.
context.session.id string Id d’un groupe d’opérations de la même source. Une période de 30 minutes sans opération signale la fin d’une session.
context.session.isFirst boolean
context.user.accountAcquisitionDate string
context.user.accountId string
context.user.anonAcquisitionDate string
context.user.anonId string
context.user.authAcquisitionDate string Utilisateur authentifié
context.user.authId string
context.user.isAuthenticated boolean
context.user.storeRegion string
internal.data.documentVersion string
internal.data.id string Unique id attribué lorsqu’un élément est ingéré dans Application Insights

Événements

Événements personnalisés générés par TrackEvent().

Path Type Notes
event [0] count entier 100 / (taux d’échantillonnage ). Par exemple, 4 => 25 %.
event [0] name string Nom de l’événement. Longueur maximale 250.
event [0] url string
event [0] urlData.base string
event [0] urlData.host string

Exceptions

Signale des exceptions sur le serveur et dans le navigateur.

Path Type Notes
basicException [0] assembly string
basicException [0] count entier 100 / (taux d’échantillonnage ). Par exemple, 4 => 25 %.
basicException [0] exceptionGroup string
basicException [0] exceptionType string
basicException [0] failedUserCodeMethod string
basicException [0] failedUserCodeAssembly string
basicException [0] handledAt string
basicException [0] hasFullStack boolean
basicException [0] id string
basicException [0] method string
basicException [0] message string Message d’exception. Longueur maximale 10 000.
basicException [0] outerExceptionMessage string
basicException [0] outerExceptionThrownAtAssembly string
basicException [0] outerExceptionThrownAtMethod string
basicException [0] outerExceptionType string
basicException [0] outerId string
basicException [0] parsedStack [0] assembly string
basicException [0] parsedStack [0] fileName string
basicException [0] parsedStack [0] level entier
basicException [0] parsedStack [0] line entier
basicException [0] parsedStack [0] method string
basicException [0] stack string Longueur maximale 10 000
basicException [0] typeName string

Messages de suivi

Envoyé par TrackTrace et par les adaptateurs de journalisation.

Path Type Notes
message [0] loggerName string
message [0] parameters string
message [0] raw string Le message du fichier journal, longueur maximale 10k.
message [0] severityLevel string

Dépendance distante

Envoyé par TrackDependency. Utilisé pour consigner les performances et l’utilisation des appels aux dépendances dans le serveur, et des appels AJAX dans le navigateur.

Path Type Notes
remoteDependency [0] async boolean
remoteDependency [0] baseName string
remoteDependency [0] commandName string Par exemple, « home/index »
remoteDependency [0] count entier 100 / (taux d’échantillonnage ). Par exemple, 4 => 25 %.
remoteDependency [0] dependencyTypeName string HTTP, SQL, ...
remoteDependency [0] durationMetric.value nombre Délai de l’appel à la fin de la réponse par la dépendance
remoteDependency [0] id string
remoteDependency [0] name string Url. Longueur maximale 250.
remoteDependency [0] resultCode string à partir de la dépendance HTTP
remoteDependency [0] success boolean
remoteDependency [0] type string HTTP, SQL, ...
remoteDependency [0] url string Longueur maximale 2 000
remoteDependency [0] urlData.base string Longueur maximale 2 000
remoteDependency [0] urlData.hashTag string
remoteDependency [0] urlData.host string Longueur maximale 200

Demandes

Envoyées par TrackRequest. Les modules standard les utilisent pour consigner le temps de réponse du serveur, mesuré sur le serveur.

Path Type Notes
request [0] count entier 100 / (taux d’échantillonnage ). Par exemple : 4 => 25 %.
request [0] durationMetric.value nombre Délai entre l’arrivée de la requête et la réponse. 1e7 = 1s
request [0] id string Operation id
request [0] name string GET/POST + base d’URL Longueur maximale 250
request [0] responseCode entier Réponse HTTP envoyée au client
request [0] success boolean Par défaut == (responseCode < 400)
request [0] url string Sans hôte
request [0] urlData.base string
request [0] urlData.hashTag string
request [0] urlData.host string

Performances d’affichage de la page

Envoyées par le navigateur. Mesure le temps de traitement d’une page, du lancement de la requête par l’utilisateur à l’affichage complet (sans les appels asynchrones AJAX).

Les valeurs de contexte représentent la version de système d’exploitation et de navigateur du client.

Path Type Notes
clientPerformance [0] clientProcess.value entier Délai entre la fin de la réception du code HTML et l’affichage de la page.
clientPerformance [0] name string
clientPerformance [0] networkConnection.value entier Temps nécessaire pour l’établissement d’une connexion réseau.
clientPerformance [0] receiveRequest.value entier Délai entre la fin de l’envoi d’une requête et la réception du code HTML en réponse.
clientPerformance [0] sendRequest.value entier Délai nécessaire à l’envoi de la requête HTTP.
clientPerformance [0] total.value entier Délai entre le début d’envoi de la requête et l’affichage de la page.
clientPerformance [0] url string URL de cette requête.
clientPerformance [0] urlData.base string
clientPerformance [0] urlData.hashTag string
clientPerformance [0] urlData.host string
clientPerformance [0] urlData.protocol string

Affichages de pages

Envoyé par trackPageView() ou stopTrackPage

Path Type Notes
view [0] count entier 100 / (taux d’échantillonnage ). Par exemple, 4 => 25 %.
view [0] durationMetric.value entier Valeur éventuellement définie dans trackPageView() ou par startTrackPage() - stopTrackPage(). Pas identique aux valeurs clientPerformance.
view [0] name string Titre de la page. Longueur maximale 250
view [0] url string
view [0] urlData.base string
view [0] urlData.hashTag string
view [0] urlData.host string

Disponibilité

Consigne les tests web de disponibilité.

Path Type Notes
availability [0] availabilityMetric.name string availability
availability [0] availabilityMetric.value nombre 1.0 ou 0.0
availability [0] count entier 100 / (taux d’échantillonnage ). Par exemple, 4 => 25 %.
availability [0] dataSizeMetric.name string
availability [0] dataSizeMetric.value entier
availability [0] durationMetric.name string
availability [0] durationMetric.value nombre Durée du test. 1e7 = 1s
availability [0] message string Diagnostic de défaillance
availability [0] result string Réussite/Échec
availability [0] runLocation string Source géographique de la requête HTTP
availability [0] testName string
availability [0] testRunId string
availability [0] testTimestamp string

Mesures

Généré par TrackMetric().

La valeur de la métrique se trouve dans context.custom.metrics[0]

Par exemple :

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

À propos des valeurs de mesure

Les valeurs de mesure, dans les rapports de mesure et ailleurs, sont consignées avec une structure d’objet standard. Par exemple :

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

Actuellement (cela peut changer à l’avenir), dans l’ensemble des valeurs consignées des modules standard du SDK, count==1 et uniquement les champs name et value sont utiles. Le seul cas où la situation serait différente serait une configuration où vous écririez vos propres appels TrackMetric, dans lesquels vous définiriez les autres paramètres.

Les autres champs ont vocation à autoriser l’agrégation des mesures dans le Kit SDK afin de réduire le trafic dans le portail. Par exemple, vous pouvez décider d’accumuler un nombre défini de valeurs successives avant d’envoyer chaque rapport de mesure. Vous calculeriez ensuite la valeur minimale, la valeur maximale, l’écart standard et la valeur agrégée (somme ou moyenne) et définir le décompte sur le nombre de valeurs représentées par le rapport.

Dans les tableaux ci-dessus, nous avons volontairement omis les champs rarement utilisés count, min, max, stdDev et sampledValue.

Au lieu de pré-agréger les mesures, vous pouvez utiliser l’ échantillonnage si vous avez besoin de réduire le volume de télémétrie.

Durées

Sauf mention contraire, les durées sont indiquées en dixièmes de microseconde. Ainsi, 10000000.0 représente 1s.

Voir aussi