问题描述
出于某些原因,我试图使用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 (将#修改为@)