当前位置: 首页>>代码示例>>Java>>正文


Java ServerPlugin类代码示例

本文整理汇总了Java中scouter.lang.plugin.annotation.ServerPlugin的典型用法代码示例。如果您正苦于以下问题:Java ServerPlugin类的具体用法?Java ServerPlugin怎么用?Java ServerPlugin使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ServerPlugin类属于scouter.lang.plugin.annotation包,在下文中一共展示了ServerPlugin类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: xlog

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_XLOG)
public void xlog(XLogPack pack) {
	if (conf.getBoolean("ext_plugin_teamup_xlog_enabled", true)) {
		println("[ext_plugin_teamup_xlog_enabled true]");
		if (pack.error != 0) {
			String date = DateUtil.yyyymmdd(pack.endTime);
			String service = TextRD.getString(date, TextTypes.SERVICE, pack.service);
			String patterns = conf.getValue("ext_plugin_teamup_error_escape_method_patterns").length()>0?conf.getValue("ext_plugin_teamup_error_escape_method_patterns"):"*";
			if (!PatternsUtil.isValid(patterns, service)) {
				AlertPack ap = new AlertPack();
				ap.level = AlertLevel.ERROR;
				ap.objHash = pack.objHash;
				ap.title = "Ultron Error";
				ap.message = service + " - " + TextRD.getString(date, TextTypes.ERROR, pack.error);
				ap.time = System.currentTimeMillis();
				ap.objType = "scouter";
				alert(ap);
			}else{
				println("escape service : " + service);
			}
		}
	}
}
 
开发者ID:kingbbode,项目名称:scouter-plugin-server-alert-teamup,代码行数:24,代码来源:TeamUpPlugin.java

示例2: xlog

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
/**
   * XLogPack 발생 시 처리
   * @param pack
   */
  @ServerPlugin(PluginConstants.PLUGIN_SERVER_XLOG)
  public void xlog(XLogPack pack) {
  	try {
   	if (serviceStatMap.get(pack.objHash) == null) {
   		serviceStatMap.put(pack.objHash, new ConcurrentHashMap<Integer, ServiceStat>());
   	}
   	
   	if (serviceStatMap.get(pack.objHash).get(pack.service) == null) {
   		serviceStatMap.get(pack.objHash).put(pack.service, new ServiceStat(pack.objHash, pack.service));
   	}

   	String serviceName = TextRD.getString(DateUtil.yyyymmdd(pack.endTime), TextTypes.SERVICE, pack.service);
  		InetAddress inetAddr = InetAddress.getByAddress(pack.ipaddr);
  		serviceStatMap.get(pack.objHash).get(pack.service).add(serviceName, pack.elapsed, pack.error != 0, inetAddr == null ? null : inetAddr.getHostAddress(), pack.userAgent, pack.sqlCount, pack.sqlTime);
} catch (Exception e) {
	Logger.printStackTrace(e);
}
  }
 
开发者ID:OpenSourceConsulting,项目名称:scouter-plugin-server-reporting,代码行数:23,代码来源:ReportingPlugin.java

示例3: xlog

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_XLOG)
  public void xlog(XLogPack pack) {
  	try {
  		int elapsedThreshold = conf.getInt("ext_plugin_elapsed_time_threshold", 0);
  		
  		if (elapsedThreshold != 0 && pack.elapsed > elapsedThreshold) {
  			String serviceName = TextRD.getString(DateUtil.yyyymmdd(pack.endTime), TextTypes.SERVICE, pack.service);
  			
  			AlertPack ap = new AlertPack();
  			
        ap.level = AlertLevel.WARN;
        ap.objHash = pack.objHash;
        ap.title = "Elapsed time exceed a threshold.";
        ap.message = "[" + AgentManager.getAgentName(pack.objHash) + "] " 
        				+ pack.service + "(" + serviceName + ") "
        				+ "elapsed time(" + pack.elapsed + " ms) exceed a threshold.";
        ap.time = System.currentTimeMillis();
        ap.objType = AgentManager.getAgent(pack.objHash).objType;
		
        alert(ap);
  		}
  		
} catch (Exception e) {
	Logger.printStackTrace(e);
}
  }
 
开发者ID:scouter-project,项目名称:scouter-plugin-server-alert-email,代码行数:27,代码来源:EmailPlugin.java

