

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.

# Se connecter à une source ServiceNow de données
<a name="grafana-enterprise-servicenow-datasource"></a>

Il s'agit de la source de ServiceNow données utilisée pour se connecter aux ServiceNow instances.

**Note**  
Cette source de données est réservée à Grafana Enterprise. Pour de plus amples informations, veuillez consulter [Gérer l'accès aux plug-ins d'entreprise](upgrade-to-enterprise-plugins.md).  
En outre, dans les espaces de travail qui prennent en charge la version 9 ou une version plus récente, cette source de données peut nécessiter l'installation du plug-in approprié. Pour de plus amples informations, veuillez consulter [Étendez votre espace de travail avec des plugins](grafana-plugins.md).

## Caractéristiques
<a name="features-1"></a>
+  Requêtes 
  +  Requêtes d'API Stat 
  +  Requêtes d'API de table 
    +  Incidents, modifications et tout autre tableau 
+  Alerts (Alertes) 
+  Annotations (fonctionnalité bêta) 
+  Variables du modèle 

## Configuration
<a name="configuration-2"></a>

 Sélectionnez les sources de données dans le panneau de gauche de Grafana. 

 Sélectionnez Ajouter une source de données : 

 Entrez **servicenow** pour trouver le plug-in de source de données : 

 Entrez ServiceNow l'URL : 

 Choisissez **Enregistrer et tester**. Vous devriez voir un message vert avec « ServiceNow  Connexion OK ». 

### Exemples de tableaux de bord
<a name="example-dashboards"></a>

 Des tableaux de bord prédéfinis sont inclus dans le plugin et peuvent être importés via la page de configuration de la source de données, sous l'onglet Tableaux de bord. 

## Usage
<a name="usage-2"></a>

 Il existe deux manières de renvoyer des données dans l'éditeur de requêtes. 
+  API de tableau 
+  API agrégée 

 Les utilisateurs peuvent actuellement choisir entre interroger des tables prédéfinies, telles que les suivantes : 
+  Modifications 
+  Incidents 

 Ou, à partir de`v1.4.0`, une liste de tables et de champs pilotée par l'API utilisant l'option **Autre (tableau personnalisé).** Cette option vous permet d'interroger les données figurant dans n'importe quelle table accessible à l'utilisateur utilisé pour configurer la source de ServiceNow données. 

 L'option **Tableau personnalisé** doit prendre en charge les mêmes fonctionnalités que les listes de tables prédéfinies. 

### Requêtes TableAPI
<a name="tableapi-queries"></a>

 La TableAPI renvoie des données pouvant être affichées dans un panneau de tableau. Il permet une sélection ordonnée des champs à afficher ainsi que des options de filtrage. L'éditeur de requêtes fournit également un champ pour limiter le nombre de lignes renvoyées par une requête. 

 Exemple de panneau de tableau affichant les résultats de la requête précédente. 

#### Afficher
<a name="show"></a>

 La ligne *Afficher* fournit un sélecteur pour un champ à afficher. Plusieurs champs peuvent également être spécifiés. Les champs seront renvoyés dans l'ordre exact indiqué. 

#### Afficher les valeurs
<a name="display-values"></a>

 L'indicateur *Afficher les valeurs* permet à la requête de renvoyer des valeurs adaptées aux humains, ou des valeurs d'affichage, au lieu de valeurs numériques. 

 Par exemple, une sévérité égale à l'`1`absence de cet indicateur s'affichera uniquement`1`. Si le drapeau est activé, la valeur affichée sera`1 - High`. 

 Selon la [documentation de l'ServiceNow API](https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/c_TableAPI), cela peut avoir un impact négatif sur les performances. 

**Note**  
 [...] la spécification de la valeur d'affichage peut entraîner des problèmes de performances car elle ne lit pas directement depuis la base de données et peut inclure le référencement d'autres champs et enregistrements. 

#### Filtres (généraux)
<a name="filters-general"></a>

 La ligne *Filtres* permet de réduire les lignes affichées en fonction de plusieurs critères de champ et de valeur. 

 Tous les filtres sont combinés avec une opération *AND* *ou OR*. 

 Les champs suivants sont disponibles lorsque vous n'utilisez pas de table personnalisée (cette liste s'étendra dans le futur).

