当前位置: 首页 > news >正文

seo分析网站在百度怎样建网站

seo分析网站,在百度怎样建网站,建议自考还是成考,做经营性的网站需要注册什么在应用程序中#xff0c;通常会记录日志以便事后分析#xff0c;在很多情况下是产生了问题之后#xff0c;再去查看日志#xff0c;是一种事后的静态分析。在很多时候#xff0c;我们可能需要了解整个系统在当前#xff0c;或者某一时刻运行的情况#xff0c;比如一个系… 在应用程序中通常会记录日志以便事后分析在很多情况下是产生了问题之后再去查看日志是一种事后的静态分析。在很多时候我们可能需要了解整个系统在当前或者某一时刻运行的情况比如一个系统后台服务我们可能需要了解一些实时监控的数据例如 1、每秒钟的请求数是多少TPS 2、平均每个请求处理的时间 3、请求处理的最长耗时 4.请求处理的响应的直方图 5、请求处理正确响应率 6、等待处理的请求队列长度 7、查看整个系统的的CPU使用率、内存占用、jvm运行情况以及系统运行出错率等等一系列的实时数据采集时最简单的方法就是在系统的入口、出口和关键位置设置埋点然后将采集到的信息发送到实时监控平台或者存入到缓存和DB中做进一步的分析和展示。   Metrics作为一款监控指标的度量类库提供了许多工具帮助开发者来完成各项数据的监控。 详见官方文档https://metrics.dropwizard.io/3.1.0/manual/core/ 一.Metrice 工具类库的介绍   Metrics提供5种基本的度量类型Meters Gauges  Counters   Histograms   和 Timers   1.设置maven依赖  dependenciesdependencygroupIdio.dropwizard.metrics/groupIdartifactIdmetrics-core/artifactIdversion3.2.6/version/dependencydependencygroupIdio.dropwizard.metrics/groupIdartifactIdmetrics-healthchecks/artifactIdversion3.2.6/version/dependency /dependencies             2.Meters 的介绍与使用 //Meter(测量)是一种只能自增的计数器通常用来度量一系列事件发生的概率。它提供了平均速率以及指数平滑平均速率以及采样后的1分钟5分钟15分钟的样例。 public class MetricsExample {//创建注册表private final static MetricRegistry registry new MetricRegistry();//创建tps测量表private final static Meter requestMeter registry.meter(tps);//创建异常测量表private final static Meter errorMeter registry.meter(err_request);public static void main(String[] args) {//数据生成报告(按每分钟来统计)ConsoleReporter report ConsoleReporter.forRegistry(registry).convertRatesTo(TimeUnit.MINUTES).convertDurationsTo(TimeUnit.MINUTES).build();report.start(10, TimeUnit.SECONDS); //每10秒将数据打印到控制台上for(;;){   //模拟一直调用请求getAsk();  //发送请求randomSleep(); //间隔的发送请求}}//处理请求方法public static void getAsk(){try {requestMeter.mark();randomSleep();int x 10/ThreadLocalRandom.current().nextInt(6);} catch (Exception e) {System.out.println(Error);errorMeter.mark();}}//模拟处理请求耗时public static void randomSleep(){try {TimeUnit.SECONDS.sleep(ThreadLocalRandom.current().nextInt(10)); //随机休眠时间} catch (InterruptedException e) {e.printStackTrace();}} } //打印结果如下 19-6-4 16:38:47 -- Meters ----------------------------------------------------------------------err_request count 1 mean rate 1.50 events/minute 1-minute rate 0.75 events/minute 5-minute rate 0.19 events/minute 15-minute rate 0.07 events/minutetps count 4 mean rate 5.99 events/minute 1-minute rate 8.85 events/minute 5-minute rate 11.24 events/minute 15-minute rate 11.74 events/minute   3.gauge的介绍与使用   3.1 gauge的使用 /*** des gauge的使用 * author zhao* date 2019年6月14日上午12:08:02* Gauge是一个最简单的计量一般用来统计瞬时状态的数据信息* 例某一时刻的集合中的大小 */ public class GaugeExample { //定义度量中心 private static MetricRegistry registry new MetricRegistry(); //定义队列private static QueueInteger queue new LinkedBlockingQueue(); public static void main(String[] args) throws InterruptedException { //将信息展示到控制台上 ConsoleReporter reporter ConsoleReporter.forRegistry(registry).build(); reporter.start(3, TimeUnit.SECONDS); GaugeInteger gauge new GaugeInteger() { Override public Integer getValue() { return queue.size(); } }; //将定义过的gauge 注册到注册中心 registry.register(MetricRegistry.name(GaugeExample.class, queue-size), gauge); //模拟queue队列中的数据 for (int i 0; i 100; i) { queue.add(i); TimeUnit.MILLISECONDS.sleep(100); } Thread.currentThread().join(); } } // 打印结果 19-6-14 0:39:17 -- Gauges ---------------------------------------------------------------------- com.zpb.gauge.GaugeExample.queue-size value 3119-6-14 0:39:20 -- Gauges ---------------------------------------------------------------------- com.zpb.gauge.GaugeExample.queue-size value 6019-6-14 0:39:23 -- Gauges ---------------------------------------------------------------------- com.zpb.gauge.GaugeExample.queue-size value 90      3.2RatioGauge 的使用     作用度量事件成功率的计算。  例度量缓存命中率、接口调用率等等。 public class RatioGaugeExample {private static MetricRegistry registry new MetricRegistry();private static Meter totalMeter registry.meter(totalCount);private static Meter succMeter registry.meter(succCount);public static void main(String[] args) {ConsoleReporter reporter ConsoleReporter.forRegistry(registry).build();reporter.start(5, TimeUnit.SECONDS); //每5秒发送一次到控制台registry.gauge(succ-ratio, ()- new RatioGauge() {Overrideprotected Ratio getRatio() {return Ratio.of(succMeter.getCount(),totalMeter.getCount()); //第一个参数分子 第二个参数分母}});//调用for(;;){processHandle();}}public static void processHandle(){//total counttotalMeter.mark();try {int x 10/ThreadLocalRandom.current().nextInt(10);TimeUnit.MILLISECONDS.sleep(100);//succ count succMeter.mark();} catch (Exception e) {System.out.println( err);}} }//打印结果 19-6-17 9:28:13 -- Gauges ----------------------------------------------------------------------succ-ratio value 0.9607843137254902 -- Meters ----------------------------------------------------------------------succCount count 49 mean rate 9.52 events/second 1-minute rate 9.60 events/second 5-minute rate 9.60 events/second 15-minute rate 9.60 events/secondtotalCount count 51 mean rate 9.90 events/second 1-minute rate 10.00 events/second 5-minute rate 10.00 events/second 15-minute rate 10.00 events/second 19-6-17 9:28:18 -- Gauges ----------------------------------------------------------------------succ-ratio value 0.9423076923076923 -- Meters ----------------------------------------------------------------------succCount count 98 mean rate 9.71 events/second 1-minute rate 9.63 events/second 5-minute rate 9.61 events/second 15-minute rate 9.60 events/secondtotalCount count 104 mean rate 10.31 events/second 1-minute rate 10.06 events/second 5-minute rate 10.01 events/second 15-minute rate 10.00 events/second  4.Counter 的使用   作用Counter是Gauge的一个特例维护一个计数器可以通过inc()和dec()方法对计数器做修改。使用步骤与Gauge基本类似在MetricRegistry中提供了静态方法可以直接实例化一个Counter。可以用来度量生产者和消费者之间的关系 public class CounterExample {private static final Logger LOG LoggerFactory.getLogger(CounterExample.class);//度量注册中心private static final MetricRegistry registry new MetricRegistry();//度量计数器private static final Counter counter registry.counter(MetricRegistry.name(CounterExample.class, )); private static final ConsoleReporter report ConsoleReporter.forRegistry(registry).convertRatesTo(TimeUnit.MINUTES).convertDurationsTo(TimeUnit.MINUTES).build();private static QueueString queue new LinkedListString();public static void main(String[] args) throws Exception { report.start(5, TimeUnit.SECONDS); //每5秒将数据打印到控制台上new Thread(new Runnable() {Overridepublic void run() {try {production(abc);} catch (InterruptedException e) {e.printStackTrace();}}}).start();new Thread(new Runnable() {Overridepublic void run() {try {consume();} catch (InterruptedException e) {e.printStackTrace();}}}).start();;Thread.currentThread().join();}public static void production(String s) throws InterruptedException{for(int i 0; i 100;i){counter.inc();queue.offer(s);}}public static void consume() throws InterruptedException{while(queue.size() ! 0){queue.poll(); //删除第1个元素counter.dec();}} } 5.Histograms直方图   作用主要使用来统计数据的分布情况 最大值、最小值、平均值、中位数百分比75%、90%、95%、98%、99%和99.9%。   例如需要统计某个页面的请求、接口方法请求的响应时间 public class HistogramsExample {private static final MetricRegistry registry new MetricRegistry();private static ConsoleReporter reporter ConsoleReporter.forRegistry(registry).build();//实例化一个Histogramsprivate static final Histogram histogram registry.histogram(MetricRegistry.name(HistogramsExample.class,histogram));public static void main(String[] args) throws InterruptedException {reporter.start(5, TimeUnit.SECONDS);Random r new Random();while(true){processHandle(r.nextDouble());Thread.sleep(100);}}private static void processHandle(Double d){histogram.update((int) (d*100)); //在应用中需要统计的位置调用Histogram的update()方法。}} 6.Timer的使用   作用统计请求的速率和处理时间   例如某接口的总在一定时间内的请求总数平均处理时间 public class TimerExample {//创建度量中心private static final MetricRegistry registry new MetricRegistry();//输出到控制台private static final ConsoleReporter report ConsoleReporter.forRegistry(registry).build(); //实例化timerprivate static final Timer timer registry.timer(request);public static void main(String[] args) {report.start(5, TimeUnit.SECONDS);while(true){handleRequest();}}private static void handleRequest(){Context time timer.time();try {Thread.sleep(500);       //模拟处理请求时间} catch (Exception e) {System.out.println(err);}finally {time.stop();            //每次执行完都会关闭System.out.println( timer 已关闭);}} } // 打印结果 19-6-17 11:25:27 -- Histograms ------------------------------------------------------------------ com.zpb.histograms.HistogramsExample.histogramcount 50              #总请求数min 0max 98              mean 53.14            #平均值 stddev 27.04            #标准差median 50.00            #中间值75% 78.0095% 92.0098% 94.0099% 98.0099.9% 98.00 7.HealthChecks    作用健康检查用于对系统应用、子模块、关联模块的运行是否正常做检测   实现过程     类A继承 HealthCheck 并重写check()方法 在check()中调用类B中的被检测方法     类B定义一个方法返回结果是boolean类型。(类B也可以是其它系统中的一个类)    public class HealthChecksExample extends HealthCheck{private DataBase database;public HealthChecksExample(DataBase database) {this.database database;}Overrideprotected Result check() throws Exception {if (database.ping()) {return Result.healthy();}return Result.unhealthy(Cant ping database.);}static class DataBase{//模拟ping方法public boolean ping(){Random r new Random();return r.nextBoolean();}}public static void main(String[] args) {//创建健康检查注册中心HealthCheckRegistry registry new HealthCheckRegistry();//将被检查的类注册到中心     registry.register(database1,new HealthChecksExample(new DataBase()));registry.register(database2, new HealthChecksExample(new DataBase()));     //从运行的健康检查注册中心获取被检测的结果SetEntryString, Result entrySet registry.runHealthChecks().entrySet();while(true){for(EntryString, Result entry : entrySet){if(entry.getValue().isHealthy()){System.out.println(entry.getKey(): OK);}else{System.err.println(entry.getKey()FAIL:error message: entry.getValue().getMessage());final Throwable e entry.getValue().getError();if(e !null){e.printStackTrace();}}}try {Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}}} }//打印结果 database1FAIL:error message: Cant ping database.database2: OKdatabase1FAIL:error message: Cant ping database.database2: OKdatabase1FAIL:error message: Cant ping database.database2: OK 二.report 报告   如上例子所示我们拿到了很多类型的数据但我们不能展示到控制台上因此我们需要将数据导出做成可展示的报告在官网上有很多种类型的report这里只介绍在工作中经常使用到的。   将数据写到log日志中   将日志通过logback写入到日志中具体使用配置过程详见loback的介绍与配置-(通俗易通) 1.Timer 将数据写入log中    public class TimerExample {//创建度量中心private static final MetricRegistry registry new MetricRegistry();//输出到日志文件中private static final Slf4jReporter report Slf4jReporter.forRegistry(registry).outputTo(LoggerFactory.getLogger(com.metrics.timer)) //定义该日志写到哪个包这个你可以随意定义但要与logback.xml中的logger中name一致即可.convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.SECONDS).build();//实例化timerprivate static final Timer timer registry.timer(request);public static void main(String[] args) {report.start(5, TimeUnit.SECONDS);while(true){handleRequest();}}private static void handleRequest(){Context time timer.time();try {Thread.sleep(500);;         //模拟处理请求时间} catch (Exception e) {System.out.println(err e);}finally {time.stop(); //一定要写finally,每次执行完都会关闭System.out.println( timer 已关闭);}} } 2.Counter将数据写入到日志中 public class CounterExample {private static final Logger LOG LoggerFactory.getLogger(CounterExample.class);//度量注册中心private static final MetricRegistry registry new MetricRegistry();//度量计数器private static final Counter counter registry.counter(MetricRegistry.name(CounterExample.class, ));//通过logback打印到日志文件上private static final Slf4jReporter reporter Slf4jReporter.forRegistry(registry).outputTo(LoggerFactory.getLogger(com.metrics)).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.SECONDS).build();private static QueueString queue new LinkedListString();public static void main(String[] args) throws Exception {reporter.start(5, TimeUnit.SECONDS);   //每5秒钟写一次日志new Thread(new Runnable() {Overridepublic void run() {try {production(abc);} catch (InterruptedException e) {e.printStackTrace();}}}).start();new Thread(new Runnable() {Overridepublic void run() {try {consume();} catch (InterruptedException e) {e.printStackTrace();}}}).start();;Thread.currentThread().join();}public static void production(String s) throws InterruptedException{for(int i 0; i 100;i){counter.inc();queue.offer(s);System.out.println(------- 生产 -----------queue.size());}}public static void consume() throws InterruptedException{while(queue.size() ! 0){queue.poll(); //删除第1个元素counter.dec();System.err.println(------- 消费 ----------- queue.size());}} }   转载于:https://www.cnblogs.com/MrRightZhao/p/10975107.html
http://www.hkea.cn/news/14387622/

