标签: monitoring

使用 Prometheus 监控 Java Web 应用程序

我在 Tomcat 上运行了一个简单的 java Web 应用程序,我想使用Prometheus对其进行监控。我使用官方客户端向我的 java 应用程序添加了一些计数器和仪表,我在另一台服务器上安装了 Prometheus,并且不想使用 Prometheus 从我的 java 应用程序中提取指标。

普罗米修斯有大量的出口商,但我不清楚哪一个适合我的用例。我考虑过使用Prometheus 推送网关,但根据文档,Pushgateway 的唯一有效用例是捕获服务级批处理作业的结果,这不是我的情况。我应该怎么做才能从我的 java 应用程序中提取指标?

java monitoring prometheus

4
推荐指数
1
解决办法
5012
查看次数

如何使用K8S Node_Problem_Detector?

问题

如果是 K8S,监控节点运行状况文档中提到了节点问题检测器。如果GCE中没有,我们如何使用它?它是否向仪表板提供信息或提供 API 指标?

monitoring automation kubernetes kubernetes-health-check kubernetes-helm

4
推荐指数
1
解决办法
4688
查看次数

无法使用 prometheus 收集 docker 指标

我想监控 Docker 引擎。我按照“使用 Prometheus 收集 Docker 指标”来配置Docker 守护进程以获取稍后可以使用 Prometheus 收集和分析的指标。

在我的PC上(操作系统版本是CentOS 7.4,Docker版本是17.12.0.ce),我将以下内容粘贴到/etc/docker/daemon.json

{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}
Run Code Online (Sandbox Code Playgroud)

然后,启动Prometheus实例,发现Prometheus和Docker daemon之间的连接失败。

错误日志

Get http://localhost:9323/metrics: dial tcp 127.0.0.1:9323: connect: connection refused
Run Code Online (Sandbox Code Playgroud)

接下来我能做什么?

monitoring docker prometheus

4
推荐指数
1
解决办法
9292
查看次数

如何计算kube状态指标中pod的cpu使用率?

我使用 kubernetes api 和 kube 状态指标通过 prometheus 远程监控 eks 集群。在 Kubernetes api 中,我们有一个指标container_cpu_usage_seconds_total可以给出 pod 的 CPU 使用情况。kube-state-metrics 中是否有类似的指标可以给出 cpu 使用情况。实际上,我正在尝试获取与 kubernetes api 完全不同的集群 cpu 使用率,下面是计算的 kube-state-metrics。

kube-state-metrics:

sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores) * 100- 这给出了 101%

而 kube-state-metrics 给出的12%对我来说看起来很准确。

kubernetes-api:

sum (rate (container_cpu_usage_seconds_total{id="/",kubernetes_io_hostname=~"^$Node$", job=~"$job$"}[5m])) / sum (machine_cpu_cores{kubernetes_io_hostname=~"^$Node$", job=~"$job$"}) * 100

我认为 kube-state-metric 中没有任何指标可以提供与 kubernetes-api 相比的 cpu 使用情况

提前致谢。

monitoring kubernetes prometheus kube-state-metrics

4
推荐指数
1
解决办法
2万
查看次数

如何在prometheus中编写嵌套的label_replace查询?

我有以下形式的指标:

kube_deployment_labels{deployment="application1-deployment",endpoint="http",instance="10.273.78.36:8180",job="kube-state-metrics",label_app="applcation-request-adapter",label_environment="dev",label_version="dev",namespace="default",pod="kore-prom-kube-state-metrics-654d86c799-2kqzs",service="kore-prom-kube-state-metrics"}
Run Code Online (Sandbox Code Playgroud)

我需要将命名空间执行标签替换为 dev_namespace,将 label_version 替换为 dev_version。嵌套的label_replace语句怎么写?我可以分别为它们应用相同的内容:

label_replace(kube_deployment_labels{label_app=~".*",label_environment=~"dev",label_version=~"dev"}, "dev_namespace", "$1", "namespace", "(.*)")
Run Code Online (Sandbox Code Playgroud)

label_replace(kube_deployment_labels{label_app=~".*",label_environment=~"dev",label_version=~"dev"}, "dev_version", "$1", "label_version", "(.*)")
Run Code Online (Sandbox Code Playgroud)

