Esta página ha sido traducida por una máquina.

Realización de análisis avanzados con Link

Conozca la aplicación de la función Link para realizar análisis avanzados con el caso de uso descrito en este tema.

Para conocer los pasos para utilizar la función Link para analizar los registros de log, consulte Visualización de enlaces.

Escenarios de ejemplo:

Caso de uso Función Link Logs de ejemplo

Visualización de datos de series de tiempo mediante la función de tendencia Link

Tendencia de enlace

EBS Concurrent Request Logs

Análisis de los logs de acceso de Oracle WebLogic Server

Enlace de características básicas

FMW WLS Server Access Logs

Generación de gráficos con campos virtuales

Uso de campos virtuales para gráficos

SAR CPU Logs

Enlace con Sentencia SQL como campo de análisis

Uso de Sentencia SQL como campo

Database Audit Logs, Database Audit XML Logs, Oracle Unified DB Audit Log Source Stored in Database 12.1

Análisis del tiempo transcurrido entre pasos de una transacción

Análisis de tiempo

Access Logs

Generación de gráficos para varios campos y sus valores

Gráficos para varios campos y sus valores

-

Agregación de segundo nivel mediante el comando eventstats en Link

Agregación de segundo nivel

Access Logs

Uso de funciones de navegación de enlaces para identificar eventos en una base de datos

Funciones de navegación

Database Alert Logs

Uso de los símbolos de moneda en el análisis de log

Uso del símbolo de moneda en tablas y gráficos de grupos

Gasoline Prices

Análisis de series temporales mediante el comando timestats

Analizar la tendencia de un campo

OCI VCN Flow Unified Schema Logs

Agrupación en clusters de series temporales

Agrupar valores de series temporales similares

OCI VCN Flow Unified Schema Logs

Visualización de datos de series temporales mediante la función de tendencia Link

Link se utiliza para agrupar los registros de log por campos específicos. Las distintas estadísticas que puede extraer de estos grupos se pueden visualizar mediante la visualización del gráfico de burbujas. La visualización del gráfico de burbujas ahora se ha mejorado para soportar el campo Tiempo como eje.

En los siguientes pasos se explica cómo utilizar la función de tendencia para analizar la duración del trabajo para las solicitudes simultáneas de Oracle E-Business Suite (EBS).

Tenga en cuenta el siguiente log de ejemplo en la ruta de archivo /u01/oracle/appl_top/req/l7474445.req:

Human Resources: Version : 12.2

Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.

AME_MIGRATIONB: Approvals Management Post Upgrade Process
+---------------------------------------------------------------------------+

Current system time is 24-JUL-2018 01:04:29 
+---------------------------------------------------------------------------+

**Starts**24-JUL-2018 01:04:30
**Ends**24-JUL-2018 01:04:30
Migration of item class usages successful
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+

+---------------------------------------------------------------------------+
No completion options were requested.

Output file size: 
0
Deleting empty output file.

+---------------------------------------------------------------------------+
Concurrent request completed successfully
Current system time is 24-JUL-2018 01:04:32

+---------------------------------------------------------------------------+

El origen definido por Oracle logs de solicitudes simultáneas de EBS - Mejorados extrae el campo ID de solicitud de la ruta de archivo. Por ejemplo, los datos numéricos 7474445 son el ID de solicitud extraído de la ruta de archivo del log de ejemplo anterior. El origen también extrae los metadatos asociados para cada ID de solicitud.

  1. Seleccione el origen y cambie a la visualización de Link:

    En el panel Campos, haga clic en Origen de log > Seleccione el origen de log Logs de solicitud simultánea de EBS - Mejorado > Cambie a la visualización Enlazar > Arrastre y suelte el campo ID de solicitud en el panel Agrupar por para obtener la lista de solicitudes:



    La consulta generada automáticamente tiene el siguiente aspecto:

    'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID'
  2. Extraiga la hora de inicio y de finalización de la solicitud:

    Cada solicitud tiene una hora de inicio y una hora de finalización impresas en el archivo. Si la hora de finalización está ausente, la hora a la que se actualiza el archivo se considera la hora de finalización. El origen de log está configurado para capturar estos valores como campos Hora de inicio de evento y Hora de finalización de evento.

    Edite la consulta para extraer estos campos:

    'Log Source' = 'EBS Concurrent Request Logs - Enhanced'
    | link 'Request ID'
    | stats earliest('Event Start Time') as 'Request Start Time',
    latest('Event End Time') as 'Request End Time'

    earliest es una función del comando stats. De esta forma se ordenan los registros de cada ID de solicitud por hora y se devuelve la hora de inicio de evento más antigua. Del mismo modo, con latest se devuelve la última hora de finalización del evento.

    Ahora puede ver los nuevos campos en la tabla de registros:



    Hora de inicio de solicitud y Hora de finalización de solicitud se detectan automáticamente como registros de hora y tienen formato en la zona horaria local. Cuando se recopilan los archivos, el agente utiliza la zona horaria de la base de datos de EBS para interpretar los registros de hora.

    Nota

    Para asegurarse de que la zona horaria de la base de datos se muestra como se esperaba en el directorio raíz de configuración de Oracle Infrastructure Monitoring y para evitar la discrepancia en los valores, proporcione la zona horaria durante la carga.
  3. Duración de la solicitud de recursos informáticos:

    Ahora que tenemos las horas de inicio y finalización de cada solicitud, podemos calcular la duración como la diferencia entre estos dos campos.

    Cambie la consulta como corresponda:

    'Log Source' = 'EBS Concurrent Request Logs - Enhanced'
    | link 'Request ID'
    | stats earliest('Event Start Time') as 'Request Start Time',
    latest('Event End Time') as 'Request End Time'
    | eval 'Time Taken' = 'Request End Time' - 'Request Start Time'

    Tiempo usado es un nuevo campo creado para cada grupo de ID de solicitud. Podría contener la diferencia entre la hora de inicio y de finalización de la solicitud.



    Nota

    Oracle Logging Analytics detecta automáticamente el tiempo empleado como un campo de duración, ya que se produce por la diferencia entre dos campos de registro de hora. Por lo tanto, adopta automáticamente el formato legible por el hombre.

  4. Tendencia del tiempo que tardan las solicitudes simultáneas de EBS:

    El campo Tiempo empleado ahora se puede analizar para las tendencias. Haga clic en el icono Analizar Análisis > Seleccione los campos Hora de inicio de solicitud y Tiempo usado en el cuadro de diálogo Analizar > Haga clic en Aceptar.

    De esta forma se cambiaría automáticamente la consulta a:

    'Log Source' = 'EBS Concurrent Request Logs - Enhanced'
    | link 'Request ID'
    | stats earliest('Event Start Time') as 'Request Start Time',
    latest('Event End Time') as 'Request End Time'
    | eval 'Time Taken' = 'Request End Time' - 'Request Start Time'
    | classify topcount = 300 'Request Start Time', 'Time Taken'

    El comando Classify toma dos campos, agrupa los resultados y marca las anomalías cuando corresponde. Los resultados se muestran en el gráfico de burbujas.

    Cuando se selecciona Tiempo para un eje, el gráfico de burbujas cambia automáticamente a la opción Tendencia. Para modificar las opciones del gráfico, haga clic en el icono Opciones de gráfico opciones de gráfico y cambie los parámetros necesarios.

    En el gráfico de burbujas resultante, la hora de inicio de solicitud se traza en el eje X y los clusters de tiempo empleado se trazan en el eje Y:



    La hora se muestra en la zona horaria local. El tamaño de las burbujas indica el número de solicitudes.

    En el gráfico de burbujas anterior, la duración de la solicitud de más de cuatro minutos se observa el 21 de julio de 2018. La mayoría de las solicitudes han finalizado en menos de dos minutos.

    Puede hacer clic en una o más burbujas para aumentar detalle y ver las solicitudes específicas.

