气流插件,用于自动从气流向数据狗发送指标

airflow-metrics的Python项目详细描述


Build Status

气流指标

airflow-metrics是一个气流插件,用于自动从气流向数据狗发送度量。

测试apache-airflow>=1.10.2, <=1.10.3

安装

pip install airflow-metrics

可选

如果您想要来自BigQueryOperatorGoogleCloudStorageToBigQueryOperator的度量,那么请确保安装了必要的依赖项。

pip install apache-airflow[gcp_api]

设置

airflow-metrics将向datadog报告所有度量,因此使用datadog api密钥创建一个airflow连接。

airflow connections --add --conn_id datadog_default --conn_type HTTP --conn_extr '{"api_key": "<your api key>"}'

注意:如果跳过此步骤,则您的airflow安装应该仍然有效,但不会报告任何度量。

用法

就这样!airflow-metrics现在将开始自动从Airflow向DataDog发送度量值。

指标

airflow-metrics将自动开始报告以下指标

  • airflow.task.state状态存储为标记的状态中的任务总数。
  • airflow.task.state.bq状态存储为标记的状态下的当前大查询任务数。
  • airflow.dag.durationDAG的持续时间(毫秒)。
  • airflow.task.duration任务的持续时间(毫秒)。
  • airflow.request.durationHTTP请求的持续时间(毫秒)。
  • airflow.request.status.success当前状态代码为成功的http请求数(<;400)
  • airflow.request.status.failure当前状态代码为不成功的http请求数(>;=400)
  • airflow.task.upserted.bqbigQueryOperator向上插入的行数。
  • airflow.task.delay.bqBigQueryOperator执行大查询作业所用的时间(毫秒)。
  • airflow.task.duration.bqBigQueryOperator完成大查询作业所用的时间(毫秒)。
  • airflow.task.upserted.gcs_to_bq由GoogleCloudStorageToBigQueryOperator向上插入的行数。
  • airflow.task.delay.gcs_to_bq从GoogleCloudStorageToBigQueryOperator进行大查询所用的时间(毫秒)。
  • airflow.task.duration.gcs_to_bq从googlecloudstoragetobigqueryoperator完成大查询所用的时间(毫秒)。

配置

默认情况下,airflow-metrics将在运行DAG并将其发送到数据狗时开始从气流中提取度量。通过在airflow.cfg

中设置这些配置,您可以完全退出或退出度量的子集。
[airflow_metrics]

airflow_metrics_enabled = True
airflow_metrics_tasks_enabled = True
airflow_metrics_bq_enabled = True
airflow_metrics_gcs_to_bq_enabled = True
airflow_metrics_requests_enabled = True
airflow_metrics_thread_enabled = True`

限制

airflow-metrics启动一个线程来报告一些度量,并且在使用sqlite作为数据库时不受支持。

贡献

欢迎拉取请求。对于重大变更,请先打开一个问题来讨论您希望更改的内容。

开始

为python3设置您喜欢的虚拟环境。

pip install -e .
airflow initdb
airflow connections --add --conn_id datadog_default --conn_type HTTP --conn_extr '{"api_key": ""}'

note:最后一步是必需的,否则插件将无法正确初始化,也无法收集度量值。但是您可以为开发目的添加一个伪密钥。

运行测试

pip install -r requirements-dev.txt
pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓 studio中使用调用jaxws web服务的jar文件   java双时间模拟时钟不打印两个不同的时间   java Jackson反序列化处理不带字段的生成值   多线程在java同步中读锁的目的是什么   为什么java中有这么多获取日期时间的方法?   java从listview中的TextView获取数据   java是否可以定义如何对枚举进行(反)序列化以在枚举内持久化?   Java:异常处理我的catch()有问题   VMWare java SDK:可用的PerfMetricID何时不报告数据?   exec在Java中执行命令而不重定向输出   java使用SpringXML配置实现观察者模式?   java在竹笔平板电脑中使用JPen