Connectez-vous à une source de données Azure Monitor - Amazon Managed Grafana

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Connectez-vous à une source de données Azure Monitor

La source de données Azure Monitor prend en charge plusieurs services dans le cloud Azure :

Ajouter la source de données

La source de données peut accéder aux métriques provenant de quatre services différents. Vous pouvez configurer l'accès aux services que vous utilisez. Il est également possible d'utiliser les mêmes informations d'identification pour plusieurs services si c'est ainsi que vous les avez configurés dans Azure AD.

  1. Accessibles depuis le menu principal de Grafana, les sources de données nouvellement installées peuvent être ajoutées immédiatement dans la section Sources de données. Cliquez ensuite sur le bouton Ajouter une source de données en haut à droite. La source de données Azure Monitor pourra être sélectionnée dans la section Cloud de la liste des sources de données.

  2. Dans le champ du nom, Grafana saisira automatiquement le nom de la source de données : Azure Monitor ou quelque chose comme. Azure Monitor - 3 Si vous configurez plusieurs sources de données, remplacez le nom par un nom plus informatif.

  3. Si vous utilisez Azure Monitor, vous avez besoin de quatre informations provenant du portail Azure (pour des instructions détaillées, consultez le lien fourni précédemment) :

    • ID du locataire (Azure Active Directory, propriétés, ID de répertoire)

    • ID client (Azure Active Directory, inscriptions d'applications, choisissez votre application, ID d'application)

    • Secret du client (Azure Active Directory, inscriptions d'applications, choix de votre application, clés)

    • ID d'abonnement par défaut (abonnements, choix de l'abonnement, aperçu, numéro d'abonnement)

  4. Collez ces quatre éléments dans les champs de la section Détails de l'API Azure Monitor.

    • L'identifiant d'abonnement peut être modifié par requête. Enregistrez la source de données et actualisez la page pour voir la liste des abonnements disponibles pour l'ID client spécifié.

  5. Si vous utilisez également le service Azure Log Analytics, vous devez spécifier ces deux valeurs de configuration ou réutiliser l'ID client et le secret de l'étape précédente.

    • ID client (Azure Active Directory, inscriptions d'applications, choisissez votre application, ID d'application)

    • Secret du client (Azure Active Directory, enregistrements d'applications, choix de votre application, clés, création d'une clé, utilisation du secret client)

  6. Si vous utilisez Application Insights, vous avez besoin de deux informations provenant du portail Azure (pour des instructions détaillées, consultez le lien fourni précédemment) :

    • ID d'application

    • Clé d'API

  7. Collez ces deux éléments dans les champs appropriés de la section Détails de l'API Application Insights.

  8. Vérifiez que les détails de configuration sont corrects en cliquant sur le bouton Enregistrer et tester.

Sinon, à l'étape 4, si vous créez une nouvelle application Azure Active Directory, utilisez la CLI Azure :

az ad sp create-for-rbac -n "http://localhost:3000"

Choisir un service

Dans l'éditeur de requêtes d'un panneau, après avoir choisi votre source de données Azure Monitor, la première étape consiste à sélectionner un service. Il existe quatre options :

  • Azure Monitor

  • Application Insights

  • Azure Log Analytics

  • Insights Analytics

L'éditeur de requêtes change en fonction de l'option sélectionnée. Azure Monitor est le moniteur par défaut.

Interrogation du service Azure Monitor

Le service Azure Monitor fournit des métriques pour tous les services Azure que vous exécutez. Il vous aide à comprendre les performances de vos applications sur Azure et détecte de manière proactive les problèmes affectant vos applications.

Si vos informations d'identification Azure Monitor vous donnent accès à plusieurs abonnements, choisissez d'abord l'abonnement approprié.

Voici des exemples de statistiques que vous pouvez obtenir du service :

  • Microsoft.Compute/virtualMachines - Percentage CPU

  • Microsoft.Network/networkInterfaces - Bytes sent

  • Microsoft.Storage/storageAccounts - Used Capacity

L'éditeur de requêtes vous permet d'interroger plusieurs dimensions pour obtenir les métriques qui les prennent en charge. Les métriques qui prennent en charge plusieurs dimensions sont celles répertoriées dans la liste des métriques prises en charge par Azure Monitor et dont une ou plusieurs valeurs sont répertoriées dans la colonne Dimension pour la métrique.

Formatage des clés de légende avec des alias pour Azure Monitor

Le format de légende par défaut pour l'API Azure Monitor est le suivant :

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

Elles peuvent être longues, mais vous pouvez modifier cette mise en forme en utilisant des alias. Dans le champ Format de légende, vous pouvez combiner les alias suivants comme vous le souhaitez.

Exemples d'Azure Monitor :

  • Blob Type: {{ blobtype }}

  • {{ resourcegroup }} - {{ resourcename }}

Modèles d'alias pour Azure Monitor

  • {{ resourcegroup }}= remplacé par la valeur du groupe de ressources

  • {{ namespace }}= remplacé par la valeur de l'espace de noms (par exemple, Microsoft.Compute/VirtualMachines)

  • {{ resourcename }}= remplacé par la valeur du nom de la ressource

  • {{ metric }}= remplacé par le nom de la métrique (par exemple, pourcentage de processeur)

  • {{ dimensionname }}= Héritage à partir de la version 7.1 (pour des raisons de rétrocompatibilité) remplacé par la clé/étiquette de la première dimension (triée par clé/étiquette) (par exemple, blobtype)

  • {{ dimensionvalue }}= Héritage à partir de la version 7.1 (pour des raisons de rétrocompatibilité) remplacé par la valeur de la première dimension (telle que triée par clé/étiquette) (par exemple,) BlockBlob

  • {{ arbitraryDim }}= Disponible en version 7.1+ remplacée par la valeur de la dimension correspondante. (par exemple, {{ blobtype }} devient BlockBlob)

Création de variables de modèle pour Azure Monitor

Au lieu de coder en dur des éléments tels que le nom du serveur, de l'application et du capteur dans vos requêtes métriques, vous pouvez utiliser des variables à leur place. Les variables sont affichées sous forme de boîtes de sélection déroulantes en haut du tableau de bord. Vous pouvez utiliser ces listes déroulantes pour modifier les données affichées dans votre tableau de bord.

Notez que le service Azure Monitor ne prend pas encore en charge les valeurs multiples. Pour visualiser plusieurs séries chronologiques (par exemple, les métriques pour serveur1 et serveur2), ajoutez plusieurs requêtes afin de pouvoir les afficher sur le même graphique ou dans le même tableau.

Le plug-in de source de données Azure Monitor fournit les requêtes suivantes que vous pouvez spécifier dans le champ Requête de la vue d'édition des variables. Vous pouvez les utiliser pour remplir la liste des options d'une variable.

Name (Nom) Description
Subscriptions() Renvoie la liste des abonnements.
ResourceGroups() Renvoie une liste de groupes de ressources.
ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa) Renvoie une liste de groupes de ressources pour un abonnement spécifié.
Namespaces(aResourceGroup) Renvoie une liste d'espaces de noms pour le groupe de ressources spécifié.
Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup) Renvoie une liste d'espaces de noms pour le groupe de ressources et l'abonnement spécifiés.
ResourceNames(aResourceGroup, aNamespace) Renvoie une liste de noms de ressources.
ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace) Renvoie une liste de noms de ressources pour un abonnement spécifié.
MetricNamespace(aResourceGroup, aNamespace, aResourceName) Renvoie une liste d'espaces de noms métriques.
MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) Renvoie une liste d'espaces de noms métriques pour un abonnement spécifié.
MetricNames(aResourceGroup, aNamespace, aResourceName) Renvoie une liste de noms de métriques.
MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa, aResourceGroup, aNamespace, aResourceName) Renvoie une liste de noms de métriques pour un abonnement spécifié.