```
Active
Asset
Group
Assigned To
Escalation
Issue Number
Description
Priority
State
Type
Change Risk
Change State
Start Date
End Date
On Hold
```

 Lorsque vous sélectionnez une table personnalisée, les champs sont automatiquement remplis à partir de l'API Service Now. 

##### Filtres de date
<a name="date-filters"></a>


|  Champ horaire  |  Opérateurs  |  Value  | 
| --- | --- | --- | 
|  Ouvert à  |  À ou avant aujourd'hui, pas aujourd'hui, avant, après, à ou après  |  horodatage javascript:GS. Il y a plusieurs jours (30)  | 
|  Activité due  |   |   | 
|  Fermé à  |   |   | 
|  Date d'échéance  |   |   | 
|  Début prévu  |   |   | 
|  Heure de réouverture  |   |   | 
|  Résolu à  |   |   | 
|  Fin du travail  |   |   | 
|  Début du travail  |   |   | 
|  Ignorer le temps  |   |   | 

 Pour des valeurs de date supplémentaires, voir : https://developer.servicenow.com/app.do\$1\$1/ api\$1doc ? v=NewYork&ID=R\$1SGSYS-DateGenerate\$1S\$1S 

##### Opérateurs (généraux, basés sur des chaînes)
<a name="operators-generalstring-based"></a>
+  Commence par 
+  Se termine par 
+  Comme 
+  Pas comme 
+  Égal à 
+  N’est pas égal à 
+  Est vide 

##### Opérateurs (basés sur le temps)
<a name="operators-time-based"></a>
+  Aujourd'hui 
+  Pas aujourd'hui 
+  Avant 
+  À ou avant 
+  Après 
+  À ou après 

##### Valeurs
<a name="values"></a>

 La sélection de la valeur dépend du type de filtre sélectionné. 
+  Les filtres booléens ont des options True/False 
+  Les filtres de texte permettent de saisir n'importe quelle valeur 
+  Escalade, Priority possède un ensemble fixe de valeurs numériques 

#### Trier par
<a name="sort-by"></a>

 La ligne *Trier par* permet de réduire les lignes affichées en fonction de plusieurs critères de champ et de valeur. 

 Tous les filtres sont combinés avec une opération *AND*. Support pour d'autres opérateurs sera ajouté. 

#### Limite
<a name="limit"></a>

 Une limite de lignes peut être spécifiée pour éviter de renvoyer trop de données. La valeur par défaut est 25. 

#### Champ horaire
<a name="time-field"></a>

 `Time Field`C'est ce qui transforme les données que vous avez demandées en séries chronologiques. Vos données étant traitées sous forme de séries chronologiques, les valeurs du « champ temporel » sélectionné qui ne se situent pas dans la plage de temps de votre tableau de bord/panneau ne seront pas affichées. 

 Le champ horaire par défaut utilisé est « Ouvert à », mais il peut être remplacé par n'importe quel champ disponible contenant une valeur horaire. 

 Une valeur spéciale « Ignorer le temps » est fournie pour autoriser les résultats « jusqu'à présent » et également pour permettre aux filtres de contrôler les données affichées. 

### Requêtes d'API agrégées (Stats)
<a name="aggregateapi-queries-stats"></a>

 L'AggregateAPI renverra toujours des métriques, avec les agrégations suivantes : avg, min, max, sum. Le filtrage est également disponible pour affiner les requêtes. 

#### Afficher
<a name="show-1"></a>

 La ligne *Afficher* fournit un sélecteur pour une métrique à afficher. Plusieurs métriques peuvent également être spécifiées. 

#### Filtres (généraux)
<a name="filters-general-1"></a>

 *Les filtres* d'agrégation permettent d'affiner les mesures affichées en fonction de critères de champ et de valeur, comme dans le cas de l'option table. 

 Tous les filtres sont combinés avec une opération *AND*. Support pour d'autres opérateurs sera ajouté. 

 Les options du filtre Stat sont les mêmes que celles de TableAPI. 

#### Agrégation
<a name="aggregation"></a>

 Il existe quatre types d'agrégations métriques, plus un « décompte » : 
+  Moyenne 
+  Minimum 
+  Maximum 
+  Somme 
+  Nombre : renvoie le « nombre » de métriques renvoyées par une requête 

##### Grouper par
<a name="group-by"></a>

 Ce sélecteur permet de diviser les métriques en agrégats de moindre importance. Le regroupement par « priorité » renverrait les métriques avec un « tag » de priorité et les valeurs uniques séparées. 

