跳到内容

在 Knative 中收集指标

Knative 利用 OpenTelemetry 导出指标。我们目前支持以下导出协议:

您还可以设置 OpenTelemetry Collector 以接收来自 Knative 组件的指标,并将其分发到支持 OpenTelemetry 的其他指标提供商。

注意

以下监控设置仅用于说明目的。支持为尽力而为,欢迎在 Knative 监控仓库中进行更改。默认情况下,指标导出是关闭的。

关于 Prometheus 堆栈

Prometheus 是一个用于收集、聚合时间序列指标和警报的开源工具。当使用 Prometheus 时,它还可以用于抓取下面演示的 OpenTelemetry Collector。

Grafana 是一个用于数据分析和可视化的开源平台,使用户能够创建可定制的控制面板,用于监控和分析来自各种数据源的指标。

Prometheus Stack 是预配置的 Kubernetes 清单、Grafana 控制面板和 Prometheus 规则的集合,结合起来使用 Prometheus Operator 提供端到端的 Kubernetes 集群监控。该堆栈默认包含一些 Prometheus 包和 Grafana。

设置 Prometheus 堆栈

  1. 使用 Helm 安装 Prometheus Stack

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    helm install knative prometheus-community/kube-prometheus-stack \
      --create-namespace \
      --namespace observability \
      -f https://raw.githubusercontent.com/knative-extensions/monitoring/main/promstack-values.yaml
    

本地访问 Prometheus 实例

默认情况下,Prometheus 实例仅通过名为 prometheus-operated 的私有服务公开。

要在您的网络浏览器中访问控制台

  1. 输入命令

    kubectl port-forward -n observability svc/prometheus-operated 9090:9090
    
  2. 通过 https://:9090 在浏览器中访问控制台。

本地访问 Grafana 实例

默认情况下,Grafana 实例仅通过名为 prometheus-grafana 的私有服务公开。

要在您的网络浏览器中访问控制面板

  1. 输入命令

    kubectl port-forward -n observability svc/knative-grafana 3000:80
    
  2. 通过 https://:3000 在浏览器中访问控制面板。

  3. 使用默认凭据登录

    username: admin
    password: prom-operator
    

启用指标收集

  1. 要启用 prometheus 指标收集,您需要更新 config-observability ConfigMap 并将 metrics-protocol 设置为 prometheus。对于请求指标,我们建议设置将指标推送到 prometheus。这需要启用 Prometheus OLTP 接收器。这已在我们的监控示例中配置。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-observability
      namespace: knative-serving
    data:
      # metrics-protocol field specifies the protocol used when exporting metrics
      # It supports either 'none' (the default), 'prometheus', 'http/protobuf' (OTLP HTTP), 'grpc' (OTLP gRPC)
      metrics-protocol: prometheus
    
      # request-metrics-protocol
      request-metrics-protocol: http/protobuf
      request-metrics-endpoint: http://knative-kube-prometheus-st-prometheus.observability.svc:9090/api/v1/otlp/v1/metrics
    
      tracing-protocol:      http/protobuf
      tracing-endpoint:      http://jaeger-collector.observability.svc:4318/v1/traces
      tracing-sampling-rate: "1"
    
  2. 应用 ServiceMonitors/PodMonitors 以从 Knative Serving 控制平面收集指标。

    kubectl apply -f https://raw.githubusercontent.com/knative-extensions/monitoring/main/config/serving-monitors.yaml
    

导入 Grafana 控制面板

  1. Grafana 控制面板可以从 monitoring 仓库导入。

  2. 如果您正在使用带有仪表板边车(默认启用)的 Grafana Helm Chart,您可以通过应用以下 ConfigMap 来加载仪表板。

    kubectl apply -f https://raw.githubusercontent.com/knative-extensions/monitoring/main/config/configmap-serving-dashboard.json
    

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。