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

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的目标是从我的项目中删除不起作用的文件   java对for循环的理解   java我完成了在作业要求的位置查找字符的部分,但是如何从我找到的字符串中删除字符呢?   基于帧时的java动画   java请求无效。缺少XGoogUploadCommand标头   java如何在viewsource模式下使用openStream?   grpc grpc_ARG_KEEPALIVE_PERMIT_而不调用java服务器?   java如何通过Junit测试Web服务调用   如何在java中获取鼠标中键?   使用junit在spring测试中加载属性文件   Java中用于类的类修饰符   java多色文本图像   sql无法调试Java中的“连接到数据库失败”异常   java如何指定hibernate连接映射?   java Android工具栏不显示   java仿射转换不同的图形对象   使用终端的java问题   Java在tomcat上查找127.0.0.1失败