用普罗米修斯和格拉法纳乐器来刺豪猪

Adam Bien的Porcupine库使配置用作应用程序隔板的专用执行程序服务变得容易。 我创建了一个扩展,通过MicroProfile Metrics公开了豪猪统计信息。 我们还可以通过Prometheus和Grafana仪表板使仪器可见。

进行此扩展的原因是我们希望对Porcupine线程池的检测进行简单的集成(即插入)。 Grafana允许创建和共享仪表板,这些仪表板可以通过指标变量进行动态配置。 目标是创建类似于以下内容的仪表板,而无需进行大量手动配置:

豪猪

为了实现这一点,您需要执行以下操作:

  • 公开Java EE豪猪统计信息,例如Prometheus格式
  • 在Prometheus实例中擦除Prometheus指标
  • 在Grafana仪表板中查询并显示Prometheus指标

要通过Prometheus公开Porcupine的统计信息,您可以采用多种方法以Prometheus格式发出指标。 我使用的是MicroProfile Metrics,为此我创建了一个小的扩展 ,可以将其添加到项目中:

<dependency><groupId>com.sebastian-daschner</groupId><artifactId>porcupine-metrics</artifactId><version>1.0</version>
</dependency>

该扩展公开了PorcupineMetrics bean,该bean每次应更新指标时都需要通过其updateMetrics()方法调用。 我们可以使用类似于以下内容的计时器:

@Singleton
@Startup
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class ExecutorStatisticsUpdater {@InjectPorcupineMetrics porcupineMetrics;@ResourceManagedScheduledExecutorService scheduler;@PostConstructpublic void init() {scheduler.scheduleAtFixedRate(porcupineMetrics::updateMetrics,0, 5, TimeUnit.SECONDS);}}

这将每5秒更新一次指标。 由于Porcupine的统计信息内部,当前需要例如通过计时器明确触发更新机制。 这将在Metrics端点中包括以下管道指标:

vendor:porcupine_pipelines_<pipeline-name>_active_thread_count 2
vendor:porcupine_pipelines_<pipeline-name>_core_pool_size 4
vendor:porcupine_pipelines_<pipeline-name>_current_thread_pool_size 4
vendor:porcupine_pipelines_<pipeline-name>_largest_thread_pool_size 4
vendor:porcupine_pipelines_<pipeline-name>_maximum_pool_size 8
vendor:porcupine_pipelines_<pipeline-name>_min_queue_capacity 60
vendor:porcupine_pipelines_<pipeline-name>_remaining_queue_capacity 100
vendor:porcupine_pipelines_<pipeline-name>_tasks_completed 3034
vendor:porcupine_pipelines_<pipeline-name>_tasks_rejected 30
vendor:porcupine_pipelines_<pipeline-name>_tasks_total 3036

除了使用MicroProfile指标或这个扩展,你可以同样通过其他机制使用普罗米修斯的Java API作为解释暴露的指标,例如这里 。

然后,我们通过Prometheus抓取暴露的指标,并创建Grafana仪表板,以通过变量为每个管道动态查询和显示统计信息。

首先,我已经共享了豪猪仪表板,类似于您在连接至Prometheus数据源的Grafana.com上的屏幕快照中看到的内容。

您可以看一下使用Porcupine Metrics的instrument-craft-shop项目。

如果您想知道为什么我使用豪猪而不是MicroProfile Fault Tolerance隔板,请观看以下有关隔板和Java EE反压的视频。

发现帖子有用吗? 订阅我的时事通讯,获取有关IT和Java的更多免费内容,技巧和窍门:

成功! 现在检查您的电子邮件以确认您的订阅。

翻译自: https://www.javacodegeeks.com/2018/10/instrumenting-porcupine-prometheus-grafana.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三层网络架构

三层网络架构 数据中心网络是连接数据中心大规模服务器进行大型分布式计算的桥梁。 传统数据中心网络普遍采用树型拓扑方案&#xff0e; 典型的拓扑由三层交换机互联构成&#xff0c;分别是接入层交换机、汇聚层交换机和核心层交换机。Cisco称之为&#xff1a;分级的互连网络模…

c语言调用labview方法,LabVIEW与C语言接口的方法

摘要介绍了一种LabVIEW与C 语言接口的方法&#xff0c;由实例证明&#xff0c;该方法高效、易行&#xff0c;是增强LabVIEW整体功能的一条有效的途径。关键词虚拟仪器LabVIEW 动态链接库LabVIEW是一种方便灵活的虚拟仪器开发环境。当前&#xff0c;虚拟仪器技术已广泛应用到各种…

SDN

直接理解 SDN是在2009年左右出现的一种新型网络结构&#xff0c;它将数据层面与控制层面分离&#xff0c;使用中央控制器完成网络的操作和管理&#xff0c;并通常采用OpenFlow协议作为其核心通信协议&#xff0c;拥有着集中式控制、可编程、部署灵活性和数据层面与控制层面相互…

gradle插件 java_简单的Gradle Java插件自定义

gradle插件 java正如我在“ 用Gradle构建Java的初步了解”一文中所展示的那样&#xff0c;当Gradle使用Java插件并将文件和目录放置在该插件期望的位置时&#xff0c; Gradle尤其适用于构建Java应用程序的基础知识&#xff08;约定-基于项目的布局 &#xff09;。 但是&#xf…

android 检测过程,Android 系统对permision的检测过程

Android 系统对permision的检测过程RK3288 5.1 中以太网设置静态IP 对permission的检测简略的调用过程如下&#xff1a;frameworks\opt\net\ethernet\java\com\android\server\ethernet\EthernetServiceImpl.javapublic void setConfiguration(IpConfiguration config) {if (!m…

