@JsonIgnore public void setJobStats(HadoopStepStats stats) { Map<String, Long> counterNameToValue = counterGroupInfoMapHelper(stats); // job metrics int totalMappers = stats.getNumMapTasks(); int totalReducers = stats.getNumReduceTasks(); Map<String, Number> metrics = new HashMap<String, Number>(); metrics.put("numberMaps", totalMappers); metrics.put("numberReduces", totalReducers); metrics.put( "avgMapTime", getAvgCounterValue(counterNameToValue, MetricsCounter.SLOTS_MILLIS_MAPS, totalMappers)); metrics.put( "avgReduceTime", getAvgCounterValue(counterNameToValue, MetricsCounter.SLOTS_MILLIS_REDUCES, totalReducers)); metrics.put( "bytesWritten", getCounterValue(counterNameToValue, MetricsCounter.FILE_BYTES_WRITTEN)); metrics.put( "hdfsBytesWritten", getCounterValue(counterNameToValue, MetricsCounter.HDFS_BYTES_WRITTEN)); metrics.put( "mapInputRecords", getCounterValue(counterNameToValue, MetricsCounter.MAP_INPUT_RECORDS)); metrics.put( "mapOutputRecords", getCounterValue(counterNameToValue, MetricsCounter.MAP_OUTPUT_RECORDS)); metrics.put( "proactiveSpillCountRecs", getCounterValue(counterNameToValue, MetricsCounter.SPILLED_RECORDS)); metrics.put( "reduceInputRecords", getCounterValue(counterNameToValue, MetricsCounter.REDUCE_INPUT_RECORDS)); metrics.put( "reduceOutputRecords", getCounterValue(counterNameToValue, MetricsCounter.REDUCE_OUTPUT_RECORDS)); setMetrics(metrics); }