如何使用Grafana监控指标

在Grafana仪表板中查看Dapr指标的方法。

可用的仪表板


grafana-system-services-dashboard.json模板展示了Dapr系统组件的状态,包括dapr-operator、dapr-sidecar-injector、dapr-sentry和dapr-placement:

系统服务仪表板的截图

grafana-sidecar-dashboard.json模板展示了Dapr sidecar 的状态,包括sidecar 的健康状况/资源使用情况、HTTP和gRPC的吞吐量/延迟、actor、mTLS等:

sidecar仪表板的截图

grafana-actor-dashboard.json模板展示了Dapr sidecar 的状态、actor 调用的吞吐量/延迟、timer/reminder触发器和基于回合的并发性:

actor仪表板的截图

前提条件

在Kubernetes上设置

安装Grafana

  1. 添加Grafana Helm仓库:

    helm repo add grafana https://grafana.github.io/helm-charts
    helm repo update
    
  2. 安装图表:

    helm install grafana grafana/grafana -n dapr-monitoring
    
  3. 获取Grafana登录的管理员密码:

    kubectl get secret --namespace dapr-monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    

    您将看到一个类似于cj3m0OfBNx8SLzUlTx91dEECgzRlYJb60D2evof1%的密码。请去掉密码中的%字符,得到cj3m0OfBNx8SLzUlTx91dEECgzRlYJb60D2evof1作为管理员密码。

  4. 检查Grafana是否在您的集群中运行:

    kubectl get pods -n dapr-monitoring
    
    NAME                                                READY   STATUS       RESTARTS   AGE
    dapr-prom-kube-state-metrics-9849d6cc6-t94p8        1/1     Running      0          4m58s
    dapr-prom-prometheus-alertmanager-749cc46f6-9b5t8   2/2     Running      0          4m58s
    dapr-prom-prometheus-node-exporter-5jh8p            1/1     Running      0          4m58s
    dapr-prom-prometheus-node-exporter-88gbg            1/1     Running      0          4m58s
    dapr-prom-prometheus-node-exporter-bjp9f            1/1     Running      0          4m58s
    dapr-prom-prometheus-pushgateway-688665d597-h4xx2   1/1     Running      0          4m58s
    dapr-prom-prometheus-server-694fd8d7c-q5d59         2/2     Running      0          4m58s
    grafana-c49889cff-x56vj                             1/1     Running      0          5m10s
    

配置Prometheus作为数据源

首先,您需要将Prometheus连接为Grafana的数据源。

  1. 端口转发到svc/grafana:

    kubectl port-forward svc/grafana 8080:80 -n dapr-monitoring
    
    Forwarding from 127.0.0.1:8080 -> 3000
    Forwarding from [::1]:8080 -> 3000
    Handling connection for 8080
    Handling connection for 8080
    
  2. 打开浏览器访问http://localhost:8080

  3. 登录Grafana

    • 用户名 = admin
    • 密码 = 上述密码
  4. 选择ConfigurationData Sources

    Grafana添加数据源菜单的截图
  5. 添加Prometheus作为数据源。

    Prometheus添加数据源的截图
  6. 获取您的Prometheus HTTP URL

    Prometheus HTTP URL的格式为http://<prometheus服务端点>.<命名空间>

    首先通过运行以下命令获取Prometheus服务器端点:

    kubectl get svc -n dapr-monitoring
    
    NAME                                 TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)             AGE
    dapr-prom-kube-state-metrics         ClusterIP   10.0.174.177      <none>        8080/TCP            7d9h
    dapr-prom-prometheus-alertmanager    ClusterIP   10.0.255.199      <none>        80/TCP              7d9h
    dapr-prom-prometheus-node-exporter   ClusterIP   None              <none>        9100/TCP            7d9h
    dapr-prom-prometheus-pushgateway     ClusterIP   10.0.190.59       <none>        9091/TCP            7d9h
    dapr-prom-prometheus-server          ClusterIP   10.0.172.191      <none>        80/TCP              7d9h
    elasticsearch-master                 ClusterIP   10.0.36.146       <none>        9200/TCP,9300/TCP   7d10h
    elasticsearch-master-headless        ClusterIP   None              <none>        9200/TCP,9300/TCP   7d10h
    grafana                              ClusterIP   10.0.15.229       <none>        80/TCP              5d5h
    kibana-kibana                        ClusterIP   10.0.188.224      <none>        5601/TCP            7d10h
    

    在本指南中,服务器名称为dapr-prom-prometheus-server,命名空间为dapr-monitoring,因此HTTP URL将是http://dapr-prom-prometheus-server.dapr-monitoring

  7. 填写以下设置:

    • 名称:Dapr
    • HTTP URL:http://dapr-prom-prometheus-server.dapr-monitoring
    • 默认:开启
    • 跳过TLS验证:开启
      • 这是保存和测试配置所必需的
    Prometheus数据源配置的截图
  8. 点击Save & Test按钮以验证连接是否成功。

在Grafana中导入仪表板

  1. 在Grafana主屏幕的左上角,点击“+”选项,然后选择“Import”。

    现在,您可以从发布资产中为您的Dapr版本导入Grafana仪表板模板

    Grafana仪表板上传选项的截图
  2. 找到您导入的仪表板并享受

    Dapr服务仪表板的截图

参考资料

示例