blob: 2e2f085e21dc959eba30772c427a82eada643845 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Checking Airflow Health Status &mdash; Airflow Documentation</title>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="UI / Screenshots" href="../ui.html" />
<link rel="prev" title="Using the Test Mode Configuration" href="use-test-config.html" />
<script src="../_static/js/modernizr.min.js"></script>
<script type="application/javascript">
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga("create", "UA-140539454-1", "auto");
ga("send", "pageview");
</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="../index.html" class="icon icon-home"> Airflow
</a>
<div class="version">
1.10.2
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../project.html">Project</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../start.html">Quick Start</a></li>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial.html">Tutorial</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">How-to Guides</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="set-config.html">Setting Configuration Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="initialize-database.html">Initializing a Database Backend</a></li>
<li class="toctree-l2"><a class="reference internal" href="operator.html">Using Operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="manage-connections.html">Managing Connections</a></li>
<li class="toctree-l2"><a class="reference internal" href="secure-connections.html">Securing Connections</a></li>
<li class="toctree-l2"><a class="reference internal" href="write-logs.html">Writing Logs</a></li>
<li class="toctree-l2"><a class="reference internal" href="executor/use-celery.html">Scaling Out with Celery</a></li>
<li class="toctree-l2"><a class="reference internal" href="executor/use-dask.html">Scaling Out with Dask</a></li>
<li class="toctree-l2"><a class="reference internal" href="executor/use-mesos.html">Scaling Out with Mesos (community contributed)</a></li>
<li class="toctree-l2"><a class="reference internal" href="run-with-systemd.html">Running Airflow with systemd</a></li>
<li class="toctree-l2"><a class="reference internal" href="run-with-upstart.html">Running Airflow with upstart</a></li>
<li class="toctree-l2"><a class="reference internal" href="use-test-config.html">Using the Test Mode Configuration</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Checking Airflow Health Status</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../ui.html">UI / Screenshots</a></li>
<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../profiling.html">Data Profiling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli.html">Command Line Interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="../scheduler.html">Scheduling &amp; Triggers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../plugins.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../timezone.html">Time zones</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api.html">Experimental Rest API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../integration.html">Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../metrics.html">Metrics</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kubernetes.html">Kubernetes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../lineage.html">Lineage</a></li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../code.html">API Reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Airflow</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html">Docs</a> &raquo;</li>
<li><a href="index.html">How-to Guides</a> &raquo;</li>
<li>Checking Airflow Health Status</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/howto/check-health.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="checking-airflow-health-status">
<h1>Checking Airflow Health Status<a class="headerlink" href="#checking-airflow-health-status" title="Permalink to this headline"></a></h1>
<p>To check the health status of your Airflow instance, you can simply access the endpoint
<code class="docutils literal notranslate"><span class="pre">&quot;/health&quot;</span></code>. It will return a JSON object in which a high-level glance is provided.</p>
<div class="highlight-JSON notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="nt">&quot;metadatabase&quot;</span><span class="p">:{</span>
<span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="s2">&quot;healthy&quot;</span>
<span class="p">},</span>
<span class="nt">&quot;scheduler&quot;</span><span class="p">:{</span>
<span class="nt">&quot;status&quot;</span><span class="p">:</span><span class="s2">&quot;healthy&quot;</span><span class="p">,</span>
<span class="nt">&quot;latest_scheduler_heartbeat&quot;</span><span class="p">:</span><span class="s2">&quot;2018-12-26 17:15:11+00:00&quot;</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<ul>
<li><p class="first">The <code class="docutils literal notranslate"><span class="pre">status</span></code> of each component can be either “healthy” or “unhealthy”.</p>
<blockquote>
<div><ul class="simple">
<li>The status of <code class="docutils literal notranslate"><span class="pre">metadatabase</span></code> is depending on whether a valid connection can be initiated
with the database backend of Airflow.</li>
<li>The status of <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> is depending on when the latest scheduler heartbeat happened. If the latest
scheduler heartbeat happened 30 seconds (default value) earlier than the current time, scheduler component is
considered unhealthy. You can also specify this threshold value by changing
<code class="docutils literal notranslate"><span class="pre">scheduler_health_check_threshold</span></code> in <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> section of the <code class="docutils literal notranslate"><span class="pre">airflow.cfg</span></code> file.</li>
</ul>
</div></blockquote>
</li>
<li><p class="first">The response code of <code class="docutils literal notranslate"><span class="pre">&quot;/health&quot;</span></code> endpoint is not used to label the health status of the
application (it would always be 200). Hence please be reminded not to use the response code here
for health-check purpose.</p>
</li>
</ul>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="../ui.html" class="btn btn-neutral float-right" title="UI / Screenshots" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="use-test-config.html" class="btn btn-neutral" title="Using the Test Mode Configuration" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<script type="text/javascript" src="../_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>