Skip to content

Cloud Scheduler

Google Cloud Scheduler es un servicio de orquestación que permite programar jobs periódicos que invocan servicios HTTP, Pub/Sub topics, o App Engine applications en la arquitectura de data engineering de Solvento.

Descripción

Cloud Scheduler permite ejecutar tareas programadas de manera confiable y escalable. Es ideal para jobs de ETL periódicos, scraping de datos, procesos de consistencia, y publicación de insights.

Flujo de Datos

graph TB
    subgraph scheduler["Cloud Scheduler"]
        Job1[Job 1]
        Job2[Job 2]
        Job3[Job 3]
    end

    subgraph targets["Targets"]
        CloudRun[Cloud Run]
        PubSub[Pub/Sub]
        Functions[Cloud Functions]
    end

    subgraph destinos["Destinos"]
        BigQuery[BigQuery]
        Storage[Cloud Storage]
    end

    Job1 -->|"HTTP Request"| CloudRun
    Job2 -->|"HTTP Request"| CloudRun
    Job3 -->|"Publish Message"| PubSub

    CloudRun --> BigQuery
    CloudRun --> Storage
    PubSub --> Functions
    Functions --> BigQuery

Jobs Programados

Jobs de Consistencia

Job Name Schedule Time Zone Target (Cloud Run) Endpoint Estado
consistencia-elk-bq-syntage-90days 0 * * * * (cada hora) America/Mexico_City consistencia-elk-bq-syntage /consistency/90days ENABLED
consistencia-elk-bq-syntage-historical 0 8 * * * (diario 8 AM) America/Mexico_City consistencia-elk-bq-syntage /consistency/historical ENABLED

Descripción: Ejecutan procesos de consistencia entre ELK y BigQuery para datos de Syntage. El job de 90 días se ejecuta cada hora para mantener consistencia reciente, mientras que el histórico se ejecuta diariamente.

Jobs de Scraping

Job Name Schedule Time Zone Target (Cloud Run) Endpoint Estado
banxico-scraper-daily 0 5 * * * (diario 5 AM) America/Mexico_City banxico-scraper /scrape ENABLED
diesel-price-scraper-scheduler 0 9,23 * * * (9 AM y 11 PM) America/Mexico_City diesel-price-scraper /run ENABLED

Descripción: Jobs que ejecutan scraping de datos externos (Banxico, precios de diesel) de manera periódica.

Jobs de Ingesta

Job Name Schedule Time Zone Target (Cloud Run) Endpoint Estado
keycloack-ingest-daily 0 2 * * * (diario 2 AM) America/Mexico_City keycloack-ingest-prod Por verificar ENABLED
Terminal_Uploader 30 10 * * * (diario 10:30 AM) America/Buenos_Aires terminal-uploader-prod /run ENABLED

Descripción: Jobs que ejecutan procesos de ingesta de datos desde sistemas externos (Keycloak, terminales).

Jobs de Insights y Analytics

Job Name Schedule Time Zone Target (Cloud Run) Endpoint Estado
insights-publisher-daily 0 6 2-31 * * (diario 6 AM, días 2-31) America/Mexico_City insights-publisher / ENABLED
insights-publisher-monthly-5years 0 7 1 * * (mensual 7 AM, día 1) America/Mexico_City insights-publisher / ENABLED

Descripción: Jobs que publican insights y analytics. El daily se ejecuta diariamente (excepto día 1), y el monthly procesa datos históricos de 5 años el primer día de cada mes.

Jobs de Syntage

Job Name Schedule Time Zone Target (Cloud Run) Endpoint Estado
extract-syntage-credential-status-daily 0 5 * * * (diario 5 AM) America/Mexico_City syntage-ciec-extraction-status-prod /extract-status ENABLED
extract-syntage-extractions 0 */3 * * * (cada 3 horas) Etc/UTC syntage-ciec-extraction-status-prod /search-extractions ENABLED

Descripción: Jobs que extraen información de status y extracciones de Syntage CIEC.

Configuraciones Relevantes

Schedule Format (Cron)

Los schedules utilizan formato cron estándar: - 0 5 * * * - Diario a las 5 AM - 0 9,23 * * * - Dos veces al día (9 AM y 11 PM) - 0 * * * * - Cada hora - 0 */3 * * * - Cada 3 horas - 0 6 2-31 * * - Diario a las 6 AM, días 2-31 del mes - 0 7 1 * * - Mensual a las 7 AM, día 1 del mes

Time Zones

Los jobs utilizan diferentes time zones según su propósito: - America/Mexico_City - Mayoría de jobs - America/Buenos_Aires - Terminal Uploader - Etc/UTC - Extract Syntage Extractions

HTTP Targets

La mayoría de los jobs invocan servicios Cloud Run mediante HTTP requests: - Method: GET o POST (según endpoint) - Headers: Pueden incluir autenticación - Retry Policy: Configurado según necesidad

Relaciones con Otros Componentes

Cloud Run

La mayoría de los jobs invocan servicios Cloud Run: - Jobs de consistencia → consistencia-elk-bq-syntage - Jobs de scraping → banxico-scraper, diesel-price-scraper - Jobs de insights → insights-publisher

Pub/Sub

Algunos jobs pueden publicar mensajes directamente a Pub/Sub topics (no documentado en los jobs actuales, pero es posible).

BigQuery

Los servicios invocados por Cloud Scheduler típicamente escriben resultados a BigQuery: - Consistencia → Actualiza tablas en BigQuery - Scraping → Escribe datos scraped a BigQuery - Insights → Publica insights a BigQuery

Monitoreo y Métricas

Métricas Clave

  • Job Execution Count: Número de ejecuciones
  • Success Rate: Tasa de éxito de ejecuciones
  • Execution Time: Tiempo de ejecución
  • Failed Executions: Ejecuciones fallidas

Alertas

  • Jobs fallidos consecutivos
  • Jobs que no se ejecutan según schedule
  • Tiempo de ejecución excesivo

Troubleshooting

Job No Se Ejecuta

  1. Verificar que el job esté en estado ENABLED
  2. Revisar logs en Cloud Logging
  3. Verificar que el target (Cloud Run) esté disponible
  4. Validar formato del schedule

Job Falla

  1. Revisar logs del job en Cloud Logging
  2. Verificar logs del servicio Cloud Run invocado
  3. Validar permisos IAM del service account
  4. Revisar que el endpoint del servicio sea correcto

Job Se Ejecuta Pero No Produce Resultados

  1. Revisar logs del servicio Cloud Run
  2. Verificar que el servicio procese correctamente
  3. Validar que los datos de destino (BigQuery, etc.) sean accesibles

Referencias