получить пользовательскую метрику калибровки из WebMonitorEndpoint (Rest Monitoring API) в Flink

#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 : Адрес вашего кластера flink
  • port : Порт конечной точки REST
  • jobId : Идентификатор вашей работы, который можно определить с помощью 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. Когда я изменил ее на эту, это сработало. Спасибо.