Exemples :

  • Requête Resource Groups : ResourceGroups()

  • Transmission de la variable de nom de la métrique : Namespaces(cosmo)

  • Enchaînement des variables du modèle : ResourceNames($rg, $ns)

  • Ne citez pas les paramètres : MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)

Pour plus d'informations sur les modèles et les variables de modèles, consultezModèles.

Liste des métriques Azure Monitor prises en charge

Toutes les métriques renvoyées par l'API Azure Monitor n'ont pas de valeurs. Pour faciliter la création d'une requête, la source de données Grafana contient une liste des métriques Azure Monitor prises en charge, et elle ignore les métriques qui n'auront jamais de valeurs. Cette liste est régulièrement mise à jour à mesure que de nouveaux services et mesures sont ajoutés au cloud Azure.

Alertes Azure Monitor

Les alertes Grafana sont prises en charge pour le service Azure Monitor. Il ne s'agit pas du support Azure Alerts. Pour plus d'informations sur les alertes Grafana, consultez. Alerte Grafana

Interrogation du service Application Insights

Formatage des clés de légende avec des alias pour Application Insights

Le format de légende par défaut est le suivant :

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

Dans le champ Format de légende, les alias suivants peuvent être combinés comme vous le souhaitez.

Exemples d'applications Insights :

  • city: {{ client/city }}

  • {{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]

Modèles d'alias pour Application Insights

  • {{ groupbyvalue }}= L'ancienne version de Grafana 7.1+ (pour la rétrocompatibilité) est remplacée par la clé/étiquette de la première dimension (triée par clé/étiquette)

  • {{ groupbyname }}= Héritage depuis Grafana 7.1+ (pour la rétrocompatibilité) remplacé par la valeur de la première dimension (telle que triée par clé/étiquette) (par exemple,) BlockBlob

  • {{ metric }}= remplacé par le nom de la métrique (par exemple, demandes/nombre)

  • {{ arbitraryDim }}= Disponible en version 7.1+ remplacée par la valeur de la dimension correspondante. (par exemple, {{ client/city }} devient Chicago)

Expressions de filtrage pour Application Insights

Le champ de filtre prend une expression de filtre OData.

Exemples :

  • client/city eq 'Boydton'

  • client/city ne 'Boydton'

  • client/city ne 'Boydton' and client/city ne 'Dublin'

  • client/city eq 'Boydton' or client/city eq 'Dublin'

Création de modèles avec des variables pour Application Insights

Utilisez l'une des requêtes suivantes dans le champ Requête de la vue d'édition de variables.

Pour plus d'informations sur les modèles et les variables de modèles, consultezModèles.

Name (Nom) Description
AppInsightsMetricNames() Renvoie une liste de noms de métriques.
AppInsightsGroupBys(aMetricName) Renvoie une liste de group by clauses pour le nom de métrique spécifié.

Exemples :

  • Requête de noms de métriques : AppInsightsMetricNames()

  • Transmission de la variable de nom de la métrique : AppInsightsGroupBys(requests/count)

  • Enchaînement des variables du modèle : AppInsightsGroupBys($metricnames)

Alertes Application Insights

Les alertes Grafana sont prises en charge pour Application Insights. Il ne s'agit pas du support Azure Alerts. Pour plus d'informations sur les alertes Grafana, consultez. Alerte Grafana

Interrogation du service Azure Log Analytics

Les requêtes sont écrites dans le nouveau langage de requête Azure Log Analytics (ou KustoDB). Une requête Log Analytics peut être formatée sous forme de données de séries chronologiques ou de données de table.

Si vos informations d'identification vous donnent accès à plusieurs abonnements, choisissez l'abonnement approprié avant de saisir des requêtes.

Requêtes de séries chronologiques

Les requêtes de séries chronologiques concernent le panneau graphique et d'autres panneaux tels que le SingleStat panneau. Chaque requête doit contenir au moins une colonne date/heure et une colonne de valeur numérique. Le résultat doit être trié par ordre croissant selon la colonne datetime.

L'exemple de code suivant montre une requête qui renvoie le nombre agrégé groupé par heure.

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h) | order by TimeGenerated asc

