> 文章列表 > Kubernetes(K8s)接入Prometheus示例、查看指标

Kubernetes(K8s)接入Prometheus示例、查看指标

Kubernetes(K8s)接入Prometheus示例、查看指标

Prometheus安装关联服务见:https://blog.csdn.net/lsc_2019/article/details/129445580?spm=1001.2014.3001.5502

在Kubernetes中创建一个Deployment和一个Service

apiVersion: apps/v1
kind: Deployment
metadata:name: myapp
spec:replicas: 3selector:matchLabels:app: myapptemplate:metadata:labels:app: myappspec:containers:- name: myappimage: myapp:latestports:- containerPort: 8080
apiVersion: v1
kind: Service
metadata:name: myapp
spec:selector:app: myappports:- name: httpport: 80targetPort: 8080

创建一个ServiceMonitor来告诉Prometheus监控哪些服务

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:name: myapp-monitorlabels:app: myapp
spec:selector:matchLabels:app: myappendpoints:- port: httpinterval: 30s #每30秒钟采集一次metrics数据

将Prometheus配置为监控该ServiceMonitor

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:name: prometheus
spec:serviceMonitorSelector:matchLabels:app: myapp

现在,Prometheus将监控myapp Deployment中的每个Pod,并将其指标存储在其时间序列数据库中,以便进行可视化和警报。

注意:上述示例需要确保Prometheus和ServiceMonitor资源在同一命名空间中。如果不在同一命名空间中,则需要更改ServiceMonitor的选择器以匹配正确的Pod标签。

查看监控数据

您可以通过Prometheus的Web UI查看监控数据。默认情况下,Prometheus Web UI在端口9090上运行。您可以通过浏览器访问http://:9090来打开Prometheus Web UI。

在Prometheus Web UI中,您可以使用PromQL查询语言来查询和可视化指标数据。例如,以下是一个简单的PromQL查询,用于获取myapp服务的HTTP请求数:

sum(rate(container_cpu_usage_seconds_total{namespace="lsctest"}[1m])) 

Kubernetes(K8s)接入Prometheus示例、查看指标

您可以将此查询复制到Prometheus Web UI的查询框中,并点击“Execute”按钮来运行查询。Prometheus将返回一个时间序列图形,显示myapp服务的HTTP请求数的时间趋势。

还有许多其他的PromQL查询,您可以使用它们从Prometheus中提取指标数据并进行可视化。可以查阅Prometheus官方文档以获取更多信息。