Airflow 集成

编辑

版本

0.9.0 [beta] 此功能为测试版,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。测试版功能不受官方 GA 功能的支持 SLA 约束。 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全性
可观测性

订阅级别
这是什么?

基础

支持级别
这是什么?

Elastic

概述

编辑

Airflow 是一个开源平台,用于以编程方式创作、调度和监控工作流。它允许用户将工作流定义为任务的有向无环图 (DAG),这些任务随后由 Airflow 调度程序在遵循指定依赖关系的情况下在一系列工作器上执行。

使用 Airflow 集成可以

  • 使用 StatsD 从 Airflow 收集详细的指标,以深入了解系统性能。
  • 创建信息丰富的可视化效果,以跟踪使用趋势、衡量关键指标并得出可操作的业务见解。
  • 实时监控工作流的性能和状态。

数据流

编辑

Airflow 集成收集指标数据。

指标提供有关 Airflow 统计信息的深入信息。Airflow 集成收集的 Metric 数据流是 statsd,使用户能够监控和排除 Airflow 实例的性能故障。

数据流

  • statsd:收集与 Airflow 中的调度程序活动、池使用情况、任务执行详细信息、执行程序性能和工作器状态相关的指标。

注意

  • 用户可以在 Discovermetrics-* 索引模式下的 Airflow 摄入文档中监控和查看指标。

兼容性

编辑

Airflow 模块已使用 Airflow 2.4.0 进行测试。它应该适用于 2.0.0 和更高版本。

先决条件

编辑

用户需要 Elasticsearch 来存储和搜索用户数据,并需要 Kibana 来可视化和管理数据。他们可以使用 Elastic Cloud 上托管的 Elasticsearch 服务(推荐),或在自己的硬件上自行管理 Elastic Stack。

要从 Airflow 摄取数据,用户必须具有 StatsD 才能接收数据。

设置

编辑

有关如何设置集成的分步说明,请参阅入门指南。

设置 Airflow 的步骤

编辑

请务必遵循官方Airflow 安装指南来正确安装 Airflow。

在用户的 Airflow 配置文件(例如 airflow.cfg)中包含以下行。将 statsd_prefix 留空,并将 %HOST% 替换为代理正在运行的地址

[metrics]
statsd_on = True
statsd_host = %HOST%
statsd_port = 8125
statsd_prefix =

验证

编辑

设置集成后,您可以单击 Airflow 集成中的“资产”选项卡以查看可用仪表板的列表。选择与您配置的数据流相对应的仪表板。仪表板应填充所需的数据。

故障排除

编辑
  • 通过检查日志中潜在的错误,检查 StatsD 服务器是否正在从 Airflow 接收数据。
  • 确保 Airflow 配置文件中的 %HOST% 占位符已替换为 StatsD 服务器正在运行的计算机的正确地址。
  • 如果未发出 Airflow 指标,请确认 airflow.cfg 文件中的 [metrics] 部分已按照上述说明正确配置。

指标参考

编辑

Statsd

编辑

这是 statsd 数据流,它收集与 Airflow 中的调度程序活动、池使用情况、任务执行详细信息、执行程序性能和工作器状态相关的指标。

示例

statsd 的示例事件如下所示

{
    "@timestamp": "2024-06-18T07:24:40.220Z",
    "agent": {
        "ephemeral_id": "82e52250-5f2d-4fad-9f19-b88a209229db",
        "id": "97400795-188c-4140-a1ee-0002078c785d",
        "name": "docker-fleet-agent",
        "type": "metricbeat",
        "version": "8.13.0"
    },
    "airflow": {
        "scheduler_critical_section_duration": {
            "count": 1,
            "max": 7,
            "mean": 7,
            "mean_rate": 0.25568506211340597,
            "median": 7,
            "min": 7,
            "stddev": 0
        }
    },
    "data_stream": {
        "dataset": "airflow.statsd",
        "namespace": "ep",
        "type": "metrics"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "97400795-188c-4140-a1ee-0002078c785d",
        "snapshot": false,
        "version": "8.13.0"
    },
    "event": {
        "agent_id_status": "verified",
        "dataset": "airflow.statsd",
        "ingested": "2024-06-18T07:24:50Z",
        "module": "statsd"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": true,
        "hostname": "docker-fleet-agent",
        "id": "8259e024976a406e8a54cdbffeb84fec",
        "ip": [
            "192.168.245.7"
        ],
        "mac": [
            "02-42-C0-A8-F5-07"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "3.10.0-1160.102.1.el7.x86_64",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.6 LTS (Focal Fossa)"
        }
    },
    "metricset": {
        "name": "server"
    },
    "service": {
        "type": "statsd"
    }
}

