最近,我更新了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的任何人,因为我不知道:(
答案 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)
,scheduler
和worker
有一个用于导出statsd度量标准的侧面容器(我们将其称为web
)。
而且您在正式文档(https://airflow.apache.org/metrics.html)中看到的指标列表并非对所有指标窗格都可用。
为解决您的特定问题,metrics pods
由工作节点导出。