Partager via


Créer des rapports interactifs avec les cahiers Azure Monitor

Il existe plusieurs façons de créer des rapports et expériences interactifs dans des classeurs :

  • Paramètres : quand vous mettez à jour un paramètre, tout contrôle utilisant celui-ci est automatiquement actualisé et redessiné pour refléter la nouvelle valeur. Ce comportement correspond à la manière dont la plupart des rapports du portail Azure prennent en charge l’interactivité. Les classeurs fournissent cette fonctionnalité très simplement, moyennant un minimum d’effort de la part de l’utilisateur.
  • Sélections de grille, de vignette et de graphique : vous pouvez élaborer des scénarios où la sélection d’une ligne dans une grille met à jour les graphiques qui suivent en fonction du contenu de la ligne. Par exemple, vous pourriez avoir une grille affichant une liste de requêtes et des statistiques telles que des nombres d’échecs. Vous pouvez la configurer de façon à ce que, si vous sélectionnez la ligne d’une demande, les graphiques détaillés situés plus bas sont mis à jour pour n’afficher que cette demande. Découvrez comment configurer un clic sur ligne de grille.
  • Clics sur une cellule de grille : vous pouvez ajouter de l’interactivité avec un type spécial de convertisseur de colonne de grille appelé convertisseur de lien. Un convertisseur de liens convertit une cellule de grille en lien hypertexte en fonction du contenu de la cellule. Les classeurs prennent en charge de nombreux types de convertisseurs de liens, notamment ceux qui ouvrent des volets de vue d’ensemble de ressource, des visionneuses de jeu de propriétés, ainsi que la recherche, l’usage et le suivi des transactions dans Application Insights. Découvrez comment configurer un clic sur une cellule de grille.
  • Visibilité conditionnelle : vous pouvez faire apparaître ou disparaître des contrôles en fonction des valeurs des paramètres. Vous pouvez ainsi obtenir des rapports d’aspects différents en fonction de l’état de l’entrée utilisateur ou de la télémétrie. Par exemple, vous pouvez afficher aux consommateurs un résumé quand il n’y a aucun problème. Vous pouvez également afficher des informations détaillées quand il y a quelque chose de problématique. Découvrez comment configurer la visibilité conditionnelle.
  • Exporter des paramètres avec plusieurs sélections : vous pouvez exporter des paramètres à partir de composants de classeur de requête et de métriques quand une ou plusieurs lignes sont sélectionnées. Découvrez comment Configurer des sélections multiples dans des grilles et des graphiques.

Configurer un clic sur ligne de grille

  1. Vérifiez que vous êtes en mode d’édition en sélectionnant Modifier.

  2. Sélectionnez Ajouter une requête pour ajouter un contrôle de requête de log dans le classeur.

  3. Sélectionnez le type de requête de journal, le type de ressource et les ressources cibles.

  4. Utilisez l’éditeur de requête afin d’entrer le KQL pour votre analyse :

    requests
    | summarize AllRequests = count(), FailedRequests = countif(success == false) by Request = name
    | order by AllRequests desc
    
  5. Sélectionnez Exécuter la requête pour afficher les résultats.

  6. Sélectionnez Paramètres avancés pour ouvrir le menu Paramètres avancés.

  7. Activez la case à cocher Quand un élément est sélectionné, exporter un paramètre.

  8. Sélectionnez Ajouter un paramètre, puis entrez les informations suivantes :

    • Champ à exporter : Request
    • Nom de paramètre : SelectedRequest
    • Valeur par défaut : All requests

    Capture d’écran montrant l’éditeur de classeur Paramètres avancés avec des réglages pour l’exportation de champs en tant que paramètres.

  9. Optionnel. Si vous souhaitez exporter l’intégralité du contenu de la ligne sélectionnée au lieu d’une colonne spécifique, ne définissez pas Champ à exporter. Le contenu de la ligne entière est exporté en tant que JSON vers le paramètre. Sur le contrôle KQL de référence, utilisez la fonction todynamic pour analyser le code JSON et accéder aux colonnes individuelles.

  10. Sélectionnez Enregistrer.

  11. Sélectionnez Modification terminée.

  12. Ajoutez un autre élément de contrôle de requête comme dans les étapes précédentes.

  13. Utilisez l'éditeur de requête afin d'entrer le KQL pour votre analyse.

    requests
    | where name == '{SelectedRequest}' or 'All Requests' == '{SelectedRequest}'
    | summarize ['{SelectedRequest}'] = count() by bin(timestamp, 1h)
    
  14. Sélectionnez Exécuter la requête pour afficher les résultats.

  15. Changez Visualisation en Graphique en aires.

  16. Choisissez une ligne à sélectionner dans la première grille. Notez la manière dont le graphique en aires ci-dessous filtre la requête sélectionnée.