Análisis de los logs de acceso de Oracle WebLogic Server

Tenga en cuenta el ejemplo de un juego de datos que consta de logs de acceso de Oracle WebLogic Server desde el origen de log FMW WLS Server Access Logs. Los registros de log contienen datos sobre el acceso de los usuarios a Oracle WebLogic Server durante un período de tiempo específico. Estos registros de log individuales se pueden analizar para obtener información significativa sobre las estadísticas de uso, la popularidad de las URL, los usuarios más activos y más datos de este tipo. En los logs, descubra cómo obtener los siguientes resultados analizando los registros de log con la selección de campos específicos para cada resultado:

  1. Mostrar las URL principales por número de aciertos

  2. Mostrar las anomalías por número de aciertos

  3. Mostrar las anomalías por duración de acceso

  4. Identificar las URL por tamaño de carga

  5. Identificar las URL por tamaño de descarga

  6. Analizar la correlación entre el número de aciertos y el tamaño de descarga

  7. Determinar las páginas más visitadas

  8. Identificar los usuarios principales

  9. Identificar los usuarios principales y sus páginas favoritas

  10. Identificar la página de entrada que controla el máximo de visitas

  11. Identificar la ruta de entrada y salida para la mayoría de los usuarios

Nota

  • Utilice el comando rename para cambiar el nombre del campo por uno que sea más relevante para el caso de uso.

  • El comando classify permite analizar los grupos y muestra el resultado como un gráfico de burbujas. Para ver simplemente el resultado de la ejecución de una consulta en formato tabular, elimine el comando classify de la consulta y vuelva a ejecutarlo.

  • Haga clic en la burbuja anómala del gráfico para ver los detalles de los grupos anómalos. Para volver al resultado original después de investigar la burbuja, haga clic en el icono Deshacer Deshacer.

  • Al ejecutar el comando link, se muestra la duración del grupo en un formato legible en el gráfico de burbujas, por ejemplo, en minutos o segundos. Sin embargo, si desea ejecutar un comando where después del comando link para buscar transacciones que hayan tardado más de la cantidad especificada de segundos (por ejemplo, 200 segundos), la unidad que debe utilizar es milisegundos.

Para recuperar el juego de datos, seleccione un rango de fechas adecuado, especifique el origen de log y ejecute la consulta:

'Log Source' = 'FMW WLS Server Access Logs'

