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.