Le rapport obtenu ressemble à l’exemple suivant en mode d’édition :

Capture d’écran montrant des classeurs avec les deux premières requêtes en mode d’édition.

L’image suivant représente un rapport interactif plus élaboré en mode lecture basé sur les mêmes principes. Le rapport utilise des clics sur grille pour exporter des paramètres qui sont ensuite utilisés dans deux graphiques et un bloc de texte.

Capture d’écran montrant un rapport de classeur à l’aide de clics sur une grille.

Configurer des clics sur cellule de grille

  1. Vérifiez que vous êtes en mode d’édition en sélectionnant Modifier.

  2. Sélectionnez Ajouter une requête pour ajouter un contrôle de requête de log dans le classeur.

  3. Sélectionnez le type de requête de journal, le type de ressource et les ressources cibles.

  4. Utilisez l’éditeur de requête afin d’entrer le KQL pour votre analyse :

    requests
    | summarize Count = count(), Sample = any(pack_all()) by Request = name
    | order by Count desc
    
  5. Sélectionnez Exécuter la requête pour afficher les résultats.

  6. Sélectionnez Paramètres de colonne pour ouvrir le volet des paramètres.

  7. Dans la section Colonnes, définissez :

    • Exemple
      • Renderer de colonne : Link
      • Affichage à ouvrir : Cell Details
      • Étiquette du lien : Sample
    • Nombre
      • Renderer de colonne : Bar
      • Palette de couleurs : Blue
      • Valeur minimale : 0
    • Requête
      • Renderer de colonne : Automatic
  8. Sélectionnez Enregistrer et fermer pour appliquer les modifications.

    Capture d’écran montrant le volet Modifier les paramètres de colonne.

  9. Sélectionnez un échantillon de lien dans la grille pour ouvrir un volet contenant les détails d’une demande échantillonnée.

    Capture d’écran montrant le volet Détails de l’échantillon de requête.

Découvrez comment les actions de lien fonctionnent pour améliorer l’interactivité du classeur.

Définir la visibilité conditionnelle

  1. Suivez les étapes décrites dans la section Configurer un clic sur ligne de grille pour configurer deux contrôles interactifs.

  2. Ajoutez un nouveau paramètre avec ces valeurs :

    • Nom de paramètre : ShowDetails
    • Type de paramètre : Drop down
    • Obligatoire : checked
    • Récupérer des données à partir de : JSON
    • Entrée JSON : ["Yes", "No"]
  3. Sélectionnez Enregistrer pour valider les modifications.

    Capture d’écran montrant la modification d’un paramètre interactif dans des classeurs.

  4. Définissez la valeur du paramètre sur Yes.

    Capture d’écran montrant la définition de la valeur d’un paramètre interactif dans un classeur

  5. Dans le contrôle de requête avec le graphique en aires, sélectionnez Paramètres avancés (icône d’engrenage).

  6. Si la valeur de ShowDetails est définie sur Yes, sélectionnez Rendre cet élément visible sous conditions.

  7. Sélectionnez Fin de l’édition pour valider les modifications.

  8. Dans la barre d’outils du classeur, sélectionnez Fin de l’édition.

  9. Modifiez la valeur de ShowDetails en No. Notez que le graphique ci-dessous disparaît.

L’image suivante montre le cas où la valeur de ShowDetails est définie sur Yes :

Capture d’écran montrant un classeur avec un composant conditionnel visible.

L’image suivante montre le cas où la valeur de ShowDetails est définie sur No :

Capture d’écran montrant un classeur avec un composant conditionnel masqué.

Configurer des sélections multiples dans des grilles et des graphiques

Les composants de requête et de métriques peuvent exporter des paramètres lors de la sélection d’une ou de plusieurs lignes.

Capture d’écran montrant les réglages d’exportation de classeurs avec plusieurs paramètres.

  1. Dans le composant de requête qui affiche la grille, sélectionnez Paramètres avancés.
  2. Activez la case à cocher Lors de la sélection d’élément, exporter les paramètres.
  3. Activez la case à cocher Autoriser la sélection de plusieurs valeurs.
    • La visualisation affichée permet une sélection multiple et les valeurs des paramètres exportés seront des tableaux de valeurs, par exemple lors de l’utilisation de paramètres de liste déroulante à sélection multiple.
    • Si elle est désactivée, la visualisation d’affichage capture uniquement le dernier élément sélectionné et n’exporte qu’une valeur à la fois.
  4. Utilisez Ajouter un paramètre pour chaque paramètre que vous souhaitez exporter. Une fenêtre contextuelle affiche les réglages du paramètre à exporter.

