提交 5d016404 编写于 作者: Y youyong205

modify the heartbeat analyzer

上级 bd1791bc
......@@ -79,7 +79,7 @@ public class StatusUpdateTask implements Task, Initializable {
try {
double value = Double.parseDouble(entry.getValue());
item.findOrCreateExtensionDetail(entry.getKey()).setValue(value);
} catch (NumberFormatException e) {
} catch (Exception e) {
Cat.logError("StatusExtension can only be double type", e);
}
}
......
......@@ -66,7 +66,7 @@
<element name="description" value-type="String" escape="false"/>
<entity-ref name="extensionDetail" names ="details" type="map" method-find-or-create="true"/>
</entity>
<entity name="extensionDetail">
<entity name="extensionDetail" dynamic-attributes="true">
<attribute name="id" value-type="String" key="true"/>
<attribute name="value" value-type="double" primitive="true" />
</entity>
......
package com.dianping.cat.consumer.heartbeat;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
......@@ -55,16 +54,6 @@ public class HeartbeatAnalyzer extends AbstractMessageAnalyzer<HeartbeatReport>
cal.setTimeInMillis(timestamp);
int minute = cal.get(Calendar.MINUTE);
Period period = new Period(minute);
Map<String, Extension> extensions = info.getExtensions();
for (Extension e : extensions.values()) {
String name = e.getId();
Collection<ExtensionDetail> details = e.getDetails().values();
for (ExtensionDetail detail : details) {
info.findOrCreateExtension(name).findExtensionDetail(detail.getId()).setValue(detail.getValue());
}
}
for (Entry<String, Extension> entry : info.getExtensions().entrySet()) {
String id = entry.getKey();
......@@ -131,6 +120,18 @@ public class HeartbeatAnalyzer extends AbstractMessageAnalyzer<HeartbeatReport>
disk.findOrCreateExtensionDetail(vinfo.getId() + " Free").setValue(vinfo.getFree());
}
}
Map<String, String> propertis = info.getDynamicAttributes();
for (Entry<String, String> entry : propertis.entrySet()) {
try {
double value = Double.parseDouble(entry.getValue());
Extension item = info.findOrCreateExtension("dal");
item.findOrCreateExtensionDetail(entry.getKey()).setValue(value);
} catch (Exception e) {
Cat.logError("StatusExtension can only be double type", e);
}
}
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册