### Création de modèles
<a name="templating-2"></a>

 Au lieu de coder en dur les noms dans vos requêtes, 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 sur votre tableau de bord. 

 Consultez l'exemple de la section **Variable de requête** pour savoir comment ajouter une variable de requête et y faire référence avec une valeur de modèle. 

#### Variable de requête
<a name="query-variable"></a>

 Si vous ajoutez une variable de modèle de ce type`Query`, vous pouvez écrire une requête qui peut renvoyer des éléments tels que des noms de catégories, des noms de clés ou des valeurs clés affichées sous forme de zone de sélection déroulante. 

 Par exemple, vous pouvez avoir une variable contenant toutes les valeurs de `categories` en spécifiant une requête comme celle-ci dans le paramètre *Query* de la variable de modèle. 

 Lorsque vous choisissez le paramètre **Requête**, une section **Filtre** s'affiche, vous permettant de choisir un **type** et un **champ**. Actuellement, le **type** est limité aux incidents et aux modifications. Lorsque vous sélectionnez un type, une liste de champs applicables à ce type vous est fournie. Une fois qu'un **type** et un **champ** sont sélectionnés, un aperçu des valeurs s'affiche en bas, indiquant les options disponibles pour ce type/champ. Ces valeurs seront affichées dans une liste déroulante sur le tableau de bord, que vous pourrez utiliser avec Templating pour filtrer les données sur les panneaux de votre tableau de bord. 

 Par exemple, si vous ajoutez une variable nommée *catégorie* puis sélectionnez Type = Incidents et Champ = Catégorie, vous verrez une liste d'options pour Catégorie. Si vous ajoutez ensuite un filtre à un panneau et que vous sélectionnez Catégorie égale à \$1 \$1category\$1, les données du panneau n'afficheront que les données de la catégorie sélectionnée dans la liste déroulante du tableau de bord. 

 Importez le tableau de bord **Incidents par catégorie** pour voir un exemple. 

#### Utilisation de variables dans les requêtes
<a name="using-variables-in-queries"></a>

 Il existe deux syntaxes : 

 `$<varname>`Exemple avec une variable de modèle nommée `hostname` : 

 `[[varname]]`Exemple avec une variable de modèle nommée `hostname` : 

## Alerte
<a name="servicenow-alerting"></a>

 Les alertes Grafana standard sont prises en charge. Toutes les requêtes définies dans un panneau graphique peuvent être utilisées pour générer des alertes. 

 Voici un exemple de requête et d'alerte. Cette requête renverra un graphique de tous les incidents critiques hautement prioritaires ouverts : 

 Cette alerte sera déclenchée lorsqu'il y aura plus de cinq incidents critiques hautement prioritaires ouverts : 

 Le test de la règle d'alerte affichera le résultat de la règle d'alerte, et la sélection de l'historique de l'état indiquera que l'alerte passe de OK à En attente puis d'alerte. 

 La vue graphique affichera une ligne verticale et l'icône en forme de cœur en haut deviendra orange pendant que l'alerte est en attente. 

 Une fois que les critères d'alerte sont remplis, la règle passe au rouge.

 Dans la vue graphique, la ligne verticale rouge apparaît et l'icône en forme de cœur en haut devient rouge. 

### Rédaction d'incidents pour les alertes
<a name="writing-incidents-for-alerts"></a>

 **Fonctionnalité bêta** 