Seleccione Enlazar abrir enlace en el panel Visualizar. Se mostrará la tabla de grupos 'FMW WLS Server Access Logs' y el gráfico de burbujas.

  1. Para mostrar las URL principales por número de aciertos, agrupe los registros de log por el valor de la URL en el registro de log, obtenga el recuento total de la URL en cada grupo, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y muestre el resultado en formato tabular. Con este análisis, puede determinar las URL más utilizadas.

    1. Arrastre y suelte el campo URI en Agrupar por y elimine el campo Origen de log de Agrupar por.

    2. Una vez ejecutada la consulta, en la línea de comandos, cambie los nombres de los campos Recuento por Número de aciertos, Hora de inicio to Primer acceso, Hora de finalización to Último acceso, así como Duración de grupo por Duración de acceso.

    3. Elimine el comando classify de la línea de comandos y envíe la consulta.

      La consulta será la siguiente:

      'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'

    Al ejecutar la consulta, puede determinar las URL principales por número de aciertos en la tabla. El nombre de las columnas se cambia según lo especificado en el comando rename.

  2. Para mostrar las anomalías por número de aciertos, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el número de aciertos. Con este análisis, puede separar el patrón inusual en el acceso a las URL.

    Haga clic en Analizar, seleccione Número de aciertos y haga clic en Aceptar.

    La consulta debe cambiar a lo siguiente:

    'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Number of Hits'

    Esta consulta dispara el análisis de la columna 'Número de aciertos' y crea burbujas que representan los rangos que se suelen ver. La mayoría de los valores se tratan como base. Por ejemplo, una burbuja grande se puede convertir en la línea base, o un gran número de burbujas más pequeñas agrupadas pueden formar la línea base. Las burbujas que estén más lejos de la base se marcan como anomalías.

    Por lo tanto, de esta forma se muestran las URL anómalas agrupadas en burbujas separadas en el gráfico de burbujas. Para ver el porcentaje de URL en cada rango de número de aciertos, pase el cursor sobre las burbujas.

  3. Para mostrar las anomalías por duración de acceso, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a valores adecuados y analice los grupos para obtener la duración de acceso de la URL. Con este análisis, puede separar el patrón inusual en el tiempo dedicado a acceder a las URL. Como continuación al paso 2:

    Haga clic en Analizar, seleccione Duración de acceso y haga clic en Aceptar.

    La duración del acceso indica la duración durante la que se ha accedido a cada URL. Se calcula como la diferencia entre el último registro de hora y el primer registro de hora del archivo log para cada URL.

  4. Para identificar las URL por tamaño de carga, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el tamaño de los datos cargados. Con este análisis, puede identificar las URL que tengan un tamaño inusual de los datos cargados. Como continuación al paso 3:

    1. Arrastre y suelte el campo Tamaño de contenido en en la sección Valor.

    2. Cambie el nombre del campo Tamaño de contenido en a Bytes cargados modificando la consulta en la línea de comandos y ejecute la consulta.

    3. Haga clic en Analizar, seleccione Bytes cargados y haga clic en Aceptar.

      La consulta será la siguiente:

      'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Bytes Uploaded'

      En el gráfico Analizar se muestran los grupos de URL por los bytes cargados.

    4. Para correlacionar los datos de Bytes cargados en el rango de tiempo, puede ocultar o mostrar gráficos de forma selectiva en Opciones de gráfico de histograma. Explore las otras opciones de visualización además del gráfico de barras.

  5. Para identificar las URL por tamaño de descarga, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el tamaño de los datos descargados. Con este análisis, puede identificar las URL que tengan un tamaño inusual de datos descargados. Como continuación al paso 4:

    1. Arrastre y suelte el campo Content Size Out en la sección Valor y elimine Content Size In de la sección Valor.

    2. Cambie el nombre del campo Content Size Out a Tamaño de descarga modificando la consulta en la línea de comandos y ejecute la consulta.

    3. Haga clic en Analizar, seleccione Tamaño de descarga y haga clic en Aceptar.

      La consulta será la siguiente:

      'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Download Size'

      En el gráfico Analizar se muestran los grupos de URL por tamaño de descarga.

    4. Para correlacionar los datos de Tamaño de descarga en el rango de tiempo, puede ocultar o mostrar gráficos de forma selectiva en Opciones de gráfico de histograma. Explore las otras opciones de visualización además del gráfico de barras.

  6. Para analizar la correlación entre el número de aciertos y el tamaño de descarga, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para obtener el tamaño de los datos descargados y el número de aciertos. Con este análisis, puede identificar las URL que tengan patrones inusuales de tamaño de datos descargados y el número de aciertos. Como continuación al paso 5:

    1. Haga clic en Analizar, seleccione los campos Número de aciertos, Tamaño de descarga y haga clic en Aceptar.

    2. Elimine topcount=300 de la consulta para ver todas las burbujas y ejecute la consulta.

      La consulta será la siguiente:

      'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify 'Download Size', 'Number of Hits'

    En el gráfico de burbujas, el campo Número de aciertos se traza en el eje X y Tamaño de descarga en el eje Y.



    Las burbujas se pueden interpretar de la siguiente manera:

    • Se ha accedido al 73,8% de las URL de una a siete veces.

    • El tamaño medio de descarga para el 73,8% de las URL está entre 32.345 y 34.000. Este rango reducido implica que un gran número de direcciones URL tienen un comportamiento muy uniforme con referencia al tamaño de descarga.

    • Dado que el 73,8% es la gran mayoría, el resto de los puntos están marcados como anomalías.

    • Con datos reales, es habitual que el sistema agrupe archivos .css, .js y de imagen por separado de otras URL, ya que tienden a tener diferentes comportamientos de descarga.

  7. Para determinar las páginas más visitadas, agrupe los registros de log por el valor de la URL en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el número de visitantes únicos. Con este análisis, puede identificar las URL más visitadas por los visitantes únicos. Como continuación al paso 6:

    1. Arrastre y suelte el campo Nombre de usuario en la sección Valor.

    2. Haga clic en la flecha hacia abajo junto al nombre del campo, cambie la función de Único a Recuento distinto. Consulte las otras funciones que puede seleccionar para un campo numérico:

    3. Cambie el nombre del campo Nombre de usuario a Número de usuarios únicos, elimine el comando classify modificando la consulta en la línea de comandos y ejecute la consulta. La consulta será la siguiente:

      'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded', avg('Content Size Out') as 'Download Size', distinctcount('User Name') as 'Number of Unique Users' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' 
    4. Haga clic en Analizar, seleccione el campo Número de usuarios únicos y haga clic en Aceptar.

    En la tabla se muestran las URL y el número correspondiente de usuarios únicos, lo que nos ayuda a identificar las URL más visitadas por los usuarios únicos. En la tabla, también puede determinar el número de aciertos que tiene cada URL.

    El análisis muestra que más del 99 % de las URL tienen 0 o 1 usuario único. Este sería el caso de las URL que no necesitan una conexión o a las que rara vez se accede. Al profundizar en cualquiera de las burbujas más pequeñas, apuntará a las páginas específicas, cuántos aciertos suelen tener y cuántos visitantes únicos.

  8. Para identificar los usuarios principales, agrupe los registros de log por el valor del nombre de usuario en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el número de aciertos. Con este análisis, puede identificar los usuarios más activos.

    1. Edite la línea de comandos para eliminar todos los filtros: 'Log Source' = 'FMW WLS Server Access Logs' | link URI

    2. Arrastre y suelte el campo Nombre de usuario en Agrupar por, elimine URI y ejecute la consulta.

    3. Elimine el comando classify, cambie el nombre de los campos por defecto en la línea de comandos y ejecute la siguiente consulta:

      'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'

      La tabla se ordena por el número de aciertos del usuario.

    4. Para ver el comportamiento del usuario por acceso, haga clic en Analizar, seleccione el campo Número de aciertos y haga clic en Aceptar.

    5. Haga clic en las anomalías para identificar los usuarios que han registrado un número mayor o menor de aciertos en comparación con los demás usuarios.

  9. Para identificar los usuarios principales y sus páginas favoritas, agrupe los registros de log por el valor del nombre de usuario en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para el número de páginas únicas. Con este análisis, puede identificar los usuarios menos activos y los más activos, así como sus páginas favoritas. Como continuación al paso 8:

    1. Arrastre y suelte el campo URI en la sección Valor. Cambie la función de Único a Recuento distinto.

    2. Cambie el nombre del campo URI a Número de páginas únicas modificando la consulta en la línea de comandos y ejecute la consulta.

    3. Haga clic en Analizar, seleccione el campo Número de páginas únicas y haga clic en Aceptar.

  10. Para identificar la página de entrada que controla el máximo de visitas, agrupe los registros de log por el valor del nombre de usuario en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para encontrar los valores de las URL de entrada y el número de aciertos para las URL. Con este análisis, puede identificar las páginas a las que los usuarios acceden primero. Como continuación al paso 9:

    1. Para obtener las URL de entrada, cambie la función del campo URI de Recuento distinto a Primero.

    2. Cambie el nombre del campo URI a URL de entrada modificando la consulta en la línea de comandos y ejecute la consulta.

    3. Haga clic en Analizar, seleccione los campos Número de aciertos y URL de entrada, seleccione el topcount como 20 y haga clic en Aceptar.

      'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Number of Hits', 'Entry URL'


    De esta forma se muestra la primera URL utilizada por los usuarios en relación con el número de aciertos. Por ejemplo, /login es la URL que más utilizan los usuarios.

  11. Para identificar la ruta de entrada y salida para la mayoría de los usuarios, agrupe los registros de log por el valor del nombre de usuario en el registro de log, cambie el nombre de los campos por defecto de la tabla de grupos a los valores adecuados y analice los grupos para los valores de las URL de entrada y las URL de salida. Con este análisis, puede identificar
    • Las rutas más comunes que siguen los usuarios para transitar por el sitio web

    • Las páginas de productos más populares desde las que los usuarios salen del sitio web

    • Las URL de salida más comunes, como las páginas de finalización de compra del producto o la puerta de enlace de pago

    • Las URL de salida inusuales y la causa raíz de las salidas inesperadas

    Como continuación al paso 10:
    1. Arrastre y suelte el campo URI en la sección Valor.

    2. Para obtener la página de salida, cambie la función del campo URI de Único a Más reciente.

    3. Edite la línea de comandos y cambie el nombre del campo latest(URI) a URL de salida y envíe la consulta.

    4. Haga clic en Analizar, seleccione los campos URL de entrada y URL de salida, seleccione el topcount como 20 y haga clic en Aceptar.

      'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL', latest(URI) as 'Exit URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Entry URL', 'Exit URL'
    5. Aumente el tamaño del gráfico mediante Analizar opciones de gráfico.



    En este gráfico de rectángulos se muestra la relación entre las URL de entrada y salida de un sitio. Esto sería muy útil para los sitios minoristas en los que los proveedores de servicios desearían identificar las URL de entrada que llevan a los clientes a las páginas de finalización de compra, y las URL de producto que están causando que los usuarios no vayan a la finalización de compra.

