Conexión a un origen de datos de Oracle Database - Amazon Managed Grafana

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a un origen de datos de Oracle Database

nota

Este origen de datos es solo para Grafana Enterprise. Para obtener más información, consulte Administración del acceso a los complementos empresariales.

Además, en los espacios de trabajo compatibles con la versión 9 o posterior, es posible que se deba instalar el complemento adecuado para este origen de datos. Para obtener más información, consulte Ampliación de su espacio de trabajo con complementos.

Adición del origen de datos

Seleccione Orígenes de datos en el panel izquierdo de Grafana.

Seleccione Agregar origen de datos:

Ingrese oracle para buscar el origen de datos.

Ingrese los detalles del servidor de Oracle.

Ingrese un nombre de host (o dirección IP) junto con el número de puerto y el nombre de usuario y la contraseña para conectarse.

Si activa la opción tnsnames, podrá utilizar cualquier entrada válida que se encuentre en el archivo de configuración tnsnames.ora, junto con la autenticación básica.

Similar al ejemplo anterior, pero con Kerberos para la autenticación. Consulte la guía de configuración específica de Kerberos para obtener detalles sobre cómo configurar el sistema operativo o el contenedor de Docker para usar Kerberos.

Si lo desea, cambie la zona horaria utilizada para conectarse al servidor de Oracle y para que la usen las macros con reconocimiento de zonas horarias. La configuración predeterminada es UTC.

Guarde y pruebe el origen de datos; debería aparecer un mensaje en color verde que ponga “La conexión a la base de datos es correcta”.

Uso

Macros

Para simplificar la sintaxis y permitir partes dinámicas, como los filtros de intervalo de fechas, la consulta puede contener macros. El nombre de la columna debe estar entre comillas dobles (").

Ejemplo de macros Descripción
*$__time(dateColumn)* | Se sustituirá por una expresión para cambiar el nombre de la columna a `time`. Por ejemplo, `dateColumn as time` *$__timeEpoch(dateColumn)* Se sustituirá por una expresión para cambiar el nombre de la columna a time y convertir el valor a una marca de tiempo Unix (en milisegundos).
*$__timeFilter(dateColumn)* | Se sustituirá por un filtro de intervalo de tiempo con el nombre de columna especificado. Por ejemplo, `dateColumn BETWEEN TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1.500.376.552.001 AND TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1500376552002` *$__timeFrom()* Se sustituirá por el inicio de la selección de tiempo actualmente activa convertida al tipo de datos DATE. Por ejemplo, TO_DATE('19700101','yyyymmdd') + (1/24/60/60/1000) * 1500376552001.
*$__timeTo()* | Se sustituirá por el final de la selección de tiempo actualmente activa convertida al tipo de datos *$__timeGroup(dateColumn,"5m")* Se sustituirá por una expresión utilizable en la cláusula AGRUPAR POR.
*$__timeGroup(dateColumn,"5m"[, fillvalue])* Se sustituirá por una expresión utilizable en la cláusula AGRUPAR POR. Si se proporciona un valor fillValue nulo o flotante, se rellenarán automáticamente las series vacías en un intervalo de tiempo con ese valor. Por ejemplo, timeGroupcreatedAt, ′1m′, 0.*__timeGroup(dateColumn,"5m", 0)*.
*timeGroup(dateColumn, ‘5m’, NULL) * |SameasabovebutNULLwillbeusedasvalueformissingpoints.*__timeGroup(dateColumn,"5m", previous)* Igual que arriba, pero el valor anterior de esa serie se utilizará como valor de relleno si no se ha visto ningún valor, pero se utilizará NULL.
*$__ unixEpochFilter (DateColumn) * | Se reemplazará por un filtro de rango de tiempo con el nombre de columna especificado y las horas se representarán como marca de tiempo de Unix (en milisegundos). Por ejemplo, `DateColumn >= 1500376552001 Y DateColumn <= 1500376552002` *$__ () * unixEpochFrom Se sustituirá por el inicio de la selección de tiempo actualmente activa como una marca de tiempo de Unix. Por ejemplo, 1500376552001.
*$__unixEpochTo()* Se sustituirá por el final de la selección de tiempo actualmente activa como una marca de tiempo de Unix. Por ejemplo, 1500376552002.

El complemento también admite la notación mediante llaves ({}). Use esta notación cuando se necesiten consultas dentro de los parámetros.

nota

Utilice un tipo de notación por consulta. Si la consulta necesita llaves, todas las macros de la consulta deben usar llaves.

$__timeGroup{"dateColumn",'5m'} $__timeGroup{SYS_DATE_UTC("SDATE"),'5m'} $__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}

