kubernetes - Seldon:如何使用我自己的 Grafana 和 Prometheus 实例?
问题描述
我想在监控命名空间中使用我已经存在的 Prometheus 和 Grafana 实例来模拟seldon-core-analytics
正在做的事情。我正在使用 prometheus 社区 helm 图表并安装kube-prometheus-stack
在 k8s 上。这是我到目前为止所做的:
在values.yaml
文件中,在 prometheus 配置下,我添加了以下注释:
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/prometheus
接下来,我查看了prometheus-config.yaml
他们的 Github 存储库中的配置,并将配置复制并粘贴到 configmap 文件中。
此外,创建了一个 ServiceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: seldon-servicemonitor-default
labels:
seldon-monitor: seldon-default
namespace: monitoring
spec:
selector:
matchLabels:
app.kubernetes.io/managed-by: seldon-core
endpoints:
- interval: 15s
path: /metrics
port: http
- interval: 15s
path: /prometheus
port: http
namespaceSelector:
matchNames:
- seldon
- default
- monitoring
到目前为止,上述步骤没有错误,但似乎 prometheus 实例无法从我部署在不同命名空间上的模型中抓取指标。我还需要进行哪些其他配置,以便我自己的 Prometheus 和 Grafana 实例可以从我很少部署的模型中收集和可视化指标?该文档并没有真正解释如何在您自己的实例上执行此操作,而且他们提供给您的实例seldon-core-analytics
还没有准备好生产。
解决方案
ServiceMonitor 非常难以调试。我的调试策略是:-
检查 Prometheus 是否正在读取创建的 ServiceMonitor:- 查看 /targets URL。(至少应该有一个处于 0/0 状态的目标)如果没有,这意味着 ServiceMonitor 本身没有被 Prometheus 拾取。我建议在您的 kube-prometheus-stack 配置中查看以下配置。
serviceMonitorSelectorNilUsesHelmValues: false serviceMonitorSelector: {} serviceMonitorNamespaceSelector: {}
默认的 ServiceMonitor 附加了 Helm 元数据,Prometheus Operator 使用它来过滤/选择要监控的 ServiceMonitor。设置
serviceMonitorSelectorNilUsesHelmValues:false
将忽略任何此类选择。如果 ServiceMonitor 在目标中可见但没有目标。:- 在这种情况下,问题出在 ServiceMonitor 和它试图抓取的 pod 之间。检查您提到的端口是否可访问并且 pod 是否满足提到的选择器。
我的建议是按照这个启动另一个虚拟 ServiceMonitor ,然后一次修改 ServiceMonitor 直到它开始监视seldon-core-analytics
Pod
推荐阅读
- dm-script - 如何在 DM 脚本中的 Gatan Digital Micrograph (GMS) 中从自动保存中排除某些图像
- python - 如何在另一个文件中的 tkinter 中打开多个窗口?
- java - 在数字猜谜游戏中,我如何以及在哪里尝试只输入数字?
- angular - 如何解决 Angular 中 ngModel 和 formControlName 的问题
- java - 当我只有原始签名(R,S)和原始公钥点(Qx,Qy)时,ECDSA如何验证Java中的数据块
- google-api - 尝试刷新令牌时出现 python 错误的 Google API
- react-native - 将手机和电脑连接到 VPN,然后使用 expo
- r - Rcpp中字符串与单个值的向量化比较
- c# - 如何使用 c# 使用 ssh 隧道连接到远程 mysql 数据库
- arrays - 如何在少数数组为空的情况下返回所有数组值