Une requête peut également comporter une ou plusieurs colonnes non numériques/autres que la date et l'heure, et ces colonnes sont considérées comme des dimensions et deviennent des étiquettes dans la réponse. Par exemple, une requête qui renvoie le nombre agrégé groupé par heure, par ordinateur et par CounterName.

Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h), Computer, CounterName | order by TimeGenerated asc

Vous pouvez également sélectionner des colonnes de valeurs numériques supplémentaires (avec ou sans dimensions multiples). Par exemple, obtenir un nombre et une valeur moyenne par heure, par ordinateur et InstanceName : CounterName

Perf | where $__timeFilter(TimeGenerated) | summarize Samples=count(), ["Avg Value"]=avg(CounterValue) by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName | order by TimeGenerated asc
Note

Conseil : Dans la requête précédente, la syntaxe Kusto et C Samples=count() ["Avg Value"]=... sont utilisées pour renommer ces colonnes, la deuxième syntaxe tenant compte de l'espace. Cela change le nom de la métrique utilisée par Grafana. Par conséquent, des éléments tels que les légendes des séries et les colonnes du tableau correspondront à ce que vous spécifiez. Dans cet exemple, Samples est affiché au lieu de_count.

Requêtes de table

Les requêtes de table sont principalement utilisées dans le panneau de table, et elles affichent une liste de colonnes et de lignes. Cet exemple de requête renvoie des lignes contenant les six colonnes spécifiées.