相关文章:

  • 专门做外贸的网站集安网站建设
  • 自己做的网站怎么接入银联支付互联网之光博览会参展企业
  • 池州家居网站建设怎么样保险代理公司注册条件
  • 大庆网站建设黑icp备1900邯郸哪里制作网站
  • 网站备案要多久时间湖南做电商网站需要什么条件
  • 企业网站模板带后台做招聘网站怎么办营业执照
  • 服务公司注册资金多少合适无忧seo博客
  • 滕州网站建设哪家好程序员 给老婆做网站
  • 宜昌市水利建设工程协会网站工信部网站备案怎么查询
  • 江苏省中医院网站建设男的和女的做那种短视频网站
  • 大连高新区规划建设局网站网站开发选题依据
  • 信贷网站开发深圳网站建设行业排行
  • 如何看网站是否有做网站地图wordpress 自动备份
  • 盐城市城乡建设门户网站免费的网站建造
  • 茂名企业做网站公众平台官网登录入口
  • 网站的流量是怎么回事素材图下载
  • 江门做网站的公司域名备案期间 网站访问
  • 去国外做非法网站吗注册一个5000万空壳公司要多少钱
  • 上海住房和城乡建设部网站深圳网站优化搜索
  • 光电网站建设相同网站名
  • 网站需要什么费用网站系统说明
  • 免费行情软件网站大全下载南昌市住房和城乡建设网站
  • 在哪个网站上做实验仪器比较好wordpress4.9
  • 苍南网站设计公司怎么跟电商合作去哪找
  • 放单网站建设健身器材网站源码
  • 义乌网站制作电话做产品网站费用吗
  • 做产品网站营销推广公司标志设计图片大全免费
  • 商务网站建设工程师注册安全工程师通过率
  • 网站美工做图晋江友情链接是什么意思
  • 网站规划与网页设计第二版电商erp软件排名