26Y28c13

QK·2026년 7월 28일
{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": {
          "type": "datasource",
          "uid": "grafana"
        },
        "enable": true,
        "hide": true,
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 1,
  "id": null,
  "links": [],
  "liveNow": false,
  "panels": [
    {
      "collapsed": false,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 0
      },
      "id": 1300,
      "title": "📦 1. TARGET BUCKET VOLUMETRICS & OBJECT COUNT VITALS",
      "type": "row"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "${datasource}"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "thresholds"
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "blue",
                "value": null
              }
            ]
          },
          "unit": "decbytes"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 4,
        "w": 12,
        "x": 0,
        "y": 1
      },
      "id": 1301,
      "options": {
        "colorMode": "value",
        "graphMode": "none",
        "justifyMode": "center",
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "lastNotNull"
          ],
          "fields": "",
          "values": false
        },
        "textMode": "value"
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "${datasource}"
          },
          "editorMode": "code",
          "expr": "sum(max by (cluster, bucket) (minio_bucket_usage_total_bytes{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"} or minio_cluster_usage_buckets_total_bytes{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"}))",
          "legendFormat": "Bucket Size",
          "refId": "A"
        }
      ],
      "title": "Selected Bucket Active Data Capacity Allocation",
      "type": "stat"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "${datasource}"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "thresholds"
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "blue",
                "value": null
              }
            ]
          },
          "unit": "short"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 4,
        "w": 12,
        "x": 12,
        "y": 1
      },
      "id": 1302,
      "options": {
        "colorMode": "value",
        "graphMode": "none",
        "justifyMode": "center",
        "orientation": "auto",
        "reduceOptions": {
          "calcs": [
            "lastNotNull"
          ],
          "fields": "",
          "values": false
        },
        "textMode": "value"
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "${datasource}"
          },
          "editorMode": "code",
          "expr": "sum(max by (cluster, bucket) (minio_bucket_usage_object_count{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"} or minio_bucket_usage_object_total_count{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"}))",
          "legendFormat": "Objects Count",
          "refId": "A"
        }
      ],
      "title": "Total Object Count Inside Target Bucket",
      "type": "stat"
    },
    {
      "collapsed": false,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 5
      },
      "id": 1400,
      "title": "📈 2. REAL-TIME BUCKET S3 WORKLOAD & OPERATION METRICS",
      "type": "row"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "${datasource}"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisPlacement": "auto",
            "drawStyle": "line",
            "fillOpacity": 10,
            "lineInterpolation": "smooth",
            "lineWidth": 2,
            "showPoints": "none"
          },
          "mappings": [],
          "unit": "reqps"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 6
      },
      "id": 1401,
      "options": {
        "legend": {
          "calcs": [
            "max",
            "mean"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "desc"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "${datasource}"
          },
          "editorMode": "code",
          "expr": "sum by (name) (rate(minio_bucket_api_requests_total{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"}[$interval]) or rate(minio_bucket_api_requests_incoming_total{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"}[$interval]))",
          "legendFormat": "{{name}}",
          "refId": "A"
        }
      ],
      "title": "S3 API Throughput (TPS) Profile for Selected Bucket by Action Verb",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "${datasource}"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisPlacement": "auto",
            "drawStyle": "line",
            "fillOpacity": 5,
            "lineInterpolation": "smooth",
            "lineWidth": 2,
            "showPoints": "none"
          },
          "mappings": [],
          "unit": "s"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 12,
        "y": 6
      },
      "id": 1402,
      "options": {
        "legend": {
          "calcs": [
            "max",
            "mean"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "desc"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "${datasource}"
          },
          "editorMode": "code",
          "expr": "histogram_quantile(0.99, sum by (le, name) (rate(minio_bucket_api_ttfb_seconds_distribution{cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\", bucket=~\"${bucket:regex}\"}[$interval])))",
          "legendFormat": "p99 TTFB: {{name}}",
          "refId": "A"
        }
      ],
      "title": "Time to First Byte (TTFB) Quantile Latency (p99 per API Action Verb)",
      "type": "timeseries"
    },
    {
      "collapsed": false,
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 14
      },
      "id": 1500,
      "title": "🔍 3. DEEP PREFIX TOPOLOGY AUDIT INTERFACE (STARROCKS HYBRID COUPLING)",
      "type": "row"
    },
    {
      "datasource": {
        "type": "datasource",
        "uid": "grafana"
      },
      "gridPos": {
        "h": 6,
        "w": 24,
        "x": 0,
        "y": 15
      },
      "id": 1501,
      "options": {
        "code": {
          "language": "markdown",
          "showLineNumbers": false,
          "showMiniMap": false
        },
        "content": "### 📊 StarRocks Offline Inventory Schema Integration Guidance\n\nPrometheus 시계열 메트릭 환경에서는 **카디널리티 폭증 방지 규칙**에 따라 버킷 하위의 가변 프리픽스(e.g. `/dataset/model-v2/run-09/..`)를 레이블로 담을 수 없습니다. 따라서 프리픽스 레벨의 내부 물리 구조 감사 및 소형 파일 적체 분석은 아래의 **StarRocks SQL 연동 규칙**을 활용하여 `aistor_inventory_daily` 뷰를 조회해야 합니다.\n\n```sql\n-- [$cluster]의 [$bucket] 내부 1차 서브 프리픽스별 용량 및 파일 수 정밀 진단 쿼리\nSELECT \n    SPLIT_PART(object_key, '/', 1) AS primary_prefix,\n    COUNT(1) AS total_object_count,\n    SUM(object_size) AS aggregated_bytes,\n    AVG(object_size) AS average_file_size_bytes\nFROM starrocks_data_lakehouse.aistor_inventory_daily\nWHERE \n    cluster_id = '$cluster' \n    AND bucket_name = '$bucket'\nGROUP BY 1\nORDER BY aggregated_bytes DESC;\n```\n\n* **SRE 팁**: 해당 마크다운 컴포넌트는 그라파나의 StarRocks/MySQL 플러그인 데이터 소스와 즉시 스위칭하여 실시간 SQL 테이블 패널로 치환될 수 있습니다.",
        "mode": "markdown"
      },
      "title": "Offline Prefix Data Lakehouse Mapping Architecture",
      "type": "text"
    }
  ],
  "refresh": "30s",
  "schemaVersion": 38,
  "style": "dark",
  "tags": [
    "AIStor",
    "Metrics-V3",
    "Bucket-Profiling",
    "Prefix-Analytics",
    "StarRocks-Bridge"
  ],
  "templating": {
    "list": [
      {
        "current": {},
        "hide": 0,
        "includeAll": false,
        "label": "Data Source",
        "name": "datasource",
        "options": [],
        "query": "prometheus",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "type": "datasource"
      },
      {
        "current": {},
        "datasource": {
          "type": "prometheus",
          "uid": "${datasource}"
        },
        "definition": "label_values(cluster)",
        "hide": 0,
        "includeAll": true,
        "multi": true,
        "allValue": ".*",
        "label": "AIStor Cluster",
        "name": "cluster",
        "options": [],
        "query": "label_values(cluster)",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "type": "query"
      },
      {
        "current": {},
        "datasource": {
          "type": "prometheus",
          "uid": "${datasource}"
        },
        "definition": "label_values({cluster=~\"${cluster:regex}\"}, namespace)",
        "hide": 0,
        "includeAll": true,
        "multi": true,
        "allValue": ".*",
        "label": "Namespace",
        "name": "namespace",
        "options": [],
        "query": "label_values({cluster=~\"${cluster:regex}\"}, namespace)",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "type": "query"
      },
      {
        "current": {},
        "datasource": {
          "type": "prometheus",
          "uid": "${datasource}"
        },
        "definition": "label_values({cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\"}, bucket)",
        "hide": 0,
        "includeAll": true,
        "multi": true,
        "allValue": ".*",
        "label": "Target Bucket",
        "name": "bucket",
        "options": [],
        "query": "label_values({cluster=~\"${cluster:regex}\", namespace=~\"${namespace:regex}\"}, bucket)",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "type": "query"
      },
      {
        "current": {
          "selected": true,
          "text": "2m",
          "value": "2m"
        },
        "hide": 0,
        "label": "Interval",
        "name": "interval",
        "options": [
          {
            "selected": false,
            "text": "30s",
            "value": "30s"
          },
          {
            "selected": false,
            "text": "1m",
            "value": "1m"
          },
          {
            "selected": true,
            "text": "2m",
            "value": "2m"
          },
          {
            "selected": false,
            "text": "5m",
            "value": "5m"
          },
          {
            "selected": false,
            "text": "10m",
            "value": "10m"
          }
        ],
        "query": "30s,1m,2m,5m,10m",
        "type": "interval"
      }
    ]
  },
  "time": {
    "from": "now-6h",
    "to": "now"
  },
  "timepicker": {
    "refresh_intervals": [
      "10s",
      "30s",
      "1m"
    ]
  },
  "timezone": "browser",
  "title": "AIStor Operations - 13. Bucket & Prefix Analytics (Multi-Cluster v3 - Fixed)",
  "uid": "aistor-operations-13-fixed",
  "version": 1
}
profile
engineer

0개의 댓글