通过Prometheus使用
本章节指导用户安装部署Prometheus相关软件,并通过Prometheus查看资源监测的相关数据信息,数据信息的相关说明可参见Prometheus Metrics接口章节。
对接方式
- 直接对接Prometheus:NPU Exporter可以直接将NPU设备的数据信息导入到Prometheus中,无需额外的中间件或代理,架构更加简单。
- 通过prometheus-operator对接Prometheus:NPU Exporter通过prometheus-operator插件对接Prometheus,帮助用户快速、简便地实现Prometheus服务的平台化,提高监测系统的可靠性和可维护性。
直接对接Prometheus
- 从MindXDL-deploy仓库中获取prometheus.yaml文件,在任意节点执行以下命令获取镜像。
docker pull prom/prometheus:v2.10.0
- 获取镜像前,请确保能够正常访问互联网。
- 若不使用集群调度提供的prometheus.yaml,需要参考该yaml在相应位置加上app: prometheus字段,否则可能出现NPU Exporter连接超时。
- prometheus.yaml已经默认包含获取NPU-Exporter metrics的相关的配置文件,用户可以根据需求自行修改相应的配置。以下加粗部分为获取的NPU-Exporter metrics的相关配置。
... apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config namespace: kube-system data: prometheus.yml: | global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: ... - job_name: 'kubernetes-npu-exporter' kubernetes_sd_configs: - role: pod scheme: http relabel_configs: - action: keep source_labels: [__meta_kubernetes_namespace] regex: npu-exporter - source_labels: [__meta_kubernetes_pod_node_name] target_label: job replacement: ${1} ...
- 执行以下命令,给管理节点打标签。
kubectl label nodes <管理节点Hostname> masterselector=dls-master-node --overwrite=true
- 将“prometheus.yaml”上传至步骤1节点的任意路径下。
- 在“prometheus.yaml”存放路径,执行以下命令,安装Prometheus服务。
kubectl apply -f prometheus.yaml
回显如下,表示安装成功。
1 2 3 4 5 6 7
[root@centos check_env]# kubectl apply -f promethues.yaml clusterrole.rbac.authorization.k8s.io/prometheus created serviceaccount/prometheus created clusterrolebinding.rbac.authorization.k8s.io/prometheus created service/prometheus created deployment.apps/prometheus created configmap/prometheus-config created
- 执行以下命令,查看Prometheus是否启动成功。
kubectl get pods --all-namespaces | grep prometheus
回显示例如下,出现Running状态表示Prometheus启动成功。
1
kube-system prometheus-58c69548b4-rhxsc 1/1 Running 0 6d14h
- 登录Prometheus服务,查看监测的数据信息。
- 打开浏览器。
- 在浏览器中输入“http://管理节点IP地址:端口号”并按“Enter”。
在prometheus.yaml文件中找到nodePort字段,该字段的值为Prometheus服务的端口号,默认为30003。
- 选择NPU的相关标签,查看对应数据信息。
通过prometheus-operator对接Prometheus
- 执行以下命令,获取prometheus-operator插件源码。
git clone https://github.com/prometheus-operator/kube-prometheus.git
- 安装prometheus-operator插件。
- 执行以下命令,安装prometheus-operator。
kubectl create -f manifests/setup/
回显示例如下,表示prometheus-operator安装成功。1 2 3 4 5
namespace/monitoring created ... deployment.apps/prometheus-operator created service/prometheus-operator created serviceaccount/prometheus-operator created
- 执行以下命令,查看prometheus-operator是否启动成功。
kubectl get pod -A -o wide|grep prometheus-operator
回显示例如下,出现Running表示prometheus-operator启动成功。1
monitoring prometheus-operator-7649c7454f-wp84n 2/2 Running 0 58s 192.168.xx.xx node133 <none> <none>
- 执行以下命令,安装prometheus-operator。
- 安装Prometheus。
- 从MindXDL-deploy仓库中获取prometheus.yaml文件并上传至环境任意路径。
- 在“prometheus.yaml”存放路径,执行以下命令,安装Prometheus。
kubectl apply -f prometheus.yaml
回显如下,表示安装成功。
1 2 3 4 5
service/prometheus created prometheus.monitoring.coreos.com/prometheus created serviceaccount/prometheus-service-account created clusterrole.rbac.authorization.k8s.io/prometheus-cluster-role created clusterrolebinding.rbac.authorization.k8s.io/prometheus-cluster-role-binding created
- 执行以下命令,查看Prometheus是否启动成功。
kubectl get pods --all-namespaces | grep prometheus
回显示例如下:
1 2
kube-system prometheus-prometheus-0 2/2 Running 1 3m47s 192.168.xx.xx node133 <none> <none> monitoring prometheus-operator-7649c7454f-wp84n 2/2 Running 0 5m52s 192.168.xx.xx node133 <none> <none>
- NPU Exporter通过prometheus-operator对接Prometheus。
- 获取npu-exporter-svc.yaml和servicemonitor.yaml。
若已经提前安装Prometheus,需要确保servicemonitor.yaml的以下字段,和已经部署的Prometheus中serviceMonitorSelector配置的matchLabels标签一致。
... labels: serviceMonitorSelector: prometheus ...
matchLabels标签可通过执行以下命令进行查询。
kubectl describe pod <pod-name>
- (可选)可根据实际情况修改NPU Exporter的标签,不修改则直接跳过该步骤。
- 在npu-exporter-svc.yaml中,根据实际情况修改标签。
apiVersion: v1 kind: Service metadata: namespace: npu-exporter # 命令空间为npu-exporter name: npu-exporter labels: app: npu-exporter-svc # NPU Exporter service的标签 spec: type: ClusterIP ports: - port: 8082 # NPU Exporter的服务端口号 targetPort: 8082 ...
- 在servicemonitor.yaml中,根据实际情况修改NPU Exporter的标签,并确保修改内容与npu-exporter-svc.yaml中一致。
... spec: endpoints: - interval: 10s targetPort: 8082 # NPU Exporter的服务端口号 path: /metrics namespaceSelector: matchNames: - npu-exporter # 命令空间为npu-exporter selector: matchLabels: app: npu-exporter-svc # NPU Exporter service的标签
- 在npu-exporter-svc.yaml中,根据实际情况修改标签。
- 依次执行以下命令,使用NPU Exporter通过prometheus-operator对接Prometheus。
kubectl apply -f servicemonitor.yaml kubectl apply -f npu-exporter-svc.yaml
- 执行以下命令,查看NPU Exporter对接prometheus-operator是否成功。
kubectl get svc -A|grep npu-exporter
回下示例如下,表示NPU Exporter对接prometheus-operator成功。npu-exporter npu-exporter ClusterIP 10.98.xx.xx <none> 8082/TCP 31s
- 执行以下命令,查看prometheus-operator对接Prometheus是否成功。
kubectl get servicemonitor -A|grep npu-exporter
回下示例如下,表示prometheus-operator对接Prometheus成功。kube-system npu-exporter 55s
- 获取npu-exporter-svc.yaml和servicemonitor.yaml。
- 登录Prometheus服务,查看监测的数据信息。
- 打开浏览器。
- 在浏览器中输入“http://管理节点IP地址:端口号”并按“Enter”。
在prometheus.yaml文件中找到nodePort字段,该字段的值为Prometheus服务的端口号,默认为30003。
- 选择NPU的相关标签,查看对应数据信息。