Generación de gráficos con campos virtuales

Para crear un nuevo campo virtual, puede utilizar el comando eval en la función link. La consulta eval en la línea de comandos generará un gráfico de líneas para el campo virtual y activará el seguimiento a lo largo del tiempo.

Para crear un nuevo campo virtual, puede utilizar el comando eval en la función link. La consulta eval en la línea de comandos generará un gráfico de líneas para el campo virtual y activará el seguimiento a lo largo del tiempo.

Ejemplos:

  • Tenga en cuenta el caso en el que los registros de log del origen de log SAR CPU Logs se agrupan por el nombre de host y la CPU. Para determinar la carga experimentada por la CPU del servidor a lo largo del tiempo, el comando eval crea un campo virtual Load % y genera el gráfico de líneas.

    'Log Source' = 'SAR CPU Logs' | rename Instance as CPU | link 'Host Name (Server)', CPU | stats avg('CPU Idle Time (%)') as 'CPU Idle Time (%)' | eval 'Load %' = 100 - 'CPU Idle Time (%)'

    Para ver el gráfico de líneas:

    1. Haga clic en el separador Histograma.

    2. Haga clic en la flecha abajo junto al icono Opciones de gráfico (opciones de gráfico). Haga clic en Mostrar/Ocultar gráficos. Seleccione % de carga.

    3. Haga clic en la flecha abajo junto al icono Opciones de gráfico (opciones de gráfico). Haga clic en Opciones de gráfico. En la lista Tipo de gráfico, seleccione Línea sin marcador. Haga clic en Cerrar.



  • Tenga en cuenta el caso en el que los registros de log del origen de log OMC WLS Server Access Logs se agrupan por el URI. Para determinar el tamaño de los datos a los que se accede a lo largo del tiempo en megabytes, el comando eval crea un campo virtual Tamaño de contenido (MB), calcula el tamaño de contenido en MB según el valor del campo Tamaño de contenido y genera el gráfico de líneas.

    'Log Source' = 'WLS Server Access Logs' | link URI | stats avg('Content Size') as 'Content Size Bytes' | eval 'Content Size (MB)' = 'Content Size Bytes' / 1024

    Para ver el gráfico de líneas:

    1. Haga clic en el separador Histograma.

    2. Haga clic en la flecha abajo junto al icono Opciones de gráfico (opciones de gráfico). Haga clic en Mostrar/Ocultar gráficos. Seleccione Tamaño de contenido (MB) y Registros de log de acceso.

    3. Haga clic en la flecha abajo junto al icono Opciones de gráfico (opciones de gráfico). Haga clic en Opciones de gráfico. En la lista Tipo de gráfico, seleccione Línea sin marcador. Haga clic en Cerrar.



Enlace con Sentencia SQL como campo de análisis

El enlace soporta Sentencia SQL como campo para el análisis. Sentencia SQL contiene el SQL que se ejecuta y que capturan los orígenes de log como Database Audit XML Logs y Oracle Unified DB Audit Log Source Stored in Database 12.1.

Puede utilizar link 'SQL Statement' para agrupar sentencias SQL y analizar su comportamiento e identificar anomalías.

Ejemplo:

Tenga en cuenta la siguiente consulta que enlaza los registros de log en función del campo Sentencia SQL:

'Log Source' in ('Database Audit Logs', 'Database Audit XML Logs') 
	| rename 'Host Name (Server)' as 'DB Server', 'User Name (Originating)' as 'OS User', 'User Name' as 'DB User' 
	| link 'SQL Statement' 
	| rename Count as 'Number of Runs', 'Start Time' as 'First Run', 'End Time' as 'Last Run', 'Group Duration' as Age 
	| addfields [ Object = dual | stats count as 'dual Table Access' ], 
		[ Object like 'all_%' | stats count as 'ALL_ Table Access' ], 
		[ Object like 'dba_%' | stats count as 'DBA_ Table Access' ], 
		[ Object like 'user_%' | stats count as 'USER_ Table Access' ], 
		[ Object like 'v$%' | stats count as 'VDollar Table Access' ], 
		[ Object = null | stats count as 'No Table Access' ], 
		[ Action = '2' | stats count as 'Insert Count' ], 
		[ Action = '3' | stats count as 'Select Count' ], 
		[ Action = '6' | stats count as 'Update Count' ], 
		[ Action = '7' | stats count as 'Delete Count' ], 
		[ Type = '8' | stats count as 'Connect Count' ], 
		[ 'Status Code' = 1 | stats count as Failures ] 
	| eval 'Object Type' = if('dual Table Access' > 0, Dual, 
		'ALL_ Table Access' > 0, System, 
		'DBA_ Table Access' > 0, System, 
		'USER_ Table Access' > 0, System, 
		'VDollar Table Access' > 0, System, 
		'No Table Access' > 0, 'No Table', Other) 
	| eval 'SQL Type' = if('Insert Count' > 0, Insert, 
		'Select Count' > 0, Select, 
		'Update Count' > 0, Update, 
		'Delete Count' > 0, Delete, 
		'Connect Count' > 0, Connect, Other) 
	| stats distinctcount(Object) as Objects, distinctcount('Database ID') as 'Number of DBs', 
		distinctcount(Session) as 'Number of Sessions' 
	| fields -'dual Table Access', -'No Table Access', -'ALL_ Table Access', 
		-'USER_ Table Access', -'DBA_ Table Access', -'VDollar Table Access', -'Insert Count', 
		-'Select Count', -'Update Count', -'Delete Count', -'Connect Count', -'SQL Type', -'Object Type' 
	| classify Age 
	| classify 'Number of Sessions' 
	| classify 'Number of DBs' 
	| classify 'Number of Runs', 'Object Type' 
	| classify 'Object Type', 'SQL Type'
