监控示例 Web 应用程序
本教程演示如何监控示例 Web 应用程序。该应用程序在代码中已接入 Prometheus Go 客户端,因此可以直接暴露指标,无需使用导出器 (Exporter)。
准备工作
-
您需要创建一个企业空间、一个项目和一个帐户。有关更多信息,请参见创建企业空间、项目、帐户和角色。该帐户需要是平台普通用户,邀请至该企业空间中并赋予
self-provisioner
角色。故请创建一个workspace-self-provisioner
帐户,赋予self-provisioner
角色,并使用该帐户创建一个项目(例如test
)。在本教程中,您以workspace-self-provisioner
身份登录控制台,并在demo-workspace
企业空间的test
项目中进行操作。 -
了解 Helm Chart 和 PromQL。
动手实验
步骤 1:准备示例 Web 应用程序的镜像
示例 Web 应用程序暴露一个名为 myapp_processed_ops_total
的用户定义指标。这是一个计数器型指标,计算已处理操作的数量。计数器每 2 秒自动增加 1。
该示例应用程序通过 Endpoint http://localhost:2112/metrics
暴露应用具体指标。
在本教程中,您可以使用现成的镜像 kubespheredev/promethues-example-app
。源代码请见 kubesphere/prometheus-example-app。您也可以按照 Prometheus 官方文档 Instrument A Go Application For Prometheus 进行操作。
步骤 2:将应用程序打包成 Helm Chart
将部署、服务和 ServiceMonitor 的 YAML 模板打包成一个 Helm Chart 用来复用。在部署和服务模板中,您可以为指标 Endpoint 定义示例 Web 容器和端口。ServiceMonitor 是由 Prometheus Operator 定义和使用的自定义资源,它连接您的应用程序和 KubeSphere 监控引擎 (Prometheus),以便监控引擎知道抓取指标的位置和方式。KubeSphere 在未来发布版本中将提供易于操作的图形用户界面。
源代码请见 kubesphere/prometheus-example-app 的 helm
文件夹。Helm Chart 包已准备完成并命名为 prometheus-example-app-0.1.0.tgz
。请下载该 .tgz 文件,用于下面的步骤。
步骤 3:上传 Helm Chart
-
在
demo-workspace
企业空间的概览页面上转到应用模板。 -
点击创建,上传
prometheus-example-app-0.1.0.tgz
作为镜像,如下所示。
步骤 4:部署示例 Web 应用程序
您需要将示例 Web 应用程序部署至 test
项目,可以简单运行一个测试部署用于演示。
-
点击
prometheus-example-app
。 -
展开菜单,点击测试部署。
-
请确保将示例 Web 应用程序部署至
test
项目,点击下一步。 -
请确保将
serviceMonitor.enabled
设置为true
,点击部署。 -
在
test
项目的工作负载下,稍等片刻待示例 Web 应用程序启动并运行。
步骤 5:创建监控面板
该部分演示如何从零创建监控面板。您需要创建一个显示已处理操作总数的文本图表和一个显示操作率的折线图。
-
转到自定义监控,点击创建。
-
设置名称(例如
sample-web
),点击创建。 -
在左上角输入标题(例如
示例 Web 概览
)。 -
点击左列的加号图标,创建文本图表。
-
在监控指标字段输入 PromQL 表达式
myapp_processed_ops_total
,并设置图表名称(例如操作数
)。点击右下角的 √ 继续。 -
点击添加监控项,创建折线图。
-
在监控指标中输入 PromQL 表达式
irate(myapp_processed_ops_total[3m])
并将图表命名为操作率
。要改进外观,可以将图例名称设置为{{service}}
。它会用图例标签service
的值命名每一段折线。然后将精确位设置为2
,以便将结果保留两位小数。 -
点击保存模板进行保存。