wonja opened a new issue #14839: URL: https://github.com/apache/airflow/issues/14839
**Apache Airflow version**: 2.0.1 **Python version**: 3.8 **Cloud provider or hardware configuration**: AWS **What happened**: In order to add tags to [Airflow metrics,](https://airflow.apache.org/docs/apache-airflow/stable/logging-monitoring/metrics.html), it's required to set `AIRFLOW__METRICS__STATSD_DATADOG_ENABLED` to `True` and add tags in the `AIRFLOW__METRICS__STATSD_DATADOG_TAGS` variable. We were routing our statsd metrics to Datadog anyway, so this should theoretically have not changed anything other than the addition of any specified tags. Setting the environment variable `AIRFLOW__METRICS__STATSD_DATADOG_ENABLED` to `True` (along with the other required statsd connection variables) results in the following error, which causes the process to terminate. This is from the scheduler, but this would apply anywhere that `Stats.timer()` is being called. ``` AttributeError: 'DogStatsd' object has no attribute 'timer' return Timer(self.dogstatsd.timer(stat, *args, tags=tags, **kwargs)) File "/usr/local/lib/python3.8/site-packages/airflow/stats.py", line 345, in timer return fn(_self, stat, *args, **kwargs) File "/usr/local/lib/python3.8/site-packages/airflow/stats.py", line 233, in wrapper timer = Stats.timer('scheduler.critical_section_duration') File "/usr/local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 1538, in _do_scheduling num_queued_tis = self._do_scheduling(session) File "/usr/local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 1382, in _run_scheduler_loop self._run_scheduler_loop() File "/usr/local/lib/python3.8/site-packages/airflow/jobs/scheduler_job.py", line 1280, in _execute Traceback (most recent call last): ``` **What you expected to happen**: The same default Airflow metrics get sent by connecting to datadog, tagged with the metrics specified in `AIRFLOW__METRICS__STATSD_DATADOG_TAGS`. **What do you think went wrong?**: There is a bug in the implementation of the `Timer` method of `SafeDogStatsdLogger`. https://github.com/apache/airflow/blob/master/airflow/stats.py#L341-L347 `DogStatsd` has not method called `timer`. Instead it should be `timed`: https://datadogpy.readthedocs.io/en/latest/#datadog.dogstatsd.base.DogStatsd.timed **How to reproduce it**: Set the environment variables (or their respective config values) `AIRFLOW__METRICS__STATSD_ON`, `AIRFLOW__METRICS__STATSD_HOST`, `AIRFLOW__METRICS__STATSD_PORT`, and then set `AIRFLOW__METRICS__STATSD_DATADOG_ENABLED` to `True` and start up Airflow. **Anything else we need to know**: How often does this problem occur? Every time ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
