中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

c 做asp.net網(wǎng)站西安seo建站

c 做asp.net網(wǎng)站,西安seo建站,wordpress中文網(wǎng)站模板下載,網(wǎng)站關(guān)鍵詞檢測(cè)spring maven項(xiàng)目 實(shí)時(shí)接口請(qǐng)求次數(shù)及時(shí)間發(fā)送到grafana監(jiān)控_親測(cè)成功 說明: spring項(xiàng)目使用aop方式拿到請(qǐng)求接口uri,算出從請(qǐng)求到響應(yīng)的耗時(shí), 然后使用statsd包發(fā)送udp數(shù)據(jù)給grafana去展示. 完全不影響代碼性能和穩(wěn)定性,因?yàn)槭褂胾dp協(xié)議發(fā)送,就算grafana那邊掛了,也不影響項(xiàng)…

spring maven項(xiàng)目 實(shí)時(shí)接口請(qǐng)求次數(shù)及時(shí)間發(fā)送到grafana監(jiān)控_親測(cè)成功

說明: spring項(xiàng)目使用aop方式拿到請(qǐng)求接口uri,算出從請(qǐng)求到響應(yīng)的耗時(shí), 然后使用statsd包發(fā)送udp數(shù)據(jù)給grafana去展示.

完全不影響代碼性能和穩(wěn)定性,因?yàn)槭褂胾dp協(xié)議發(fā)送,就算grafana那邊掛了,也不影響項(xiàng)目正常運(yùn)行

UDP簡(jiǎn)單介紹

UDP提供不可靠服務(wù)

UDP是一個(gè)非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接, 當(dāng)它想傳送時(shí)就簡(jiǎn)單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。 在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、 計(jì)算機(jī)的能力和傳輸帶寬的限制; 在接收端,UDP把每個(gè)消息段放在隊(duì)列中,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段。

maven項(xiàng)目pom.xml引入依賴包

		<dependency><groupId>com.timgroup</groupId><artifactId>java-statsd-client</artifactId><version>3.1.0</version></dependency>    

配置監(jiān)控udp地址

statsd:prefix: devhost: 192.168.1.53port: 8125

初始化配置

package com.beyond.app.config;import com.timgroup.statsd.NonBlockingStatsDClient;
import com.timgroup.statsd.StatsDClient;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class StatsdConfig {private static final Logger logger = LogManager.getLogger(StatsdConfig.class);@Value("${spring.statsd.prefix}")private String prefix;@Value("${spring.statsd.host}")private String host;@Value("${spring.statsd.port}")private int port;@Bean(name = "statsDClient")public StatsDClient statsDClient() {logger.info("StatsdConfig Configuring Statsd {}-{}:{}", prefix, host, port);return new NonBlockingStatsDClient(prefix, host, port);}}

定義service

package com.beyond.app.service;import com.timgroup.statsd.StatsDClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;/*** Created by liang.*/
@Service
public class StatsdService {@Autowiredprivate StatsDClient statsDClient;@Asyncpublic void statsd (String uri, long time) {statsDClient.time("manage." + uri, time);//dev.manage.uri:10|ms//dev開發(fā)環(huán)境, manage功能, uri接口, 10ms接口耗時(shí)}}

spring aop環(huán)繞通知發(fā)送接口數(shù)據(jù)

package com.beyond.app.aop;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.beyond.app.service.StatsdService;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;/*** Created by liang.*/@Component
@Aspect
public class LogAspect {private static final Logger logger = LoggerFactory.getLogger(LogAspect.class);@Autowiredprivate StatsdService statsdService;/*** 定義一個(gè)切入點(diǎn).* 解釋下:** ~ 第一個(gè) * 代表任意修飾符及任意返回值.* ~ 第二個(gè) * 定義在web包或者子包* ~ 第三個(gè) * 任意方法* ~ .. 匹配任意數(shù)量的參數(shù).*/@Pointcut("execution(* com.beyond.app.api..*.*(..))")public void logPointCut(){}@Around("logPointCut()")public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable{long start = System.currentTimeMillis();ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();long end = System.currentTimeMillis();try {Object result = joinPoint.proceed();end = System.currentTimeMillis();logger.info("+++++around " + joinPoint + "\tUse time : " + (end - start) + " ms!");return result;} catch (Throwable e) {end = System.currentTimeMillis();logger.error("+++++around " + joinPoint + "\tUse time : " + (end - start) + " ms with exception : " + e.getMessage());throw e;} finally {statsdService.statsd(request.getRequestURI(), end - start);}}
}
http://www.risenshineclean.com/news/51707.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)新方向開魯網(wǎng)站seo不用下載
  • 做編程的網(wǎng)站有哪些方面廣告公司注冊(cè)
  • 在那個(gè)網(wǎng)站做直播好賺錢百度指數(shù)與百度搜索量
  • wordpress 企業(yè)站 模板網(wǎng)絡(luò)廣告的優(yōu)勢(shì)有哪些
  • 河北建設(shè)網(wǎng)站信息查詢中心seo優(yōu)化服務(wù)商
  • 河北做網(wǎng)站哪家公司好西安網(wǎng)站seo公司
  • 網(wǎng)站推廣的必要性品牌網(wǎng)站建設(shè)公司
  • 連云港專業(yè)做網(wǎng)站環(huán)球網(wǎng)今日疫情消息
  • 蜘蛛爬取網(wǎng)站旅游營銷推廣方案
  • 做企鵝號(hào)的視頻素材網(wǎng)站獨(dú)立站網(wǎng)站
  • 如何在網(wǎng)站中做二級(jí)下拉菜單網(wǎng)站怎樣優(yōu)化關(guān)鍵詞好
  • 通州網(wǎng)站建設(shè)電話日本比分預(yù)測(cè)
  • 廈門百度網(wǎng)站建設(shè)新浪微輿情大數(shù)據(jù)平臺(tái)
  • 網(wǎng)站開發(fā)的目的意義數(shù)據(jù)統(tǒng)計(jì)網(wǎng)站
  • 企業(yè)網(wǎng)站規(guī)劃案例國外免費(fèi)網(wǎng)站建設(shè)
  • 自己怎么免費(fèi)做網(wǎng)站公司網(wǎng)頁制作
  • 襄樊seoseo論壇
  • 帝國做的電影網(wǎng)站創(chuàng)建屬于自己的網(wǎng)站
  • 浙江手機(jī)版建站系統(tǒng)信息口碑seo推廣公司
  • 做網(wǎng)站連接數(shù)據(jù)庫怎么顯示圖片免費(fèi)代理上網(wǎng)網(wǎng)站
  • 復(fù)制一個(gè)網(wǎng)站怎么做的青島做網(wǎng)站的公司哪家好
  • 17網(wǎng)站一起做網(wǎng)店不發(fā)貨百度指數(shù)總結(jié)
  • 網(wǎng)站多久備案一次谷歌seo外鏈平臺(tái)
  • 網(wǎng)站日常優(yōu)化網(wǎng)絡(luò)營銷推廣是做什么的
  • 做網(wǎng)站在哪找靠譜搜索引擎鏈接
  • wordpress 轉(zhuǎn)圈加載win優(yōu)化大師有免費(fèi)版嗎
  • 做網(wǎng)站建設(shè)月收入多少大數(shù)據(jù)培訓(xùn)班出來能就業(yè)嗎
  • 做網(wǎng)站的價(jià)格表百度賬號(hào)快速注冊(cè)入口
  • 網(wǎng)站建設(shè)之織夢(mèng)模板天眼查企業(yè)查詢
  • 站長之家 wordpress 流量統(tǒng)計(jì)2023年新聞?wù)畻l