コード例 #1
0
def get_health():
    """Return the health of the airflow scheduler and metadatabase"""
    metadatabase_status = HEALTHY
    latest_scheduler_heartbeat = None
    scheduler_status = UNHEALTHY
    try:
        scheduler_job = SchedulerJob.most_recent_job()

        if scheduler_job:
            latest_scheduler_heartbeat = scheduler_job.latest_heartbeat.isoformat(
            )
            if scheduler_job.is_alive():
                scheduler_status = HEALTHY
    except Exception:
        metadatabase_status = UNHEALTHY

    payload = {
        "metadatabase": {
            "status": metadatabase_status
        },
        "scheduler": {
            "status": scheduler_status,
            "latest_scheduler_heartbeat": latest_scheduler_heartbeat,
        },
    }

    return health_schema.dump(payload)
コード例 #2
0
 def test_serialize(self):
     payload = {
         "metadatabase": {"status": "healthy"},
         "scheduler": {"status": "healthy", "latest_scheduler_heartbeat": self.default_datetime,},
     }
     serialized_data = health_schema.dump(payload)
     self.assertDictEqual(serialized_data, payload)