ECS 字段参考

有关 ECS 字段的详细信息,请参阅以下文档

导出的字段
字段 描述 类型 指标类型

@timestamp

事件时间戳。

日期

agent.id

关键词

airflow.*.count

Airflow 计数器

对象

计数器

airflow.*.max

Airflow 最大计时器指标

对象

airflow.*.mean

Airflow 平均计时器指标

对象

airflow.*.mean_rate

Airflow 平均速率计时器指标

对象

airflow.*.median

Airflow 中值计时器指标

对象

airflow.*.min

Airflow 最小计时器指标

对象

airflow.*.stddev

Airflow 标准偏差计时器指标

对象

airflow.*.value

Airflow 仪表

对象

仪表

airflow.dag_file

Airflow dag 文件元数据

关键词

airflow.dag_id

Airflow dag ID 元数据

关键词

airflow.job_name

Airflow 作业名称元数据

关键词

airflow.operator_name

Airflow 运算符名称元数据

关键词

airflow.pool_name

Airflow 池名称元数据

关键词

airflow.scheduler_heartbeat.count

Airflow 调度程序心跳

双精度

airflow.status

Airflow 状态元数据

关键词

airflow.task_id

Airflow 任务 ID 元数据

关键词

cloud.account.id

用于在多租户环境中识别不同实体的云帐户或组织 ID。示例:AWS 账户 ID、Google Cloud ORG ID 或其他唯一标识符。

关键词

cloud.availability_zone

此主机运行所在的可用区。

关键词

cloud.image.id

云实例的映像 ID。

关键词

cloud.instance.id

主机计算机的实例 ID。

关键词

cloud.provider

云提供商的名称。示例值包括 aws、azure、gcp 或 digitalocean。

关键词

cloud.region

此主机运行所在的区域。

关键词

container.id

唯一容器 ID。

关键词

data_stream.dataset

数据流数据集。

常量关键词

data_stream.namespace

数据流命名空间。

常量关键词

data_stream.type

数据流类型。

常量关键词

event.dataset

事件数据集

常量关键词

event.module

事件模块

常量关键词

host.containerized

如果主机是容器。

布尔

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送方决定使用哪个值。

关键词

host.os.build

操作系统构建信息。

关键词

host.os.codename

操作系统代号(如果有)。

关键词

service.address

服务地址

关键词

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

0.9.0

增强 (查看拉取请求)
ECS 版本已更新到 8.11.0。将 kibana 约束更新为 ^8.13.0。修改了字段定义,以删除 ecs@mappings 组件模板使其变得冗余的 ECS 字段。

0.8.0

增强 (查看拉取请求)
在 data_stream.dataset 上添加全局过滤器,以提高性能。

0.7.0

增强 (查看拉取请求)
更新文档。

0.6.0

增强 (查看拉取请求)
更新到 Kibana 8.11 以支持增强的 statsd 实现,并添加系统测试用例。

0.5.1

错误修复 (查看拉取请求)
添加容器 ID 的维度字段,该字段在之前包规范 v3 迁移期间遗漏

0.5.0

增强 (查看拉取请求)
将包 format_version 更新为 3.0.0。

0.4.0

增强 (查看拉取请求)
为指标数据集启用时间序列数据流。这大大减少了指标的存储,并有望逐步提高查询性能。有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/elasticsearch/reference/current/tsds.html

0.3.1

错误修复 (查看拉取请求)
删除 airflow.scheduler.heartbeat 字段的 metric_type 映射,并调整仪表板以使用 last_value 可视化此字段。

0.3.0

增强 (查看拉取请求)
将指标字段定义恢复为引入 metric_type 之前使用的格式。

0.2.0

增强 (查看拉取请求)
statsd 数据流的字段添加 metric_type 映射。

0.1.0

增强 (查看拉取请求)
将所有权从 obs-service-integrations 重命名为 obs-infraobs-integrations

0.0.5

错误修复 (查看拉取请求)
修改了维度字段映射以支持公共云部署。

0.0.4

增强 (查看拉取请求)
添加了维度字段以启用 TSDB。

0.0.3

增强 (查看拉取请求)
添加了类别和/或子类别。

0.0.2

增强 (查看拉取请求)
添加仪表板

0.0.1

增强 (查看拉取请求)
初始版本