AzureActivity | where $__timeFilter() | project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller | order by TimeGenerated desc

Formatage du nom d'affichage pour Log Analytics

Le format du nom d'affichage par défaut est le suivant :

metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}

Cela peut être personnalisé en utilisant l'option de champ du nom d'affichage.

Macros Azure Log Analytics

Pour faciliter l'écriture de requêtes, Grafana fournit plusieurs macros que vous pouvez utiliser dans la clause where d'une requête :

  • $__timeFilter()— S'étend jusqu'à l'TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) andTimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)endroit où se trouvent les dates de début et de fin par rapport au sélecteur d'heure Grafana.

  • $__timeFilter(datetimeColumn)— S'étend jusqu'à l'datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) anddatetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)endroit où se trouvent les dates de début et de fin par rapport au sélecteur d'heure Grafana.

  • $__timeFrom()— Renvoie la date et l'heure de départ depuis le sélecteur Grafana. Exemple: datetime(2018-06-05T18:09:58.907Z).

  • $__timeTo()— Renvoie la date et l'heure de départ depuis le sélecteur Grafana. Exemple: datetime(2018-06-05T20:09:58.907Z).

  • $__escapeMulti($myVar)— doit être utilisé avec des variables de modèle à valeurs multiples contenant des caractères non autorisés. S'il $myVar contient les deux valeurs suivantes sous forme de chaîne'\\grafana-vm\Network(eth0)\Total','\\hello!', il s'étend à :@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'. Si vous utilisez des variables à valeur unique, cette macro n'est pas nécessaire, échappez plutôt à la variable en ligne :@'\$myVar'.

  • $__contains(colName, $myVar)— doit être utilisé avec des variables de modèle à valeurs multiples. S'il $myVar a la valeur'value1','value2', il s'étend à :colName in ('value1','value2').

    Si vous utilisez l'option Tout, cochez la case Tout inclure et dans le champ Personnaliser toutes les valeurs, entrez la valeur suivante :all. Si $myVar elle possède cette valeurall, la macro s'étendra plutôt à1 == 1. Pour les variables de modèle comportant de nombreuses options, cela améliore les performances des requêtes en évitant de créer une clause « where.. in » volumineuse.

