Knative 可观测性 使用prometheus与grafana监控
2026/8/13大约 4 分钟
Serverless · 第 21 篇
来源课程笔记整理优化;插图已迁入博客静态目录。
Knative 可观测性 使用prometheus与grafana监控
本案例中有负载均衡器:metallb
一、安装helm




本案例通过复制链接下载:
# wget https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz# ls
helm-v3.7.2-linux-amd64.tar.gz# tar xf helm-v3.7.2-linux-amd64.tar.gz# ls
linux-amd64# ls linux-amd64/
helm LICENSE README.md# mv linux-amd64/helm /usr/bin验证
# helm version
version.BuildInfo{Version:"v3.7.2", GitCommit:"663a896f4a815053445eec4153677ddc24a0a361", GitTreeState:"clean", GoVersion:"go1.16.10"}二、通过helm安装prometheus及grafana
2.1 添加helm repo
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts2.2 更新repo
# helm repo update2.3 搜索prometheus
# helm search repo prometheus-community2.4 查看环境变量
# helm env
HELM_BIN="helm"
HELM_CACHE_HOME="/root/.cache/helm"
HELM_CONFIG_HOME="/root/.config/helm"
HELM_DATA_HOME="/root/.local/share/helm"
HELM_DEBUG="false"
HELM_KUBEAPISERVER=""
HELM_KUBEASGROUPS=""
HELM_KUBEASUSER=""
HELM_KUBECAFILE=""
HELM_KUBECONTEXT=""
HELM_KUBETOKEN=""
HELM_MAX_HISTORY="10"
HELM_NAMESPACE="default"
HELM_PLUGINS="/root/.local/share/helm/plugins"
HELM_REGISTRY_CONFIG="/root/.config/helm/registry.json"
HELM_REPOSITORY_CACHE="/root/.cache/helm/repository"
HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"2.5 确保tgz文件可下载
# cat /root/.cache/helm/repository/prometheus-community-index.yaml |grep tgz2.6 安装prometheus
# helm install stable prometheus-community/kube-prometheus-stack2.7 查看部署的资源对象
# kubectl get pods输出结果
NAME READY STATUS RESTARTS AGE
alertmanager-stable-kube-prometheus-sta-alertmanager-0 2/2 Running 0 102m
prometheus-stable-kube-prometheus-sta-prometheus-0 2/2 Running 0 102m
stable-grafana-5677c65c4b-djjl2 3/3 Running 0 102m
stable-kube-prometheus-sta-operator-ccdf775-lg9pz 1/1 Running 0 102m
stable-kube-state-metrics-67997bdf84-p4gwl 1/1 Running 0 102m
stable-prometheus-node-exporter-8r946 1/1 Running 0 102m
stable-prometheus-node-exporter-hwkcn 1/1 Running 0 102m
stable-prometheus-node-exporter-s2jkq 1/1 Running 0 102m# kubectl get svc2.8 编辑资源对象文件修改service暴露模式
# kubectl edit service stable-kube-prometheus-sta-prometheus
修改type为:LoadBalancer# kubectl edit service stable-grafana
修改type为:LoadBalancer# kubectl get svc输出结果:
stable-grafana LoadBalancer 10.98.34.87 192.168.10.201 80:30634/TCP 103m
stable-kube-prometheus-sta-prometheus LoadBalancer 10.108.194.89 192.168.10.200 9090:32112/TCP 103m2.9 通过IP地址访问prometheus

2.10 通过IP地址访问grafana
默认用户名为:admin 密码为:prom-operator

三、收集Knative指标数据
3.1 创建监控器
# kubectl apply -f https://raw.githubusercontent.com/knative-sandbox/monitoring/main/servicemonitor.yamlgrafana仪表盘:https://github.com/knative-sandbox/monitoring/tree/main/grafana









3.2 创建knative service
3.2.1 创建
# kubectl apply -f java-app/# # kubectl get pods
NAME READY STATUS RESTARTS AGE
helloworld-java-spring-00001-deployment-5bcdc9ff89-qdvcj 2/2 Running 0 70s3.2.2 访问

3.3 创建 eventing
可根据前面的eventing应用案例进行创建后监控。四、通过grafana实现数据仪表盘