Nota

addfields es una función disponible con visualización de enlaces para agregar campos virtuales a la consulta. Toma una consulta y canaliza la salida a un comando stats. El campo virtual resultante está disponible en la tabla, así como en el gráfico de series temporales.

Para obtener la sintaxis y otros detalles del comando addfields, consulte addfields.

Al ejecutar la consulta anterior, se pueden observar los siguientes resultados:

  • Según el comando classify, se generan los gráficos de burbujas para Age, Number of Sessions, Number of DBs, Number of Runs, Object Type y Object Type, SQL Type.





    En los gráficos de burbujas, los registros de log se agrupan según el número de sentencias SQL incluidas en cada juego de parámetros. Los parámetros Object Type y SQL Type se determinan mediante el comando eval de la consulta.

  • En los gráficos del histograma Línea con área se muestran la aparición de campos como dual Table Access, No Table Access, ALL_ Table Access, USER_ Table Access, DBA_ Table Access, VDollar Table Access, Insert Count, Select Count, Update Count, Delete Count, Connect Count y Log Records en relación con el tiempo.

    1. En la ficha de gráfico de histograma, haga clic en la flecha hacia abajo junto al icono Opciones de gráfico (opciones de gráfico).

    2. Seleccione esta opción para mostrar los gráficos de todos los campos.

    3. En Tipo de gráfico, seleccione Línea con área.

    4. Ajuste el ancho para mostrar dos gráficos por línea.



  • En la tabla de grupos se muestran los grupos identificados por enlace según el campo Sentencia SQL. Puede observar que, para cada SQL, en la tabla se muestra el número de veces que se ha ejecutado el SQL, la hora de inicio, la hora de finalización y la duración del grupo. Haga clic en cada grupo y consulte los registros de log para obtener más información. También puede ver los grupos en la visualización del cluster para realizar un análisis más detallado.



Análisis del tiempo transcurrido entre pasos de una transacción

La función de enlace le permite analizar sesiones de usuario, extraer los diversos parámetros de tiempo mediante la agrupación y deducir datos sobre el tiempo de transacción para ayudarle a obtener estadísticas de negocio.

Tenga en cuenta este juego de datos sin ordenar tomado de un archivo log de acceso. Los siguientes campos indican la información sobre una sesión de usuario y las acciones que realiza el usuario:

Time | Session ID | Action
 T2  | 1          | Login
 T1  | 5          | Login
 T6  | 1          | addtocart
 T3  | 1          | productlisting
 T4  | 1          | purchase
 T9  | 1          | purchase
 T7  | 5          | addtocart
 T5  | 1          | addtocart
 T8  | 5          | purchase 

Las acciones como Login, addtocart, productlisting y purchase se registran en un orden aleatorio de T1 a T9 y se han producido en dos sesiones con el ID de sesión 1 y 5.

Para realizar un análisis de tiempo similar de los logs de acceso, extraiga Session ID de los logs en un campo. Extraiga los pasos intermedios de la sesión de los logs de acceso aplicando una expresión regular para obtener la URL de los logs.

En un contexto genérico, las sesiones de este ejemplo representan cualquier transacción de usuario, mientras que las acciones representan los pasos intermedios que realiza el usuario para completar una transacción.

Para analizar estos datos no ordenados y extraer la información necesaria, se puede ejecutar la siguiente consulta de ejemplo:

'Upload Name' = logadmin 
| link 'Session ID'
| rename 'Group Duration' as 'Session Duration' 
| addfields 
  [ Action = addtocart | stats earliest(Time) as 'First Add To Cart Time' ], 
  [ Action = purchase | stats latest(Time) as 'Last Purchase Time' ] 
| eval 'Time Taken for Purchase (Secs)' = ('Last Purchase Time' - 'First Add To Cart Time') / 1000 
| fields -'First Add To Cart Time', 
         -'Last Purchase Time' 
| classify 'Time Taken for Purchase (Secs)'
  • link 'Session ID' agrupa los registros de logs de acceso por ID de sesión, creando dos grupos:

    Time | Session ID | Action
     T2  | 1          | Login
     T6  | 1          | addtocart
     T3  | 1          | productlisting
     T4  | 1          | purchase
     T5  | 1          | addtocart
     T9  | 1          | purchase
    
     T1  | 5          | Login
     T7  | 5          | addtocart
     T8  | 5          | purchase
  • addfields se ejecuta en cada uno de estos grupos. El primer comando addfields selecciona los registros donde Action = addtocart. El resultado de esta consulta es el siguiente para ambos grupos:

    Time | Session ID | Action
     T6  | 1          | addtocart
     T5  | 1          | addtocart
    
     T7  | 5          | addtocart
  • stats earliest(Time) ordena el resultado anterior por tiempo para cada grupo:

    Time | Session ID | Action
     T5  | 1          | addtocart
     T6  | 1          | addtocart
     
     T7  | 5          | addtocart
  • A continuación, se selecciona el campo especificado, que es Time, del primer registro:

    'First Add To Cart Time' = T5 for Group = 1
    'First Add To Cart Time' = T7 for Group = 5
  • El segundo addfields se ejecuta en Action = purchase y extrae los siguientes registros:

    Time | Session ID | Action
     T4  | 1          | purchase
     T9  | 1          | purchase
    
     T8  | 5          | purchase
  • latest(Time) también ordena los registros anteriores por Time:

    Time | Session ID | Action
     T4  | 1          | purchase
     T9  | 1          | purchase
    
     T8  | 5          | purchase
  • latest(Time) selecciona el último registro y extrae el campo especificado, que es Time:

    'Last Purchase Time' = T9 for Group = 1
    'Last Purchase Time' = T8 for Group = 5
  • En este punto, ambos grupos tienen definidos los valores para First Add to Cart Time y Last Purchase Time. Se trata de registros de hora. eval resta uno de otro para obtener el tiempo transcurrido.

  • En efecto, puede obtener el tiempo que se tarda en agregar al carrito en el paso Comprar de cada sesión. Ahora se puede utilizar en classify para analizar la varianza de este tiempo transcurrido entre sesiones.



