...
My (rough) proposal for a datastructure is the following:
MetricSnapshotMetricStore {
void addMetric(String name, Object value);
JobManager jobManager;
class JobManager {
Map<String, Object> metrics;
}
Map<String, TaskManager> taskmanagers;
class TaskManager {
Map<String, Object> metrics;
}
Map<String, Job> jobs;
class Job {
Map<String, Object> metrics;
Map<String, Task> tasks;
}
class Task {
Map<String, Object> metrics;
Map<String, Subtask>;
}
class Subtask {
Map<String, Object> metrics;
}
}
...
Several new Handlers will be added (one for each category) that will access the central MetricSnapshotMetricStore.
The REST call for a list of all available metrics of a task could look like this: /jobs/JOB_ID/vertices/TASK_ID/metrics
...