Lorsque vous activez la sélection unique, vous pouvez spécifier quel champ des données d’origine doit être exporté. Les champs incluent le nom du paramètre, le type de paramètre et la valeur par défaut à utiliser si rien n’est sélectionné.

Lorsque vous activez la sélection multiple, vous spécifiez quel champ des données d’origine doit être exporté. Les champs incluent le nom du paramètre, le type de paramètre, le type de guillemets et le délimiteur. Les valeurs de guillemets et de délimiteur sont utilisées pour transformer les valeurs des flèches en texte lorsqu’elles sont remplacées dans une requête. Dans une sélection multiple, si aucune valeur n’est sélectionnée, la valeur par défaut est un tableau vide.

Remarque

Pour la sélection multiple, seules les valeurs uniques sont exportées. Par exemple, vous ne verrez pas dans le tableau de sortie des valeurs telles que « 1,1,2,1 ». La sortie du tableau sera « 1,2 ».

Si vous laissez le réglage Champ pour exporter vide dans les réglages d’exportation, tous les champs disponibles dans les données seront exportés en tant qu’objet JSON convertie en chaîne de paires clé:valeur. Pour les grilles et les titres, la chaîne inclut les champs de la grille. Pour les graphiques, les champs disponibles sont x, y, série et étiquette, selon le type de graphique.

Bien que le comportement par défaut consiste à exporter un paramètre sous forme de texte, si vous savez que le champ est un ID d’abonnement ou de ressource, utilisez cette information comme type de paramètre d’exportation. Cela permet d’utiliser le paramètre en aval dans des endroits qui nécessitent ces types de paramètres.

Capturer l’entrée utilisateur à utiliser dans une requête

Vous pouvez capturer l’entrée utilisateur à l’aide de listes déroulantes et utiliser les sélections dans vos requêtes. Par exemple, vous pouvez avoir une liste déroulante pour accepter un ensemble de machines virtuelles, puis filtrer votre KQL pour n’inclure que les machines sélectionnées. Dans la plupart des cas, cette étape est aussi simple que d’inclure la valeur du paramètre dans la requête :

    Perf
    | where Computer in ({Computers})
    | take 5

Dans des scénarios plus avancés, vous devrez peut-être transformer les résultats des paramètres avant de pouvoir les utiliser dans des requêtes. Prenons l’exemple de cette charge utile de filtre OData :

{
    "name": "deviceComplianceTrend",
    "filter": "(OSFamily eq 'Android' or OSFamily eq 'OS X') and (ComplianceState eq 'Compliant')"
}

L’exemple suivant montre comment activer ce scénario. Supposons que vous souhaitiez que les valeurs des filtres OSFamily et ComplianceState proviennent des listes déroulantes du classeur. Le filtre peut inclure plusieurs valeurs comme dans le cas précédent de OsFamily. Il doit également prendre en charge le cas où vous souhaitez inclure toutes les valeurs de dimension, autrement dit, sans filtres.

Configurer les paramètres

  1. Créez un classeur vide et ajoutez un composant paramètre.

  2. Sélectionnez Ajouter un paramètre pour créer un paramètre. Utilisez les paramètres suivants :

    • Nom de paramètre : OsFilter

    • Nom d’affichage : Operating system

    • Type de paramètre : drop-down

    • Autoriser les sélections multiples : Checked

    • Délimiteur : or (avec espaces avant et après)

    • Citation avec : <empty>

    • Récupérer des données à partir de : JSON

    • Entrée JSON :

      [
          { "value": "OSFamily eq 'Android'", "label": "Android" },
          { "value": "OSFamily eq 'OS X'", "label": "OS X" }
      ]
      
    • Dans la section Inclure dans le menu déroulant :

      • Cochez la case Tout.
      • Sélectionner la valeur Tout : OSFamily ne '#@?'
    • Sélectionnez Enregistrer pour enregistrer ce paramètre.

  3. Ajoutez un autre paramètre en le configurant comme suit :

    • Nom de paramètre : ComplianceStateFilter

    • Nom d’affichage : Compliance State

    • Type de paramètre : drop-down

    • Autoriser les sélections multiples : Checked

    • Délimiteur : or (avec espaces avant et après)

    • Citation avec : <empty>

    • Récupérer des données à partir de : JSON

    • Entrée JSON :

      [
          { "value": "ComplianceState eq 'Compliant'", "label": "Compliant" },
          { "value": "ComplianceState eq 'Non-compliant'", "label": "Non compliant" }
      ]        
      
    • Dans la section Inclure dans le menu déroulant :

      • Cochez la case Tout.
      • Sélectionner la valeur Tout : ComplianceState ne '#@?'
    • Sélectionnez Enregistrer pour enregistrer ce paramètre.

  4. Sélectionnez Ajouter du texte pour ajouter un bloc de texte. Dans le bloc Texte Markdown à afficher, ajoutez :

    {
        "name": "deviceComplianceTrend",
        "filter": "({OsFilter}) and ({ComplianceStateFilter})"
    }
    

    Cette capture d’écran illustre la configuration des paramètres :

    Capture d’écran illustrant la configuration des paramètres pour les listes déroulantes avec des valeurs de paramètre.

