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: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: myapp
spec:
selector:
app: myapp
ports:
- name: http
port: 80
targetPort: 8080
创建一个ServiceMonitor来告诉Prometheus监控哪些服务
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
labels:
app: myapp
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: http
interval: 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]))
您可以将此查询复制到Prometheus Web UI的查询框中,并点击“Execute”按钮来运行查询。Prometheus将返回一个时间序列图形,显示myapp服务的HTTP请求数的时间趋势。
还有许多其他的PromQL查询,您可以使用它们从Prometheus中提取指标数据并进行可视化。可以查阅Prometheus官方文档以获取更多信息。