package org.weiboad.ragnar.server.data;
import org.apache.lucene.document.*;
import org.apache.lucene.util.BytesRef;
import java.util.Date;
public class MetaLog {
public String version = "";
public String rpcid = "";
public String traceid = "";
public Double time = 0d;
public Double time_raw = 0D;
public Date time_date = new Date(0);
public Float elapsed_ms = 0.0F;
public String perf_on = "";
public String ip = "";
public String rt_type = "";
public String uid = "";
public String url = "";
public String param = "";
public String httpcode = "";
public String project = "";
//public Map<String, String> extra = new Map<String, String>();
public Date getTime_date() {
return time_date;
}
public void setTime_date(Date time_date) {
this.time_date = time_date;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
if (version != null) {
this.version = version;
} else {
this.version = "";
}
}
public String getRpcid() {
return rpcid;
}
public void setRpcid(String rpcid) {
this.rpcid = rpcid;
}
public String getTraceid() {
return traceid;
}
public void setTraceid(String traceid) {
this.traceid = traceid;
}
public Double getTime() {
return time;
}
public void setTime(Double time) {
this.time = time;
this.time_raw = time;
this.time_date = new Date(time.longValue() * 1000l);
}
public Float getElapsed_ms() {
return elapsed_ms;
}
public void setElapsed_ms(Float elapsed_ms) {
this.elapsed_ms = elapsed_ms;
}
public String getPerf_on() {
return perf_on;
}
public void setPerf_on(String perf_on) {
this.perf_on = perf_on;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getRt_type() {
return rt_type;
}
public void setRt_type(String rt_type) {
this.rt_type = rt_type;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getParam() {
return param;
}
public void setParam(String param) {
this.param = param;
}
public String getHttpcode() {
return httpcode;
}
public void setHttpcode(String httpcode) {
this.httpcode = httpcode;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public Double getTime_raw() {
return time_raw;
}
public void setTime_raw(Double time_raw) {
this.time_raw = time_raw;
this.time = time_raw;
this.time_date = new Date(time_raw.longValue() * 1000l);
}
/*
public Map<String, String> getExtra() {
return extra;
}
public String getExtraStr() {
return extra.toString();
}
public void setExtra(Map<String, String> extra) {
this.extra = extra;
}*/
public Document gDoc() {
Document doc = new Document();
Field version = new StringField("version", getVersion(), Field.Store.YES);
Field rpcid = new StringField("rpcid", getRpcid(), Field.Store.YES);
Field traceid = new StringField("traceid", getTraceid(), Field.Store.YES);
Field time = new DoubleDocValuesField("time", getTime());
Field timeRaw = new StoredField("time_raw", getTime());
//Field timestamp = new LongPoint("timestamp", lastModified);
Field elapsed = new DoubleDocValuesField("elapsed_ms", getElapsed_ms());
Field elapsedRaw = new StoredField("elapsed_ms_raw", getElapsed_ms());
Field perf_on = new StringField("perf_on", getPerf_on(), Field.Store.YES);
Field ip = new StringField("ip", getIp(), Field.Store.YES);
Field rt_type = new StringField("rt_type", getRt_type(), Field.Store.YES);
Field uid = new StringField("uid", getUid(), Field.Store.YES);
Field url = new StringField("url", getUrl(), Field.Store.YES);
Field urlraw = new SortedDocValuesField("urlraw", new BytesRef(getUrl()));
Field param = new TextField("param", getParam(), Field.Store.YES);
Field httpcode = new StringField("httpcode", getHttpcode(), Field.Store.YES);
Field project = new StringField("project", getProject(), Field.Store.YES);
//todo:extra没有做处理
//Field extra = new StringField("param", getExtraStr(), Field.Store.YES);
doc.add(version);
doc.add(rpcid);
doc.add(traceid);
doc.add(time);
doc.add(timeRaw);
//doc.add(timestamp);
doc.add(elapsed);
doc.add(elapsedRaw);
doc.add(perf_on);
doc.add(ip);
doc.add(rt_type);
doc.add(uid);
doc.add(url);
doc.add(urlraw);
doc.add(param);
doc.add(httpcode);
doc.add(project);
//doc.add(extra);
return doc;
}
public void init(Document doc) {
version = doc.get("version");
rpcid = doc.get("rpcid");
traceid = doc.get("traceid");
try {
setTime(Double.parseDouble((doc.get("time"))));
} catch (Exception e) {
setTime(0d);
}
try {
setTime_raw(Double.parseDouble((doc.get("time_raw"))));
} catch (Exception e) {
setTime_raw(0d);
}
try {
setElapsed_ms(Float.parseFloat(doc.get("elapsed_ms_raw")));
} catch (Exception e) {
setElapsed_ms(0f);
}
perf_on = doc.get("perf_on");
ip = doc.get("ip");
rt_type = doc.get("rt_type");
uid = doc.get("uid");
url = doc.get("url");
param = doc.get("param");
httpcode = doc.get("httpcode");
project = doc.get("project");
//IndexableField extrafield doc.getField("extra");
//extra = doc.get("extra");
}
}