Merge branch 'master' into use-cases

This commit is contained in:
Aaron Schlesinger 2020-04-02 12:23:48 -07:00 committed by GitHub
commit cd4eedf4e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1227 additions and 1184 deletions

View File

@ -29,6 +29,7 @@ Dapr is currently under community development in preview phase and master branch
| Version | Repo |
|:-------:|:----:|
| v0.6.0 | [Docs](https://github.com/dapr/docs/tree/v0.6.0) - [Runtime](https://github.com/dapr/dapr/tree/v0.6.0) - [CLI](https://github.com/dapr/cli/tree/release-0.6)
| v0.5.0 | [Docs](https://github.com/dapr/docs/tree/v0.5.0) - [Runtime](https://github.com/dapr/dapr/tree/v0.5.0) - [CLI](https://github.com/dapr/cli/tree/release-0.5)
| v0.4.0 | [Docs](https://github.com/dapr/docs/tree/v0.4.0) - [Runtime](https://github.com/dapr/dapr/tree/v0.4.0) - [CLI](https://github.com/dapr/cli/tree/release-0.4)
| v0.3.0 | [Docs](https://github.com/dapr/docs/tree/v0.3.0) - [Runtime](https://github.com/dapr/dapr/tree/v0.3.0) - [CLI](https://github.com/dapr/cli/tree/release-0.3)

View File

@ -43,6 +43,12 @@ Install the latest darwin Dapr CLI to `/usr/local/bin`
curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash
```
Or install via [Homebrew](https://brew.sh)
```bash
brew install dapr/tap/dapr-cli
```
### From the Binary Releases
Each release of Dapr CLI includes various OSes and architectures. These binary versions can be manually downloaded and installed.

View File

@ -1,4 +1,4 @@
# Set up Fleuntd, Elastic search, and Kibana in Kubernetes
# Set up Fluentd, Elastic search, and Kibana in Kubernetes
This document descriebs how to install Fluentd, Elastic Search, and Kibana to search logs in Kubernetes
@ -32,6 +32,14 @@ helm repo update
3. Install Elastic Search using Helm
By default the chart creates 3 replicas which must be on different nodes. If your cluster has less than 3 nodes, specify a lower number of replicas. For example, this sets it to 1:
```
helm install elasticsearch elastic/elasticsearch -n dapr-monitoring --set replicas=1
```
Otherwise:
```bash
helm install elasticsearch elastic/elasticsearch -n dapr-monitoring
```
@ -62,14 +70,20 @@ kibana-kibana-95bc54b89-zqdrk 1/1 Running 0 4m21s
1. Install config map and Fluentd as a daemonset
> Note: If you are running Fluentd in your cluster, please enable the nested json parser to parse JSON formatted log from Dapr.
Navigate to the following path if you're not already there (the one this document is in):
```
docs/howto/setup-monitoring-tools
```
> Note: If you already have Fluentd running in your cluster, please enable the nested json parser to parse JSON formatted log from Dapr.
```bash
kubectl apply -f ./fluentd-config-map.yaml
kubectl apply -f ./fluentd-dapr-with-rbac.yaml
```
2. Ensure that Fluentd is running as a daemonset
2. Ensure that Fluentd is running as a daemonset; the number of instances should be the same as the number of cluster nodes. In the example below we only have 1 node.
```bash
kubectl get pods -n kube-system -w
@ -86,6 +100,8 @@ fluentd-sdrld 1/1 Running 0 14s
1. Install Dapr with enabling JSON-formatted logs
```bash
helm repo add dapr https://daprio.azurecr.io/helm/v1/repo
helm repo update
helm install dapr dapr/dapr --namespace dapr-system --set global.logAsJson=true
```

View File

@ -24,6 +24,8 @@ kubectl create namespace dapr-monitoring
2. Install Prometheus
```bash
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo update
helm install dapr-prom stable/prometheus -n dapr-monitoring
```
@ -50,7 +52,7 @@ helm install grafana stable/grafana -n dapr-monitoring --set persistence.enabled
> Note: remove `%` character from the password that this command returns. The admin password is `cj3m0OfBNx8SLzUlTx91dEECgzRlYJb60D2evof1`.
```
kubernetes get secret --namespace dapr-monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode
kubectl get secret --namespace dapr-monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode
cj3m0OfBNx8SLzUlTx91dEECgzRlYJb60D2evof1%
```
@ -129,9 +131,9 @@ So you need to set up Prometheus data source with the below settings:
8. Import Dapr dashboards.
You can now import built-in [Grafana dashboard templates](../../reference/dashboard/README.md).
In the upper left, click the "+" then "Import".
Refer [here](../../reference/dashboard/README.md) for details.
You can now import built-in [Grafana dashboard templates](../../reference/dashboard/README.md). Please see the link for the templates.
![upload json](./img/grafana-uploadjson.png)

View File

@ -17,8 +17,8 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 2,
"iteration": 1584033425621,
"id": 15,
"iteration": 1585841779452,
"links": [],
"panels": [
{
@ -157,8 +157,8 @@
"steppedLine": false,
"targets": [
{
"expr": "sum(rate(container_cpu_usage_seconds_total{pod=~\"($dapr_app_id).*\", namespace=\"$namespace\"}[5m])) by (pod)",
"legendFormat": "{{pod}}",
"expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"($dapr_app_id).*\", namespace=\"$namespace\"}[5m])) by (pod_name)",
"legendFormat": "{{pod_name}}",
"refId": "A"
}
],
@ -244,7 +244,7 @@
"steppedLine": false,
"targets": [
{
"expr": "max(go_goroutines{kubernetes_name=~\"($dapr_app_id)-dapr\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"expr": "sum(go_goroutines{kubernetes_name=~\"($dapr_app_id)-dapr.*\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"legendFormat": "{{kubernetes_name}}",
"refId": "A"
}
@ -332,7 +332,7 @@
"steppedLine": false,
"targets": [
{
"expr": "max(process_resident_memory_bytes{kubernetes_name=~\"($dapr_app_id)-dapr\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"expr": "sum(process_resident_memory_bytes{kubernetes_name=~\"($dapr_app_id)-dapr\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"legendFormat": "{{kubernetes_name}}",
"refId": "A"
}
@ -420,7 +420,7 @@
"steppedLine": false,
"targets": [
{
"expr": "max(process_virtual_memory_bytes{kubernetes_name=~\"($dapr_app_id)-dapr\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"expr": "sum(process_virtual_memory_bytes{kubernetes_name=~\"($dapr_app_id)-dapr\", kubernetes_namespace=\"$namespace\"}) by (kubernetes_name)",
"legendFormat": "{{kubernetes_name}}",
"refId": "A"
}
@ -468,7 +468,7 @@
}
},
{
"collapsed": false,
"collapsed": true,
"datasource": null,
"gridPos": {
"h": 1,
@ -477,10 +477,7 @@
"y": 14
},
"id": 21,
"panels": [],
"title": "Throughput/Latency - HTTP",
"type": "row"
},
"panels": [
{
"aliasColors": {},
"bars": false,
@ -494,7 +491,7 @@
"h": 8,
"w": 12,
"x": 0,
"y": 15
"y": 7
},
"hiddenSeries": false,
"id": 19,
@ -596,7 +593,7 @@
"h": 8,
"w": 12,
"x": 12,
"y": 15
"y": 7
},
"hiddenSeries": false,
"id": 31,
@ -691,7 +688,7 @@
"h": 8,
"w": 12,
"x": 0,
"y": 23
"y": 15
},
"hiddenSeries": false,
"id": 18,
@ -792,7 +789,7 @@
"h": 8,
"w": 12,
"x": 12,
"y": 23
"y": 15
},
"hiddenSeries": false,
"id": 32,
@ -873,6 +870,10 @@
"align": false,
"alignLevel": null
}
}
],
"title": "Throughput/Latency - HTTP",
"type": "row"
},
{
"collapsed": true,
@ -881,7 +882,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 31
"y": 15
},
"id": 34,
"panels": [
@ -891,14 +892,14 @@
"dashLength": 10,
"dashes": false,
"datasource": "Dapr",
"description": "",
"description": "This charts shows the turn-around latency when user app calls Dapr API. For example, you can understand each statestore and service invocation performance.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 32
"y": 8
},
"hiddenSeries": false,
"id": 36,
@ -927,13 +928,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.95, sum(rate(dapr_grpc_io_client_roundtrip_latency_bucket{app_id=~\"$dapr_app_id\", grpc_client_method=~\"dapr.Dapr/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_client_method))",
"legendFormat": "[95p] - {{grpc_client_method}} ({{app_id}})",
"expr": "histogram_quantile(0.95, sum(rate(dapr_grpc_io_server_server_latency_bucket{app_id=~\"$dapr_app_id\", grpc_server_method=~\"dapr.Dapr/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_server_method))",
"legendFormat": "[95p] - {{grpc_server_method}} ({{app_id}})",
"refId": "A"
},
{
"expr": "histogram_quantile(0.75, sum(rate(dapr_grpc_io_client_roundtrip_latency_bucket{app_id=~\"$dapr_app_id\", grpc_client_method=~\"dapr.Dapr/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_client_method))",
"legendFormat": "[75p] {{grpc_client_method}} ({{app_id}})",
"expr": "histogram_quantile(0.75, sum(rate(dapr_grpc_io_server_server_latency_bucket{app_id=~\"$dapr_app_id\", grpc_server_method=~\"dapr.Dapr/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_server_method))",
"legendFormat": "[75p] {{grpc_server_method}} ({{app_id}})",
"refId": "B"
}
],
@ -984,14 +985,14 @@
"dashLength": 10,
"dashes": false,
"datasource": "Dapr",
"description": "",
"description": "This charts shows completed request rate (rps) when User app calls Dapr.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 32
"y": 8
},
"hiddenSeries": false,
"id": 38,
@ -1020,8 +1021,8 @@
"steppedLine": false,
"targets": [
{
"expr": "sum by (app_id, grpc_client_method, grpc_client_status) (rate(dapr_grpc_io_client_completed_rpcs{app_id=~\"$dapr_app_id\", grpc_client_method=~\"dapr.Dapr/.*\"}[5m]))",
"legendFormat": "{{grpc_client_status}} {{grpc_client_method}} ({{app_id}})",
"expr": "sum by (app_id, grpc_server_method, grpc_server_status) (rate(dapr_grpc_io_server_completed_rpcs{app_id=~\"$dapr_app_id\", grpc_server_method=~\"dapr.Dapr/.*\"}[5m]))",
"legendFormat": "{{grpc_server_status}} {{grpc_server_method}} ({{app_id}})",
"refId": "B"
}
],
@ -1072,14 +1073,14 @@
"dashLength": 10,
"dashes": false,
"datasource": "Dapr",
"description": "",
"description": "This charts shows the inbound request latency from Dapr to App. You can analyze App's API endpoint performance.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 40
"y": 16
},
"hiddenSeries": false,
"id": 40,
@ -1108,13 +1109,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.95, sum(rate(dapr_grpc_io_server_server_latency_bucket{app_id=~\"$dapr_app_id\", grpc_server_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_server_method))",
"legendFormat": "[95p] {{grpc_server_method}} ({{app_id}})",
"expr": "histogram_quantile(0.95, sum(rate(dapr_grpc_io_client_roundtrip_latency_bucket{app_id=~\"$dapr_app_id\", grpc_client_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_client_method))",
"legendFormat": "[95p] {{grpc_client_method}} ({{app_id}})",
"refId": "A"
},
{
"expr": "histogram_quantile(0.75, sum(rate(dapr_grpc_io_server_server_latency_bucket{app_id=~\"$dapr_app_id\", grpc_server_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_server_method))",
"legendFormat": "[75p] {{grpc_server_method}} ({{app_id}})",
"expr": "histogram_quantile(0.75, sum(rate(dapr_grpc_io_client_roundtrip_latency_bucket{app_id=~\"$dapr_app_id\", grpc_client_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m])) by (le, app_id, grpc_client_method))",
"legendFormat": "[75p] {{grpc_client_method}} ({{app_id}})",
"refId": "B"
}
],
@ -1172,7 +1173,7 @@
"h": 8,
"w": 12,
"x": 12,
"y": 40
"y": 16
},
"hiddenSeries": false,
"id": 42,
@ -1201,8 +1202,8 @@
"steppedLine": false,
"targets": [
{
"expr": "sum by (app_id, grpc_server_method, grpc_server_status) (rate(dapr_grpc_io_server_completed_rpcs{app_id=~\"$dapr_app_id\", grpc_server_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m]))",
"legendFormat": "{{grpc_server_status}} {{grpc_server_method}} ({{app_id}})",
"expr": "sum by (app_id, grpc_client_method, grpc_client_status) (rate(dapr_grpc_io_client_roundtrip_latency_bucket{app_id=~\"$dapr_app_id\", grpc_client_method=~\"daprclient.DaprClient/.*\", kubernetes_namespace=\"$namespace\"}[5m]))",
"legendFormat": "{{grpc_client_status}} {{grpc_client_method}} ({{app_id}})",
"refId": "B"
}
],
@ -1252,27 +1253,24 @@
"type": "row"
},
{
"collapsed": false,
"collapsed": true,
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 32
"y": 16
},
"id": 52,
"panels": [],
"title": "Components",
"type": "row"
},
"panels": [
{
"datasource": null,
"description": "",
"description": "This shows the number of configured components. For example, it will shows \"2\" if you configure redis statestore and redis pubsub components. ",
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 33
"y": 9
},
"id": 56,
"options": {
@ -1320,11 +1318,12 @@
{
"cacheTimeout": null,
"datasource": null,
"description": "This shows the number of initialized components. This number must be the same as loaded components. Otherwise, Daprd fails to initialize some of components.",
"gridPos": {
"h": 8,
"w": 6,
"x": 6,
"y": 33
"y": 9
},
"id": 54,
"links": [],
@ -1386,13 +1385,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This chart shows the number component initialization failures with the reasons.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 33
"y": 9
},
"hiddenSeries": false,
"id": 58,
@ -1467,34 +1467,36 @@
"align": false,
"alignLevel": null
}
}
],
"title": "Components",
"type": "row"
},
{
"collapsed": false,
"collapsed": true,
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 41
"y": 17
},
"id": 44,
"panels": [],
"title": "Actor",
"type": "row"
},
"panels": [
{
"aliasColors": {},
"bars": true,
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This chart shows how many actors are activated.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 8,
"x": 0,
"y": 42
"y": 10
},
"hiddenSeries": false,
"id": 64,
@ -1523,12 +1525,12 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_actor_activated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (actor_type) -1",
"expr": "dapr_runtime_actor_activated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}",
"legendFormat": "OK {{actor_type}}",
"refId": "A"
},
{
"expr": "count (rate(dapr_runtime_actor_activated_failed_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (actor_type) -1",
"expr": "dapr_runtime_actor_activated_failed_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}",
"legendFormat": "Error {{actor_type}}",
"refId": "C"
}
@ -1580,13 +1582,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This chart shows how many actors are deactivated.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 8,
"x": 8,
"y": 42
"y": 10
},
"hiddenSeries": false,
"id": 65,
@ -1615,12 +1618,12 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_actor_deactivated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (actor_type) -1",
"expr": "dapr_runtime_actor_deactivated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}",
"legendFormat": "OK {{actor_type}}",
"refId": "A"
},
{
"expr": "count (rate(dapr_runtime_actor_deactivated_failed_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (actor_type) -1",
"expr": "dapr_runtime_actor_deactivated_failed_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}",
"legendFormat": "Error {{actor_type}}",
"refId": "C"
}
@ -1672,13 +1675,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This shows when actor is rebalanced. This operation can make the activated actors deactivated and move actor to the other hosts.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 42
"y": 10
},
"hiddenSeries": false,
"id": 63,
@ -1707,7 +1711,7 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_actor_rebalanced_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id) -1",
"expr": "dapr_runtime_actor_rebalanced_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}",
"intervalFactor": 1,
"legendFormat": "{{app_id}}",
"refId": "B"
@ -1760,13 +1764,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This shows when Daprd reports host status to placement service. Non-Actor service reports host status in the beginning. Actor service reports host status to placement periodically. If there is a failure, virtual actors will not be distributed properly.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 9,
"x": 0,
"y": 49
"y": 17
},
"hiddenSeries": false,
"id": 46,
@ -1792,15 +1797,15 @@
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"steppedLine": true,
"targets": [
{
"expr": "sum(dapr_runtime_actor_status_report_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}) by (app_id)",
"expr": "rate(dapr_runtime_actor_status_report_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"legendFormat": "OK ({{app_id}})",
"refId": "A"
},
{
"expr": "sum(dapr_runtime_actor_status_report_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}) by (app_id)",
"expr": "rate(dapr_runtime_actor_status_report_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"legendFormat": "Error ({{app_id}})",
"refId": "B"
}
@ -1809,7 +1814,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Report status to placement",
"title": "Status report status",
"tooltip": {
"shared": true,
"sort": 0,
@ -1825,12 +1830,12 @@
},
"yaxes": [
{
"format": "short",
"format": "none",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
},
{
"format": "short",
@ -1838,7 +1843,7 @@
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
}
],
"yaxis": {
@ -1849,11 +1854,12 @@
{
"cacheTimeout": null,
"datasource": null,
"description": "This shows the failures when Daprd reports host status to placement.",
"gridPos": {
"h": 7,
"w": 5,
"x": 9,
"y": 49
"y": 17
},
"id": 59,
"links": [],
@ -1904,13 +1910,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This shows the placement table update status based on the response from placement service. Daprd maintains the actor placement table in its memory. This table is periodically updated.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 10,
"x": 14,
"y": 49
"y": 17
},
"hiddenSeries": false,
"id": 61,
@ -1939,7 +1946,7 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_actor_table_operation_recv_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id, operation) -1",
"expr": "sum(dapr_runtime_actor_table_operation_recv_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}) by (app_id, operation)",
"format": "time_series",
"intervalFactor": 3,
"legendFormat": "{{operation}} ({{app_id}})",
@ -1986,6 +1993,10 @@
"align": false,
"alignLevel": null
}
}
],
"title": "Actor",
"type": "row"
},
{
"collapsed": true,
@ -1994,7 +2005,7 @@
"h": 1,
"w": 24,
"x": 0,
"y": 56
"y": 18
},
"id": 50,
"panels": [
@ -2004,13 +2015,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This chart shows when mTLS is initialized, which means root cert is loaded and workload cert is issued from sentry, when runtime starts.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 7,
"x": 0,
"y": 35
"y": 11
},
"hiddenSeries": false,
"id": 48,
@ -2039,13 +2051,13 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_mtls_init_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id) - 1",
"expr": "rate(dapr_runtime_mtls_init_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"intervalFactor": 2,
"legendFormat": "OK {{app_id}}",
"refId": "A"
},
{
"expr": "count (rate(dapr_runtime_mtls_init_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id) - 1",
"expr": "rate(dapr_runtime_mtls_init_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"intervalFactor": 2,
"legendFormat": "Error {{app_id}}",
"refId": "B"
@ -2055,7 +2067,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "mTLS initialization",
"title": "mTLS initialization status",
"tooltip": {
"shared": true,
"sort": 0,
@ -2076,7 +2088,7 @@
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
},
{
"format": "short",
@ -2084,7 +2096,7 @@
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
}
],
"yaxis": {
@ -2099,7 +2111,7 @@
"h": 8,
"w": 5,
"x": 7,
"y": 35
"y": 11
},
"id": 67,
"links": [],
@ -2150,13 +2162,14 @@
"dashLength": 10,
"dashes": false,
"datasource": null,
"description": "This chart shows when workload certificate is rotated.",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 7,
"x": 12,
"y": 35
"y": 11
},
"hiddenSeries": false,
"id": 66,
@ -2176,6 +2189,7 @@
"dataLinks": []
},
"percentage": false,
"pluginVersion": "6.6.2",
"pointradius": 2,
"points": false,
"renderer": "flot",
@ -2185,13 +2199,15 @@
"steppedLine": false,
"targets": [
{
"expr": "count (rate(dapr_runtime_mtls_workload_cert_rotated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id) - 1",
"expr": "rate(dapr_runtime_mtls_workload_cert_rotated_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"format": "time_series",
"instant": false,
"intervalFactor": 2,
"legendFormat": "OK {{app_id}}",
"refId": "A"
},
{
"expr": "count (rate(dapr_runtime_mtls_workload_cert_rotated_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])) by (app_id) - 1",
"expr": "rate(dapr_runtime_mtls_workload_cert_rotated_fail_total{app_id=~\"$dapr_app_id\", kubernetes_namespace=\"$namespace\"}[5m])",
"intervalFactor": 2,
"legendFormat": "Error {{app_id}}",
"refId": "B"
@ -2201,7 +2217,7 @@
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Workload certificate rotation",
"title": "Workload certificate rotation status",
"tooltip": {
"shared": true,
"sort": 0,
@ -2222,7 +2238,7 @@
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
},
{
"format": "short",
@ -2230,7 +2246,7 @@
"logBase": 1,
"max": null,
"min": null,
"show": true
"show": false
}
],
"yaxis": {
@ -2245,7 +2261,7 @@
"h": 8,
"w": 5,
"x": 19,
"y": 35
"y": 11
},
"id": 68,
"links": [],
@ -2304,9 +2320,8 @@
{
"allValue": null,
"current": {
"selected": true,
"text": "default",
"value": "default"
"text": "longhaul-test",
"value": "longhaul-test"
},
"datasource": "Dapr",
"definition": "label_values(dapr_runtime_component_loaded,kubernetes_namespace)",
@ -2330,9 +2345,12 @@
{
"allValue": null,
"current": {
"text": "",
"text": "feed-generator + hashtag-actor + hashtag-counter + message-analyzer",
"value": [
""
"feed-generator",
"hashtag-actor",
"hashtag-counter",
"message-analyzer"
]
},
"datasource": "Dapr",
@ -2357,7 +2375,7 @@
]
},
"time": {
"from": "now-6h",
"from": "now-3h",
"to": "now"
},
"timepicker": {
@ -2377,5 +2395,5 @@
"timezone": "",
"title": "Dapr Sidecar Dashboard",
"uid": "Ym9RqIuWk",
"version": 2
"version": 39
}