Я не видел этой возможности на UI
.
Вы можете сделать это, используя plugins . Это всего лишь пример. Вам необходимо создать папку plugins
и задать полный путь к переменной plugins_folder
в airflow.cfg
. Пример моего плагина (my_plugin.py
):
# plugins
#└── my_plugin
# └── my_plugin.py
from airflow.models import DagRun
from airflow.plugins_manager import AirflowPlugin
from airflow.utils import db
from flask import render_template_string
from flask_admin import BaseView
from flask_admin import expose
appbuilder_views = []
class MyExample(BaseView):
@expose('/')
def index(self):
# I just print all dag ids + start_date's
content = ''
with db.create_session() as session:
for dag_run in session.query(DagRun).all():
content += 'start_date: %s, dag_id: %s<br/>' % (
dag_run.start_date,
str(dag_run.dag_id)
)
return render_template_string(content)
ADMIN_VIEW = MyExample(category="System", name="My")
class AirflowGitPullPlugins(AirflowPlugin):
name = "my_plugin"
operators = []
hooks = []
executors = []
macros = []
admin_views = [ADMIN_VIEW]
flask_blueprints = []
menu_links = []
appbuilder_views = appbuilder_views
appbuilder_menu_items = []
Перезагрузите airflow web-server
и откройте домашнюю страницу. Вы увидите новое меню:
Нажмите на пункт меню, вы увидите нашу пользовательскую страницу:
Таким образом, вы можете создавать любой шаблон и создавать любые пользовательские функции ...
Также помните, что вам необходимо перезапустить планировщик воздушного потока после любых изменений в db
Не уверен, что есть более простое решение. Вы также можете искать плагины. Надеюсь, это поможет.