本文整理汇总了Java中scouter.lang.pack.PerfCounterPack类的典型用法代码示例。如果您正苦于以下问题:Java PerfCounterPack类的具体用法?Java PerfCounterPack怎么用?Java PerfCounterPack使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PerfCounterPack类属于scouter.lang.pack包,在下文中一共展示了PerfCounterPack类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: sendCounter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
private void sendCounter(PerfCounterPack[] p) {
try {
List<byte[]> buff = new ArrayList<byte[]>();
int bytes = 0;
for (int k = 0; k < p.length; k++) {
byte[] b = new DataOutputX().writePack(p[k]).toByteArray();
if (bytes + b.length >= conf.net_udp_packet_max_bytes) {
sendDirect(buff); // buff.size가 0일수도 있다.
bytes = 0;// bytes 값 초기화..
buff.clear();
}
bytes += b.length;
buff.add(b);
}
sendDirect(buff);
} catch (Exception e) {
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:19,代码来源:StatusSender.java
示例2: run
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public void run() {
while (true) {
ThreadUtil.sleep(1000);
if (conf.counter_enabled == false) {
continue;
}
long now = System.currentTimeMillis();
CounterBasket pw = new CounterBasket();
for (int i = 0; i < taskSec.size(); i++) {
CountStat r = taskSec.get(i);
try {
if (r.counter.interval() <= now - r.xtime) {
r.xtime = now;
r.counter.process(pw);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
//
PerfCounterPack[] pks = pw.getList();
DataProxy.sendCounter(pks);
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:25,代码来源:CounterExecutingManager.java
示例3: getGCInfo
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@Counter
public void getGCInfo(CounterBasket pw) {
long[] gcInfo = SysJMX.getCurrentProcGcInfo();
if (oldGc == null) {
oldGc = gcInfo;
return;
}
long dCount = gcInfo[0] - oldGc[0];
long dTime = gcInfo[1] - oldGc[1];
oldGc = gcInfo;
gcCountInfo.add(dCount);
gcTimeInfo.add(dTime);
PerfCounterPack p = pw.getPack(TimeTypeEnum.REALTIME);
p.put(CounterConstants.JAVA_GC_COUNT, new DecimalValue(dCount));
p.put(CounterConstants.JAVA_GC_TIME, new DecimalValue(dTime));
p = pw.getPack(TimeTypeEnum.FIVE_MIN);
p.put(CounterConstants.JAVA_GC_COUNT, new DecimalValue((long) gcCountInfo.getSum(300)));
p.put(CounterConstants.JAVA_GC_TIME, new DecimalValue((long) gcTimeInfo.getSum(300)));
}
开发者ID:scouter-project,项目名称:scouter,代码行数:27,代码来源:GCInfo.java
示例4: getHeapUsage
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@Counter
public void getHeapUsage(CounterBasket pw) {
long total = Runtime.getRuntime().totalMemory();
long free = Runtime.getRuntime().freeMemory();
float used = (float) ((total - free) / 1024. / 1024.);
heapmin.add(total - free);
float usedmin = (float) (heapmin.getAvg(300) / 1024. / 1024.);
ListValue heapValues = new ListValue();
heapValues.add((float) (total / 1024. / 1024.));
heapValues.add(used);
PerfCounterPack p = pw.getPack(TimeTypeEnum.REALTIME);
p.put(CounterConstants.JAVA_HEAP_TOT_USAGE, heapValues);
p.put(CounterConstants.JAVA_HEAP_USED, new FloatValue(used));
p = pw.getPack(TimeTypeEnum.FIVE_MIN);
p.put(CounterConstants.JAVA_HEAP_USED, new FloatValue(usedmin));
}
开发者ID:scouter-project,项目名称:scouter,代码行数:22,代码来源:HeapUsage.java
示例5: sendCounter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public static void sendCounter(PerfCounterPack[] p) {
// udp.add(p);
try {
List<byte[]> buff = new ArrayList<byte[]>();
int bytes = 0;
for (int k = 0; k < p.length; k++) {
byte[] b = new DataOutputX().writePack(p[k]).toByteArray();
if (bytes + b.length >= conf.net_udp_packet_max_bytes) {
sendDirect(buff); // buff.size가 0일수도 있다.
bytes = 0;// bytes 값 초기화..
buff.clear();
}
bytes += b.length;
buff.add(b);
}
sendDirect(buff);
} catch (Exception e) {
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:20,代码来源:DataProxy.java
示例6: counter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public static void counter(PerfCounterPack p) {
BuiltInPluginManager.invokeAllPlugins(PluginConstants.PLUGIN_SERVER_COUNTER, p);
if (counters != null) {
try {
counters.process(p);
} catch (Throwable t) {
Logger.printStackTrace("PL006", t);
}
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:12,代码来源:PlugInManager.java
示例7: process
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
private static void process(JSONObject json) throws Exception {
JSONObject objectInfo = (JSONObject) json.get("object");
if (objectInfo != null) {
ObjectPack objPack = extractObjectPack(objectInfo);
InetAddress addr = extractIpv4Address(objectInfo);
passToNetDataProcessor(objPack, addr);
JSONArray perfArray = (JSONArray) json.get("counters");
if (perfArray != null) {
PerfCounterPack perfPack = extractPerfCounterPack(perfArray, objPack.objName);
passToNetDataProcessor(perfPack, addr);
}
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:14,代码来源:CounterHandler.java
示例8: extractPerfCounterPack
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
private static PerfCounterPack extractPerfCounterPack(JSONArray perfJson, String objName) {
PerfCounterPack perfPack = new PerfCounterPack();
perfPack.time = System.currentTimeMillis();
perfPack.timetype = TimeTypeEnum.REALTIME;
perfPack.objName = objName;
for (int i = 0; i < perfJson.size(); i++) {
JSONObject perf = (JSONObject) perfJson.get(i);
String name = (String) perf.get("name");
Number value = (Number) perf.get("value");
perfPack.data.put(name, new FloatValue(value.floatValue()));
}
return perfPack;
}
开发者ID:scouter-project,项目名称:scouter,代码行数:14,代码来源:CounterHandler.java
示例9: sendBatchService
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public void sendBatchService(long currentTime){
if(server == null){
return;
}
checkBatchService(currentTime);
updateBatchService();
PerfCounterPack[] pks = cb.getList();
sendCounter(pks);
}
开发者ID:scouter-project,项目名称:scouter,代码行数:11,代码来源:StatusSender.java
示例10: updateBatchService
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
private void updateBatchService(){
PerfCounterPack pack = cb.getPack(conf.getObjName(), TimeTypeEnum.REALTIME);
UdpLocalServer localServer = UdpLocalServer.getInstance();
pack.put(CounterConstants.BATCH_SERVICE, new DecimalValue(Main.batchMap.size()));
pack.put(CounterConstants.BATCH_START, new DecimalValue(localServer.getStartBatchs()));
pack.put(CounterConstants.BATCH_END, new DecimalValue(localServer.getEndBatchs()));
pack.put(CounterConstants.BATCH_ENDNOSIGNAL, new DecimalValue(localServer.getEndNoSignalBatchs()));
}
开发者ID:scouter-project,项目名称:scouter,代码行数:9,代码来源:StatusSender.java
示例11: process
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@Counter
public void process(CounterBasket pw) {
if (availableFdInfo == false) {
return;
}
// Currently supported only sun jvm on unix platform
try {
OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();
if(os instanceof UnixOperatingSystemMXBean){
UnixOperatingSystemMXBean unixOs = (UnixOperatingSystemMXBean) os;
long max = unixOs.getMaxFileDescriptorCount();
long open = unixOs.getOpenFileDescriptorCount();
ListValue fdUsage = new ListValue();
fdUsage.add(max);
fdUsage.add(open);
PerfCounterPack p = pw.getPack(TimeTypeEnum.REALTIME);
p.put(CounterConstants.JAVA_FD_USAGE, fdUsage);
} else {
availableFdInfo = false;
}
} catch (Throwable th) {
Logger.println(th.getMessage());
availableFdInfo = false;
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:29,代码来源:FDInfo.java
示例12: extractJmx
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@Counter
public void extractJmx(CounterBasket pw) {
if (conf.counter_custom_jmx_enabled == false || mBeanServerEnable == false) {
return;
}
StringSet nameSet = conf.getCustomJmxSet();
if (nameSet.size() < 1) {
return;
}
if (mBeanServer == null) {
mBeanServer = LazyPlatformMBeanServer.create();
}
try {
if (mBeanServer.checkInit()) {
StringEnumer stringEnumer = nameSet.keys();
PerfCounterPack pack = pw.getPack(TimeTypeEnum.REALTIME);
while (stringEnumer.hasMoreElements()) {
String next = stringEnumer.nextString();
String[] mbeanAndAttribute = StringUtil.split(next, "|");
if (mbeanAndAttribute.length != 3) continue;
float value = mBeanServer.getValue(mbeanAndAttribute[1], mbeanAndAttribute[2]);
if (value >= 0) {
pack.put(mbeanAndAttribute[0], new FloatValue(value));
}
}
}
} catch (Exception e) {
Logger.println("SC-555", e.getMessage(), e);
mBeanServerEnable = false;
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:33,代码来源:CustomJmx.java
示例13: recentUser
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@Counter
public void recentUser(CounterBasket pw) {
int users =MeterUsers.getUsers();
PerfCounterPack p = pw.getPack(TimeTypeEnum.REALTIME);
p.put(CounterConstants.WAS_RECENT_USER, new DecimalValue(users));
p = pw.getPack(TimeTypeEnum.FIVE_MIN);
p.put(CounterConstants.WAS_RECENT_USER, new DecimalValue(users));
}
开发者ID:scouter-project,项目名称:scouter,代码行数:12,代码来源:ClientUser.java
示例14: process
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public void process(CounterBasket pw) throws IOException {
Configure conf = Configure.getInstance();
boolean redisEnabled = conf.getBoolean("redis_enabled", false);
if (redisEnabled) {
String serverIp = conf.getValue("redis_server_ip", "127.0.0.1");
int serverPort = conf.getInt("redis_server_port", 6379);
String perfInfo = getRedisPerfInfo(serverIp, serverPort);
String[] lines = perfInfo.split("\n");
PerfCounterPack p = pw.getPack(conf.getObjName(), TimeTypeEnum.REALTIME);
for (String line : lines) {
String key = line.substring(0, line.indexOf(':'));
String value = line.substring(line.indexOf(':') + 1);
if (floatSet.contains(key)) {
p.put(key, new FloatValue(Float.valueOf(value.trim())));
}
if (decimalSet.contains(key)) {
p.put(key, new DecimalValue(Long.valueOf(value.trim())));
}
}
}
}
开发者ID:scouter-project,项目名称:scouter,代码行数:30,代码来源:RedisMonitor.java
示例15: counter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_COUNTER)
public void counter(PerfCounterPack pack) {
String objName = pack.objName;
int objHash = HashUtil.hash(objName);
String objType = null;
String objFamily = null;
if (AgentManager.getAgent(objHash) != null) {
objType = AgentManager.getAgent(objHash).objType;
}
if (objType != null) {
objFamily = CounterManager.getInstance().getCounterEngine().getObjectType(objType).getFamily().getName();
}
try {
// in case of objFamily is javaee
if (CounterConstants.FAMILY_JAVAEE.equals(objFamily)) {
// save javaee type's objHash
if (!javaeeObjHashList.contains(objHash)) {
javaeeObjHashList.add(objHash);
}
if (pack.timetype == TimeTypeEnum.REALTIME) {
long gcTimeThreshold = conf.getLong("ext_plugin_gc_time_threshold", 0);
long gcTime = pack.data.getLong(CounterConstants.JAVA_GC_TIME);
if (gcTimeThreshold != 0 && gcTime > gcTimeThreshold) {
AlertPack ap = new AlertPack();
ap.level = AlertLevel.WARN;
ap.objHash = objHash;
ap.title = "GC time exceed a threshold.";
ap.message = objName + "'s GC time(" + gcTime + " ms) exceed a threshold.";
ap.time = System.currentTimeMillis();
ap.objType = objType;
alert(ap);
}
}
}
} catch (Exception e) {
Logger.printStackTrace(e);
}
}
开发者ID:scouter-project,项目名称:scouter-plugin-server-alert-line,代码行数:46,代码来源:LinePlugin.java
示例16: counter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
/**
* PerfCounterPack 발생 시 처리
* @param pack
*/
@ServerPlugin(PluginConstants.PLUGIN_SERVER_COUNTER)
public void counter(PerfCounterPack pack) {
String objName = pack.objName;
int objHash = HashUtil.hash(objName);
String objType = null;
String objFamily = null;
if (AgentManager.getAgent(objHash) != null) {
objType = AgentManager.getAgent(objHash).objType;
}
if (objType != null) {
try {
objFamily = CounterManager.getInstance().getCounterEngine().getObjectType(objType).getFamily().getName();
} catch (Exception e) {
objFamily = objType;
}
}
// objFamily가 host인 경우
if (CounterConstants.FAMILY_HOST.equals(objFamily)) {
if (hostAgentStatMap.get(objHash) == null) {
hostAgentStatMap.put(objHash, new HostAgentStat(objHash));
}
if (pack.timetype == TimeTypeEnum.REALTIME) {
hostAgentStatMap.get(objHash).addMax(pack.data.getFloat(CounterConstants.HOST_CPU),
pack.data.getInt(CounterConstants.HOST_MEM_TOTAL),
pack.data.getFloat(CounterConstants.HOST_MEM),
pack.data.getInt(CounterConstants.HOST_MEM_USED),
pack.data.getInt(CounterConstants.HOST_NET_TX_BYTES),
pack.data.getInt(CounterConstants.HOST_NET_RX_BYTES),
pack.data.getInt(CounterConstants.HOST_DISK_READ_BYTES),
pack.data.getInt(CounterConstants.HOST_DISK_WRITE_BYTES));
} else if (pack.timetype == TimeTypeEnum.FIVE_MIN) {
// NET_TX, NET_RX, DISK_READ, DISK_WRITE 정보는 FIVE_MIN에 포함되지 않음.
hostAgentStatMap.get(objHash).addAvg(pack.data.getFloat(CounterConstants.HOST_CPU),
pack.data.getFloat(CounterConstants.HOST_MEM),
pack.data.getInt(CounterConstants.HOST_MEM_USED));
}
}
// objFamily가 javaee인 경우
if (CounterConstants.FAMILY_JAVAEE.equals(objFamily)) {
if (javaAgentStatMap.get(objHash) == null) {
javaAgentStatMap.put(objHash, new JavaAgentStat(objHash));
}
if (pack.timetype == TimeTypeEnum.REALTIME) {
// JAVA_HEAP_TOT_USAGE 정보가 없는 PerfCounterPack은 host agent가 동작중에 PROC_CPU 정보를 보내주는 경우와, FIVE_MIN 밖에 없음.
// PROC_CPU 정보는 수집 대상이 아님.
ListValue lv = pack.data.getList(CounterConstants.JAVA_HEAP_TOT_USAGE);
if (lv != null && lv.size() > 0) {
javaAgentStatMap.get(objHash).addMax(pack.data.getInt(CounterConstants.WAS_ACTIVE_SERVICE),
lv.getFloat(0),
pack.data.getFloat(CounterConstants.JAVA_HEAP_USED),
pack.data.getInt(CounterConstants.WAS_RECENT_USER),
pack.data.getInt(CounterConstants.WAS_SERVICE_COUNT),
pack.data.getFloat(CounterConstants.WAS_APICALL_TPS),
pack.data.getFloat(CounterConstants.WAS_SQL_TPS),
pack.data.getFloat(CounterConstants.WAS_TPS));
}
} else if (pack.timetype == TimeTypeEnum.FIVE_MIN) {
if (pack.data.toMap().get(CounterConstants.PROC_CPU) == null) {
javaAgentStatMap.get(objHash).addAvg(pack.data.getInt(CounterConstants.WAS_ACTIVE_SERVICE),
pack.data.getFloat(CounterConstants.JAVA_HEAP_USED),
pack.data.getInt(CounterConstants.WAS_RECENT_USER),
pack.data.getInt(CounterConstants.WAS_SERVICE_COUNT),
pack.data.getFloat(CounterConstants.WAS_APICALL_TPS),
pack.data.getFloat(CounterConstants.WAS_SQL_TPS),
pack.data.getFloat(CounterConstants.WAS_TPS));
}
}
}
}
开发者ID:OpenSourceConsulting,项目名称:scouter-plugin-server-reporting,代码行数:81,代码来源:ReportingPlugin.java
示例17: counter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_COUNTER)
public void counter(PerfCounterPack pack) {
String objName = pack.objName;
int objHash = HashUtil.hash(objName);
String objType = null;
String objFamily = null;
if (AgentManager.getAgent(objHash) != null) {
objType = AgentManager.getAgent(objHash).objType;
}
if (objType != null) {
objFamily = CounterManager.getInstance().getCounterEngine().getObjectType(objType).getFamily().getName();
}
try {
// in case of objFamily is javaee
if (CounterConstants.FAMILY_JAVAEE.equals(objFamily)) {
// save javaee type's objHash
if (!javaeeObjHashList.contains(objHash)) {
javaeeObjHashList.add(objHash);
}
if (pack.timetype == TimeTypeEnum.REALTIME) {
long gcTimeThreshold = conf.getLong("ext_plugin_gc_time_threshold", 0);
long gcTime = pack.data.getLong(CounterConstants.JAVA_GC_TIME);
if (gcTimeThreshold != 0 && gcTime > gcTimeThreshold) {
AlertPack ap = new AlertPack();
ap.level = AlertLevel.WARN;
ap.objHash = objHash;
ap.title = "GC time exceed a threshold.";
ap.message = objName + "'s GC time(" + gcTime + " ms) exceed a threshold.";
ap.time = System.currentTimeMillis();
ap.objType = objType;
alert(ap);
}
}
}
} catch (Exception e) {
Logger.printStackTrace(e);
}
}
开发者ID:scouter-project,项目名称:scouter-plugin-server-alert-slack,代码行数:46,代码来源:SlackPlugin.java
示例18: counter
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_COUNTER)
public void counter(final PerfCounterPack pack) {
if (!enabled) {
return;
}
if(pack.timetype != TimeTypeEnum.REALTIME) {
return;
}
try {
String objName = pack.objName;
int objHash = HashUtil.hash(objName);
String objType = AgentManager.getAgent(objHash).objType;
String objFamily = CounterManager.getInstance().getCounterEngine().getObjectType(objType).getFamily().getName();
Point.Builder builder = Point.measurement(measurementName)
.time(pack.time, TimeUnit.MILLISECONDS)
.tag(tagObjName, objName)
.tag(tagObjType, objType)
.tag(tagObjFamily, objFamily);
Map<String, Value> dataMap = pack.data.toMap();
for (Map.Entry<String, Value> field : dataMap.entrySet()) {
Value valueOrigin = field.getValue();
if (valueOrigin == null) {
continue;
}
Object value = valueOrigin.toJavaObject();
if(!(value instanceof Number)) {
continue;
}
String key = field.getKey();
if("time".equals(key)) {
continue;
}
builder.addField(key, (Number)value);
}
Point point = builder.build();
if (isUdp) {
String line = point.lineProtocol();
udpAgent.write(line);
//System.out.println(line);
} else { // http
influx.write(dbName, retentionPolicy, point);
}
} catch (Exception e) {
if (conf._trace) {
Logger.printStackTrace("IFLX001", e);
} else {
Logger.println("IFLX002", e.getMessage());
}
}
}
开发者ID:scouter-project,项目名称:scouter-plugin-server-influxdb,代码行数:56,代码来源:InfluxdbPlugin.java
示例19: getPack
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public PerfCounterPack getPack(byte timeType) {
return getPack(Configure.getInstance().getObjName(), timeType);
}
开发者ID:scouter-project,项目名称:scouter,代码行数:4,代码来源:CounterBasket.java
示例20: getList
import scouter.lang.pack.PerfCounterPack; //导入依赖的package包/类
public PerfCounterPack[] getList() {
return (PerfCounterPack[]) table.values().toArray(new PerfCounterPack[table.size()]);
}
开发者ID:scouter-project,项目名称:scouter,代码行数:4,代码来源:CounterBasket.java
注:本文中的scouter.lang.pack.PerfCounterPack类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论