Para obtener la sintaxis y otros detalles del comando addfields, consulte addfields.

Generación de gráficos para varios campos y sus valores

Puede utilizar el comando addfields en la consulta para especificar varios campos para generar gráficos independientes. Ahora, también puede utilizar la opción Agregar/editar gráficos del histograma en la interfaz de usuario para realizar la misma operación que el comando addfields.

Normalmente, desea comparar los gráficos de un único campo con varios valores, por ejemplo, los valores del campo Gravedad, como Error, Crítico, Alerta y Advertencia. La opción Agregar gráfico permite generar varios gráficos para compararlos en paralelo especificando el campo y sus valores en el cuadro de diálogo.

También puede escribir y actualizar la consulta con el comando. La opción Agregar gráfico permite realizar la operación más rápido que crear la consulta con el comando addfields.

  1. En la interfaz de usuario de link, vaya al separador Registros de log > del menú Icono Opciones de gráfico Opciones de gráfico, haga clic en Agregar/editar gráficos para actualizar automáticamente la consulta con el comando addfields.

    Se abre el cuadro de diálogo Agregar/editar gráficos.

  2. Junto a Subconsulta, seleccione el campo en el menú, por ejemplo, Severity.

    Seleccione el operador relevante.

    Haga clic en el icono de edición Icono Editar para seleccionar uno o más valores, por ejemplo, alert. Los campos calculados no están soportados.

  3. Opcionalmente, seleccione la función Estadísticas.

    Junto a Estadísticas, seleccione la función que desea realizar en el campo y el campo de función en el menú desplegable.

    A excepción de la función count, todas las demás funciones requieren que se especifique el campo de función.

  4. Haga clic en Agregar gráfico para ver la consulta resultante. Haga clic en el icono de Editar Icono Editar para editar la consulta.

  5. Repita los pasos 2 a 4 para agregar más gráficos, por ejemplo, para generar gráficos para los valores error, critical y warning del campo Severity.

    Haga clic en Actualizar.

  6. Haga clic en el menú Opciones de gráfico opciones de gráfico y asegúrese de que los nuevos gráficos que ha generado se incluyan y seleccionen en la opción Mostrar/Ocultar. También puede seleccionar el tipo de gráfico, el tamaño del gráfico, la altura, el ancho y otros atributos. Consulte Gráfico de histograma.

Ahora puede ver los gráficos personalizados de los campos de selección y sus valores de selección en el separador Registros de log y compararlos visualmente.

Agregación de segundo nivel mediante el comando eventstats en Link

Link se utiliza para agrupar los registros de log con una o más claves únicas. Por ejemplo, puede agrupar todos los registros de log que pertenecen a una transacción mediante el ID de transacción único. Las estadísticas se pueden generar en cada grupo mediante el comando stats. eventstats es un nuevo comando que puede agregar aún más estas estadísticas. En los siguientes ejemplos se muestran los casos de uso de eventstats.

Tenga en cuenta los siguientes ejemplos de juego de datos de registros de acceso:

1-Jan-2020 10:00:00 PST, chicago_dc1    /index.html      100
1-Jan-2020 10:00:00 PST, chicago_dc1    /index.html      100
1-Jan-2020 10:00:00 PST, chicago_dc1    /index.html      50
1-Jan-2020 10:00:00 PST, chicago_dc1    /index.html      50
1-Jan-2020 10:00:00 PST, chicago_dc2    /index.html      200
1-Jan-2020 10:00:00 PST, chicago_dc2    /index.html      200
1-Jan-2020 10:00:00 PST, austin_dc7     /report/download 5000
1-Jan-2020 10:00:00 PST, austin_dc7     /users/auth      50
1-Jan-2020 10:00:00 PST, amsterdam_dc1  /index.html      350
1-Jan-2020 10:00:00 PST, amsterdam_dc1  /report/download 1024

El juego de datos tiene estos campos:

  • Tiempo: por ejemplo, 1-Jan-2020 10:00:00 PST.
  • Nombre de host (servidor): host que ha servido esta solicitud, por ejemplo, chicago_dc1.
  • URI: URL de la solicitud, por ejemplo, /index.html.
  • Content Size Out: número de bytes descargados, por ejemplo, 100.

Agrupación simple:

   * | link 'Host Name (Server)', URI
     | stats sum('Content Size Out') as 'Bytes Downloaded'

Con la consulta anterior se agrupan los registros de log mediante la combinación distinta de los campos Nombre de host (servidor) y URI. El campo Content Size Out de cada registro se suma por grupo en el nuevo campo Bytes descargados.

Suma global mediante evenstats

Los bytes descargados en el ejemplo anterior son para cada combinación de servidor y URL. Un caso de uso sencillo de eventstats es calcular el total de datos descargados en todos los servidores y direcciones URL:

  * | link 'Host Name (Server)', URI
    | stats sum('Content Size Out') as 'Bytes Downloaded'
    | eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded'


En el ejemplo anterior, eventstats agrega valores para cada grupo para producir una única acumulación global. Ahora se puede transferir a classify o eval, así como utilizarlo en la cláusula where.

Varios comandos eventstats:

Se pueden agrupar o encadenar varios comandos eventstats como en el siguiente ejemplo:

.. | eventstats sum('Content Size In') as 'Bytes Uploaded', sum('Content Size Out') as 'Bytes Downloaded'
   | eventstats avg('Duraton') as 'Global Average Duration'

Agrupación con eventstats

El comando eventstats también tiene un modo group by. Observe la siguiente consulta:

* | link 'Host Name (Server)', URI
  | stats sum('Content Size Out') as 'Bytes Downloaded'
  | eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by URI

En lugar de calcular un único valor, eventstats ahora calcula un valor por URI único:



La suma se produce primero al obtener los distintos URI y, a continuación, al realizar la agregación:

index.html       -> 300 + 400 + 350 = 1050
/report/download -> 5000 + 1024     = 6024
/users/auth      -> 50              = 50