Valeur de filtre unique

Le cas le plus simple est la sélection d’une seule valeur de filtre dans chacune des dimensions. Le contrôle déroulant utilise la valeur du champ d’entrée JSON comme valeur du paramètre.

{
    "name": "deviceComplianceTrend",
    "filter": "(OSFamily eq 'OS X') and (ComplianceState eq 'Compliant')"
}

Capture d’écran montrant une liste déroulante avec des valeurs de paramètre et une seule valeur sélectionnée.

Valeurs de filtre multiples

Si vous choisissez plusieurs valeurs de filtre, par exemple, les systèmes d’exploitation Android et OS X, les paramètres Delimiter et Quote with entrent en jeu et produisent ce filtre composé :

{
    "name": "deviceComplianceTrend",
    "filter": "(OSFamily eq 'OS X' or OSFamily eq 'Android') and (ComplianceState eq 'Compliant')"
}

Capture d’écran montrant une liste déroulante avec des valeurs de paramètre et plusieurs valeurs sélectionnées.

Aucun filtre

Autre cas fréquent, l’absence de filtre pour cette dimension. Ce scénario équivaut à inclure toutes les valeurs des dimensions dans le jeu de résultats. Pour l’activer, il suffit d’avoir une option All dans la liste déroulante et de lui faire renvoyer une expression de filtre qui donne toujours la valeur true. Par exemple, ComplianceState eq '#@?'.

{
    "name": "deviceComplianceTrend",
    "filter": "(OSFamily eq 'OS X' or OSFamily eq 'Android') and (ComplianceState ne '#@?')"
}

Capture d’écran montrant une liste déroulante avec des valeurs de paramètre et aucun filtre sélectionné.

Réutiliser les données de requête dans différentes visualisations

Dans certains cas, vous souhaiterez peut-être visualiser le jeu de données sous-jacent de différentes manières sans avoir repayer les frais de requête à chaque fois. Cet exemple montre comment procéder à l’aide de l’option Merge dans le contrôle de requête.

Configurer les paramètres

  1. Créez un nouveau classeur vide.

  2. Sélectionnez Ajouter une requête pour créer un contrôle de requête, puis entrez les valeurs suivantes :

    • Source de données : Logs

    • Type de ressource : Log Analytics

    • Espace de travail Log Analytics : parmi vos espaces de travail, choisissez-en un qui contient des données de performances

    • Requête dans les journaux de l’espace de travail Log Analytics :

      Perf
      | where CounterName == '% Processor Time'
      | summarize CpuAverage = avg(CounterValue), CpuP95 = percentile(CounterValue, 95) by Computer
      | order by CpuAverage desc
      
  3. Sélectionnez Exécuter la requête pour afficher les résultats.

    Ce jeu de données de résultats est celui que nous souhaitons réutiliser dans plusieurs visualisations.

    Capture d’écran montrant le résultat d’une requête liée à des classeurs.

  4. Accédez à l’onglet Paramètres avancés et entrez le nom Cpu data.

  5. Sélectionnez Ajouter une requête pour créer un autre contrôle de requête.

  6. Dans le champ Source de données, sélectionnez Merge.

  7. Sélectionnez Ajouter une fusion.

  8. Dans le volet des paramètres, définissez :

    • Type de fusion : Duplicate table
    • Table : Cpu data
  9. Sélectionnez Exécuter la fusion. Vous obtiendrez le même résultat que précédemment.

    Capture d’écran montrant des résultats de requête en double dans un classeur.

  10. Définissez les options des tables :

    • Utilisez la colonne Nom après la fusion afin de définir des noms conviviaux pour vos colonnes de résultats. Par exemple, vous pouvez renommer CpuAverage en CPU utilization (avg), puis utiliser Exécuter la fusion pour mettre à jour le jeu de résultats.
    • Utilisez Supprimer pour supprimer une colonne.
      • Sélectionnez la ligne [Cpu data].CpuP95.
      • Utilisez l’option Supprimer de la barre d’outils des contrôles de requête.
      • Utiliser Exécuter la fusion pour afficher le jeu de résultats sans la colonne CpuP95.
  11. Modifiez l’ordre des colonnes en sélectionnant Déplacer vers le haut ou Déplacer vers le bas.

  12. Ajoutez de nouvelles colonnes en fonction des valeurs d’autres colonnes en sélectionnant Ajouter un nouvel élément.

  13. Donnez du style à la table en utilisant les options disponibles dans Paramètres des colonnes pour obtenir la visualisation souhaitée.

  14. Si nécessaire, ajoutez d’autres contrôles de requête pour le jeu de résultats Cpu data.

