提交 44980a0c 编写于 作者: wu-sheng's avatar wu-sheng

1.由于SDK引入log4j2,暂时不需要监控收集机制。移除相关代码。

上级 1a84431f
......@@ -13,8 +13,6 @@ import org.apache.logging.log4j.Logger;
import com.ai.cloud.skywalking.conf.Config;
import com.ai.cloud.skywalking.conf.Constants;
import com.ai.cloud.skywalking.protocol.Span;
import com.ai.cloud.skywalking.selfexamination.HealthCollector;
import com.ai.cloud.skywalking.selfexamination.HeathReading;
import com.ai.cloud.skywalking.sender.DataSenderFactoryWithBalance;
public class BufferGroup {
......@@ -45,10 +43,6 @@ public class BufferGroup {
logger.warn(
"Group[{}] index[{}] data collision, discard old data.",
groupName, i);
HealthCollector.getCurrentHeathReading(null).updateData(
HeathReading.WARNING,
"Group[" + groupName + "] index[" + i
+ "] data collision, discard old data.");
}
dataBuffer[i] = span;
}
......@@ -83,9 +77,6 @@ public class BufferGroup {
logger.error("Sleep Failure");
}
}
HealthCollector.getCurrentHeathReading(null)
.updateData(HeathReading.INFO,
"send buried-point data.");
logger.debug("send buried-point data, size:{}", data.length());
data = new StringBuilder();
}
......
package com.ai.cloud.skywalking.selfexamination;
import java.util.HashMap;
import java.util.Map;
import static com.ai.cloud.skywalking.conf.Config.SkyWalking.USER_ID;
import com.ai.cloud.skywalking.util.BuriedPointMachineUtil;
public class HealthCollector extends Thread{
private static Map<String, HeathReading> heathReadings = new HashMap<String, HeathReading>();
public static HeathReading getCurrentHeathReading(String extraId){
String id = getId(extraId);
if(!heathReadings.containsKey(id)){
synchronized (heathReadings) {
if(!heathReadings.containsKey(id)){
heathReadings.put(id, new HeathReading(id));
}
}
}
return heathReadings.get(id);
}
private static String getId(String extraId){
return "SDK,U:" + USER_ID + ",M:" + BuriedPointMachineUtil.getHostDesc() +",P:" + BuriedPointMachineUtil.getProcessNo() + ",T:"
+ Thread.currentThread().getName() + "("
+ Thread.currentThread().getId() + ")" + (extraId == null? "" : ",extra:" + extraId);
}
@Override
public void run(){
//TODO: 使用专有的端口,将数据上报给服务端,定时上报,默认应为分钟级别,降低服务端压力
}
}
package com.ai.cloud.skywalking.selfexamination;
import java.util.HashMap;
import java.util.Map;
import com.ai.cloud.skywalking.conf.Constants;
public class HeathReading {
public static final String ERROR = "ERROR";
public static final String WARNING = "WARNING";
public static final String INFO = "INFO";
private String id;
private Map<String, HeathDetailData> datas = new HashMap<String, HeathDetailData>();
/**
* 健康读数,只应该在工作线程中创建
*
*/
public HeathReading(String id) {
this.id = id;
}
public void updateData(String key, String newData){
if(datas.containsKey(key)){
datas.get(key).updateData(newData);
}else{
datas.put(key, new HeathDetailData(newData));
}
}
@Override
public String toString(){
StringBuilder sb = new StringBuilder(this.id);
sb.append(Constants.HEALTH_DATA_SPILT_PATTERN);
for(Map.Entry<String, HeathDetailData> data : datas.entrySet()){
sb.append(data.getKey()).append(Constants.HEALTH_DATA_SPILT_PATTERN).append(data.getValue().toString()).append(Constants.HEALTH_DATA_SPILT_PATTERN);
}
//reset data
datas = new HashMap<String, HeathReading.HeathDetailData>();
return sb.toString();
}
class HeathDetailData{
private String data;
private long statusTime;
HeathDetailData(String initialData){
data = initialData;
statusTime = System.currentTimeMillis();
}
void updateData(String newData){
data = newData;
statusTime = System.currentTimeMillis();
}
String getData() {
return data;
}
long getStatusTime() {
return statusTime;
}
@Override
public String toString(){
return "d:" + data + Constants.HEALTH_DATA_SPILT_PATTERN + "t:" + statusTime;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册