簡體   English   中英

有沒有辦法使用 Java JMX Stackdriver 插件監控在 Google Cloud Run 中的 Docker 容器中運行的 Java 應用程序?

[英]Is there a way to monitor to Java app running in Docker container in Google Cloud Run with Java JMX Stackdriver plugin?

我正在嘗試使用 DropWizard 指標庫收集指標並通過 JMX 導出它們。

在 Google Cloud Engine 上,使用 Stackdriver 的 JMX 插件( https://cloud.google.com/monitoring/agent/plugins/jvm#configuring )很容易導出這些指標

但是我需要使用 Cloud Run 做類似的事情,有沒有已知的方法可以做到這一點?

謝謝!

我不熟悉 JMX,但熟悉 GCP,包括 Cloud Run。

我已經使用 Prometheus(以及用於應用程序安全的雲端點)實現了類似的(ish),在 8080 上多路復用應用程序和指標。

IIUC 監控代理(基於collectd):

  1. 收集指標使用預定義的端口
  2. 將這些發送到 Cloud Monitoring(以前稱為 Stackdriver)

如您所知,Cloud Run 是基於容器的,並且只允許一個端口 ( 8080 )。

我懷疑嘗試將代理捆綁在應用程序的容器中會很麻煩(並且可能不受 Google 支持),但代理仍然可以調用 home(雲監控),盡管可能會進行一些 IAM 調整。

如果 Cloud Run 允許每個服務有多個容器,那就太好了

潛在地,您可以多路復用 JMX 和您的應用程序流量超過 8080。

如果 Cloud Run 允許每個服務有多個端口,那就太好了

然后,您的普通用戶可以訪問該應用,並且監控代理(在其他地方運行)可以 ping 同一服務端口上的 JMX 指標並將這些指標發送到 Cloud Monitoring。

您需要更加注意安全性。 您可以制作 JWT 以向 Cloud Run 進行身份驗證,盡管這些在 Cloud Run 中更加“棘手”,因為每個服務都需要一個特定的 JWT 使用服務的端點來形成其受眾。

您可能還希望禁止經過身份驗證的應用程序用戶捕獲您的 JMX 指標。

我假設通過 Google 的前端將 JMX 流量路由到 Cloud Run 服務沒有任何限制。

顯然更好的選擇是在 Cloud Run 中檢測 Java 代碼是使用 OpenCensus 庫。

OpenCensus 庫可以輕松地與 DropWizard 一起使用,並且它實現了 Stackdriver 導出器。

這里有一些建議: https://opencensus.io/exporters/supported-exporters/java/stackdriver-stats/ https://cloud.google.com/monitoring/custom-metrics/open-census

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM