本文整理汇总了Java中com.dianping.cat.Cat类的典型用法代码示例。如果您正苦于以下问题:Java Cat类的具体用法?Java Cat怎么用?Java Cat使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Cat类属于com.dianping.cat包,在下文中一共展示了Cat类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: newtransation
import com.dianping.cat.Cat; //导入依赖的package包/类
/**
* Cat.newTransaction 与Cat.getProducer().newTransaction 区别在于 一个是重新生成一个transation 和获取当前线程绑定的transaction“
*
* @return
* @throws Exception
*/
@RequestMapping(value = "/cycletransation", method = RequestMethod.GET)
public String newtransation() throws Exception {
Transaction t = Cat.getProducer().newTransaction("TransactionTest", "Cat.getProducer()");
Cat.getProducer().logEvent("eventType1", "1", Message.SUCCESS, "");
Cat.getProducer().logEvent("eventType1", "2", Message.SUCCESS, "");
Transaction t2 = Cat.getProducer().newTransaction("TransactionTest-1", "child transaction 1");
Cat.getProducer().logEvent("eventType2-1", "2-1", Message.SUCCESS, "");
Cat.getProducer().logEvent("eventType2-2", "2-2", Message.SUCCESS, "");
t2.addData("tChild transaction-1");
t2.setStatus(Message.SUCCESS);
t2.complete();
Transaction t3 = Cat.getProducer().newTransaction("TransactionTest-2", "child transaction 2");
Cat.getProducer().logEvent("eventType3-1", "3-1", Message.SUCCESS, "");
Cat.getProducer().logEvent("eventType3-2", "3-2", Message.SUCCESS, "");
t3.addData("Child transaction-2");
t3.setStatus(Message.SUCCESS);
// 休眠3s 验证时间
Thread.sleep(4000);
t3.complete();
t.addData(" Parent transaction");
t.setStatus(Message.SUCCESS);
t.complete();
return "";
}
示例2: aroundTransaction
import com.dianping.cat.Cat; //导入依赖的package包/类
private Object aroundTransaction(String type, String name, ProceedingJoinPoint joinPoint) throws Throwable {
Object result = null;
Transaction transaction = null;
//不让cat异常导致业务异常
try {
transaction = Cat.getProducer().newTransaction(type, name);
} catch (Exception e) {
log.error("Cat.getProducer().newTransaction Error", e);
}
try {
log.info("大众点评cat拦截:type="+type+";name="+name);
result = joinPoint.proceed();
if (transaction != null) transaction.setStatus(Transaction.SUCCESS);
} catch (Throwable throwable) {
if (transaction != null) transaction.setStatus(throwable);
log.error("aroundTransaction exception", throwable);
throw throwable;
} finally {
if (transaction != null)
transaction.complete();
}
return result;
}
示例3: createConsumerCross
import com.dianping.cat.Cat; //导入依赖的package包/类
/**
* 客户端处理方法
* @param url
* @param transaction
*/
private void createConsumerCross(URL url,Transaction transaction){
//供应者的名称 如:com.cmall.goods.rpc
Event crossAppEvent = Cat.newEvent(CatConstants.CONSUMER_CALL_APP,getProviderAppName(url));
//供应者ip
Event crossServerEvent = Cat.newEvent(CatConstants.CONSUMER_CALL_SERVER,url.getHost());
//供应者端口
Event crossPortEvent = Cat.newEvent(CatConstants.CONSUMER_CALL_PORT,url.getPort()+"");
crossAppEvent.setStatus(Event.SUCCESS);
crossServerEvent.setStatus(Event.SUCCESS);
crossPortEvent.setStatus(Event.SUCCESS);
completeEvent(crossAppEvent);
completeEvent(crossPortEvent);
completeEvent(crossServerEvent);
transaction.addChild(crossAppEvent);
transaction.addChild(crossPortEvent);
transaction.addChild(crossServerEvent);
}
示例4: createProviderCross
import com.dianping.cat.Cat; //导入依赖的package包/类
/**
* 服务端处理方法
* @param url
* @param transaction
*/
private void createProviderCross(URL url,Transaction transaction){
//供应者名称
String consumerAppName = RpcContext.getContext().getAttachment(Constants.APPLICATION_KEY);
if(StringUtils.isEmpty(consumerAppName)){
consumerAppName= RpcContext.getContext().getRemoteHost()+":"+ RpcContext.getContext().getRemotePort();
}
//供应者名称
Event crossAppEvent = Cat.newEvent(CatConstants.PROVIDER_CALL_APP,consumerAppName);
//供应者地址
Event crossServerEvent = Cat.newEvent(CatConstants.PROVIDER_CALL_SERVER,url.getHost());
crossAppEvent.setStatus(Event.SUCCESS);
crossServerEvent.setStatus(Event.SUCCESS);
completeEvent(crossAppEvent);
completeEvent(crossServerEvent);
transaction.addChild(crossAppEvent);
transaction.addChild(crossServerEvent);
}
示例5: testMessageTree
import com.dianping.cat.Cat; //导入依赖的package包/类
@Test
public void testMessageTree() {
for (int i = 0; i < 500; i++) {
Transaction t = Cat.newTransaction("URL", "/order/submitOrder");
MessageTree tree = (MessageTree) Cat.getManager().getThreadLocalMessageTree();
// 这里可以设置不同的域服务器,相当于app.properties那个配置文件
tree.setDomain("PayOrder");
Cat.logMetric("order", "quantity", 1, "channel", "channel" + i % 5);
Cat.logMetric("payment.pending", "amount", i, "channel", "channel" + i % 5);
Cat.logMetric("payment.success", "amount", i, "channel", "channel" + i % 5);
t.addData("channel=channel" + i % 5);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.complete();
}
}
示例6: initGroupDataSource
import com.dianping.cat.Cat; //导入依赖的package包/类
@Override
public void initGroupDataSource(GroupDataSource source, JdbcFilter chain) {
Transaction transaction = Cat.newTransaction(CAT_TYPE, "DataSource.Init-" + source.getJdbcRef());
try {
chain.initGroupDataSource(source, chain);
this.monitor = new GroupDataSourceMonitor(source);
StatusExtensionRegister.getInstance().register(this.monitor);
transaction.setStatus(Message.SUCCESS);
} catch (RuntimeException e) {
Cat.logError(e);
transaction.setStatus(e);
throw e;
} finally {
transaction.complete();
}
}
示例7: logSqlMethodEvent
import com.dianping.cat.Cat; //导入依赖的package包/类
private void logSqlMethodEvent(String sql, List<String> batchedSql, boolean isBatched, Object sqlParams) {
String params = Stringizers.forJson().compact().from(sqlParams, CatConstants.MAX_LENGTH,
CatConstants.MAX_ITEM_LENGTH);
if (isBatched) {
if (batchedSql != null) {
for (String bSql : batchedSql) {
Cat.logEvent("SQL.Method", SqlUtils.buildSqlType(bSql), Event.SUCCESS, params);
logSqlLengthEvent(sql);
}
}
} else {
if (sql != null) {
Cat.logEvent("SQL.Method", SqlUtils.buildSqlType(sql), Event.SUCCESS, params);
logSqlLengthEvent(sql);
}
}
}
示例8: switchFailOverDataSource
import com.dianping.cat.Cat; //导入依赖的package包/类
@Override
public void switchFailOverDataSource(FailOverDataSource source, JdbcFilter chain) {
Transaction t = Cat.newTransaction(CAT_TYPE, "FailOver");
try {
chain.switchFailOverDataSource(source, chain);
Cat.logEvent("DAL.FailOver", "Success");
t.setStatus(Message.SUCCESS);
} catch (RuntimeException exp) {
Cat.logEvent("DAL.FailOver", "Failed");
Cat.logError(exp);
t.setStatus("Fail to find any master database");
throw exp;
} finally {
t.complete();
}
}
示例9: run
import com.dianping.cat.Cat; //导入依赖的package包/类
@SuppressWarnings("static-access")
@Override
public void run() {
Thread.currentThread().setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread arg0, Throwable arg1) {
logger.error("[error]{}:{}",slaveRedis.getIp(), slaveRedis.getPort(), arg1);
Cat.logError(arg1);
redisStatCheckResult.put(slaveRedis, Boolean.FALSE);
if (null != slave) {
slave.close();
}
}
});
logger.debug("[Psubscribe]{}:{}", slaveRedis.getIp(), slaveRedis.getPort());
slave.psubscribe(new JedisPubSub() {
@Override
public void onPMessage(String pattern, String channel, String msg) {
logger.debug("[OnPMessage]{}:{}", slaveRedis.getIp(), slaveRedis.getPort());
redisStatCheckResult.put(slaveRedis, Boolean.TRUE);
}
}, generateURL(masterRedis.getIp(), masterRedis.getPort()));
}
示例10: testCat
import com.dianping.cat.Cat; //导入依赖的package包/类
@Test
public void testCat() throws IOException {
Transaction t1 = Cat.newTransaction("type1", "name1");
Transaction t21 = Cat.newTransaction("type21", "name2");
Transaction t31 = Cat.newTransaction("type31", "name3");
t31.setStatus(Transaction.SUCCESS);
t31.complete();
t21.setStatus(Transaction.SUCCESS);
t21.complete();
Transaction t22 = Cat.newTransaction("type22", "name2");
t22.setStatus(Transaction.SUCCESS);
t22.complete();
t1.setStatus(Transaction.SUCCESS);
t1.complete();
waitForAnyKeyToExit();
}
示例11: startCatLogMetricJob
import com.dianping.cat.Cat; //导入依赖的package包/类
private void startCatLogMetricJob() {
catLogMetricThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
long catInterval = catIntervalCnt.get();
long catIntervalDelay = catIntervalTotalDelay.get();
long count = catInterval - historyCatIntervalCnt;
if (count >= catIntervalSize) {
long delay = catIntervalDelay - historyCatIntervalTotalDelay;
historyCatIntervalCnt = catInterval;
historyCatIntervalTotalDelay = catIntervalDelay;
Cat.logMetricForSum("xpipe.redis.delay", delay / count);
}
}
}, 0, 5, TimeUnit.MILLISECONDS);
}
示例12: startQpsCheckJob
import com.dianping.cat.Cat; //导入依赖的package包/类
private void startQpsCheckJob() {
qpsCheckThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
long qps = (queryCnt.get() - historyQueryCnt) / QPS_COUNT_INTERVAL;
historyQueryCnt = queryCnt.get();
Cat.logMetricForSum("xpipe.redis.qps", qps);
Cat.logMetricForSum("xpipe.redis.map", records.size());
Cat.logMetricForSum("xpipe.redis.queue", valueCheck.queueSize());
logger.info("[startQpsCheckJob][run]QPS: {}", qps);
logger.info("[startQpsCheckJob][run]MapSize : {}", records.size());
logger.info("[startQpsCheckJob][run]QueueSize : {}", valueCheck.queueSize());
}
}, 1, QPS_COUNT_INTERVAL, TimeUnit.SECONDS);
}
示例13: append
import com.dianping.cat.Cat; //导入依赖的package包/类
@Override
public void append(LogEvent event) {
MessageManager messageManager = Cat.getManager();
boolean isTraceMode = false;
if(messageManager != null){
isTraceMode = messageManager.isTraceMode();
}
Level level = event.getLevel();
if (level.isMoreSpecificThan(Level.ERROR)) {
logError(event);
} else if (isTraceMode) {
logTrace(event);
}
}
示例14: logError
import com.dianping.cat.Cat; //导入依赖的package包/类
private void logError(LogEvent event) {
Throwable info = event.getThrown();
if (info != null) {
Throwable exception = info;
Object message = event.getMessage();
String extra = ExceptionUtils.extractExtraMessage(info);
String logMessage = StringUtil.join(",", message, extra);
if (!StringUtil.isEmpty(logMessage)) {
Cat.logError(logMessage, exception);
} else {
Cat.logError(exception);
}
}
}
示例15: logTrace
import com.dianping.cat.Cat; //导入依赖的package包/类
private void logTrace(LogEvent event) {
String type = "Log4j";
String name = event.getLevel().toString();
Object message = event.getMessage();
String data;
if (message instanceof Throwable) {
data = buildExceptionStack((Throwable) message);
} else {
data = event.getMessage().toString();
}
Throwable info = event.getThrown();
if (info != null) {
String extra = ExceptionUtils.extractExtraMessage(info);
if(extra != null){
data += "\n" + extra;
}
data += '\n' + buildExceptionStack(info);
}
Cat.logTrace(type, name, Trace.SUCCESS, data);
}