如何解决使用TCP端口将Airflow指标发送到statsd
出于某些原因,我试图使用TCP端口将气流指标发送到statsd。它适用于UDP,但不适用于端口。
注意:我正在Docker容器上运行Airflow 1.10.9。
此处已成功配置statsd。预设使用默认协议UDP。
{
port: 8125,backends: ["./backends/console"]
}
然后我确认statsd从Airflow Scheduler获得了一些指标。
statsd_1 | Flushing stats at Thu Oct 22 2020 01:54:10 GMT+0000 (Coordinated Universal Time)
statsd_1 | {
statsd_1 | counters: {
statsd_1 | 'statsd.bad_lines_seen': 0,statsd_1 | 'statsd.packets_received': 117,statsd_1 | 'statsd.metrics_received': 117,statsd_1 | 'airflow.schedulerjob_start': 0,statsd_1 | 'airflow.scheduler_heartbeat': 2
statsd_1 | },statsd_1 | timers: {},statsd_1 | gauges: {
statsd_1 | 'airflow.executor.open_slots': 32,statsd_1 | 'airflow.executor.queued_tasks': 0,statsd_1 | 'airflow.executor.running_tasks': 0,statsd_1 | 'airflow.dag_processing.total_parse_time': 0.00037,statsd_1 | 'airflow.dagbag_size': 0,statsd_1 | 'airflow.dag_processing.import_errors': 0,statsd_1 | 'airflow.collect_dags': 0.00037,statsd_1 | 'airflow.dagbag_import_errors': 0,statsd_1 | 'statsd.timestamp_lag': 0
statsd_1 | },statsd_1 | timer_data: {},statsd_1 | counter_rates: {
statsd_1 | 'statsd.bad_lines_seen': 0,statsd_1 | 'statsd.packets_received': 11.7,statsd_1 | 'statsd.metrics_received': 11.7,statsd_1 | 'airflow.scheduler_heartbeat': 0.2
statsd_1 | },statsd_1 | sets: {},statsd_1 | pctThreshold: [ 90 ]
statsd_1 | }
^[[1;2Astatsd_1 | Flushing stats at Thu Oct 22 2020 01:54:20 GMT+0000 (Coordinated Universal Time)
statsd_1 | {
statsd_1 | counters: {
statsd_1 | 'statsd.bad_lines_seen': 0,statsd_1 | 'statsd.packets_received': 116,statsd_1 | 'statsd.metrics_received': 116,statsd_1 | 'airflow.scheduler_heartbeat': 1
statsd_1 | },statsd_1 | 'airflow.dag_processing.total_parse_time': 0.000482,statsd_1 | 'airflow.collect_dags': 0.000482,statsd_1 | 'statsd.packets_received': 11.6,statsd_1 | 'statsd.metrics_received': 11.6,statsd_1 | 'airflow.scheduler_heartbeat': 0.1
statsd_1 | },statsd_1 | pctThreshold: [ 90 ]
statsd_1 | }
接下来,我将statsd配置文件更改为此。我添加了server
以使用TCP。
https://github.com/statsd/statsd/blob/master/docs/server.md
{
port: 8125,server: "./servers/tcp",backends: ["./backends/console",]
}
然后我向调度程序添加了新的环境变量AIRFLOW__SCHEDULER_STATSD_CUSTOM_CLIENT_PATH
。我指定了StatsClient的TCP版本。
- https://github.com/apache/airflow/blob/73b9163a8f55ce3d5bf6aec0a558952c27dd1b55/airflow/stats.py#L301-L302
- https://airflow.readthedocs.io/en/latest/logging-monitoring/metrics.html
AIRFLOW__SCHEDULER_STATSD_CUSTOM_CLIENT_PATH="statsd.TcpstatsClient"
重新启动的调度程序和statsd容器,现在statsd没有收到任何指标。
statsd_1 | Flushing stats at Thu Oct 22 2020 01:50:50 GMT+0000 (Coordinated Universal Time)
statsd_1 | {
statsd_1 | counters: {
statsd_1 | 'statsd.bad_lines_seen': 0,statsd_1 | 'statsd.packets_received': 0,statsd_1 | 'statsd.metrics_received': 0
statsd_1 | },statsd_1 | gauges: {},statsd_1 | pctThreshold: [ 90 ]
statsd_1 | }
我想念什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。