L’exemple suivant présente côte à côte l’utilisation moyenne et P95 du processeur :

Capture d’écran montrant deux contrôles de classeurs qui utilisent la même requête.

Utiliser Azure Resource Manager pour récupérer des alertes dans un abonnement

Cet exemple montre comment utiliser le contrôle de requête Azure Resource Manager pour répertorier toutes les alertes existantes dans un abonnement. Ce guide utilise également les transformations de chemin JSON pour mettre en forme les résultats. Consultez la liste des appels Resource Manager pris en charge.

Définir les paramètres

  1. Créez un nouveau classeur vide.

  2. Sélectionnez Ajouter un paramètre, puis définissez ce qui suit :

    • Nom de paramètre : Subscription
    • Type de paramètre : Subscription picker
    • Obligatoire : Checked
    • Récupérer des données à partir de : Default Subscriptions
  3. Sélectionnez Enregistrer.

  4. Sélectionnez Ajouter une requête pour créer un contrôle de requête, puis utilisez les paramètres suivants. Dans cet exemple, nous utilisons l’appel REST Alerts Get All pour obtenir la liste des alertes existantes pour un abonnement. Pour connaître les versions prises en charge de l’API, consultez le document Informations de référence sur l’API REST Azure.

    • Source de données : Azure Resource Manager (Preview)
    • Méthode HTTP : GET
    • Path (Chemin d’accès) : /subscriptions/{Subscription:id}/providers/Microsoft.AlertsManagement/alerts
    • Ajoutez le paramètre api-version sous l’onglet Paramètres et définissez ce qui suit :
      • Paramètre : api-version
      • Valeur : 2018-05-05
  5. Sélectionnez un abonnement à partir du paramètre d’abonnement créé, puis sélectionnez Exécuter la requête pour afficher les résultats.

    Les données JSON brutes suivantes sont renvoyées par Resource Manager :

    Capture d’écran montrant une réponse JSON de données d’alerte dans des classeurs avec un fournisseur Resource Manager.

Mettre en forme la réponse

Les informations fournies ici vous conviendront peut-être. Nous allons néanmoins extraire quelques propriétés intéressantes et mettre la réponse en forme pour en faciliter la lecture.

  1. Accédez à l’onglet Paramètres des résultats.
  2. Modifiez le Format des résultats en remplaçant Content par JSON Path. Le Chemin JSON est un transformateur de classeur.
  3. Dans les paramètres du Chemin JSON, définissez Table des chemins JSON sur $.value.[*].properties.essentials. Cela extrait tous les champs "value.*.properties.essentials" des données JSON renvoyées.
  4. Sélectionnez Exécuter la requête pour afficher la grille.

Capture d’écran affichant des données d’alerte dans un classeur au format grille avec un fournisseur Resource Manager.

Filtrer les résultats

Le Chemin JSON vous permet également de choisir dans la table générée les informations à afficher sous forme de colonnes.

Par exemple, si vous souhaitez filtrer les résultats sur les colonnes TargetResource, Severity, AlertState, AlertRule, Description, StartTime et ResolvedTime, vous pouvez ajouter les lignes suivantes dans la table des colonnes du Chemin JSON :

ID de la colonne Chemin JSON de colonne
TargetResource $.targetResource
gravité $.severity
AlertState $.alertState
AlertRule $.alertRule
Descriptif $.description
Heure de début $.startDateTime
ResolvedTime $.monitorConditionResolvedDateTime

Capture d’écran montrant les résultats finaux de la requête sous forme de grille avec un fournisseur Resource Manager.

Étapes suivantes