• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Cat类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



Cat类属于com.dianping.cat包,在下文中一共展示了Cat类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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 "";
}
 
开发者ID:ggj2010,项目名称:javabase,代码行数:31,代码来源:CatController.java


示例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;
}
 
开发者ID:ggj2010,项目名称:javabase,代码行数:24,代码来源:CatAop.java


示例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);
}
 
开发者ID:xiaomin0322,项目名称:dubbo_plus,代码行数:23,代码来源:CatTransaction.java


示例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);
}
 
开发者ID:xiaomin0322,项目名称:dubbo_plus,代码行数:23,代码来源:CatTransaction.java


示例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();
	}
}
 
开发者ID:Percy0601,项目名称:training-cat,代码行数:22,代码来源:TrainingBussinessMessage.java


示例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();
	}
}
 
开发者ID:dianping,项目名称:zebra,代码行数:17,代码来源:CatFilter.java


示例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);
		}
	}
}
 
开发者ID:dianping,项目名称:zebra,代码行数:18,代码来源:CatFilter.java


示例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();
	}
}
 
开发者ID:dianping,项目名称:zebra,代码行数:17,代码来源:CatFilter.java


示例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()));
}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:25,代码来源:StandaloneStatMonitor.java


示例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();
}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:20,代码来源:SimpleTest.java


示例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);
	}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:22,代码来源:XPipeStabilityTest.java


示例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);
	}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:21,代码来源:XPipeStabilityTest.java


示例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);
	}

}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:19,代码来源:CatAppender4Log4j2.java


示例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);
		}
	}
}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:19,代码来源:CatAppender4Log4j2.java


示例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);
}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:25,代码来源:CatAppender4Log4j2.java


示例16: logTransactionSwallowException

import com.dianping.cat.Cat; //导入依赖的package包/类
@Override
public <V> V logTransactionSwallowException(String type, String name, Callable<V> task) {

	Transaction transaction = Cat.newTransaction(type, name);
	try{
		V result = task.call();
		transaction.setStatus(Transaction.SUCCESS);
		return result;
	}catch(Throwable th){
		transaction.setStatus(th);
		logger.error("[logTransaction]" + type + "," + name + "," + task, th);
	}finally{
		transaction.complete();
	}
	return null;
}
 
开发者ID:ctripcorp,项目名称:x-pipe,代码行数:17,代码来源:CatTransactionMonitor.java


示例17: sendQueue

import com.dianping.cat.Cat; //导入依赖的package包/类
private void sendQueue(QueueName queueName, RabbitMessage rm) throws Exception {
    if (rm == null || queueName == null) {
        return;
    }
    initQueueChannel();
    String _queueName = queueName.getNameByEnvironment(environment);
    Transaction trans = Cat.newTransaction("RabbitMQ Message", "PUBLISH-QUEUE-" + _queueName);
    Cat.logEvent("mq send queue", _queueName, Event.SUCCESS,rm.toJsonStr());
    try {
        queueChannel.queueDeclare(_queueName, true, false, false, null);
        queueChannel.basicPublish("", _queueName, MessageProperties.PERSISTENT_TEXT_PLAIN, rm.toJsonStr().getBytes("UTF-8"));
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("SEND SUCCESS:[queue:{},message:{}]", _queueName, rm.toJsonStr());
        }
        Cat.logMetricForCount("PUBLISH-QUEUE-" + _queueName); // 统计请求次数, 可以查看对应队列中放入了多少信息
        trans.setStatus(Transaction.SUCCESS);
    } catch (Exception e) {
        if (LOGGER.isErrorEnabled()) {
            LOGGER.error("SEND ERROR:[queue:{},message:{},exception:{}]", _queueName, rm.toJsonStr(), e);
        }
        String err = queueName + "  rabbitmq发送消息异常";
        Cat.logError(err, e);
        trans.setStatus(e);
        throw new AsuraRabbitMqException(err, e);
    } finally {
        trans.complete();
    }
}
 
开发者ID:AsuraTeam,项目名称:asura,代码行数:29,代码来源:RabbitMqSendClient.java


示例18: sendTopic

import com.dianping.cat.Cat; //导入依赖的package包/类
/**
 * 发送消息-topic方式
 *
 * @param exchangeName 格式为:系统标示_模块标示_功能标示
 * @param msg          具体消息
 * @author zhangshaobin
 * @created 2016年3月1日 下午4:40:59
 */