如何在prometheus中将它们组合在一起以同时重命名或替换多个标签?

monitoring label replace grafana prometheus

4
推荐指数
1
解决办法
4686
查看次数

Jconsole 远程连接丢失:重新连接?

我正在尝试使用 java 8 jre (服务器地址:192.168.10.3)对我的 tomcat 9 进行 jconsole 远程监控。在 tomcat9w 中我有这个 java 选项:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=5000
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false
-Djava.rmi.server.hostname=192.168.10.3
Run Code Online (Sandbox Code Playgroud)

防火墙已关闭。

带 -debug 的 Jconsole 向我展示了这一点:

java.lang.SecurityException: Expecting a sun.rmi.server.UnicastRef2 remote reference in stub!
    at java.management.rmi/javax.management.remote.rmi.RMIConnector.checkStub(RMIConnector.java:1787)
    at java.management.rmi/javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:310)
    at jdk.jconsole/sun.tools.jconsole.ProxyClient.tryConnect(ProxyClient.java:355)
    at jdk.jconsole/sun.tools.jconsole.ProxyClient.connect(ProxyClient.java:313)
    at jdk.jconsole/sun.tools.jconsole.VMPanel$2.run(VMPanel.java:296)
java.lang.reflect.UndeclaredThrowableException
    at com.sun.proxy.$Proxy8.getTotalMemorySize(Unknown Source)
    at jdk.jconsole/sun.tools.jconsole.SummaryTab.formatSummary(SummaryTab.java:261)
    at jdk.jconsole/sun.tools.jconsole.SummaryTab$1.doInBackground(SummaryTab.java:87)
    at jdk.jconsole/sun.tools.jconsole.SummaryTab$1.doInBackground(SummaryTab.java:85)
    at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: javax.management.AttributeNotFoundException: No such attribute: TotalMemorySize
    at com.sun.jmx.mbeanserver.PerInterface.getAttribute(Unknown Source)
    at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java monitoring jmx jconsole tomcat9

4
推荐指数
1
解决办法
1990
查看次数

Prometheus 中的最小 scrape_interval 是多少?

我想知道普罗米修斯scrape_interval参数的最短时间是多少。根据Prometheus Documentation,此参数的值需要遵循正则表达式,在我看来,只允许等于或大于 1 秒的间隔,因为例如“1ms”或“0.01s”与此正则表达式不匹配。然而,在我的应用程序中,我希望以毫秒为单位进行抓取,因此我对 Prometheus 是否可以实现这一点感兴趣。

提前谢谢了!

monitoring prometheus

4
推荐指数
1
解决办法
8462
查看次数

如何使用 Terraform 创建 Azure 警报

我需要使用 terraform 为多个虚拟机创建警报。有人有一个我可以使用的简单例子,例如:

我想监视名为 Rg1 的资源组中名为 vm01、vm01、vm03 的 Azure 虚拟机。例如,我想监控 CPU 使用率和内存。有人可以帮助我提供一个简单的示例,然后我可以在此基础上进行构建吗?

monitoring azure azure-monitoring terraform

4
推荐指数
1
解决办法
1万
查看次数

如何添加新的 Prometheus 目标

我已使用prometheus 社区在我的 EKS 集群上安装了 Prometheus。

一切都按预期进行。不过我希望它从其他来源抓取数据。如何添加新目标?找不到它的文档。请帮忙。

monitoring amazon-web-services kubernetes prometheus amazon-eks

4
推荐指数
1
解决办法
1万
查看次数

有没有办法通过 API 获取 Google Cloud Monitoring 事件指标?

在查看此处的文档 ( https://cloud.google.com/monitoring/alerts/incidents-events#incident ) 并使用一般产品时,似乎未决事件和相关详细信息仅通过 Google Cloud Console 显示。

CLI 和 API 似乎只支持警报策略的管理,但我找不到检索未处理事件列表的方法。例如,如果特定警报策略的开放时间超过 5 个事件持续 12 小时,我希望发送警报。数据似乎存在(由 Google Cloud Console 提供),但 API 不公开。

monitoring google-cloud-platform gcloud stackdriver

4
推荐指数
1
解决办法
878
查看次数