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.
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.
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.
Ajouter la source de données
Sélectionnez Sources de données dans le panneau de gauche de Grafana.
Sélectionnez Ajouter une source de données :
Entrez oracle
pour trouver la source de données.
Entrez les détails du serveur Oracle.
Entrez un nom d'hôte (ou adresse IP) ainsi que le numéro de port, le nom d'utilisateur et le mot de passe pour vous connecter.
Avec l'option tnsnames, toute entrée valide trouvée dans votre fichier de configuration tnsnames.ora peut être utilisée, ainsi que l'authentification de base.
Similaire à l'exemple précédent, mais en utilisant Kerberos pour l'authentification. Consultez le guide de configuration spécifique à Kerberos pour plus de détails sur la façon de configurer le système d'exploitation ou le conteneur docker pour utiliser Kerberos.
Modifiez éventuellement le fuseau horaire utilisé pour vous connecter au serveur Oracle et à utiliser par les macros adaptées au fuseau horaire. Le paramètre par défaut est UTC.
Enregistrez et testez la source de données, vous devriez voir un message vert avec « Connexion à la base de données OK »
Utilisation
Macros
Pour simplifier la syntaxe et autoriser les parties dynamiques, telles que les filtres de plage de dates, la requête peut contenir des macros. Le nom de colonne doit être placé entre guillemets ("
).
Exemple de macro | Description |
---|---|
*$__time (DateColumn) * | Sera remplacé par une expression pour renommer la colonne en `time`. Par exemple, `DateColumn as time` *$__timeEpoch (DateColumn) * | Sera remplacée par une expression pour renommer la colonne time et convertir la valeur en horodatage Unix (en millisecondes). |
*$__TimeFilter (DateColumn) * | Sera remplacé par un filtre de plage de temps utilisant le nom de colonne spécifié. Par exemple, `DateColumn BETWEEN TO_DATE ('19700101', 'yyyymmdd') + (1/24/60/60/1000) * 1500376552001 ET TO_DATE ('19700101', 'yyyymmdd') + (1/24/60/60/1000) * 1500376552002` *$__TimeFrom () * | Sera remplacé par le début de la sélection d'heure actuellement active convertie en type de DATE données. Par exemple, TO_DATE('19700101','yyyymmdd') +
(1/24/60/60/1000) * 1500376552001 . |
*$__TimeTo () * | Sera remplacé par la fin de la sélection d'heure actuellement active convertie en type de données `DATE`. *$__timeGroup (colonne de date, « 5 m ») * | Sera remplacée par une expression utilisable dans la clause GROUP BY. |
*$__timeGroup (DateColumn, « 5m » [, valeur de remplissage]) * | Sera remplacée par une expression utilisable dans la clause GROUP BY. La fourniture d'une valeur FillValue NULL ou d'une valeur flottante remplira automatiquement les séries vides dans la plage de temps avec cette valeur. Par exemple, t i m e G r o u p c r e a t e d A t, ′1 m ′, 0. *__TimeGroup (colonne de date, « 5 m », 0) *. |
* t i m e G r o u p (d a t e C o l u m n, '5 m ', N U L L) * | S a m e a s a b o v e b u t N U L L w i l l b e u s e d a s v a l u e f o r m i s s i n g C'est à nous de le faire. *__TimeGroup (DateColumn, « 5m », précédent) * | Comme ci-dessus, mais la valeur précédente de cette série sera utilisée comme valeur de remplissage si aucune valeur n'a été vue mais que la valeur NULL sera utilisée. |
*$__ unixEpochFilter (DateColumn) * | Sera remplacé par un filtre de plage de temps utilisant le nom de colonne spécifié avec les heures représentées par un horodatage Unix (en millisecondes). Par exemple, `DateColumn >= 1500376552001 ET DateColumn <= 1500376552002` *$__ () * unixEpochFrom | Sera remplacé par le début de la sélection d'heure actuellement active sous forme d'horodatage Unix. Par exemple, 1500376552001 . |
*$__unixEpochTo()* | Sera remplacé par la fin de la sélection d'heure actuellement active sous forme d'horodatage Unix. Par exemple, 1500376552002 . |
Le plugin prend également en charge la notation à l'aide d'accolades. {}
Utilisez cette notation lorsque des requêtes sont nécessaires dans les paramètres.
Note
Utilisez un type de notation par requête. Si la requête nécessite des accolades, toutes les macros de la requête doivent utiliser des accolades.
$__timeGroup{"dateColumn",'5m'}
$__timeGroup{SYS_DATE_UTC("SDATE"),'5m'}
$__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}
L'éditeur de requêtes possède un lien SQL généré qui s'affiche après l'exécution d'une requête, en mode édition du panneau. Lorsque vous choisissez le lien, il se développe et affiche la chaîne SQL interpolée brute qui a été exécutée.
Requêtes de table
Si l'option Formater en tant que requête est définie sur Table, vous pouvez essentiellement effectuer n'importe quel type de requête SQL. Le panneau du tableau affiche automatiquement les résultats des colonnes et lignes renvoyées par votre requête. Vous pouvez contrôler le nom des colonnes du panneau Table à l'aide de la syntaxe as
SQL classique de sélection des colonnes.
Requêtes de séries chronologiques
Si vous définissez Format en fonction de la série chronologique, pour une utilisation dans le panneau graphique par exemple, la requête doit renvoyer une colonne nommée time
qui renvoie soit une date SQL, soit un type de données numérique représentant l'époque Unix en secondes. Grafana interprète les colonnes DATE et TIMESTAMP sans fuseau horaire explicite en UTC. Toute colonne sauf time
et metric
est traitée comme une colonne de valeur. Vous pouvez renvoyer une colonne nommée metric
qui est utilisée comme nom de métrique pour la colonne de valeurs.
L'exemple de code suivant montre la metric
colonne.
SELECT
$__timeGroup("time_date_time", '5m') AS time,
MIN("value_double"),
'MIN' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY $__timeGroup("time_date_time", '5m')
ORDER BY time
Plus de requêtes — en utilisant oracle-fake-data-gen
SELECT
$__timeGroup("createdAt", '5m') AS time,
MIN("value"),
'MIN' as metric
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
GROUP BY $__timeGroup("createdAt", '5m')
ORDER BY time
L'exemple de code suivant montre une série chronologique de Fake Data.
SELECT
"createdAt",
"value"
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY "createdAt" ASC
SELECT
"createdAt" as time,
"value" as value
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY time ASC
L'exemple suivant montre un résultat de tableau utile.
select tc.table_name Table_name
,tc.column_id Column_id
,lower(tc.column_name) Column_name
,lower(tc.data_type) Data_type
,nvl(tc.data_precision,tc.data_length) Length
,lower(tc.data_scale) Data_scale
,tc.nullable nullable
FROM all_tab_columns tc
,all_tables t
WHERE tc.table_name = t.table_name
Création de modèles
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. Ces listes déroulantes permettent de modifier facilement les données affichées dans votre tableau de bord.
Variable de requête
Si vous ajoutez une variable de modèle de ce typeQuery
, vous pouvez écrire une requête Oracle qui peut renvoyer des éléments tels que des noms de mesures, des noms de clés ou des valeurs clés affichés sous forme de zone de sélection déroulante.
Par exemple, vous pouvez avoir une variable contenant toutes les valeurs de la hostname
colonne d'une table si vous spécifiez une requête de ce type dans le paramètre Query de la variable de modèle.
SELECT "hostname" FROM host
Une requête peut renvoyer plusieurs colonnes et Grafana créera automatiquement une liste à partir de celles-ci. Par exemple, la requête suivante renverra une liste contenant les valeurs de hostname
ethostname2
.
SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city
Pour utiliser des macros dépendantes d'une plage de temps, comme $__timeFilter("time_column")
dans votre requête, le mode d'actualisation de la variable de modèle doit être défini sur On Time Range Change.
SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")
Une autre option est une requête qui permet de créer une variable clé/valeur. La requête doit renvoyer deux colonnes nommées __text
et__value
. La valeur de la __text
colonne doit être unique (si elle ne l'est pas, c'est la première valeur qui est utilisée). Les options de la liste déroulante comporteront un texte et une valeur qui vous permettront d'avoir un nom convivial sous forme de texte et un identifiant comme valeur. L'exemple de code suivant montre une requête avec hostname
comme texte et id
comme valeur.
SELECT "hostname" AS __text, "id" AS __value FROM host
Vous pouvez également créer des variables imbriquées. Par exemple, si vous aviez une autre variable nomméeregion
. Vous pouvez alors faire en sorte que la variable hosts n'affiche que les hôtes de la région actuellement sélectionnée avec une requête comme celle-ci (s'il s'region
agit d'une variable à valeurs multiples, utilisez l'opérateur de IN
comparaison plutôt que de la comparer =
à plusieurs valeurs).
SELECT "hostname" FROM host WHERE region IN('$region')
Utilisation de variables dans les requêtes
Les valeurs des variables de modèle ne sont citées que lorsque la variable de modèle est unmulti-value
.
Si la variable est une variable à valeurs multiples, utilisez l'opérateur de IN
comparaison plutôt que de =
la comparer à plusieurs valeurs.
Il existe deux syntaxes :
$<varname>
Exemple avec une variable de modèle nommée hostname
:
SELECT
"atimestamp" as time,
"aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname')
ORDER BY "atimestamp" ASC
[[varname]]
Exemple avec une variable de modèle nommée hostname
:
SELECT
"atimestamp" as time,
"aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]')
ORDER BY atimestamp ASC