Saltar al contenido

Métricas – BigQuery

    BigQuery como destino para las métricas

    El módulo de métricas de la plataforma «Reevolute Builder» puede ser configurado para enviar la información de las transacciones a una base de datos BigQuery.
    Esta capacidad permite aprovechar las capacidades de BigQuery para realizar análisis detallados de la información proveniente de las transacciones.

    La información es depositada en una tabla de BigQuery en un formato estructurado, el que contiene campos del tipo JSON que permiten entregar la flexibilidad necesaria para adaptarse a los distintos tipos de datos generados en un árbol de «Reevolute Builder».

    Para conseguir esta comunicación se deben realizar configuraciones en BigQuery, así como en la plataforma.

    Información almacenada

    La información de cada métrica enviada a BigQuery contendrá la siguiente estructura de datos. 

    Parámetro Tipo Descripción
    tree_id STRING Identificador del árbol
    transaction_id STRING Identificador de la transacción
    version STRING Número de versión del árbol ejecutada
    session_id STRING Identificador de la sesión
    data JSON Información con las variables configuradas en la métrica, codificada en un objeto JSON
    metric_type STRING Define si la métrica se genera al inicio ('pre') o al final ('post) del elemento del árbol
    tenant_id STRING Identificador del tenant
    element JSON Objeto que contiene el tipo ('node' o 'link') e identificador del elemento
    timestamp STRING Fecha y hora del momento en que se generó la métrica
    scope JSON Arreglo con el conjunto de etiquetas que se definieron en el elemento del árbol

    Configuración en BigQuery

    Cuentas de servicio GCP

    La comunicación entre «Reevolute Builder» y BigQuery requiere la creación de una cuenta de servicio (service account) en GCP que tenga los privilegios necesarios para escribir datos en BigQuery y la  creación y exportación de una clave privada que será posteriormente configurada en la plataforma.

    A la cuenta de servicio se le debe entregar el rol «Editor de datos BigQuery» (BigQuery Data Editor) lo que se realiza en la sección IAM de la configuración de GCP.

    En la sección de ‘Claves’ de la cuenta de servicio en cuestión se debe crear una clave privada del tipo JSON, la que debe ser respaldada para ser utilizada posteriormente en la plataforma «Reevolute Builder».
    A continuación se muestra un ejemplo del contenido que tiene el archivo JSON con la clave privada.

    				
    					{
      "type": "service_account",
      "project_id": "xxxxxxxxx",
      "private_key_id": "xxxxxxxxxxxxxxxxxxxxxx",
      "private_key": "-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n",
      "client_email": "xxxxx@xxxxxxx.gserviceaccount.com",
      "client_id": "xxxxxxxxxxxxxxxxxxxxx",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://oauth2.googleapis.com/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxxxxxxxxxxxx.gserviceaccount.com",
      "universe_domain": "googleapis.com"
    }
    				
    			

    Datasets y Tablas BigQuery

    Una vez configurada la cuenta de servicio se debe crear en BigQuery el dataset y la tabla en la que se insertarán las métricas. Para realizar la configuración se debe definir primero los parámetros de la siguiente tabla, ya que se necesitan conocer en BigQuery y la plataforma.

    Parámetro Descripción
    gcp_project_name Nombre del proyecto en GCP donde reside la instancia BigQuery que se usará
    bq_dataset_name Nombre del conjunto de datos que se utilizará
    bq_table_name Nombre de la tabla dentro del dataset en la que se insertarán los datos

    La tabla ‘bq_table_name’ debe tener un esquema predefinido, que permitirá almacenar la información de las métricas generadas por la plataforma.
    El esquema necesario se aprecia en el siguiente contenido JSON.

    				
    					[
      {
        "mode": "NULLABLE",
        "name": "tree_id",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "transaction_id",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "version",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "session_id",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "data",
        "type": "JSON"
      },
      {
        "mode": "NULLABLE",
        "name": "metric_type",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "tenant_id",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "element",
        "type": "JSON"
      },
      {
        "mode": "NULLABLE",
        "name": "timestamp",
        "type": "TIMESTAMP"
      },
      {
        "mode": "NULLABLE",
        "name": "scope",
        "type": "JSON"
      }
    ]
    				
    			

    Una forma sencilla de configurar el esquema mediante línea de comandos es guardar el contenido anterior en un archivo con extensión ‘.json’ (por ejemplo ‘metrics_schema_table.json’) y ejecutar el siguiente comando de GCP.

    				
    					bq mk --table gcp_project_name:bq_dataset_name.bq_table_name ./metrics_schema_table.json
    				
    			

    Administración WEB

    Para acceder a la configuración de la interfaz de salida de las métricas se debe ir a la opción «Eventos salientes – Métricas» del panel de la izquierda, que se muestra en la siguiente imagen.

    Este módulo permitirá definir una nueva salida de métricas del tipo BigQuery, para lo que se deberá configurar el nombre del dataset y tabla ya configurados en BigQuery, así como copiar las credenciales de la cuenta de servicio almacenada previamente. La interfaz WEB se aprecia a continuación.