Saltar a contenido

Registros de Ejecución

Los registros de ejecución son una excelente manera de realizar un seguimiento de la ejecución de un bot y proporcionar información útil para su operación y supervisión.

BotMaestro ofrece una implementación de registro de ejecución muy flexible que es muy fácil de usar y crear el registro que mejor se adapte a su caso de uso.

Puede crear tantos registros de ejecución personalizados como desee para organizar mejor sus datos y administrar sus automatizaciones.

En las siguientes secciones, le mostraremos cómo crear un registro de ejecución, insertar entradas de registro y eliminar un registro.

Important

En los métodos a continuación, el parámetro etiqueta de automatización se referirá a la etiqueta de registro de ejecución que se creó.

Puede encontrar más detalles en la sección de registros de ejecución.

Crear un Registro de Ejecución

Para crear un nuevo registro ejecución, debemos proporcionar la siguiente información:

  • Etiqueta de automatización (Etiqueta de registro de ejecución)
  • Lista de columnas

El SDK proporciona la clase Columns que ayuda a crear nuevas entradas.

Una instancia de Column contiene la siguiente información:

  • name: Texto que se mostrará en el Portal Web de BotMaestro
  • label: Identificador único para esta columna en este registro
  • width: Ancho sugerido en píxeles.

Así es como podemos crear un nuevo registro:

# Create a list of columns
columns = [
    Column(name="Date/Time", label="timestamp", width=300),
    Column(name="# Records", label="records", width=200),
    Column(name="Status", label="status", width=100),
]

# Create a new log
maestro.new_log(
    "logLabel",
    columns
)
// Create a list of columns
List<Column> columns = Arrays.asList(
    new Column("Date/Time", "timestamp", 300),
    new Column("# Records", "records", 200),
    new Column("Status", "status", 100)
);

// Create a new log
maestro.newLog("logLabel", columns);
// Create a list of columns
const columns = [
    new Column("Date/Time", "timestamp", 300),
    new Column("# Records", "records", 300),
    new Column("Status", "status", 300),
]

// Create a new log
await maestro.createLog("logLabel", columns);
// Create a list of columns
const columns: Column[] = [
    new Column("Date/Time", "timestamp", 300),
    new Column("# Records", "records", 300),
    new Column("Status", "status", 300),
]

// Create a new log
const log: Log = await maestro.createLog("logLabel", columns);

Crear nuevas Entradas de Registro de Ejecución

Con su nuevo y reluciente registro de ejecución listo, es hora de crear algunas entradas de registro.

Así es como puede insertar nuevas entradas de registro de ejecución:

import datetime

maestro.new_log_entry(
    activity_label="logLabel",
    values = {
        "timestamp": datetime.datetime.now().strftime("%Y-%m-%d_%H-%M"),
        "records": "10",
        "status": "SUCCESS"
    }
)
String timestamp = new SimpleDateFormat("yyyy-MM-dd_HH-mm").format(new java.util.Date());

Map<String,Object> values = new HashMap<>();
values.put("timestamp", timestamp);
values.put("records", "10");
values.put("status", "SUCCESS");

maestro.newLogEntry("logLabel", values);
await maestro.logEntry(
    "logLabel",
    {
        timestamp: new Date().toISOString(),
        records: "10",
        status: "SUCCESS"
    }
)
await maestro.logEntry(
    "logLabel",
    {
        timestamp: new Date().toISOString(),
        records: "10",
        status: "SUCCESS"
    }
)

Obtener Datos del Registro de Ejecución

Obtener datos del registro de ejecución es tan fácil como crear entradas de registro.

El argumento date actúa como un filtro para la fecha inicial de recuperación del registro.

Note

El parámetro date debe usar el formato DD/MM/YYYY. Si no se informa date, se recuperan todos los datos del registro de ejecución.

# Get the start date as 30 days ago
instant = (datetime.datetime.now() - datetime.timedelta(days=30))
date = instant.strftime("%d/%m/%Y")

# Get the log data
data = maestro.get_log(activity_label="logLabel", date=date)
// Obtener los datos del registro
List<Row> data = maestro.getLog("logLabel", 30);
const data = await maestro.fetchDataLog("logLabel", 30)
const data: DataLog[] = await maestro.fetchDataLog("logLabel", 30)

Descargar como CSV

Hoja de ruta

Aún no disponible.

// Define filter days to search
int days = 30;

// Define the path to save the file
File logFile = new File("<path to save>/log.csv");

// Retrieve the log data
byte[] data = maestro.getLogFile("logLabel", days);

// Save it to disk
Files.write(data, logFile);
// Define the path to save the file
const filepath = "log.csv"

// Define filter days to search
const days = 30

const data = await maestro("logLabel", filepath, days)
// Define the path to save the file
const filepath: string = "log.csv"

// Define filter days to search
const days: number = 30

const data: Buffer = await maestro("logLabel", filepath, days)

Eliminar un Registro de Ejecución Completo

Si por alguna razón necesita eliminar por completo el registro de ejecución junto con todas sus entradas, puede hacerlo utilizando el siguiente comando.

Warning

Esta operación borrará TODO el historial del registro y no se puede revertir.

maestro.delete_log(activity_label="logLabel")
maestro.deleteLog("logLabel");
await maestro.deleteLog("logLabel")
await maestro.deleteLog("logLabel")