private void taskAttemptEntityCreated(TaskAttemptExecutionAPIEntity entity) { JobCounters jobCounters = entity.getJobCounters(); String taskType = entity.getTags().get(TASK_TYPE.toString()); if (taskType != null && jobCounters != null && jobCounters.getCounters() != null) { if (Constants.TaskType.MAP.toString().equals(taskType.toUpperCase())) { mapAttemptDuration += entity.getDuration(); this.mapTaskAttemptCounterAgg.accumulate(jobCounters.getCounters().get(Constants.TASK_COUNTER)); this.mapFileSystemCounterAgg.accumulate(jobCounters.getCounters().get(Constants.FILE_SYSTEM_COUNTER)); return; } else if (Constants.TaskType.REDUCE.toString().equals(taskType.toUpperCase())) { reduceAttemptDuration += entity.getDuration(); this.reduceTaskAttemptCounterAgg.accumulate(jobCounters.getCounters().get(Constants.TASK_COUNTER)); this.reduceFileSystemTaskCounterAgg.accumulate(jobCounters.getCounters().get(Constants.FILE_SYSTEM_COUNTER)); return; } } ObjectMapper objectMapper = new ObjectMapper(); try { LOG.warn("Unknown task type of task attempt execution entity: " + objectMapper.writeValueAsString(entity)); } catch (Exception e) { LOG.error(e.getMessage(), e); } }
@Override public byte[] serialize(JobCounters counters) { final Map<String, Map<String, Long>> groupMap = counters.getCounters(); int totalSize = 4; for (Map<String, Long> counterMap : groupMap.values()) {
public void taskExecutionEntityCreated(TaskExecutionAPIEntity taskExecutionAPIEntity) { JobCounters jobCounters = taskExecutionAPIEntity.getJobCounters(); if (jobCounters == null || jobCounters.getCounters() == null) { LOG.warn("found null job counters, task {}", taskExecutionAPIEntity.getTags().get(MRJobTagName.TASK_ID.toString())); return; long endTime = taskExecutionAPIEntity.getEndTime(); Map<String, Map<String, Long>> counters = jobCounters.getCounters(); for (String groupName : counters.keySet()) { Map<String, Long> metricValues = counters.get(groupName);
@Override public List<GenericMetricEntity> generateMetrics(JobExecutionAPIEntity entity) { List<GenericMetricEntity> metrics = new ArrayList<>(); if (entity != null) { Long currentTime = System.currentTimeMillis(); Map<String, String> tags = entity.getTags(); metrics.add(metricWrapper(currentTime, Constants.ALLOCATED_MB, new double[]{entity.getAllocatedMB()}, tags)); metrics.add(metricWrapper(currentTime, Constants.ALLOCATED_VCORES, new double[]{entity.getAllocatedVCores()}, tags)); metrics.add(metricWrapper(currentTime, Constants.RUNNING_CONTAINERS, new double[]{entity.getRunningContainers()}, tags)); org.apache.eagle.jpm.util.jobcounter.JobCounters jobCounters = entity.getJobCounters(); if (jobCounters != null && jobCounters.getCounters() != null) { for (Map<String, Long> metricGroup : jobCounters.getCounters().values()) { for (Map.Entry<String, Long> entry : metricGroup.entrySet()) { String metricName = entry.getKey().toLowerCase(); metrics.add(metricWrapper(currentTime, metricName, new double[]{entry.getValue()}, tags)); } } } } return metrics; }
Map<String, Map<String, Long>> counters = jobCounters.getCounters();
if (jobCounters != null && jobCounters.getCounters() != null) { for (Map<String, Long> metricGroup : jobCounters.getCounters().values()) { for (Map.Entry<String, Long> entry : metricGroup.entrySet()) { String metricName = entry.getKey().toLowerCase();
final Map<String, Map<String, Long>> groupMap = counters.getCounters(); int pos = 0; final int totalGroups = Bytes.toInt(bytes, pos);
JobCounters jobCounters = parseCounters(totalCounters); jobExecutionEntity.setJobCounters(jobCounters); if (jobCounters.getCounters().containsKey(Constants.JOB_COUNTER)) { Map<String, Long> counters = jobCounters.getCounters().get(Constants.JOB_COUNTER); if (counters.containsKey(Constants.JobCounter.DATA_LOCAL_MAPS.toString())) { jobExecutionEntity.setDataLocalMaps(counters.get(Constants.JobCounter.DATA_LOCAL_MAPS.toString()).intValue());