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
- Verificar que el job esté en estado
ENABLED - Revisar logs en Cloud Logging
- Verificar que el target (Cloud Run) esté disponible
- Validar formato del schedule
Job Falla
- Revisar logs del job en Cloud Logging
- Verificar logs del servicio Cloud Run invocado
- Validar permisos IAM del service account
- Revisar que el endpoint del servicio sea correcto
Job Se Ejecuta Pero No Produce Resultados
- Revisar logs del servicio Cloud Run
- Verificar que el servicio procese correctamente
- Validar que los datos de destino (BigQuery, etc.) sean accesibles