package storm.applications.spout.parser; import com.google.common.collect.ImmutableList; import java.util.List; import storm.applications.model.metadata.MachineMetadata; import storm.applications.util.stream.StreamValues; /** * * @author Maycon Viana Bordin <mayconbordin@gmail.com> */ public class GoogleTracesParser extends Parser { private static final int TIMESTAMP = 0; private static final int MACHINE_ID = 4; private static final int CPU = 5; private static final int MEMORY = 6; @Override public List<StreamValues> parse(String str) { String[] items = str.split(","); if (items.length != 19) return null; String id = items[MACHINE_ID]; long timestamp = Long.parseLong(items[TIMESTAMP]); double cpu = Double.parseDouble(items[CPU]) * 10; double memory = Double.parseDouble(items[MEMORY]) * 10; int msgId = String.format("%s:%s", id, timestamp).hashCode(); StreamValues values = new StreamValues(); values.add(id); values.add(timestamp); values.add(new MachineMetadata(timestamp, id, cpu, memory)); values.setMessageId(msgId); return ImmutableList.of(values); } }