### Apache Airflow version

2.1.2

### Operating System

Gentoo/Linux

### Versions of Apache Airflow Providers

_No response_

### Deployment

Docker-Compose

### Deployment details

_No response_

### What happened

In datadog-agent logs, got parsing error

[ AGENT ] 2021-09-29 03:20:01 UTC | CORE | ERROR | (pkg/dogstatsd/server.go:411 in errLog) | Dogstatsd: error parsing metric message '"airflow.dagrun.schedule_delay.skew:<Period [2021-09-29T03:20:00+00:00 -> 2021-09-29T03:20:00.968404+00:00]>|ms"': could not parse dogstatsd metric value: strconv.ParseFloat: parsing "<Period [2021-09-29T03:20:00+00:00 -> 2021-09-29T03:20:00.968404+00:00]>": invalid syntax

### What you expected to happen

since datadog agent expects a float, see https://github.com/DataDog/datadog-agent/blob/6830beaeb182faadac40368d9d781b796b4b2c6f/pkg/dogstatsd/parse.go#L119, the schedule_delay should be a float instead of timedelta.

### How to reproduce

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/stats.py
"""Gauge stat"""
    @classmethod
    def timing(cls, stat, dt):
        """Stats timing"""
    @classmethod
    def timer(cls, *args, **kwargs):
        """Timer metric that can be cancelled"""
        return Timer()
ALLOWED_CHARACTERS = set(string.ascii_letters + string.digits + '_.-')
def stat_name_default_handler(stat_name, max_length=250) -> str:
    """A function that validate the statsd stat name, apply changes to the stat name
    if necessary and return the transformed stat name.
    """
    if not isinstance(stat_name, str):
        raise InvalidStatsNameException('The stat_name has to be a string')
    if len(stat_name) > max_length:
        raise InvalidStatsNameException(
            f"The stat_name ({stat_name}) has to be less than {max_length} characters."
        )
    if not all((c in ALLOWED_CHARACTERS) for c in stat_name):
        raise InvalidStatsNameException(
            f"The stat name ({stat_name}) has to be composed with characters in {ALLOWED_CHARACTERS}."
        )
    return stat_name
def get_current_handler_stat_name_func() -> Callable[[str], str]:
    """Get Stat Name Handler from airflow.cfg"""
    return conf.getimport('metrics', 'stat_name_handler') or stat_name_default_handler
T = TypeVar("T", bound=Callable)
def validate_stat(fn: T) -> T: