[GitHub] [airflow] turbaszek commented on a change in pull request #9277: [WIP] Health endpoint spec

2020-07-02 Thread GitBox


turbaszek commented on a change in pull request #9277:
URL: https://github.com/apache/airflow/pull/9277#discussion_r448975124



##
File path: airflow/api_connexion/endpoints/health_endpoint.py
##
@@ -14,13 +14,35 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-# TODO(mik-laj): We have to implement it.
-# Do you want to help? Please look at: 
https://github.com/apache/airflow/issues/8144
+from airflow.api_connexion.schemas.health_schema import health_schema
+from airflow.jobs.scheduler_job import SchedulerJob
 
 
 def get_health():
 """
-Checks if the API works
+Return the health of the airflow scheduler and metadatabase
 """
-return "OK"
+HEALTHY = "healthy"  # pylint: disable=invalid-name
+UNHEALTHY = "unhealthy"  # pylint: disable=invalid-name

Review comment:
   If you will move those out of the function then there will be no need to 
disable pylint :)





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [airflow] turbaszek commented on a change in pull request #9277: [WIP] Health endpoint spec

2020-07-02 Thread GitBox


turbaszek commented on a change in pull request #9277:
URL: https://github.com/apache/airflow/pull/9277#discussion_r448911785



##
File path: airflow/api_connexion/endpoints/health_endpoint.py
##
@@ -14,13 +14,34 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-# TODO(mik-laj): We have to implement it.
-# Do you want to help? Please look at: 
https://github.com/apache/airflow/issues/8144
+from airflow.api_connexion.schemas.health_schema import health_schema
+from airflow.configuration import conf
+from airflow.jobs.scheduler_job import SchedulerJob
+from airflow.utils.session import provide_session
 
 
 def get_health():
 """
-Checks if the API works
+Return the health of the airflow scheduler and metadatabase
 """
-return "OK"
+payload = {
+'metadatabase': {'status': 'unhealthy'}
+}
+
+latest_scheduler_heartbeat = None
+scheduler_status = 'unhealthy'
+payload['metadatabase'] = {'status': 'healthy'}

Review comment:
   ```python
   latest_scheduler_heartbeat = None
   scheduler_status = 'unhealthy'
   metadatabase_status = 'healthy'
...  # here update the statuses
   payload = {
   'metadatabase': {'status': metadatabase_status},
   'scheduler': {
   'status': scheduler_status,
   'latest_scheduler_heartbeat': latest_scheduler_heartbeat,
   }
   }
   return health_schema.dump(payload)
   ```
   What do you think about this approach?





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [airflow] turbaszek commented on a change in pull request #9277: [WIP] Health endpoint spec

2020-07-02 Thread GitBox


turbaszek commented on a change in pull request #9277:
URL: https://github.com/apache/airflow/pull/9277#discussion_r448907827



##
File path: airflow/api_connexion/endpoints/health_endpoint.py
##
@@ -14,13 +14,34 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-# TODO(mik-laj): We have to implement it.
-# Do you want to help? Please look at: 
https://github.com/apache/airflow/issues/8144
+from airflow.api_connexion.schemas.health_schema import health_schema
+from airflow.configuration import conf
+from airflow.jobs.scheduler_job import SchedulerJob
+from airflow.utils.session import provide_session
 
 
 def get_health():
 """
-Checks if the API works
+Return the health of the airflow scheduler and metadatabase
 """
-return "OK"
+payload = {
+'metadatabase': {'status': 'unhealthy'}
+}
+
+latest_scheduler_heartbeat = None
+scheduler_status = 'unhealthy'
+payload['metadatabase'] = {'status': 'healthy'}

Review comment:
   Let's use constants:
   ```
   UNHEALTHY = "unhealthy"
   HEALTHY = "healthy"
   ```
   as we use those values in many places





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [airflow] turbaszek commented on a change in pull request #9277: [WIP] Health endpoint spec

2020-07-02 Thread GitBox


turbaszek commented on a change in pull request #9277:
URL: https://github.com/apache/airflow/pull/9277#discussion_r448907827



##
File path: airflow/api_connexion/endpoints/health_endpoint.py
##
@@ -14,13 +14,34 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-
-# TODO(mik-laj): We have to implement it.
-# Do you want to help? Please look at: 
https://github.com/apache/airflow/issues/8144
+from airflow.api_connexion.schemas.health_schema import health_schema
+from airflow.configuration import conf
+from airflow.jobs.scheduler_job import SchedulerJob
+from airflow.utils.session import provide_session
 
 
 def get_health():
 """
-Checks if the API works
+Return the health of the airflow scheduler and metadatabase
 """
-return "OK"
+payload = {
+'metadatabase': {'status': 'unhealthy'}
+}
+
+latest_scheduler_heartbeat = None
+scheduler_status = 'unhealthy'
+payload['metadatabase'] = {'status': 'healthy'}

Review comment:
   Let's use constants:
   ```
   UNHEALTHY = "unhealthy"
   HEALTHY = "healthy"
   ```





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org