From fa63a38b011bcc34007745bf26a84a5ec5b050c7 Mon Sep 17 00:00:00 2001 From: LocKey Date: Fri, 31 Jul 2026 18:54:28 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Redis=20100=20VU=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=20=EC=A7=80=ED=91=9C=20=EA=B8=B0=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/04-experiment.md | 35 + docs/images/redis-100vu-cache-db.png | Bin 0 -> 75967 bytes docs/images/redis-100vu-performance.png | Bin 0 -> 81623 bytes .../dashboards/spring-boot-overview.json | 1610 +++++++++++++++-- 4 files changed, 1478 insertions(+), 167 deletions(-) create mode 100644 docs/images/redis-100vu-cache-db.png create mode 100644 docs/images/redis-100vu-performance.png diff --git a/docs/04-experiment.md b/docs/04-experiment.md index 84bcc9d..e12a34a 100644 --- a/docs/04-experiment.md +++ b/docs/04-experiment.md @@ -195,6 +195,41 @@ Redis 조회 따라서 부하 테스트 구간에서는 대부분의 요청이 MySQL 조회 없이 처리된 것을 확인했다. +### Redis 100 VU 서버 지표 + +애플리케이션과 Redis를 초기화한 뒤 100 VU로 1분간 부하 테스트를 수행했다. + +| 지표 | 결과 | +|---|---:| +| Cache Hit | 859,174 | +| Cache Miss | 1 | +| Cache Hit Ratio | 약 99.9999% | +| DB Lookup | 1 | +| Process CPU 최대 | 약 65% | +| Process CPU 지속 구간 | 약 38~40% | +| JVM Heap 최대 | 약 200MiB | +| JVM Live Threads 최대 | 약 121 | +| HikariCP Pending | 관찰되지 않음 | +| 5xx 오류율 | 0% | + +최초 리다이렉트 요청에서 Cache Miss와 DB 조회가 각각 1회 발생했고, +이후 반복 요청은 Redis Cache Hit로 처리됐다. + +Prometheus 수집 시점에서는 HikariCP 활성 및 대기 연결이 관찰되지 않았다. +다만 최초 DB 조회가 수집 간격 사이에 종료됐을 수 있으므로, +HikariCP 사용이 전혀 없었다고 단정하지 않고 DB Lookup Counter를 기준으로 판단했다. + +부하 구간에서 CPU 사용률과 JVM Live Thread 수가 증가했으며, +Heap은 증가 후 GC 수행에 따라 감소하는 흐름을 보였다. + +\* HikariCP: Spring Boot가 MySQL 연결을 관리하는 커넥션 풀, 미리 DB 연결을 만들어 두고 빌려 쓰는 방식 + +#### Grafana 측정 결과 + +![Redis 100 VU 성능 지표](images/redis-100vu-performance.png) + +![Redis 100 VU 캐시 및 DB 지표](images/redis-100vu-cache-db.png) + ## 12. 결과 분석 Redis 적용 후 모든 VU 구간에서 실패율 0%와 Check 성공률 100%를 유지했다. diff --git a/docs/images/redis-100vu-cache-db.png b/docs/images/redis-100vu-cache-db.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbdefdf7bbef5c60ca7168ee8e935b745042af7 GIT binary patch literal 75967 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�EkLdLUu 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 literal 0 HcmV?d00001 diff --git a/docs/images/redis-100vu-performance.png b/docs/images/redis-100vu-performance.png new file mode 100644 index 0000000000000000000000000000000000000000..90d6a949491491a3d8b98126874d54a0a4d3cf6d GIT binary patch literal 81623 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 b{G0!4B6{#mX`ad(;E&jIX`y^UEwBF%ks2;q literal 0 HcmV?d00001 diff --git a/monitoring/grafana/dashboards/spring-boot-overview.json b/monitoring/grafana/dashboards/spring-boot-overview.json index f84551b..4830605 100644 --- a/monitoring/grafana/dashboards/spring-boot-overview.json +++ b/monitoring/grafana/dashboards/spring-boot-overview.json @@ -1,187 +1,1463 @@ { - "id": null, - "uid": "spring-boot-overview", - "title": "Spring Boot Overview", - "tags": [ - "spring-boot", - "system-design" - ], - "timezone": "browser", - "schemaVersion": 41, - "version": 1, - "refresh": "5s", - "time": { - "from": "now-15m", - "to": "now" + "apiVersion": "dashboard.grafana.app/v2", + "kind": "Dashboard", + "metadata": { + "name": "spring-boot-overview", + "namespace": "default", + "uid": "d8ff4239-0696-483e-ac21-919126fd4967", + "resourceVersion": "1785489454258011", + "generation": 3, + "creationTimestamp": "2026-07-30T10:33:40Z", + "labels": { + "grafana.app/deprecatedInternalID": "2113606437945344" + }, + "annotations": { + "grafana.app/createdBy": "access-policy:service", + "grafana.app/folder": "eftnup4o0j1tsd", + "grafana.app/managedBy": "classic-file-provisioning", + "grafana.app/managerId": "System Design Dashboards", + "grafana.app/sourceChecksum": "a22cfc7115886583cf1616d4185209f0", + "grafana.app/sourcePath": "/var/lib/grafana/dashboards/spring-boot-overview.json", + "grafana.app/sourceTimestamp": "1785489448000", + "grafana.app/updatedBy": "access-policy:service", + "grafana.app/updatedTimestamp": "2026-07-31T09:17:34Z", + "grafana.app/folderTitle": "System Design", + "grafana.app/folderUrl": "/dashboards/f/eftnup4o0j1tsd/system-design" + } }, - "panels": [ - { - "id": 1, - "type": "timeseries", - "title": "Requests Per Second", - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 0 - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "targets": [ - { - "refId": "A", - "expr": "sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))", - "legendFormat": "RPS" + "spec": { + "annotations": [ + { + "kind": "AnnotationQuery", + "spec": { + "builtIn": true, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "query": { + "datasource": { + "name": "-- Grafana --" + }, + "group": "grafana", + "kind": "DataQuery", + "spec": {}, + "version": "v0" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "reqps" - }, - "overrides": [] } - }, - { - "id": 2, - "type": "timeseries", - "title": "p95 Response Time", - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 0 - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" + ], + "cursorSync": "Off", + "editable": true, + "elements": { + "panel-1": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))", + "legendFormat": "RPS" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 1, + "links": [], + "title": "Requests Per Second", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } + } }, - "targets": [ - { - "refId": "A", - "expr": "histogram_quantile(0.95, sum by (le) (rate(http_server_requests_seconds_bucket{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))) * 1000", - "legendFormat": "p95" + "panel-10": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "jvm_threads_live_threads{\n application=\"url-shortener\"\n}", + "legendFormat": "Live Threads", + "range": true + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 10, + "links": [], + "title": "JVM Live Threads", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "ms" - }, - "overrides": [] - } - }, - { - "id": 3, - "type": "timeseries", - "title": "p99 Response Time", - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 0 }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "panel-2": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "histogram_quantile(0.95, sum by (le) (rate(http_server_requests_seconds_bucket{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))) * 1000", + "legendFormat": "p95" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 2, + "links": [], + "title": "p95 Response Time", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } + } }, - "targets": [ - { - "refId": "A", - "expr": "histogram_quantile(0.99, sum by (le) (rate(http_server_requests_seconds_bucket{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))) * 1000", - "legendFormat": "p99" + "panel-3": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "histogram_quantile(0.99, sum by (le) (rate(http_server_requests_seconds_bucket{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval]))) * 1000", + "legendFormat": "p99" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 3, + "links": [], + "title": "p99 Response Time", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ms" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "ms" - }, - "overrides": [] - } - }, - { - "id": 4, - "type": "timeseries", - "title": "5xx Error Rate", - "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 8 }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "panel-4": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "100 * ((sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",status=~\"5..\",uri!~\"/actuator.*\"}[$__rate_interval])) or vector(0)) / clamp_min(sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval])), 0.000001))", + "legendFormat": "5xx" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 4, + "links": [], + "title": "5xx Error Rate", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } + } }, - "targets": [ - { - "refId": "A", - "expr": "100 * ((sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",status=~\"5..\",uri!~\"/actuator.*\"}[$__rate_interval])) or vector(0)) / clamp_min(sum(rate(http_server_requests_seconds_count{job=\"spring-boot\",uri!~\"/actuator.*\"}[$__rate_interval])), 0.000001))", - "legendFormat": "5xx" + "panel-5": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "sum(jvm_memory_used_bytes{job=\"spring-boot\",area=\"heap\"})", + "legendFormat": "Heap" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 5, + "links": [], + "title": "JVM Heap Used", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "percent" - }, - "overrides": [] - } - }, - { - "id": 5, - "type": "timeseries", - "title": "JVM Heap Used", - "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 8 }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "panel-6": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "expr": "process_cpu_usage{job=\"spring-boot\"} * 100", + "legendFormat": "CPU" + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 6, + "links": [], + "title": "Process CPU Usage", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } + } }, - "targets": [ - { - "refId": "A", - "expr": "sum(jvm_memory_used_bytes{job=\"spring-boot\",area=\"heap\"})", - "legendFormat": "Heap" + "panel-7": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "rate(\n short_url_cache_hit_total{\n application=\"url-shortener\"\n }[$__rate_interval]\n)", + "legendFormat": "Cache Hit/s", + "range": true + }, + "version": "v0" + }, + "refId": "A" + } + }, + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "rate(\n short_url_cache_miss_total{\n application=\"url-shortener\"\n }[$__rate_interval]\n)", + "instant": false, + "legendFormat": "Cache Miss/s", + "range": true + }, + "version": "v0" + }, + "refId": "B" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 7, + "links": [], + "title": "Redis Cache Hit / Miss", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "bytes" - }, - "overrides": [] - } - }, - { - "id": 6, - "type": "timeseries", - "title": "Process CPU Usage", - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 8 }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "panel-8": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "rate(\n short_url_db_lookup_total{\n application=\"url-shortener\"\n }[$__rate_interval]\n)", + "legendFormat": "DB Lookup/s", + "range": true + }, + "version": "v0" + }, + "refId": "A" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 8, + "links": [], + "title": "DB Lookups Per Second", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } + } }, - "targets": [ - { - "refId": "A", - "expr": "process_cpu_usage{job=\"spring-boot\"} * 100", - "legendFormat": "CPU" + "panel-9": { + "kind": "Panel", + "spec": { + "data": { + "kind": "QueryGroup", + "spec": { + "queries": [ + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "hikaricp_connections_active{\n application=\"url-shortener\",\n pool=\"HikariPool-1\"\n}", + "legendFormat": "Active", + "range": true + }, + "version": "v0" + }, + "refId": "A" + } + }, + { + "kind": "PanelQuery", + "spec": { + "hidden": false, + "query": { + "datasource": { + "name": "prometheus" + }, + "group": "prometheus", + "kind": "DataQuery", + "spec": { + "editorMode": "code", + "expr": "hikaricp_connections_pending{\n application=\"url-shortener\",\n pool=\"HikariPool-1\"\n}", + "instant": false, + "legendFormat": "Pending", + "range": true + }, + "version": "v0" + }, + "refId": "B" + } + } + ], + "queryOptions": {}, + "transformations": [] + } + }, + "description": "", + "id": 9, + "links": [], + "title": "HikariCP Active / Pending", + "vizConfig": { + "group": "timeseries", + "kind": "VizConfig", + "spec": { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "options": { + "annotations": { + "clustering": -1, + "multiLane": false + }, + "legend": { + "calcs": [], + "displayMode": "list", + "enableFacetedFilter": false, + "overflow": "ellipsis", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + } + }, + "version": "13.1.1" + } } - ], - "fieldConfig": { - "defaults": { - "unit": "percent" - }, - "overrides": [] } - } - ] + }, + "layout": { + "kind": "GridLayout", + "spec": { + "items": [ + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-1" + }, + "height": 8, + "width": 8, + "x": 0, + "y": 0 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-2" + }, + "height": 8, + "width": 8, + "x": 8, + "y": 0 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-3" + }, + "height": 8, + "width": 8, + "x": 16, + "y": 0 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-4" + }, + "height": 8, + "width": 8, + "x": 0, + "y": 8 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-5" + }, + "height": 8, + "width": 8, + "x": 8, + "y": 8 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-6" + }, + "height": 8, + "width": 8, + "x": 16, + "y": 8 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-7" + }, + "height": 8, + "width": 8, + "x": 0, + "y": 16 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-8" + }, + "height": 8, + "width": 8, + "x": 8, + "y": 16 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-9" + }, + "height": 8, + "width": 8, + "x": 16, + "y": 16 + } + }, + { + "kind": "GridLayoutItem", + "spec": { + "element": { + "kind": "ElementReference", + "name": "panel-10" + }, + "height": 8, + "width": 12, + "x": 0, + "y": 24 + } + } + ] + } + }, + "links": [], + "liveNow": false, + "preload": false, + "tags": [ + "spring-boot", + "system-design" + ], + "timeSettings": { + "autoRefresh": "5s", + "autoRefreshIntervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "fiscalYearStartMonth": 0, + "from": "now-15m", + "hideTimepicker": false, + "timezone": "browser", + "to": "now" + }, + "title": "Spring Boot Overview", + "variables": [] + } } \ No newline at end of file