title: Wonderwall editable: true tags: [generated, yaml] auto_refresh: 1m time: ["now-24h", "now"] timezone: default # valid values are: utc, browser, default # Render to JSON using https://github.com/K-Phoen/grabana v0.17.0 or newer # Import into Grafana using UI (remember to select folder) variables: - custom: name: env default: dev values_map: dev: dev prod: prod - query: name: namespace label: Namespace datasource: $env-gcp request: "label_values(kube_pod_container_info{container=\"wonderwall\"}, namespace)" include_all: true default_all: true all_value: ".*" - datasource: name: ds type: prometheus regex: $env-gcp include_all: true hide: variable - query: name: redis_op label: Redis Operation datasource: $env-gcp request: "label_values(wonderwall_redis_latency_bucket, operation)" include_all: true default_all: true hide: variable rows: - name: Versions collapse: false panels: - single_stat: title: Sidecar versions in use datasource: $ds transparent: true span: 12 targets: - prometheus: query: count(label_replace(kube_pod_container_info{container="wonderwall",namespace=~"$namespace"}, "version", "$1", "image", ".*:(.*)")) by (version) legend: "{{ version }}" instant: true - name: Resource usage collapse: false panels: - graph: title: Memory usage - $ds datasource: $ds transparent: true targets: - prometheus: query: sum(container_memory_working_set_bytes{container="wonderwall",namespace=~"$namespace"}) by (pod, namespace) legend: "working set {{ pod }} in {{ namespace }}" - prometheus: query: sum(container_memory_usage_bytes{container="wonderwall",namespace=~"$namespace"}) by (pod, namespace) legend: "Resident set size {{ pod }} in {{ namespace }}" - graph: title: CPU usage - $ds datasource: $ds transparent: true targets: - prometheus: query: sum(irate(container_cpu_usage_seconds_total{container="wonderwall",namespace=~"$namespace"}[2m])) by (pod, namespace) legend: "{{ pod }} in {{ namespace }}" - name: HTTP collapse: false panels: - graph: title: HTTP requests datasource: $ds transparent: true targets: - prometheus: query: sum(rate(requests_total{job="wonderwall",namespace=~"$namespace"}[5m])) by (code) legend: "{{ code }}" - graph: title: HTTP latency datasource: $ds transparent: true targets: - prometheus: query: sum(irate(request_duration_seconds_sum{job="wonderwall",namespace=~"$namespace"}[2m])) by (path) legend: "{{ path }}" - name: Redis Latency collapse: false panels: - heatmap: # Must be done manually in Grafana after import: Set max datapoints to 25 title: $redis_op datasource: $ds repeat: redis_op data_format: time_series_buckets hide_zero_buckets: true transparent: true span: 4 tooltip: show: true showhistogram: false decimals: 0 yaxis: unit: "dtdurations" decimals: 0 targets: - prometheus: query: sum(increase(wonderwall_redis_latency_bucket{operation="$redis_op",namespace=~"$namespace"}[$__interval])) by (le) legend: "{{ le }}" format: heatmap