Status
...
Page properties | |||
---|---|---|---|
|
...
|
...
|
...
|
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
The MetricRegistry will contain a MetricQueryService, which acts like an unscheduled reporter.
The service is a separate actor that creates and returns a Key-Value representation of the entire metric space when queried.
The keys represent the name of the metric; formatted according to the following scope format strings:
metrics.scope.jm | 0:<user_scope>.<name> |
metrics.scope.tm | 1:<tm_id>:<user_scope>.<name> |
metrics.scope.jm.job | 2:<job_id>:<user_scope>.<name> |
metrics.scope.tm.job | 2:<job_id>:<user_scope>.<name> |
metrics.scope.tm.task | 3:<job_id>:<task_id>:<subtask_index>:<user_scope>.<name> |
metrics.scope.tm.operator | 4:<job_id>:<task_id>:<subtask_index>:<operator_name>:<user_scope>.<name> |
The initial number serves as a category for the WebInterface, and allows for faster handling as we don't have to parse the entire string before deciding what category it belongs to.
0 = JobManager
1 = TaskManager
2 = Job
3 = Task
4 = Operator
...
MetricStore {
void addMetric(String name, Object value);
JobManagerMetricStore
jobMan
class JobManagerMetricStore
{
Map<String, Object> metrics;
}
} Map<String, TaskManagerMetricStore
> taskmanagers;
class TaskManagerMetricStore
{
Map<String, Object> metrics;
}
} Map<String, JobMetricStore
> jobs;
class JobMetricStore
{
Map<String, Object> metrics;
Map<String, TaskMetricStore
> tasks;
}
} class TaskMetricStore
{
Map<String, Object> metrics;
Map<String, SubtaskMetricStore
>;
}
} class SubtaskMetricStore
{
Map<String, Object> metrics;
}
}
...
Note that at any given time only one of these objects will exist.
...