IP地址分类(A类 B类 C类 D类 E类)

IP地址类型 公有地址 公有地址&#xff08;Public address&#xff09;由Inter NIC&#xff08;Internet Network Information Center因特网信息中心&#xff09;负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。 私有地址 私有地址&am…

Java:将JDBC ResultSet作为JSON流式传输

这篇文章展示了如何将java.sql.ResultSet转换为JSON并将其流回调用方。 如果要将大型数据集从JDBC数据源以JSON格式发送到Web应用程序&#xff0c;此功能很有用。 流式传输使您可以一点一点地传输数据&#xff0c;而不必将所有数据都加载到服务器的内存中。 例如&#xff0c;考…

android 开发 短信,Android开发之短信发送

今天要讲的是使用Android开发发送短信程序。我们先来看下运行效果图(1) 图(2)图(3)图(1)&#xff1a;当我们运行项目时&#xff0c;出现在屏幕的效果&#xff1b;图(2)&#xff1a;当我们输…

ISP (互联网服务提供商)

ISP&#xff1a;全称为Internet Service Provider&#xff0c;即因特网服务提供商&#xff0c;能提供拨号上网服务、网上浏览、下载文件、收发电子邮件等服务&#xff0c;是网络最终用户进入Internet的入口和桥梁。它包括Internet接入服务和Internet内容提供服务。这里主要是In…

android远程命令行工具,Android 使用 adb命令 远程安装apk

【UWP】解析GB2312、GBK编码网页乱码问题在WebHttpRequest请求网页后,获取到的中文是乱码,类似这样: ˹ŵ&#xfffd;&#xfffd;Ϸ&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd; - &#xff…

多路径路由算法—ECMP、WCMP

传统的网络拓朴结构可以形象的表示为树结构&#xff0c;我们称之为“有中心的网络拓扑结构”&#xff0c;简单地认为很多流量请求最终会汇聚到主干网这样的路由中心&#xff0c;才能转发到下一条路径。 传统的路由协议都是采用单路径路由的方式&#xff0c;简单地认为&#xf…

新的JEP草案将简化Java中的撰写

偏爱继承而不是继承 有充分的理由&#xff0c;“在继承中偏爱组成”这一口头禅在文献中已多次重复。 但是&#xff0c;Java很少或根本没有语言支持来简化对象的组成。 但是&#xff0c;有了名为“简洁方法机构”的新的JEP草案&#xff0c;情况可能会略有改善。 Brian Goetz负责…

应用层组播、IP组播

通常说的组播一般指IP组播&#xff0c;IGMP协议等 什么是应用层组播&#xff1f; 应用层组播通过在应用层复制和缓存数据包而不是在路由器上复制数据包来避免IP组播的部署问题。应用层组播无须对路由器作任何修改,因此在 Internet 上非常容易部署 为了改善网络效率&#xff0…

android 酷炫倒计时,android 好用的倒计时

android倒计时 是在原有TextView的基础上进行二次开发的自定义View效果图这个主要是结合了android的CountDownTimer&#xff0c;这个一般就是发送短信的倒计时。包含功能倒计时时间超过一个小时显示 时&#xff1a;分&#xff1a;秒时间小于一小时显示&#xff1a;分 &#xff…

android 获取对象,在Android中获取LayoutInflater对象的方法

1、通过系统服务来获得&#xff0c;这是最标准的&#xff1a;LayoutInflater inflater (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);2、通过LayoutInflater的静态方法获得&#xff1a;LayoutInflater inflater LayoutInflater.from(context)…

音视频常见问题分析和解决:延迟(时延 delay)和抖动

延迟和抖动 延迟&#xff1a;是网络传输中的一个重要指标&#xff0c;测量了数据从一个端点到另外一个端点所需的时间。一般我们用毫秒作为其单位。通常我们也把延迟叫做延时&#xff0c;但是延时有时还会表示数据包发送端到接受端的往返时间。这个往返时间我们可以通过网络监…

forkjoin_应用ForkJoin –从最佳到快速

forkjoin到目前为止&#xff0c;JDK 7已很好地掌握在开发人员手中&#xff0c;并且大多数人都听说过ForkJoin&#xff0c;但是没有多少人有时间或机会去尝试它。 它引起了并且可能仍然引起一些混乱&#xff0c;与普通线程池有什么不同。 [1] 我在本文中的目标是通过一个代码示…

android usb触摸屏驱动 win10,Win10手机居然这样兼容安卓:直接运行apk!

摘要&#xff1a;“应用太少是硬伤&#xff01;”这是WP粉吐槽微软简洁而有力的一句话。最新的Win10Mobile预览版中首次引入了微软的安卓子系统&#xff0c;这也是微软推行的ProjectAstoria的一部分。那么Win10手机究竟要如何兼容安卓应用呢&#xff1f;微软最新一份招聘启事似…

GSM、UMTS、LTE

GSM 全球移动通信系统(Global System for Mobile Communications) &#xff0c;由欧洲电信标准组织ETSI制订的一个数字移动通信标准。它的空中接口采用时分多址技术。自90年代中期投入商用以来&#xff0c;被全球超过100个国家采用。GSM标准的无处不在使得在移动电话运营商之间…

Java应用程序中的验证

我经常看到的项目几乎没有任何有意识的数据验证策略。 他们的团队在截止日期&#xff0c;明确要求的巨大压力下工作&#xff0c;只是没有足够的时间以适当且一致的方式进行验证。 因此&#xff0c;数据验证代码随处可见&#xff1a;JavaScript片段&#xff0c;Java屏幕控制器&a…