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

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

  1. 普罗米修斯使用es数据库_用普罗米修斯和格拉法纳仪法来豪猪

    普罗米修斯使用es数据库 Adam Bien的Porcupine库使配置充当应用程序隔板的专用执行程序服务变得容易. 我创建了一个扩展,通过MicroProfile Metrics公开了豪猪统计信息. ...

  2. 普罗米修斯_用普罗米修斯和格拉法纳仪来豪猪

    普罗米修斯 Adam Bien的Porcupine库使配置用作应用程序隔板的专用执行程序服务变得容易. 我创建了一个扩展,通过MicroProfile Metrics公开了豪猪统计信息. 我们还可以通 ...

  3. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯

    DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...

  4. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  5. 普罗米修斯java_springboot集成普罗米修斯(Prometheus)的方法

    Prometheus 是一套开源的系统监控报警框架.它由工作在 SoundCloud 的 员工创建,并在 2015 年正式发布的开源项目.2016 年,Prometheus 正式加入 Cloud Na ...

  6. 当ABAP遇见普罗米修斯

    Jerry每次在工作场合中同Prometheus(普罗米修斯)打交道时,都会"出戏",因为这个单词给我的第一印象,并不是用go语言实现的微服务监控利器,而是名导雷德利·斯科特(Ri ...

  7. 普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建

    导读 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据.比如 ...

  8. springboot 接口404_资深架构带你学习Springboot集成普罗米修斯

    这篇文章主要介绍了springboot集成普罗米修斯(Prometheus)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 ...

  9. metrics类型 普罗米修斯_AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控...

    原标题:AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控 概述 Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由S ...

最新文章

  1. android组件化架构 书,Android MVVM组件化架构方案
  2. 参加51CTO培训,华为HCNP认证考试通过啦
  3. 知识图谱论文阅读(十八)【KDD2019】AKUPM: Attention-Enhanced Knowledge-Aware User Preference Model for Recommend
  4. Latex的subcaption横向插入两张子图的的用法
  5. 很巧妙的进程防杀方法[秋镇菜原创]
  6. 2016 java二级试题_2016计算机二级考试Java试题及答案
  7. CHtmlCtrl在VC中的使用
  8. 随想录(机器学习的生产应用)
  9. ANDROID模拟器不能启动
  10. Mybatis-学习笔记(5)动态SQL
  11. 支付安全不能说的那些事
  12. 【ManageEngine】IP地址扫描的作用
  13. 计算机软硬件故障排除知识,计算机软硬件基础知识及常见故障排除方法
  14. 人工智能已经沦为刷榜,刷论文的时代了? 新一代人工智能,认知智能已经来临。道翰天琼。
  15. 无法删除文件夹的“只读”属性
  16. WHQL认证资讯:关于Windows硬件开发者仪表盘
  17. 左旋右旋问题一次搞定!!!
  18. Spatial Pyramid Pooling(SPP)原理简介
  19. 计算机是如何执行程序的(转)
  20. 【重磅】人民网:分布式存储打开千亿级市场,深入推动行业数字化转型

热门文章

  1. Codeforces 786B Legacy (线段树优化建图)
  2. 22、java中的注解
  3. 面试官最爱问的并发问题
  4. js深度复制一个对象使用JSON.stringify是最好的办法吗
  5. 为什么我强烈建议大家使用枚举来实现单例
  6. Spring AOP注解为什么失效?90%Java程序员不知道
  7. $router VS $route
  8. android之微信分享图片
  9. 运河杯交通违章 运行不起来
  10. 一篇文章指明做JavaWeb项目需要的前置知识+完整项目初解读(萌新必看,十分友好)