示例4: loadPlugins

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
public static void loadPlugins() {
    Set<String> classNames = new Scanner("scouter.plugin.server").process();

    Iterator<String> itr = classNames.iterator();

    while (itr.hasNext()) {
        try {
            Class c = Class.forName(itr.next());
            if (!Modifier.isPublic(c.getModifiers()))
                continue;

            Method[] m = c.getDeclaredMethods();
            for (int i = 0; i < m.length; i++) {
                ServerPlugin annotation = m[i].getAnnotation(ServerPlugin.class);
                if (annotation == null)
                    continue;

                String pluginPoint = annotation.value();
                List<PluginInvocation> pluginList = pluginMap.get(pluginPoint);

                if(pluginList == null) {
                    pluginList = new ArrayList<PluginInvocation>();
                    pluginMap.put(pluginPoint, pluginList);
                }

                Logger.println("[BuiltInPlugin]" + c.getName() + "=>" + m[i].getName());
                pluginList.add(new PluginInvocation(c.newInstance(), m[i]));
            }
        } catch (Throwable t) {
            Logger.println("Server Plugin Load Error");
            if(Configure.getInstance()._trace) {
                t.printStackTrace();
            }
        }
    }
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:37,代码来源:BuiltInPluginManager.java

示例5: alert

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_ALERT)
public void alert(final AlertPack pack) {
	if (conf.getBoolean("ext_plugin_teamup_send_alert", true)) {
		println("[ext_plugin_teamup_send_alert true]");
		// Get log level (0 : INFO, 1 : WARN, 2 : ERROR, 3 : FATAL)
		int level = conf.getInt("ext_plugin_teamup_level", 0);

		if (level <= pack.level) {
			new Thread() {
				public void run() {
					try {
						String roomId = conf.getValue("ext_plugin_teamup_room_id");
						assert roomId != null;
						println("[roomId ok]");
						//get access token
						String token = getAccessToken();							
						if(token != null){
							// Get the agent Name
							String name = AgentManager.getAgentName(pack.objHash) == null ? "N/A"
									: AgentManager.getAgentName(pack.objHash);

							if (name.equals("N/A") && pack.message.endsWith("connected.")) {
								int idx = pack.message.indexOf("connected");
								if (pack.message.indexOf("reconnected") > -1) {
									name = pack.message.substring(0, idx - 6);
								} else {
									name = pack.message.substring(0, idx - 4);
								}
							}

							String title = pack.title;
							String msg = pack.message;
							if (title.equals("INACTIVE_OBJECT")) {
								title = "An object has been inactivated.";
								msg = pack.message.substring(0, pack.message.indexOf("OBJECT") - 1);
							}

							// Make message contents
							String contents = "[TYPE] : " + pack.objType.toUpperCase() + "\n" + "[NAME] : " + name
									+ "\n" + "[LEVEL] : " + AlertLevel.getName(pack.level) + "\n" + "[TITLE] : " + title
									+ "\n" + "[MESSAGE] : " + msg;

							Message message = new Message(contents);
							String param = new Gson().toJson(message);
							HttpPost post = new HttpPost(MESSAGE_URL + roomId);
							post.addHeader("Authorization", token);
							post.addHeader("Content-Type", "application/json");
							post.setEntity(new StringEntity(param));

							CloseableHttpClient client = HttpClientBuilder.create().build();

							// send teamup message
							HttpResponse response = client.execute(post);
							if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
								println("teamup message sent to [" + roomId + "] successfully.");
							} else {
								println("teamup message sent failed. Verify below information.");
								println("[URL] : " + MESSAGE_URL + roomId);
								println("[StatusCode] : " + response.getStatusLine().getStatusCode());
								println("[Message] : " + param);
								println("[Reason] : " + EntityUtils.toString(response.getEntity(), "UTF-8"));
								println("[AccessToken] : " + token);									
							}							
						}else{
							println("[Error] : token null");
						}
					} catch (Exception e) {
						println("[Error] : " + e.getMessage());
						if (conf._trace) {
							e.printStackTrace();
						}
					}
				}
			}.start();
		}
	}
}
 
开发者ID:kingbbode,项目名称:scouter-plugin-server-alert-teamup,代码行数:78,代码来源:TeamUpPlugin.java

示例6: counter

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的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

示例7: counter

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的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

