{ "info": { "author": "Robinhood Markets, Inc.", "author_email": "open-source@robinhood.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "# Airflow Prometheus Exporter\n\n[![Build Status](https://travis-ci.org/robinhood/airflow-prometheus-exporter.svg?branch=master)](https://travis-ci.org/robinhood/airflow-prometheus-exporter)\n\nThe Airflow Prometheus Exporter exposes various metrics about the Scheduler, DAGs and Tasks which helps improve the observability of an Airflow cluster.\n\nThe exporter is based on this [prometheus exporter for Airflow](https://github.com/epoch8/airflow-exporter).\n\n## Requirements\n\nThe plugin has been tested with:\n\n- Airflow >= 1.10.4\n- Python 3.6+\n\nThe scheduler metrics assume that there is a DAG named `canary_dag`. In our setup, the `canary_dag` is a DAG which has a tasks which perform very simple actions such as establishing database connections. This DAG is used to test the uptime of the Airflow scheduler itself.\n\n## Installation\n\nThe exporter can be installed as an Airflow Plugin using:\n\n```pip install airflow-prometheus-exporter```\n\nThis should ideally be installed in your Airflow virtualenv.\n\n## Metrics\n\nMetrics will be available at\n\n`http:///admin/metrics/`\n\n### Task Specific Metrics\n\n#### `airflow_task_status`\n\nNumber of tasks with a specific status.\n\nAll the possible states are listed [here](https://github.com/apache/airflow/blob/master/airflow/utils/state.py#L46).\n\n#### `airflow_task_duration`\n\nDuration of successful tasks in seconds.\n\n#### `airflow_task_fail_count`\n\nNumber of times a particular task has failed.\n\n### Dag Specific Metrics\n\n#### `airflow_dag_status`\n\nNumber of DAGs with a specific status.\n\nAll the possible states are listed [here](https://github.com/apache/airflow/blob/master/airflow/utils/state.py#L59)\n\n#### `airflow_dag_run_duration`\nDuration of successful DagRun in seconds.\n\n### Scheduler Metrics\n\n#### `airflow_dag_scheduler_delay`\n\nScheduling delay for a DAG Run in seconds. This metric assumes there is a `canary_dag`.\n\nThe scheduling delay is measured as the delay between when a DAG is marked as `SCHEDULED` and when it actually starts `RUNNING`.\n\n#### `airflow_task_scheduler_delay`\n\nScheduling delay for a Task in seconds. This metric assumes there is a `canary_dag`.\n\n#### `airflow_num_queued_tasks`\n\nNumber of tasks in the `QUEUED` state at any given instance.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/robinhood/airflow_prometheus_exporter", "keywords": "airflow_prometheus_exporter", "license": "BSD 3-Clause", "maintainer": "", "maintainer_email": "", "name": "airflow-prometheus-exporter", "package_url": "https://pypi.org/project/airflow-prometheus-exporter/", "platform": "", "project_url": "https://pypi.org/project/airflow-prometheus-exporter/", "project_urls": { "Homepage": "https://github.com/robinhood/airflow_prometheus_exporter" }, "release_url": "https://pypi.org/project/airflow-prometheus-exporter/1.0.4/", "requires_dist": [ "apache-airflow (>=1.10.4)", "prometheus-client (>=0.4.2)", "bumpversion ; extra == 'dev'", "tox ; extra == 'dev'", "twine ; extra == 'dev'" ], "requires_python": "", "summary": "Prometheus Exporter for Airflow Metrics", "version": "1.0.4" }, "last_serial": 5880914, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "a015866b3304340ec02ca0dafb50b6f6", "sha256": "cc72652014169631eddf9f297c7b3d3e410d9f90e53a1287fc31bc2802484c19" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a015866b3304340ec02ca0dafb50b6f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4632, "upload_time": "2019-08-09T01:17:32", "url": "https://files.pythonhosted.org/packages/87/94/72f51219f2f622e3cd49380b4838524eed5a10c6bb8c4e74d5703dd78048/airflow_prometheus_exporter-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "d68a02144e1e5df550cfb873552625d7", "sha256": "93920ca8fa218da16c4b4b984a0fd0f8ca24fde93910feb382913e6866721af7" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d68a02144e1e5df550cfb873552625d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6824, "upload_time": "2019-09-04T18:39:20", "url": "https://files.pythonhosted.org/packages/f1/94/650261aa4081c58412c2ff8feb213dcacab6713fda7321e4af8c88bf4924/airflow_prometheus_exporter-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d434370a465ca88e7a4bb1e70f51ded3", "sha256": "1147fd3f6728cfd45b9f870cd084f135a4afa80d6c3f8d44d15c3959dccaf816" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d434370a465ca88e7a4bb1e70f51ded3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4643, "upload_time": "2019-09-04T18:39:21", "url": "https://files.pythonhosted.org/packages/79/27/12a354e3957bb00045f2d3aafcc045ece42856b63c6370fc983c5676342e/airflow_prometheus_exporter-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "9172c9e0a530f478e3c038342e7208e9", "sha256": "5d811f58d3a0ff8f33b83526f369af27282b3370f94a9c86153c4a1ac67292d5" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9172c9e0a530f478e3c038342e7208e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6944, "upload_time": "2019-09-05T16:06:35", "url": "https://files.pythonhosted.org/packages/3d/1d/62a474d0248da6ebbabec08d011b3f1a05ef66cd42e1b8f1a41bfc59dd76/airflow_prometheus_exporter-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b9547f78b24405ff14f8c86a00164d0", "sha256": "1faf4e15c832347f84ff81a495ab78d85598d389fa6393e8f26a5e33a553f980" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.3.tar.gz", "has_sig": false, "md5_digest": "2b9547f78b24405ff14f8c86a00164d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4756, "upload_time": "2019-09-05T16:06:37", "url": "https://files.pythonhosted.org/packages/18/21/a1e432742b539cc55b8f6eabf8969a6183ef67d5abec1acbfd7e9562233d/airflow_prometheus_exporter-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "10c42d5f92f79912d8a3182df3527a7d", "sha256": "b7427b09844500d8377ff8fe320ceb2780bc5ffba488e5bfacf354fd75655152" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "10c42d5f92f79912d8a3182df3527a7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6889, "upload_time": "2019-09-24T16:44:53", "url": "https://files.pythonhosted.org/packages/f5/a7/6df7adf40147e35d267b42114296eb94f80f2be90e213df694b01ac2111f/airflow_prometheus_exporter-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6be5a9dd19966410ee521bad4e80e89b", "sha256": "afd019548fd042be2af630d93d89c49c1fab85d1fafcaea5ca5467e8e71f8921" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.4.tar.gz", "has_sig": false, "md5_digest": "6be5a9dd19966410ee521bad4e80e89b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4700, "upload_time": "2019-09-24T16:44:54", "url": "https://files.pythonhosted.org/packages/ae/9e/45c5d475fefa0bfb0f84fa1774a64ae86c2252ed976935e063ee68b1cb96/airflow_prometheus_exporter-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10c42d5f92f79912d8a3182df3527a7d", "sha256": "b7427b09844500d8377ff8fe320ceb2780bc5ffba488e5bfacf354fd75655152" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "10c42d5f92f79912d8a3182df3527a7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6889, "upload_time": "2019-09-24T16:44:53", "url": "https://files.pythonhosted.org/packages/f5/a7/6df7adf40147e35d267b42114296eb94f80f2be90e213df694b01ac2111f/airflow_prometheus_exporter-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6be5a9dd19966410ee521bad4e80e89b", "sha256": "afd019548fd042be2af630d93d89c49c1fab85d1fafcaea5ca5467e8e71f8921" }, "downloads": -1, "filename": "airflow_prometheus_exporter-1.0.4.tar.gz", "has_sig": false, "md5_digest": "6be5a9dd19966410ee521bad4e80e89b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4700, "upload_time": "2019-09-24T16:44:54", "url": "https://files.pythonhosted.org/packages/ae/9e/45c5d475fefa0bfb0f84fa1774a64ae86c2252ed976935e063ee68b1cb96/airflow_prometheus_exporter-1.0.4.tar.gz" } ] }