分销系统价格多少,搜索引擎优化的方法有哪些?,做的新网站网上搜不到,网络解决方案公司当您运行诸如Web应用程序之类的长期应用程序时#xff0c;最好了解一些关于它们的统计信息#xff0c;例如#xff0c;服务的请求数#xff0c;请求持续时间或活动请求数。 但是还有一些更通用的信息#xff0c;例如内部集合的状态#xff0c;代码的某些部分被执行了多少… 当您运行诸如Web应用程序之类的长期应用程序时最好了解一些关于它们的统计信息例如服务的请求数请求持续时间或活动请求数。 但是还有一些更通用的信息例如内部集合的状态代码的某些部分被执行了多少次运行状况检查例如数据库可用性或与外部系统的任何类型的连接。 所有这些工具化都可以通过使用本机JMX或使用模块化项目例如Metrics来实现 。 度量标准提供了一种强大的方法来衡量关键组件的行为并将其报告给各种系统例如JConsole 系统控制台 Ganglia Graphite CSV或通过Web服务器提供。 要安装Metrics 我们仅需添加指标依赖项。 在此示例中我们将使用Maven。 dependenciesdependencygroupIdcom.yammer.metrics/groupIdartifactIdmetrics-core/artifactIdversion2.2.0/version/dependency
/dependencies 现在是时候向我们的代码中添加一些指标了。 在指标中我们可以使用6种类型的指标 量规 离散值的瞬时测量。 计数器 可以递增和递减的值。 可以在队列中使用以监视挂起作业的剩余数量。 仪表 测量一段时间内事件的发生率。 您可以指定费率单位事件范围或事件类型。 直方图 测量数据流中值的统计分布。 计时器 测量执行一段代码所需的时间及其持续时间的分布。 健康检查 顾名思义它集中了我们服务对外部系统的健康检查。 因此让我们编写一个非常简单的应用程序实际上它是一个控制台应用程序它将查询发送到Google搜索系统。 我们将测量请愿数量发送给Google的字符数量搜索到的最后一个单词以及一个计时器以测量发送请求和接收响应的速度。 将应用度量的主要类称为MetricsApplication 它负责连接到Google并发送输入的单词。 public class MetricsApplication {Counterprivate final Counter numberOfSendCharacters Metrics.newCounter(MetricsApplication.class, Total-Number-Of-Characters);Meterprivate final Meter sendMessages Metrics.newMeter(MetricsApplication.class, Sent-Messages, Send, TimeUnit.SECONDS);Timerprivate final Timer responseTime Metrics.newTimer(MetricsApplication.class, Response-Time);private LinkedListString historyOfQueries new LinkedListString();{GaugeMetrics.newGauge(MetricsApplication.class, lastQuery, new GaugeString() {Overridepublic String value() {return historyOfQueries.getLast();}});}public void sendQuery(String message) throws FailingHttpStatusCodeException, MalformedURLException, IOException {updateMetrics(message);TimerContext timerContext responseTime.time();sendQueryToGoogle(message);timerContext.stop();}private void sendQueryToGoogle(String message) throws FailingHttpStatusCodeException, MalformedURLException, IOException {WebClient webClient new WebClient();HtmlPage currentPage webClient.getPage(http:www.google.com);Get the query input textHtmlInput queryInput currentPage.getElementByName(q);queryInput.setValueAttribute(message);Submit the form by pressing the submit buttonHtmlSubmitInput submitBtn currentPage.getElementByName(btnG);currentPage submitBtn.click();}private void updateMetrics(String message) {numberOfSendCharacters.inc(message.length());sendMessages.mark();historyOfQueries.addLast(message);}} 我们可以看到的第一件事是计数器实例。 此计数器将计算应用程序整个生命周期中发送给Google的字符数同时您也不要停止它。 下一个属性是一个计量器用于测量一段时间内发送查询的速率。 然后我们有了一个计时器 它对sendQueryToGoogle方法调用及其随时间的分布进行评分。 最后是一个LinkedList用于存储所有发送的查询。 该实例将用于返回执行的最后一个查询并用于量规返回最后插入的元素。 注意在每个度量中我们都设置了一个类该类将用作jconsole中的文件夹。 此外提供了一个标签以用作文件夹内的名称。 让我们看一下具有先前配置的jconsole的屏幕截图并执行三个搜索 默认情况下所有指标都可以通过JMX看到。 但是我们当然可以将测量结果报告给控制台 http服务器 Ganglia或Graphite 。 还要注意在此示例中我们将业务代码和指标代码混合在一起。 如果您打算使用 生产代码中的指标我建议您尽可能将指标逻辑放入AOP中。 我们已经了解了一种无需直接使用JMX即可监视我们的应用程序的简便方法。 还请记住 Metrics附带了一些内置指标用于检测HttpClient JDBI Jetty Jersey Log4j Logback或Web应用程序 。 参考 Yammer Metrics这是一种由JCG合作伙伴 Alex Soto 监控您的应用程序的新方法位于One Jar To Rule Them All博客中。 翻译自: https://www.javacodegeeks.com/2012/12/yammer-metrics-a-new-way-to-monitor-your-application.html