Eventstats con eval

El comando eventstats también puede funcionar en un campo producido por un comando eval. Por ejemplo, en lugar de la URL, podemos producir los totales en el centro de datos:

* | link 'Host Name (Server)',  URI
  | stats sum('Content Size Out') as 'Bytes Downloaded'
  | eval offset = indexof('Host Name (Server)', _)
  | eval Datacenter = substr('Host Name (Server)', 0, offset)
  | eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
  | fields -offset


La función sum se ejecuta después de la agrupación por subcadenas:

chicago_dc1 = 300 
chicago_dc2 = 400
  -> chicago = 300+400 = 700

amsterdam_dc1 = 350
amsterdam_dc1 = 1024
  -> amsterdam = 350 + 1024 = 1374

austin_dc7 = 5000
austin_dc7 = 50
 -> austin = 5000 + 50 = 5050

La agrupación se puede realizar mediante una o más propiedades. Las propiedades son las claves de grupo o los valores de cadena que generan stats o eval.

Porcentajes de cálculo para comparación de grupos

Una aplicación muy importante para el comando eventstats es producir un valor global, así como identificar el porcentaje alto o el porcentaje bajo de contribución de los distintos grupos:

 * | link 'Host Name (Server)', URI
   | stats sum('Content Size Out') as 'Bytes Downloaded'
   | eval offset = indexof('Host Name (Server)', _)
   | eval Datacenter = substr('Host Name (Server)', 0, offset)
   | eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
   | eval 'Download Contribution %' = 100 / ('Total Bytes Downloaded' / 'Bytes Downloaded')
   | fields -offset


El % de contribución de descarga se calcula utilizando el valor global producido por eventstats..by y el valor por grupo producido por stats:

chicago_dc1, index.html         => 100/(700/300)   = 42.857
chicago_dc2, index.html         => 100/(700/400)   = 57.143
amsterdam_dc1, index.html       => 100/(1374/350)  = 25.473
amsterdam_dc1, /report/download => 100/(1374/1024) = 74.527
austin_dc7, /report/download    => 100/(5050/5000) = 99.01
austin_dc7, /users/auth         => 100/(5050/50)   = 0.99

Esta consulta permite ver qué URL provocan el mayor volumen de tráfico de descarga en comparación con las otras URL del mismo centro de datos. El campo % de contribución de descarga se puede utilizar para filtrar los grupos mediante:

  • la cláusula where
  • el comando sort para la clasificación
  • el comando classify para la detección de anomalías

Uso de funciones de navegación de enlaces para identificar eventos en una base de datos

Utilice Link para crear datos estructurados a partir de registros log y mostrar los datos como una tabla ordenada. Las funciones estadísticas se pueden aplicar a las columnas de la tabla mediante el comando stats para crear columnas derivadas. Estas columnas derivadas se pueden agregar más mediante el comando eventstats.

Funciones de navegación

Las funciones de navegación son útiles para recuperar los valores de una columna específica de una fila específica. Producen resultados diferentes según el comando de ordenación anterior.

Las siguientes funciones de navegación se pueden utilizar con el comando eventstats en el enlace:

Función Descripción

rownum

Permite crear una columna de número de fila

first()

Permite obtener el primer valor para el campo especificado

last()

Permite obtener el último valor para el campo especificado

nthval()

Permite obtener el valor de columna para la fila especificada

lag()

Permite obtener el valor de columna para la fila anterior

lead()

Permite obtener el valor de columna para la siguiente fila

Para obtener más información sobre las funciones, consulte eventstats.

Obtención de contexto para un evento

Oracle Log Analytics proporciona etiquetas listas para usar para logs de alertas de base de datos. La etiqueta Abnormal Termination indica una incidencia grave que provoca el cierre de la base de datos. Una clasificación típica implica analizar la secuencia de eventos que ocurrieron antes de dicho cierre. También es útil conocer los eventos después de un cierre.

En las siguientes secciones se explican los pasos para clasificar mediante algunas de las funciones eventstats para logs de alertas de base de datos.

Enlace de eventos en logs de alertas de base de datos

Ejecute la siguiente consulta para enlazar los eventos de una base de datos seleccionada:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'

De esta forma se crea una fila única para cada etiqueta en la base de datos. Dado que hemos incluido la columna Hora, habría varias filas para la misma etiqueta si se repiten en momentos diferentes.

El comando sort ordena la tabla por el orden de Etiqueta, con el más antiguo en la primera fila.

Adición del número de fila

Ejecute la siguiente consulta para agregar un número a cada fila:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database

Si la consulta tenía más de una base de datos, el número de fila se restablecería para cada base de datos, debido a la cláusula by Database.

Identificación de la fila con evento de fallo de base de datos

La etiqueta Abnormal Termination indica que la base de datos se ha bloqueado. Identifique dichas filas con la siguiente consulta:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
   [ * | where Label = 'Abnormal Termination'
       | eventstats last('Row Number') as 'Crash Row'
   ]

addfields se utiliza para identificar un subjuego de los registros de log. En este caso, con addfields se buscan varias filas de la tabla. Las filas coincidentes se transfieren a eventstats y last('Row Number') selecciona el número de fila de la última fila coincidente. Ahora se rellena como un nuevo campo Fila de bloqueo. Tenga en cuenta que Fila de bloqueo tendrá un valor solo para aquellas filas que coincidan con la condición especificada en addfields.

Fila de bloqueo solo se rellena para filas específicas. Utilice otro comando eventstats para rellenar todas las filas con el valor:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
   [ * | where Label = 'Abnormal Termination'
       | eventstats last('Row Number') as 'Crash Row'
   ]
| eventstats max('Crash Row') as 'Event Row' by Database

De esta forma se crea la columna Fila de eventos en cada fila y contiene la fila con el último bloqueo de la base de datos.

Identificación de eventos cercanos a un bloqueo de la base de datos

En la tabla sigue habiendo varios eventos, por ejemplo, cientos. Para identificar algunos eventos antes de la fila de evento y pocos eventos después de la fila de evento, cambie la consulta para filtrar las filas:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
   [ * | where Label = 'Abnormal Termination'
       | eventstats last('Row Number') as 'Crash Row'
   ]
| eventstats max('Crash Row') as 'Event Row' by Database
| eval 'Start Row' = 'Event Row' - 3
| eval 'End Row' = 'Event Row' + 2
| where 'Row Number' >= 'Start Row' and 'Row Number' <= 'End Row'

En la tabla ahora se muestran los eventos ocurridos antes de la terminación anormal. También podemos ver los eventos que ocurridos después de la terminación anormal.