Variables intégrées à Azure Log Analytics

Certaines variables Grafana peuvent également être utilisées dans les requêtes Azure Log Analytics :

  • $__interval- Grafana calcule le grain temporel minimum qui peut être utilisé pour regrouper par heure dans les requêtes. Il renvoie un grain temporel tel que 5m ou 1h qui peut être utilisé dans la fonction bin ; par exemple,summarize count() by bin(TimeGenerated, $__interval). Pour plus d'informations sur les variables d'intervalle, consultezAjouter une variable d'intervalle.

Création de modèles avec des variables pour Azure Log Analytics

Toute requête Log Analytics renvoyant une liste de valeurs peut être utilisée dans le champ Requête de la vue d'édition des variables. Il existe également une fonction Grafana pour Log Analytics qui renvoie une liste d'espaces de travail.

Pour plus d'informations sur les modèles et les variables de modèle, consultezModèles et variables.

Name (Nom) Description
workspaces() Renvoie la liste des espaces de travail pour l'abonnement par défaut.
workspaces(12345678-aaaa-bbbb-cccc-123456789aaa) Renvoie une liste d'espaces de travail pour l'abonnement spécifié (le paramètre peut être entre guillemets ou non).

Le tableau suivant présente des exemples de requêtes variables.

Requête Description
subscriptions() Renvoie la liste des abonnements Azure.
workspaces() Renvoie la liste des espaces de travail pour l'abonnement par défaut.
workspaces("12345678-aaaa-bbbb-cccc-123456789aaa") Renvoie la liste des espaces de travail pour un abonnement spécifié.
workspaces("$subscription") Avec une variable de modèle pour le paramètre d'abonnement.
workspace("myWorkspace").Heartbeat \| distinct Computer Renvoie une liste de machines virtuelles.
workspace("$workspace").Heartbeat \| distinct Computer Renvoie une liste de machines virtuelles avec une variable de modèle.
workspace("$workspace").Perf \| distinct ObjectName Renvoie une liste d'objets à partir de la table Perf.
workspace("$workspace").Perf \| where ObjectName == "$object" \| distinct CounterName Renvoie une liste de noms de métriques à partir de la table Perf.

L'exemple de code suivant montre une requête de série chronologique utilisant des variables.

Perf | where ObjectName == "$object" and CounterName == "$metric" | where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo() | where $__contains(Computer, $computer) | summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer | order by TimeGenerated asc

Liens profonds entre les panneaux Grafana et l'éditeur de requêtes Log Analytics dans Azure Portal

Choisissez une série chronologique dans le panneau pour afficher un menu contextuel contenant un lien vers Afficher dans le portail Azure. Le choix de ce lien ouvre l'éditeur de requêtes Azure Log Analytics dans le portail Azure et exécute la requête depuis le panneau Grafana qui s'y trouve.

Si vous n'êtes pas actuellement connecté au portail Azure, le lien ouvre la page de connexion. Le lien fourni est valide pour n'importe quel compte, mais il affiche la requête uniquement si votre compte a accès à l'espace de travail Azure Log Analytics spécifié dans la requête.

Alertes Azure Log Analytics

Les alertes Grafana sont prises en charge pour Application Insights. Il ne s'agit pas du support Azure Alerts. Pour plus d'informations sur les alertes dans les espaces de travail Grafana, consultez. Alerte Grafana

Interrogation du service Application Insights Analytics

Si vous remplacez le type de service par Insights Analytics, un éditeur similaire au service Log Analytics est disponible. Ce service utilise également le langage Kusto, de sorte que les instructions pour interroger les données sont identiques à celles de KustoInterrogation du service Azure Log Analytics, sauf que vous interrogez plutôt les données d'Application Insights Analytics.