El editor de consultas tiene un enlace SQL generativo que aparece una vez ejecutada la consulta, en el modo de edición de panel. Al elegir el enlace, se expande y muestra la cadena SQL interpolada sin procesar que se ejecutó.

Consultas de tablas

Si la opción de consulta Formatear como está establecida en Tabla, básicamente puede hacer cualquier tipo de consulta SQL. En el panel de tablas se mostrarán automáticamente los resultados de las columnas y filas que devuelva la consulta. Puede controlar el nombre de las columnas del panel Tabla mediante la sintaxis de selección de columnas de SQL as normal.

Consultas de series temporales

Si establece Formatear como en Serie temporal, para su uso en el panel de gráficos, por ejemplo, la consulta debe devolver una columna con el nombre time que devuelva una fecha y hora de SQL o cualquier tipo de datos numéricos que representen la época de Unix en segundos. Grafana interpreta las columnas DATE y TIMESTAMP sin zona horaria explícita como UTC. Cualquier columna excepto time y metric se trata como una columna de valores. Puede devolver una columna con el nombre metric que se utilice como nombre de métrica para la columna de valores.

En el siguiente ejemplo de código se muestra la columna metric.

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

Más consultas: usando 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

En el siguiente ejemplo de código se muestra una serie temporal 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

En el siguiente ejemplo se muestra un resultado de tabla útil.

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

Plantillas

En lugar de codificar elementos como el nombre del servidor, la aplicación y el sensor en las consultas de métricas, puede utilizar variables. Las variables se muestran como cuadros de selección desplegables en la parte superior del panel de control. Estas casillas desplegables facilitan el cambio de datos que se muestran en el panel.

Variable de consulta

Si agrega una variable de plantilla del tipo Query, puede escribir una consulta de Oracle que devuelva elementos como nombres de mediciones, nombres de clave o valores de clave que se muestran en un cuadro de selección desplegable.

Por ejemplo, puede tener una variable que contenga todos los valores de la columna hostname en una tabla si especifica una consulta como esta en la configuración de consulta de la variable de plantilla.

SELECT "hostname" FROM host

Una consulta puede devolver varias columnas y Grafana creará automáticamente una lista a partir de ellas. Por ejemplo, la siguiente consulta devolverá una lista con los valores de hostname y hostname2.

SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city

Para utilizar macros que dependen del intervalo de tiempo, como $__timeFilter("time_column"), en su consulta, el modo de actualización de la variable de plantilla debe estar establecido en Al cambiar el intervalo de tiempo.

SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")

Otra opción es una consulta que puede crear una variable de clave-valor. La consulta debe devolver dos columnas denominadas __text y __value. El valor de la columna __text debe ser único (si no lo es, se utilizará el primer valor). Las opciones de la lista desplegable tendrán un texto y un valor que le permita asignar un nombre descriptivo como texto y un ID como valor. En el siguiente código de ejemplo se muestra una consulta con hostname como texto y id como valor.

SELECT "hostname" AS __text, "id" AS __value FROM host

También puede crear variables anidadas. Por ejemplo, si tuviera otra variable llamada region. puede hacer que la variable de hosts muestre solo los hosts de la región actualmente seleccionada con una consulta como esta (si region es una variable con valores múltiples, utilice el operador de comparación IN en lugar de = para compararla con varios valores).

SELECT "hostname" FROM host WHERE region IN('$region')

Uso de variables en consultas

Los valores de las variables de plantilla solo se especifican entre comillas cuando la variable de plantilla es multi-value.

Si se trata de una variable de varios valores, utilice el operador de comparación IN en lugar de = para que coincida con varios valores.

Existen dos sintaxis:

Ejemplo de $<varname> con una variable de plantilla llamada hostname:

SELECT "atimestamp" as time, "aint" as value FROM table WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname') ORDER BY "atimestamp" ASC

Ejemplo de [[varname]] con una variable de plantilla llamada hostname:

SELECT "atimestamp" as time, "aint" as value FROM table WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]') ORDER BY atimestamp ASC