#apache-flink
#apache-flink
Вопрос:
У меня есть пользовательская метрика ->
public class TestMetric implements Gauge<MyType> {
@Override
public MyType getValue() {
final MyType myObject = new MyType();
return myObject;
}
}
И я использую их, как предложено в документации ->
getRuntimeContext().getMetricGroup().gauge("MyCustomMetric", new TestMetric());
Я хочу получить эту метрику с помощью метода GET, но пока я перепробовал почти все, что есть в документации API (https://ci.apache.org/projects/flink/flink-docs-release-1.8/monitoring/rest_api.html ) но не нашел эту метрику.
Знаете ли вы, как (или даже могу ли я) получить эту пользовательскую метрику через API?
Ответ №1:
Чтобы запросить метрику через REST-интерфейс Flink, вам нужно сначала определить некоторые идентификаторы:
flink_cluster
: Адрес вашего кластера flinkport
: Порт конечной точки RESTjobId
: Идентификатор вашей работы, который можно определить с помощьюhttp://flink_cluster:port/jobs
vertexId
: Идентификатор вершины для запроса. Это можно выяснить с помощьюhttp://flink_cluster:port/jobs/:jobId
, который предоставляет вам информацию о задании со всемиvertexIds
subtaskindex
: Индекс параллельной подзадачи для запроса
http://flink_cluster:port/jobs/:jobId/vertices/:vertexId/subtasks/:subtaskindex/metrics?get=MyCustomMetric
Комментарии:
1. Мне просто нравится, почему я не смог ее получить -> почему-то у нас нет имени оператора, поэтому имя моей метрики было совместным процессом. MyCustomMetric. Когда я изменил ее на эту, это сработало. Спасибо.