API de JobLog

Vision General

La API de JobLog es para obtener registros de ejecucion de trabajos de Fess. Puede verificar el historial de ejecucion e informacion de errores de trabajos programados y de rastreo.

URL Base

/api/admin/joblog

Lista de Endpoints

Metodo Ruta Descripcion
GET / Obtener lista de registros de trabajos
GET /{id} Obtener detalles de registro de trabajo
DELETE /{id} Eliminar registro de trabajo
DELETE /delete-all Eliminar todos los registros de trabajos

Obtener Lista de Registros de Trabajos

Solicitud

GET /api/admin/joblog

Parametros

Respuesta

{
  "response": {
    "status": 0,
    "logs": [
      {
        "id": "joblog_id_1",
        "jobName": "Default Crawler",
        "jobStatus": "ok",
        "target": "all",
        "scriptType": "groovy",
        "scriptData": "return container.getComponent(\"crawlJob\").execute();",
        "scriptResult": "Job completed successfully",
        "startTime": "2025-01-29T02:00:00Z",
        "endTime": "2025-01-29T02:45:23Z",
        "executionTime": 2723000
      },
      {
        "id": "joblog_id_2",
        "jobName": "Default Crawler",
        "jobStatus": "fail",
        "target": "all",
        "scriptType": "groovy",
        "scriptData": "return container.getComponent(\"crawlJob\").execute();",
        "scriptResult": "Error: Connection timeout",
        "startTime": "2025-01-28T02:00:00Z",
        "endTime": "2025-01-28T02:10:15Z",
        "executionTime": 615000
      }
    ],
    "total": 100
  }
}

Campos de Respuesta

Campo Descripcion
id ID del registro de trabajo
jobName Nombre del trabajo
jobStatus Estado del trabajo (ok/fail/running)
target Objetivo de ejecucion
scriptType Tipo de script
scriptData Script ejecutado
scriptResult Resultado de ejecucion
startTime Hora de inicio
endTime Hora de finalizacion
executionTime Tiempo de ejecucion (milisegundos)

Obtener Detalles de Registro de Trabajo

Solicitud

GET /api/admin/joblog/{id}

Respuesta

{
  "response": {
    "status": 0,
    "log": {
      "id": "joblog_id_1",
      "jobName": "Default Crawler",
      "jobStatus": "ok",
      "target": "all",
      "scriptType": "groovy",
      "scriptData": "return container.getComponent(\"crawlJob\").execute();",
      "scriptResult": "Crawl completed successfully.\nDocuments indexed: 1234\nDocuments updated: 567\nDocuments deleted: 12\nErrors: 0",
      "startTime": "2025-01-29T02:00:00Z",
      "endTime": "2025-01-29T02:45:23Z",
      "executionTime": 2723000
    }
  }
}

Eliminar Registro de Trabajo

Solicitud

DELETE /api/admin/joblog/{id}

Respuesta

{
  "response": {
    "status": 0,
    "message": "Job log deleted successfully"
  }
}

Eliminar Todos los Registros de Trabajos

Solicitud

DELETE /api/admin/joblog/delete-all

Parametros

Respuesta

{
  "response": {
    "status": 0,
    "message": "Job logs deleted successfully",
    "deletedCount": 50
  }
}

Ejemplos de Uso

Obtener Lista de Registros de Trabajos

curl -X GET "http://localhost:8080/api/admin/joblog?size=50&page=0" \
     -H "Authorization: Bearer YOUR_TOKEN"

Obtener Solo Trabajos Fallidos

curl -X GET "http://localhost:8080/api/admin/joblog?status=fail" \
     -H "Authorization: Bearer YOUR_TOKEN"

Registros de Trabajos de Periodo Especifico

curl -X GET "http://localhost:8080/api/admin/joblog?from=2025-01-01&to=2025-01-31" \
     -H "Authorization: Bearer YOUR_TOKEN"

Obtener Detalles de Registro de Trabajo

curl -X GET "http://localhost:8080/api/admin/joblog/joblog_id_1" \
     -H "Authorization: Bearer YOUR_TOKEN"

Eliminar Registros de Trabajos Antiguos

# Eliminar registros de mas de 30 dias
curl -X DELETE "http://localhost:8080/api/admin/joblog/delete-all?before=2024-12-30T00:00:00Z" \
     -H "Authorization: Bearer YOUR_TOKEN"

Eliminar Solo Registros de Trabajos Fallidos

curl -X DELETE "http://localhost:8080/api/admin/joblog/delete-all?status=fail" \
     -H "Authorization: Bearer YOUR_TOKEN"

Detectar Trabajos con Tiempo de Ejecucion Largo

# Extraer trabajos que tardaron mas de 1 hora
curl -X GET "http://localhost:8080/api/admin/joblog?size=1000" \
     -H "Authorization: Bearer YOUR_TOKEN" | \
     jq '.response.logs[] | select(.executionTime > 3600000) | {jobName, startTime, executionTime}'

Calcular Tasa de Exito de Trabajos

curl -X GET "http://localhost:8080/api/admin/joblog?size=1000" \
     -H "Authorization: Bearer YOUR_TOKEN" | \
     jq '.response.logs | {total: length, ok: [.[] | select(.jobStatus=="ok")] | length, fail: [.[] | select(.jobStatus=="fail")] | length}'

Informacion de Referencia