首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seldon:如何使用我自己的Grafana和Prometheus实例?

Seldon:如何使用我自己的Grafana和Prometheus实例?
EN

Stack Overflow用户
提问于 2021-01-30 06:16:32
回答 2查看 1K关注 0票数 5

我想使用监视命名空间中已经存在的Prometheus和Grafana实例来模拟seldon-core-analytics正在做的事情。我使用prometheus社区图表并在k8s上安装了k8s。以下是我迄今所做的工作:

values.yaml文件中,在prometheus配置下,我添加了以下注释:

代码语言:javascript
复制
annotations:
  prometheus.io/scrape: "true"
  prometheus.io/path: "/prometheus

接下来,我查看了它们的Github中的prometheus-config.yaml,并将配置复制并粘贴到configmap文件中。

另外,创建了一个ServiceMonitor

代码语言:javascript
复制
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部署的模型中收集和可视化度量,我还需要做什么其他配置呢?这些文档并没有真正解释如何在您自己的实例上这样做,而且它们通过seldon-core-analytics提供给您的实例还没有准备好生产。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-02 20:02:39

seldon-core-analytics中的Prometheus配置是相当标准的。它基于内置的Kubernetes服务发现,并使用注释查找刮取目标:

代码语言:javascript
复制
annotations:
  prometheus.io/scrape: true
  prometheus.io/path: /metrics
  prometheus.io/scheme: http
  prometheus.io/port: 9100

它们的示例配置中,prometheus将以豆荚、服务和端点为目标,并对其进行prometheus.io/scrape: true注释。其他三个标签用于覆盖每个目标的默认刮取参数。因此,如果您有一个配置(如本例中所示),您只需将这些注释中的一些放在荚上即可。

kube-prometheus-stack的工作方式是不同的。它使用普罗米修斯算子和CRD来塑造配置。设计文档描述了每个CRD的用途。

您需要创建一个ServiceMonitor资源,以便为新服务定义一个刮取规则。ServiceMonitor本身应该有serviceMonitorSelector键下的prometheus (另一个CRD)中定义的标签。在这种情况下很难为您提供一个工作示例,但是简短的指南应该足以理解该做什么。

我建议您描述一下您所拥有的ServiceMonitor之一,然后在matchLabels下创建一个新的标签。不要更改新对象中的命名空间,默认情况下,prometheus运算符不会在其他命名空间中查找ServiceMonitor。要使ServiceMonitor在所有命名空间中发现目标,namespaceSelector必须为空:

代码语言:javascript
复制
spec:
  namespaceSelector:
    any: true
票数 2
EN

Stack Overflow用户

发布于 2021-02-08 21:40:50

ServiceMonitors很难调试。我的调试策略是:-

  1. 检查Prometheus是否正在读取创建的ServiceMonitor:-查看/targets URL。(至少应该有一个0/0状态的目标),如果没有,这意味着ServiceMonitor本身不会被prometheus捕获,我建议在您的kube堆栈配置中查看下面的配置。 serviceMonitorSelectorNilUsesHelmValues: false serviceMonitorSelector:{} serviceMonitorNamespaceSelector:{} 默认的ServiceMonitor附带了Helm元数据,Prometheus操作符使用该元数据来筛选/选择要监视的ServiceMonitors。设置serviceMonitorSelectorNilUsesHelmValues:false将忽略任何此类选择。
  2. 如果ServiceMonitor在目标中可见,但没有目标。:-在本例中,如果您提到的端口是可访问的,并且豆荚满足上述选择器,那么问题就在ServiceMonitor和它正在尝试的豆荚之间。

我的建议是启动另一个虚拟ServiceMonitor,方法是跟踪,然后一步一步地修改ServiceMonitor,直到它开始监视seldon-core-analytics

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65965188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档