+  Configurez un canal de notification pour votre source de ServiceNow données. 

 Cela configurera un [canal de notification Grafana](https://grafana.com/docs/grafana/latest/alerting/notifications/) qui utilise votre utilisateur configuré pour créer des incidents sur l' ServiceNow instance pour cette source de données. 

 Cette action nécessite que l'utilisateur de la source de ServiceNow données soit autorisé à écrire des incidents. 

## Annotations
<a name="annotations-1"></a>

 Les annotations Grafana sont une **fonctionnalité bêta** de cette source `v1.4.0` de données. Les annotations vous permettent de superposer des événements sur des graphiques. 

 La requête Annotations prend en charge les mêmes options que l'éditeur de requêtes standard, à quelques différences mineures près : 
+  Une seule colonne « Afficher » est sélectionnable. Cela sera probablement corrigé dans une future amélioration. 
+  Le champ horaire est obligatoire. 

## FAQ
<a name="faq-1"></a>

### Et si nous n'avons pas le plugin ITSM Roles ?
<a name="what-if-we-dont-have-the-itsm-roles-plugin"></a>

 **L'accès administrateur est requis pour effectuer les actions suivantes** 

 Option 1 : accordez aux utilisateurs de Grafana des autorisations d'administrateur pour autoriser l'accès à toutes les tables. 

 Option 2 : créer un rôle et l'appliquer ACLs à toutes les tables auxquelles Grafana doit accéder.

 L'accès administrateur est requis pour effectuer les actions suivantes.

1.  L'administrateur connecté doit élever l'accès à security\$1admin.

   1.  Dans le volet de navigation en haut à droite, choisissez l'icône du profil. L'icône de profil comporte un indicateur de curseur déroulant. 

   1.  Dans la liste déroulante, choisissez **Elevate Roles.** 

   1.  Dans le modal affiché, cochez la case **security\$1admin**.

   1.  Choisissez OK. 

1. Créez un nouveau rôle avec la convention de dénomination de votre choix.

   1.  Accédez à la section des rôles dans le menu de navigation de gauche Sécurité du système => Utilisateurs et groupes => Rôles 

   1.  Choisissez **Nouveau** en haut.

   1.  Entrez un nom pour le rôle et une description appropriée. 

   1.  Sélectionnez **Soumettre**. 

1.  Créez un nouvel utilisateur ou modifiez un utilisateur existant avec les rôles nécessaires. 

   1.  Le rôle que vous créez à l'étape 2 

   1.  personnaliser\$1dictionnaire\$1 

   1.  personnaliser\$1choix\$1 

   1.  cmdb\$1read (cela accordera un accès en lecture à toutes les tables cmdb) 

1.  Créez une table ACLs pour les tables et les champs requis. 

   1.  Créez une ACL pour la table sys\$1db\$1object. 

     1.  Dans la deuxième colonne d'en-tête de recherche **Nom****sys\$1db\$1object**, entrez et appuyez sur **Entrée**. 

     1.  Le résultat filtré doit afficher le **tableau**. Choisissez **Table** pour accéder à l'enregistrement. 

     1.  Dans l'onglet, choisissez **Controls**.

     1.  Dans la partie inférieure de la page, assurez-vous que **l'onglet Contrôle d'accès** est sélectionné. 

     1.  Choisissez **Nouveau** pour créer une nouvelle ACL. 

     1.  Modifiez la sélection **d'opération** pour lire. 

     1.  Dans la section **Rôle requis** dans la partie inférieure de l'écran, choisissez (double-cliquez) **Insérer une nouvelle ligne** et recherchez le rôle que vous avez créé. 

     1. Après avoir sélectionné le rôle que vous avez créé, cochez la case verte. 

     1.  Choisissez **Soumettre** dans la partie inférieure de l'écran pour créer l'ACL, puis choisissez **Continuer** lorsque le modal apparaît. 

1.  Créez ACLs pour des champs sys\$1db\$1object spécifiques. Les étapes suivantes doivent être répétées pour chacun des champs suivants : nom, étiquette, nom d'affichage et table étendue. 

   1.  Pendant que vous êtes toujours dans la vue des enregistrements de table pour sys\$1db\$1object, sélectionnez l'onglet **Colonnes** dans le groupe d'onglets le plus proche en haut de l'écran.

   1.  Localisez le nom du champ et sélectionnez-le. 

   1.  Dans l'onglet inférieur, choisissez **Nouveau** dans l'onglet **Contrôles d'accès**. 

   1.  Modifier l'opération pour lire 

   1.  Choisissez (double-cliquez) d'insérer une ligne de texte dans le tableau « Rôle requis » inférieur. 

   1.  Recherchez le rôle que vous avez créé, puis cochez la case verte. 

   1.  Sélectionnez **Soumettre**. 

   1.  Assurez-vous d'avoir répété ces étapes pour tous les champs obligatoires : nom, étiquette, nom d'affichage et table étendue. 

1.  Répétez les étapes de la version 4.1 pour les tables Change, Incident et toutes les autres tables non CMDB que vous souhaitez interroger depuis Grafana. Ne répétez pas les étapes de la version 4.2 ; cette étape n'est requise que pour sys\$1db\$1object. 