Eventos anteriores y siguientes

lag() se puede utilizar para obtener el evento anterior. Se puede transferir un número de fila opcional para obtener una fila anterior específica. lead() se puede utilizar de forma similar para obtener la siguiente fila:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| addfields
   [ *
      | where Label != null
      | eventstats lag(Label) as 'Previous Event',
                   lead(Label) as 'Next Event'
   ]

Además, nthVal() puede obtener el valor de una fila específica.

Uso de los símbolos de moneda en el análisis de log

Puede utilizar la función unit en el comando eval para marcar un campo como que contiene la moneda. A continuación, puede utilizar ese valor de campo en el análisis y mostrar el símbolo de moneda correspondiente en la tabla de visualizaciones y grupos.

Primero puede especificar la unidad de moneda con el formato definido en eval. Después de eso, la tabla de enlaces y los gráficos mostrarán los símbolos de moneda correctos.

En el siguiente ejemplo, el valor del campo Price se utiliza para calcular los valores de los nuevos campos Price (USD), Price (GBP), Price (JPY), Price (CNY) y Price (INR) y marcarlos como que contienen la moneda. Los mismos nuevos campos se utilizan para el análisis en la obtención del precio medio regional de la gasolina durante un período de varios años.

'Log Source' = 'Gasoline Prices'
| eval 'Price (USD)' = unit(Price, currency_usd)
| eval 'Price (GBP)' = unit(Price * 0.72, currency_gbp)
| eval 'Price (JPY)' = unit(Price * 110.6, currency_jpy)
| eval 'Price (CNY)' = unit(Price * 6.47, currency_cny)
| eval 'Price (INR)' = unit(Price * 74.79, currency_inr)
| link Time, Type, Region
| stats avg('Price (USD)') as 'Cost (USD)', 
        avg('Price (GBP)') as 'Cost (GBP)', 
        avg('Price (JPY)') as 'Cost (JPY)', 
        avg('Price (CNY)') as 'Cost (CNY)', 
        avg('Price (INR)') as 'Cost (INR)'
| classify 'Start Time', 'Cost (USD)', Region, Type as 'Gas Price Analysis'

En la siguiente imagen, los grupos se identifican en función de la región, el tiempo y el tipo de gasolina. La banda de precios promedio de la gasolina se utiliza para trazar las burbujas a lo largo del eje Y.


Grupos identificados en función de la región, el tiempo y el tipo de gasolina

En la siguiente imagen, la tabla de grupos muestra el precio promedio de la gasolina en varias monedas. Los gráficos muestran la variación del costo en varios años para cada valor de moneda.


La tabla Grupos muestra el precio promedio de la gasolina en varias monedas

Análisis de series temporales con el comando timestats

Puede analizar la tendencia de un campo mediante el comando timestats. El comando timestats, cuando se utiliza después del comando link, proporciona análisis de series temporales adicionales y una visualización enriquecida.

Considere el ejemplo de logs de esquema unificado de flujo de VCN de OCI. El campo Acción de los logs de esquema unificado de flujo de VCN de OCI indica si se ha aceptado o rechazado una solicitud de red concreta. Utilice el comando timestats para analizar la tendencia de este campo. Consulte timestats.

A partir del comando básico link:

'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link Action

Esto muestra que hay dos valores distintos para el período de tiempo seleccionado:


dos valores distintos para el período de tiempo seleccionado

En el caso anterior, solo hay una fila disponible para cada acción única porque el comportamiento predeterminado es agrupar por el campo determinado. El primer paso consiste en asegurarse de que hay varias filas para cada valor en función del periodo de tiempo. Para ello, puede agregar Tiempo como otro campo al comando link.

'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link span=1day Time, Action

El parámetro span es opcional. Si no se proporciona, se calcula un valor por defecto adecuado para el período de tiempo seleccionado. Ahora puede ver que la misma acción para un día diferente aparece en una fila independiente.


varias filas para cada valor según el período de tiempo

Ahora utilice el comando timestats. En este caso, queremos la hora de inicio en el eje X y el valor Recuento en el eje Y. Dado que timestats siempre requiere una función, utilice la función sum() para sumar el número de registros con el valor de acción determinado, para cada intervalo.

'Log Source' = 'OCI VCN Flow Unified Schema Logs' 
| link span=1day Time, Action
| timestats name="Trend of Action" sum(Count) as Records by Action

Muestra los valores sum(Count) para cada acción.


suma (recuento) valores para cada acción

Para obtener detalles sobre el trazado de la serie de tiempo mediante el comando timestats, los campos, los límites y las opciones de configuración, consulte Uso del comando timestats para trazar una serie de tiempo.

Agrupación en clusters de series temporales

Puede agrupar valores de series temporales similares mediante el comando timecluster después del comando link. La agrupación en clusters es útil cuando hay un gran número de series temporales que analizar o cuando desea identificar diferentes comportamientos en los valores de las series temporales.

Los logs de esquema unificado de flujo de VCN de OCI registran la información de tráfico de red para una VNIC de OCI. Para identificar cuántos datos transfieren diferentes IP públicas, se puede componer una consulta mediante los campos IP pública y Agotamiento de tamaño de contenido.

A partir del comando básico link:

'Log Source' = 'OCI VCN Flow Unified Schema Logs' | eval 'Content Size Out (bytes)' = unit('Content Size Out', byte) | link 'Public IP'

Esto muestra que hay más de 25k IP públicas únicas en el sistema.


más de 25k IP públicas únicas

La tabla tiene una fila por cada IP pública única. Debe dividirse para tener una fila para cada período. Para ello, agregue el campo Time al comando link:

'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'

Muestra varias filas para cada valor de IP pública.

Si se utiliza el comando timestats para trazar la serie temporal, devuelve solo las 100 IP públicas principales. No se pueden trazar las IP 25k en un gráfico.


El comando timestats devuelve solo las 100 IP públicas principales

Por lo tanto, en lugar de timestats, utilice timecluster para obtener los ejemplos representativos.

'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
| timecluster avg('Content Size Out (bytes)') as 'Network Transfer' by 'Public IP'

Trazar series temporales con el comando timecluster

Cada línea representa uno o más valores de IP pública que tienen valores similares para la transferencia de red.

Pase el mouse por encima de cualquier punto para ver más detalles:


Pase el mouse por encima de cualquier punto para ver más detalles

Para obtener más información sobre el comando timecluster y la agrupación en clusters de series temporales, consulte timecluster y Use timecluster Command to Plot a Time Series.