示例8: object

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
/**
  * ObjectPack 발생 시 처리
  * @param pack
  */
 @ServerPlugin(PluginConstants.PLUGIN_SERVER_OBJECT)
 public void object(ObjectPack pack) {
     if (!pack.objType.equals(CounterConstants.REQUESTPROCESS)) {
      AgentInfo agentInfo = null;
ObjectPack op = AgentManager.getAgent(pack.objHash);
boolean isExist = true;
boolean isDownState = false;
      
// Plugin의 loading이 채 끝나기 전에 agent로부터 heartbeat 메시지가 수신되는 경우
// 해당 Agent의 구동 정보가 누락될 수 있기 때문에 매번 agent의 상태를 조회한다.

agentInfo = selectAgentInfo(pack.objHash);
if (agentInfo == null) {
	agentInfo = new AgentInfo();
	isExist = false;
} else {
	Date lastDownTime = agentInfo.getLast_down_time();
	Date lastUpTime = agentInfo.getLast_up_time();
	
	if (lastDownTime != null && lastUpTime != null) {
		if (lastDownTime.getTime() - lastUpTime.getTime() > 0) {
			isDownState = true;
		}
	}
}

if ((op == null && pack.wakeup == 0L) || op.alive == false || !isExist || isDownState) {
          println("[AgentInfo] : " + agentInfo);
	
	agentInfo.setObject_hash(pack.objHash);
	agentInfo.setObject_name(pack.objName);
	agentInfo.setObject_type(pack.objType);
	
	if (pack.objType != null) {
          	String object_family;
          	
		try {
			object_family = CounterManager.getInstance().getCounterEngine().getObjectType(pack.objType).getFamily().getName();
		} catch (Exception e) {
			object_family = pack.objType;
		}
		
          	agentInfo.setObject_family(object_family);
          }
	
	agentInfo.setIp_address(pack.address);
	agentInfo.setLast_up_time(new Date(System.currentTimeMillis()));
	
	if (isExist) {
		updateAgentInfo(agentInfo);
	} else {
		insertAgentInfo(agentInfo);
	}
  	}
     }
 }
 
开发者ID:OpenSourceConsulting,项目名称:scouter-plugin-server-reporting,代码行数:61,代码来源:ReportingPlugin.java

示例9: summary

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
/**
 * SummaryPack 발생 시 처리
 * @param pack
 */
@ServerPlugin(PluginConstants.PLUGIN_SERVER_SUMMARY)
public void summary(SummaryPack pack) {
	if (pack.stype == SummaryEnum.SQL) {
		ListValue idList = pack.table.getList("id");
		ListValue countList = pack.table.getList("count");
		ListValue errorList = pack.table.getList("error");
		ListValue elapsedList = pack.table.getList("elapsed");
		
		SqlInfo sqlInfo = null;
		Sql sql = null;
		int sqlHash = 0;
		String sqlStr = null;
		
		Iterator<Value> iter = idList.iterator();
		Value id, count, error, elapsed = null;
		int idx = 0;
		while (iter.hasNext()) {
			id = iter.next();
			count = countList.get(idx);
			error = errorList.get(idx);
			elapsed = elapsedList.get(idx++);

SqlSession session = sqlSessionFactory.openSession(true);
			try {
				sqlHash = ((Number) id.toJavaObject()).intValue();
				sqlStr = TextRD.getString(DateUtil.yyyymmdd(pack.time), TextTypes.SQL, sqlHash);
				
				if (sqlStr != null && sqlStr.length() > 32000) {
					Logger.println("SQL String is too long to insert SQL_INFO_TBL.");
					sqlStr = sqlStr.substring(0, 32000) + "...";
				}
						
				sqlInfo = session.selectOne("Scouter.selectSqlInfo", ((Number) id.toJavaObject()).intValue());
				if (sqlInfo == null) {
					sqlInfo = new SqlInfo();
					sqlInfo.setSql_hash(sqlHash);
					sqlInfo.setSql_str(sqlStr);
					session.insert("Scouter.insertSqlInfo", sqlInfo);
				} else {
					if (sqlInfo.getSql_str() == null) {
    					sqlInfo.setSql_str(sqlStr);
    					session.update("Scouter.updateSqlInfo", sqlInfo);
					} else if (!sqlInfo.getSql_str().equals(sqlStr)) {
    					sqlInfo.setSql_str(sqlStr);
    					session.update("Scouter.updateSqlInfo", sqlInfo);
					}
				}
				
	sql = new Sql();
	sql.setDate(pack.time);
	sql.setObject_hash(pack.objHash);
	sql.setSql_hash(((Number) id.toJavaObject()).intValue());
	sql.setLog_dt(new java.sql.Date(pack.time));
	sql.setLog_tm(new Time(pack.time));
	sql.setExecute_count(((Number) count.toJavaObject()).intValue());
	sql.setError_count(((Number) error.toJavaObject()).intValue());
	sql.setElapsed(((Number) elapsed.toJavaObject()).intValue());
	
	session.insert("Scouter.insertSql", sql);
} catch (Exception e) {
	Logger.printStackTrace(e);
} finally {
	if (session != null) {
		session.close();
	}
}
		}
	}
}
 
