用普罗米修斯和格拉法纳乐器来刺豪猪
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
總結
以上是生活随笔為你收集整理的用普罗米修斯和格拉法纳乐器来刺豪猪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓禁止自启(安卓禁自启)
- 下一篇: linux进程互斥实验(linux下进程