public void sendTopic(ExchangeName exchangeName, RoutingKey routingKey, PublishSubscribeType type, String msg) throws Exception {
    initTopicChannel();
    String _exchange = exchangeName.getNameByEnvironment(environment);
    Transaction trans = Cat.newTransaction("RabbitMQ Message", "PUBLISH-TOPIC-" + _exchange);
    RabbitMessage rm = new RabbitMessage();
    rm.setData(msg);
    rm.setType(_exchange);
    try {
        Cat.logEvent("mq send topic",exchangeName.getName(),Event.SUCCESS, rm.toJsonStr());
        rm.setType(_exchange);
        topicChannel.exchangeDeclare(_exchange, type.getName(), true);
        topicChannel.basicPublish(_exchange, routingKey.getKey(), null, rm.toJsonStr().getBytes("UTF-8"));
        if (LOGGER.isInfoEnabled()) {
            LOGGER.info("SEND SUCCESS:[queue:{},message:{}]", _exchange, rm.toJsonStr());
        }
        Cat.logMetricForCount("PUBLISH-TOPIC-" + _exchange); // 统计请求次数, 可以查看对应队列中放入了多少信息
        trans.setStatus(Transaction.SUCCESS);
    } catch (Exception e) {
        if (LOGGER.isErrorEnabled()) {
            LOGGER.error("SEND ERROR:[queue:{},message:{},exception:{}]", _exchange, rm.toJsonStr(), e);
        }
        String err = exchangeName + "  rabbitmq发送消息异常";
        Cat.logError(err, e);
        trans.setStatus(e);
        throw new AsuraRabbitMqException(err, e);
    } finally {
        trans.complete();
    }
}
 
开发者ID:AsuraTeam,项目名称:asura,代码行数:38,代码来源:RabbitMqSendClient.java


示例19: doBasicProfiling

import com.dianping.cat.Cat; //导入依赖的package包/类
@Around("execution(* com..*.proxy..*.* (..))")
public Object doBasicProfiling(final ProceedingJoinPoint joinPoint) throws Throwable {
	long start_all = System.currentTimeMillis();
	long end_all = 0L;
	String declaringTypeName = joinPoint.getSignature().getDeclaringTypeName();
	String signatureName = joinPoint.getSignature().getName();
	Object [] args = joinPoint.getArgs();
	Transaction tran = Cat.newTransaction("Aspect-proxy", declaringTypeName + "." + signatureName);
	if (RpcContext.getContext().getRemoteAddressString() != null && RpcContext.getContext().getMethodName() != null
			&& RpcContext.getContext().getUrl() != null) {
		MDC.put(HOST, RpcContext.getContext().getRemoteAddressString());
		MDC.put(INTERFACE, RpcContext.getContext().getUrl().getServiceInterface());
		MDC.put(METHOD, RpcContext.getContext().getMethodName());
	} else {
		MDC.put(HOST, "127.0.0.1");
		MDC.put(INTERFACE, "none");
		MDC.put(METHOD, "none");
	}

	final DataLogEntity de = new DataLogEntity();
	de.setClassName(declaringTypeName);
	de.setMethodName(signatureName);
	de.setParams(args);
	String logJson = de.toJsonStr();
	// 参数日志
	if (logger.isDebugEnabled()) {
		logger.debug(de.toJsonStr());
	}
	try {
		long start = System.currentTimeMillis();
		final Object retVal = joinPoint.proceed();
		long end = System.currentTimeMillis();
		// 记录耗时
		logger.info("{}, 耗时:{} ms, 进入aop到执行完耗时:{} ms", logJson, (end - start), (end - start_all));
		Cat.logEvent(declaringTypeName, signatureName, "0", logJson+" 耗时:" + (end - start) + " ms" + " 时间戳:" + System.currentTimeMillis());
		/**
		 * 设置消息的状态,必须设置,0:标识成功,其他标识发生了异常
		 */
		tran.setStatus(Transaction.SUCCESS);
		end_all = System.currentTimeMillis();
		return retVal;
	} catch (final Exception e) {
		final ErrorLogEntity ele = new ErrorLogEntity(de);
		DataTransferObject dto = handleException(e, ele, tran);
		end_all = System.currentTimeMillis();
		// 方法返回值类型
		Class returnType = null;
		if (null != joinPoint.getSignature()) {
			returnType = ((MethodSignature) joinPoint.getSignature()).getReturnType();
		}
		if (null != returnType && returnType.equals(String.class)){
			return dto.toJsonString();
		}else if (null != returnType && returnType.equals(DataTransferObject.class)){
			return dto;
		}else{
			throw e;
		}
	} finally {
		MDC.remove(HOST);
		MDC.remove(INTERFACE);
		MDC.remove(METHOD);
		tran.complete();
		logger.info("{}, 接入cat后整体耗时: {} ms", logJson, (end_all - start_all));
	}
}
 
开发者ID:AsuraTeam,项目名称:asura,代码行数:66,代码来源:SystemLogger.java


示例20: handleErrorException

import com.dianping.cat.Cat; //导入依赖的package包/类
/**
 * 处理系统异常
 * @param errorLogEntity
 * @param e
 * @param tran
 * @return
 */
private DataTransferObject handleErrorException(ErrorLogEntity errorLogEntity,Exception e,Transaction tran){
	errorLogEntity.setThrowMessage(e.getMessage());
	//cat记录错误
	Cat.logError(e);
	tran.setStatus(e);
	LogUtil.error(logger, " system error message:{}", errorLogEntity.toJsonStr(), e);
	return getDTOFromException(DataTransferObject.SYS_ERROR, "服务错误");
}
 
开发者ID:AsuraTeam,项目名称:asura,代码行数:16,代码来源:SystemLogger.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Option类代码示例发布时间:2022-05-22
下一篇:
Java LocalData类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap