dags/fxci_metric_export.py (60 lines of code) (raw):

""" Exports Firefox-CI worker data from the Google Cloud Monitoring to BigQuery. The container is defined in [fxci-etl](https://github.com/mozilla-releng/fxci-etl). """ from datetime import datetime, timedelta from airflow import DAG from airflow.providers.cncf.kubernetes.secret import Secret from operators.gcp_container_operator import GKEPodOperator from utils.tags import Tag default_args = { "owner": "ahalberstadt@mozilla.com", "depends_on_past": False, "start_date": datetime(2024, 7, 8), "email_on_failure": True, "email_on_retry": False, "retries": 1, "retry_delay": timedelta(minutes=30), } tags = [Tag.ImpactTier.tier_3] env_vars = { "FXCI_ETL_BIGQUERY_PROJECT": "moz-fx-data-shared-prod", "FXCI_ETL_BIGQUERY_DATASET": "fxci_derived", "FXCI_ETL_STORAGE_PROJECT": "moz-fx-dev-releng", "FXCI_ETL_STORAGE_BUCKET": "fxci-etl", } secrets = [ Secret( deploy_type="env", deploy_target="FXCI_ETL_STORAGE_CREDENTIALS", secret="airflow-gke-secrets", key="fxci_etl_secret__gcp-credentials", ), Secret( deploy_type="env", deploy_target="FXCI_ETL_MONITORING_CREDENTIALS", secret="airflow-gke-secrets", key="fxci_etl_secret__gcp-credentials", ), ] with DAG( "fxci_metric_export", default_args=default_args, doc_md=__doc__, schedule_interval="30 0 * * *", tags=tags, ) as dag: fxci_metric_export = GKEPodOperator( task_id="fxci_metric_export", arguments=[ "fxci-etl", "metric", "export", "-vv", "--date={{ ds }}", ], env_vars=env_vars, secrets=secrets, image="gcr.io/moz-fx-data-airflow-prod-88e0/fxci-taskcluster-export_docker_etl:latest", gcp_conn_id="google_cloud_airflow_gke", dag=dag, email=[ "ahalberstadt@mozilla.com", ], )