Menu Close

2.2. 配置 Prometheus 以监控 3scale

您必须使用 Prometheus 自定义资源部署和配置 Prometheus,以启用 3scale 的监控。

注意

确保正确设置了权限,如 Prometheus 文档 所述。

步骤

  1. 根据您要监控集群中的所有资源还是仅 3scale 资源,按如下所示部署 Prometheus 自定义资源:

    • 要监控集群中的所有资源,请将 spec.podMonitorSelector 属性设置为 {},并将 spec.ruleSelector 属性设置为 {}。例如,应用以下自定义资源:

      apiVersion: monitoring.coreos.com/v1
      kind: Prometheus
      metadata:
        name: example
      spec:
        podMonitorSelector: {}
        ruleSelector: {}
    • 如果您在同一 OpenShift 项目中部署了 3scale 和 Prometheus operator,并假设 APP_LABEL 的值被设置为默认的 3scale-api-management,请按照以下步骤监控 3scale 资源:

      1. spec.podMonitorSelector 属性设置为:

         podMonitorSelector:
          matchExpressions:
          - key: app
              operator: In
              values:
              - 3scale-api-management
      2. spec.ruleSelector 属性设置为:

           matchExpressions:
           - key: app
             operator: In
             values:
             - 3scale-api-management

        例如,应用以下自定义资源:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        metadata:
          name: example
        spec:
         podMonitorSelector:
          matchExpressions:
          - key: app
              operator: In
              values:
              - 3scale-api-management
         ruleSelector:
           matchExpressions:
           - key: app
             operator: In
             values:
             - 3scale-api-management
    • 如果您在不同的 OpenShift 项目中部署了 3scale 和 Prometheus operator,请按照以下步骤监控 3scale 资源:

      1. 为 OpenShift 项目添加标签,其中 3scale 使用 MYLABELKEY=MYLABELVALUE部署
      2. 使用 podMonitorNamespaceSelector 过滤器选择 3scale pod。例如,应用以下自定义资源:

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        metadata:
          name: example
        spec:
         podMonitorSelector: {}
         ruleSelector: {}
         podMonitorNamespaceSelector:
           matchExpressions:
           - key: MYLABELKEY
             operator: In
             values:
             - MYLABELVALUE
  2. 为确保仪表板和警报按预期工作,您必须执行以下操作之一来包含 Kubernetes 指标 (即 kube-state-metrics ):

    • 将 Prometheus 实例与集群默认 Prometheus 实例相结合。
    • 配置您自己的提取任务,以从 kubelet、etcd 和其它数据获取指标。

其他资源