气流通过statsd发送指标,但并非全部

时间:2019-07-03 11:54:57

标签: airflow statsd

最近,我更新了airflow.cfg以启用基于Statsd的指标。

我已将此设置注入airflow.cfg:

我正在注入此配置:

AIRFLOW__SCHEDULER__STATSD_ON=True
AIRFLOW__SCHEDULER__STATSD_HOST=HOSTNAME
AIRFLOW__SCHEDULER__STATSD_PORT=9125
AIRFLOW__SCHEDULER__STATSD_PREFIX=airflow

我没有使用标准的Statsd服务,而是使用Statsd-exporter的Statsd协议,因此据我所知,我可以直接指出Airflow将指标发送给Stats-exporter。默认情况下,它可在9125端口上工作。

Statsd-exporter收到指标后,Prometheus可以定期将其抓取。

一切都很好,一切都很好。此外,我将映射文件制作到Statsd-exporter,在其中我使用了一些正则表达式,但是....我的问题是,当我打开Statsd-exported(9102端口)的WEB UI时,我看到了一部分Airflow指标,但不是全部!。

文档说明了指标列表here

例如,我看到气流发送:ti_failures,ti_successes,dagbag_size等。但是完全没有度量标准,例如:dag ... duration或executor.open_slots以及其他夫妇。

非常感谢您曾使用Statsd和Airflow的任何人,因为我不知道:(

1 个答案:

答案 0 :(得分:0)

我最近测量了气流及其度量,将其从statsd导出到prometheus。 在我的架构中,Kubernetes容器中运行着气流,具体是:

  • 调度程序
  • 工人
  • 网络

只有def build_model(intUserSize, intMovieSize, intLatentSize, boolBias=False): print("usersize",intUserSize,"movieSize",intMovieSize) UserInput = Input(shape=(1,), name="UserInput") UserEmbedding = Embedding(intUserSize, intLatentSize, embeddings_initializer='random_normal', embeddings_regularizer=l2(0.01),name='UserEmbedding')(UserInput) UserEmbedding = Flatten()(UserEmbedding) UserEmbedding = Dropout(0.3)(UserEmbedding) MInput = Input(shape=(1,), name="midInput") MEmbedding = Embedding(intMovieSize, intLatentSize, embeddings_initializer='random_normal', embeddings_regularizer=l2(0.01), name='membedding')(MInput) MEmbedding = Flatten()(MEmbedding) MEmbedding = Dropout(0.3)(MEmbedding) RatingHat = Dot(axes=1)([UserEmbedding, MEmbedding]) model = Model([UserInput, MInput], RatingHat) model.compile(optimizer="adam", loss="mse", metrics=['accuracy']) model.summary() return model model.fit([trainu,trainm],trainrate,epochs=10,batch_size=100,verbose=2) schedulerworker有一个用于导出statsd度量标准的侧面容器(我们将其称为web)。

而且您在正式文档(https://airflow.apache.org/metrics.html)中看到的指标列表并非对所有指标窗格都可用。

为解决您的特定问题,metrics pods由工作节点导出。