开发者ID:OpenSourceConsulting,项目名称:scouter-plugin-server-reporting,代码行数:74,代码来源:ReportingPlugin.java

示例10: alert

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的package包/类
@ServerPlugin(PluginConstants.PLUGIN_SERVER_ALERT)
public void alert(final AlertPack pack){
	if (conf.getBoolean("ext_plugin_slack_send_alert", false)) {

		int level = conf.getInt("ext_plugin_slack_level", 0);
		// Get log level (0 : INFO, 1 : WARN, 2 : ERROR, 3 : FATAL)
		if(level <= pack.level){
			new Thread(){
				public void run(){
					try{
						String webhookURL = conf.getValue("ext_plugin_slack_webhook_url");
						String channel = conf.getValue("ext_plugin_slack_channel");
						String botName = conf.getValue("ext_plugin_slack_botName");
						String iconURL = conf.getValue("ext_plugin_slack_icon_url");
						String iconEmoji = conf.getValue("ext_plugin_slack_icon_emoji");

						assert webhookURL != null;

						// Get the agent Name
           	String name = AgentManager.getAgentName(pack.objHash) == null ? "N/A" : AgentManager.getAgentName(pack.objHash);

           	if (name.equals("N/A") && pack.message.endsWith("connected.")) {
       			int idx = pack.message.indexOf("connected");
           		if (pack.message.indexOf("reconnected") > -1) {
           			name = pack.message.substring(0, idx - 6);
           		} else {
           			name = pack.message.substring(0, idx - 4);
           		}
           	}

           	String title = pack.title;
               String msg = pack.message;
               if (title.equals("INACTIVE_OBJECT")) {
               	title = "An object has been inactivated.";
               	msg = pack.message.substring(0, pack.message.indexOf("OBJECT") - 1);
               }

           	// Make message contents
               String contents = "[TYPE] : " + pack.objType.toUpperCase() + "\n" +
                              	  "[NAME] : " + name + "\n" +
                                 "[LEVEL] : " + AlertLevel.getName(pack.level) + "\n" +
                                 "[TITLE] : " + title + "\n" +
                                 "[MESSAGE] : " + msg;

               Message message = new Message(contents, channel, botName, iconURL, iconEmoji);
               String payload = new Gson().toJson(message);

               if(conf.getBoolean("ext_plugin_slack_debug", false)){
               	println("WebHookURL : "+webhookURL);
               	println("param : "+payload);
               }

               HttpPost post = new HttpPost(webhookURL);
               post.addHeader("Content-Type","application/json");
							// charset set utf-8
							post.setEntity(new StringEntity(payload, "utf-8"));

               CloseableHttpClient client = HttpClientBuilder.create().build();

               // send the post request
               HttpResponse response = client.execute(post);

               if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                   println("Slack message sent to [" + channel + "] successfully.");
               } else {
                   println("Slack message sent failed. Verify below information.");
                   println("[WebHookURL] : " + webhookURL);
                   println("[Message] : " + payload);
                   println("[Reason] : " + EntityUtils.toString(response.getEntity(), "UTF-8"));
               }
					}catch(Exception e){
						println("[Error] : " + e.getMessage());
           	if(conf._trace) {
                   e.printStackTrace();
           	}
					}
				}
			}.start();
		}
	}
}
 
开发者ID:scouter-project,项目名称:scouter-plugin-server-alert-slack,代码行数:82,代码来源:SlackPlugin.java

示例11: counter

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的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

示例12: counter

import scouter.lang.plugin.annotation.ServerPlugin; //导入依赖的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


注:本文中的scouter.lang.plugin.annotation.ServerPlugin类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。