Metrics

Observing Dapr metrics in Kubernetes

Dapr exposes a Prometheus metrics endpoint that you can scrape to:

  • Gain a greater understanding of how Dapr is behaving.
  • Set up alerts for specific conditions.

Configuration

The metrics endpoint is enabled by default. You can disable it by passing the command line argument --enable-metrics=false to Dapr system processes.

The default metrics port is 9090. You can override this by passing the command line argument --metrics-port to Daprd.

You can also disable the metrics exporter for a specific application by setting the dapr.io/enable-metrics: "false" annotation to your application deployment. With the metrics exporter disabled, daprd will not open the metrics listening port.

The follow example shows metrics are explicitly enabled with the port specified as “9090”.

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: nodeapp
  5. labels:
  6. app: node
  7. spec:
  8. replicas: 1
  9. selector:
  10. matchLabels:
  11. app: node
  12. template:
  13. metadata:
  14. labels:
  15. app: node
  16. annotations:
  17. dapr.io/enabled: "true"
  18. dapr.io/app-id: "nodeapp"
  19. dapr.io/app-port: "3000"
  20. dapr.io/enable-metrics: "true"
  21. dapr.io/metrics-port: "9090"
  22. spec:
  23. containers:
  24. - name: node
  25. image: dapriosamples/hello-k8s-node:latest
  26. ports:
  27. - containerPort: 3000
  28. imagePullPolicy: Always

To disable the metrics collection in the Dapr side cars running in a specific namespace:

  • Use the metrics spec configuration.
  • Set enabled: false to disable the metrics in the Dapr runtime.
  1. apiVersion: dapr.io/v1alpha1
  2. kind: Configuration
  3. metadata:
  4. name: tracing
  5. namespace: default
  6. spec:
  7. tracing:
  8. samplingRate: "1"
  9. metrics:
  10. enabled: false

Metrics

By default, each Dapr system process emits Go runtime/process metrics and have their own metrics:

References

Last modified May 18, 2022: Upmerge of v1.7 into v1.8 20220518 (#2446) (e1f6e886)