{"id":2771,"date":"2023-09-19T16:53:43","date_gmt":"2023-09-19T08:53:43","guid":{"rendered":"https:\/\/199604.com\/?p=2771"},"modified":"2023-09-19T16:53:43","modified_gmt":"2023-09-19T08:53:43","slug":"kube-prometheus%e7%9b%91%e6%8e%a7harbor","status":"publish","type":"post","link":"https:\/\/199604.com\/2771","title":{"rendered":"kube-prometheus\u76d1\u63a7Harbor"},"content":{"rendered":"<h1>kube-prometheus\u76d1\u63a7Harbor<\/h1>\n<p>Harbor\u5b98\u65b9\u5728Harbor v2.2\u5f00\u59cb\u63d0\u4f9b\u5bf9\u76f8\u5173\u6307\u6807\u7684\u91c7\u96c6\u548c\u4f7f\u7528\uff0c\u6240\u4ee5\u53ea\u8981\u5728\u914d\u7f6e\u6587\u4ef6\u5f00\u542f\u5373\u53ef\u3002<\/p>\n<h2><strong>\u90e8\u7f72harbor<\/strong><\/h2>\n<p>\u7701\u7565\uff0c\u53c2\u8003\u5b98\u65b9\u7f51\u7ad9\u6216\u8005\u4e4b\u524d\u7b14\u8bb0\u5373\u53ef<\/p>\n<h3>\u5f00\u542fmetric<\/h3>\n<p>\u89e3\u538b\u6587\u4ef6\u540e\uff0c\u4fee\u6539<code>harbor.yml<\/code>\u5c06<code>metric eneabled<\/code>\u6539\u4e3a<code>true<\/code><\/p>\n<pre><code class=\"language-shell \">metric:\n  enabled: true \n  port: 29090 # \u9ed8\u8ba49090\n  path: \/metrics\n<\/code><\/pre>\n<h2><strong>\u914d\u7f6ekube-prometheus\u6293\u53d6Harbor\u6307\u6807<\/strong><\/h2>\n<p>\u7f16\u8f91<code>prometheus-additional.yaml<\/code>\uff0c\u6dfb\u52a0<\/p>\n<pre><code class=\"language-yaml \">- job_name: 'harbor-exporter'\n  scrape_interval: 20s\n  static_configs:\n    - targets: ['10.194.24.53:29090']\n- job_name: 'harbor-core'\n  scrape_interval: 20s\n  params:\n    #\u4eceHarbor core\u7ec4\u4ef6\u4e2d\u83b7\u53d6\u5ea6\u91cf\n    comp: ['core']\n  static_configs:\n    - targets: ['10.194.24.53:29090']\n- job_name: 'harbor-registry'\n  scrape_interval: 20s\n  params:\n    #\u4eceHarbor registry\u7ec4\u4ef6\u4e2d\u83b7\u53d6\u5ea6\u91cf\n    comp: ['registry']\n  static_configs:\n    - targets: ['10.194.24.53:29090']\n- job_name: 'harbor-jobservice'\n  scrape_interval: 20s\n  params:\n    # \u4eceHarbor jobservice\u7ec4\u4ef6\u4e2d\u83b7\u53d6\u5ea6\u91cf\n    comp: ['jobservice']\n  static_configs:\n    - targets: ['10.194.24.53:29090']\n<\/code><\/pre>\n<h3>\u6267\u884c\u547d\u4ee4\u66f4\u65b0\u914d\u7f6e<\/h3>\n<p>\u4e0a\u4f20<code>prometheus-additional.yaml<\/code>\u5230k8s\u96c6\u7fa4\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre><code class=\"language-shell \">kubectl delete secret additional-configs -n monitoring &gt;\/dev\/null 2&gt;&amp;1\nkubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring\n<\/code><\/pre>\n<h3>\u7f16\u8f91 <code>prometheus-prometheus.yaml<\/code>\u6dfb\u52a0\u989d\u5916\u7684\u6293\u53d6\u53c2\u6570<\/h3>\n<pre><code class=\"language-yaml \">additionalScrapeConfigs:\n    name: additional-configs\n    key: prometheus-additional.yaml\n<\/code><\/pre>\n<blockquote><p>\n  <code>prometheus-prometheus.yaml<\/code> \u5728 manifests \u76ee\u5f55\u4e0b\uff0c\u6267\u884c\uff1a<code>kubectl apply -f prometheus-prometheus.yaml<\/code>\n<\/p><\/blockquote>\n<h3>\u68c0\u67e5prometheus\u914d\u7f6e\u662f\u5426\u6b63\u5e38<\/h3>\n<pre><code class=\"language-shell \">##\u68c0\u67e5 prometheus-additional.yaml \u662f\u5426\u6709\u8bed\u6cd5\u9519\u8bef\nkubectl exec -it prometheus-k8s-1 -n monitoring -- promtool check config \/etc\/prometheus\/config_out\/prometheus.env.yaml\n<\/code><\/pre>\n<h3>\u521b\u5efa<code>harbor-rule.yaml<\/code><\/h3>\n<pre><code class=\"language-yaml \">apiVersion: monitoring.coreos.com\/v1\nkind: PrometheusRule\nmetadata:\n  labels:\n    prometheus: k8s\n    role: alert-rules\n  name: harbor-rules\n  namespace: monitoring\nspec:\n  groups:\n    - name: harbor.rules\n      rules:\n        - alert: harbor \u8fd0\u884c\u60c5\u51b5\n          expr: harbor_up == 0\n          for: 2m\n          labels:\n            severity: critical\n          annotations:\n            summary: \"{{ $labels.instance }} harbor\u670d\u52a1\u4e0d\u53ef\u7528\uff0c\u8bf7\u5c3d\u5feb\u5904\u7406\uff01\"\n            description: \"{{ $labels.instance }} harbor\u670d\u52a1\u4e0d\u53ef\u7528\uff0c\u8bf7\u5c3d\u5feb\u5904\u7406\uff01\"\n<\/code><\/pre>\n<h2><strong>\u5728kube-prometheus\u4e2d\u67e5\u770bharbor Targets\u548crule<\/strong><\/h2>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qn.199604.com\/typoraImg\/image-20230919163300203.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/qn.199604.com\/typoraImg\/image-20230919163300203.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20230919163300203\" \/><\/div><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qn.199604.com\/typoraImg\/image-20230919164849214.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/qn.199604.com\/typoraImg\/image-20230919164849214.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20230919164849214\" \/><\/div><\/p>\n<h2><strong>grafana\u914d\u7f6eharbor\u76d1\u63a7\u56fe\u8868<\/strong><\/h2>\n<p>\u53c2\u8003\uff1a<code>https:\/\/grafana.com\/grafana\/dashboards\/16686-harbor-dashboard\/<\/code>\u505a\u4e86\u81ea\u5df1ip\u83b7\u53d6\u7684\u4f18\u5316,\u4e5f\u9700\u8981\u548c<code>ndoe-exporter<\/code>\u6570\u636e\u914d\u5408\u4f7f\u7528\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/grafana.com\/api\/dashboards\/16686\/images\/12564\/image'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/grafana.com\/api\/dashboards\/16686\/images\/12564\/image\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"img\" \/><\/div><\/p>\n<p>\u5927\u5c4fjson\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-json \">{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": \"-- Grafana --\",\n        \"enable\": true,\n        \"hide\": true,\n        \"iconColor\": \"rgba(0, 211, 255, 1)\",\n        \"name\": \"Annotations &amp; Alerts\",\n        \"target\": {\n          \"limit\": 100,\n          \"matchAny\": false,\n          \"tags\": [],\n          \"type\": \"dashboard\"\n        },\n        \"type\": \"dashboard\"\n      }\n    ]\n  },\n  \"editable\": true,\n  \"gnetId\": null,\n  \"graphTooltip\": 0,\n  \"id\": 51,\n  \"iteration\": 1695105410147,\n  \"links\": [],\n  \"panels\": [\n    {\n      \"collapsed\": false,\n      \"datasource\": null,\n      \"gridPos\": {\n        \"h\": 1,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 0\n      },\n      \"id\": 2,\n      \"panels\": [],\n      \"title\": \"Harbor \u7cfb\u7edf\u72b6\u6001\u4fe1\u606f\",\n      \"type\": \"row\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              }\n            ]\n          },\n          \"unit\": \"s\"\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 4,\n        \"x\": 0,\n        \"y\": 1\n      },\n      \"id\": 4,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"time() - process_start_time_seconds{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"intervalFactor\": 1,\n          \"legendFormat\": \"\",\n          \"queryType\": \"randomWalk\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Running Time\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 6,\n        \"w\": 4,\n        \"x\": 4,\n        \"y\": 1\n      },\n      \"id\": 6,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"center\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_health{job='$job',instance='$instance'}\",\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"queryType\": \"randomWalk\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Harbor Health\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 8,\n        \"y\": 1\n      },\n      \"id\": 8,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='core'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Core Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 12,\n        \"y\": 1\n      },\n      \"id\": 12,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='jobservice'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Jobservice Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 16,\n        \"y\": 1\n      },\n      \"id\": 16,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='redis'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Redis Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 20,\n        \"y\": 1\n      },\n      \"id\": 19,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='trivy'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Trivy Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 8,\n        \"y\": 4\n      },\n      \"id\": 10,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='database'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Database Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 12,\n        \"y\": 4\n      },\n      \"id\": 14,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='portal'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Portal Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 16,\n        \"y\": 4\n      },\n      \"id\": 18,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='registry'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Registry Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"mappings\": [\n            {\n              \"options\": {\n                \"0\": {\n                  \"color\": \"red\",\n                  \"index\": 1,\n                  \"text\": \"DOWN\"\n                },\n                \"1\": {\n                  \"color\": \"green\",\n                  \"index\": 0,\n                  \"text\": \"UP\"\n                }\n              },\n              \"type\": \"value\"\n            }\n          ],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": []\n      },\n      \"gridPos\": {\n        \"h\": 3,\n        \"w\": 4,\n        \"x\": 20,\n        \"y\": 4\n      },\n      \"id\": 20,\n      \"options\": {\n        \"colorMode\": \"background\",\n        \"graphMode\": \"none\",\n        \"justifyMode\": \"auto\",\n        \"orientation\": \"auto\",\n        \"reduceOptions\": {\n          \"calcs\": [\n            \"lastNotNull\"\n          ],\n          \"fields\": \"\",\n          \"values\": false\n        },\n        \"text\": {},\n        \"textMode\": \"auto\"\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_up{job='$job',instance='$instance',component='registryctl'}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"title\": \"Registryctl Status\",\n      \"type\": \"stat\"\n    },\n    {\n      \"collapsed\": false,\n      \"datasource\": null,\n      \"gridPos\": {\n        \"h\": 1,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 7\n      },\n      \"id\": 22,\n      \"panels\": [],\n      \"title\": \"Harbor \u9879\u76ee\u4fe1\u606f\",\n      \"type\": \"row\"\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"custom\": {\n            \"align\": \"auto\",\n            \"displayMode\": \"auto\"\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": [\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u9879\u76ee\u4f7f\u7528\u5bb9\u91cf\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 138\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u9879\u76ee\u5bb9\u91cf\u9650\u989d\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              },\n              {\n                \"id\": \"mappings\",\n                \"value\": [\n                  {\n                    \"options\": {\n                      \"-1\": {\n                        \"index\": 0,\n                        \"text\": \"\u65e0\u9650\u5236\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 143\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u4ed3\u5e93\u6570\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 107\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u603b\u5236\u54c1\u6570\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 120\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u5236\u54c1\u88ab\u62c9\u53d6\u6b21\u6570\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 157\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u4ed3\u5e93\u662f\u5426\u5f00\u653e\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 131\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u9879\u76ee\u6210\u5458\u6570\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 129\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u4ed3\u5e93\u662f\u5426\u5f00\u653e\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"mappings\",\n                \"value\": [\n                  {\n                    \"options\": {\n                      \"false\": {\n                        \"color\": \"green\",\n                        \"index\": 0,\n                        \"text\": \"\u4e0d\u516c\u5f00\"\n                      },\n                      \"true\": {\n                        \"color\": \"red\",\n                        \"index\": 1,\n                        \"text\": \"\u516c\u5f00\"\n                      }\n                    },\n                    \"type\": \"value\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.displayMode\",\n                \"value\": \"color-background-solid\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u9879\u76ee\u5269\u4f59\u5bb9\u91cf\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"mappings\",\n                \"value\": [\n                  {\n                    \"options\": {\n                      \"from\": -1e+25,\n                      \"result\": {\n                        \"color\": \"blue\",\n                        \"index\": 0,\n                        \"text\": \"\u65e0\u9650\u5236\"\n                      },\n                      \"to\": -1\n                    },\n                    \"type\": \"range\"\n                  }\n                ]\n              },\n              {\n                \"id\": \"custom.displayMode\",\n                \"value\": \"color-background-solid\"\n              },\n              {\n                \"id\": \"thresholds\",\n                \"value\": {\n                  \"mode\": \"absolute\",\n                  \"steps\": [\n                    {\n                      \"color\": \"red\",\n                      \"value\": null\n                    },\n                    {\n                      \"color\": \"red\",\n                      \"value\": 0\n                    },\n                    {\n                      \"color\": \"yellow\",\n                      \"value\": 3221225472\n                    },\n                    {\n                      \"color\": \"green\",\n                      \"value\": 5368709120\n                    }\n                  ]\n                }\n              },\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 8\n      },\n      \"id\": 24,\n      \"options\": {\n        \"footer\": {\n          \"fields\": \"\",\n          \"reducer\": [\n            \"sum\"\n          ],\n          \"show\": false\n        },\n        \"frameIndex\": 0,\n        \"showHeader\": true,\n        \"sortBy\": [\n          {\n            \"desc\": true,\n            \"displayName\": \"\u9879\u76ee\u4f7f\u7528\u5bb9\u91cf\"\n          }\n        ]\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_repo_total{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"instant\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_quota_usage_byte{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"instant\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"B\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_quota_byte{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"C\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_member_total{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"D\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_artifact_total{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"E\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_artifact_pulled{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"F\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_project_quota_byte{job=\\\"$job\\\", instance=\\\"$instance\\\"} - harbor_project_quota_usage_byte{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"G\"\n        }\n      ],\n      \"title\": \"\u9879\u76ee\u8be6\u7ec6\u4fe1\u606f\",\n      \"transformations\": [\n        {\n          \"id\": \"filterFieldsByName\",\n          \"options\": {\n            \"include\": {\n              \"names\": [\n                \"project_name\",\n                \"public\",\n                \"Value #A\",\n                \"Value #B\",\n                \"Value #C\",\n                \"Value #D\",\n                \"Value #G\",\n                \"Value #F\"\n              ]\n            }\n          }\n        },\n        {\n          \"id\": \"seriesToColumns\",\n          \"options\": {\n            \"byField\": \"project_name\"\n          }\n        },\n        {\n          \"id\": \"organize\",\n          \"options\": {\n            \"excludeByName\": {\n              \"public\": false,\n              \"public 2\": true\n            },\n            \"indexByName\": {\n              \"Value #A\": 2,\n              \"Value #B\": 3,\n              \"Value #C\": 4,\n              \"Value #D\": 6,\n              \"Value #F\": 5,\n              \"Value #G\": 7,\n              \"project_name\": 0,\n              \"public\": 1\n            },\n            \"renameByName\": {\n              \"Value #A\": \"\u4ed3\u5e93\u6570\",\n              \"Value #B\": \"\u9879\u76ee\u4f7f\u7528\u5bb9\u91cf\",\n              \"Value #C\": \"\u9879\u76ee\u5bb9\u91cf\u9650\u989d\",\n              \"Value #D\": \"\u9879\u76ee\u6210\u5458\u6570\",\n              \"Value #E\": \"\u603b\u5236\u54c1\u6570\",\n              \"Value #F\": \"\u5236\u54c1\u88ab\u62c9\u53d6\u6b21\u6570\",\n              \"Value #G\": \"\u9879\u76ee\u5269\u4f59\u5bb9\u91cf\",\n              \"project_name\": \"\u9879\u76ee\u540d\",\n              \"public\": \"\u4ed3\u5e93\u662f\u5426\u5f00\u653e\",\n              \"public 1\": \"\u4ed3\u5e93\u662f\u5426\u516c\u5f00\"\n            }\n          }\n        }\n      ],\n      \"type\": \"table\"\n    },\n    {\n      \"collapsed\": false,\n      \"datasource\": null,\n      \"gridPos\": {\n        \"h\": 1,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 16\n      },\n      \"id\": 26,\n      \"panels\": [],\n      \"title\": \"\u8282\u70b9\u72b6\u6001\u4fe1\u606f\",\n      \"type\": \"row\"\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"prometheus\",\n      \"fill\": 1,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 10,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 17\n      },\n      \"hiddenSeries\": false,\n      \"id\": 28,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": true,\n        \"max\": true,\n        \"min\": false,\n        \"rightSide\": false,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 1,\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"alertThreshold\": true\n      },\n      \"percentage\": false,\n      \"pluginVersion\": \"8.1.1\",\n      \"pointradius\": 2,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": false,\n          \"expr\": \"100 - (avg(rate(node_cpu_seconds_total{mode=\\\"idle\\\", instance=~\\\"$ip.*\\\"}[5m])) by (instance) * 100)\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"instant\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"CPU\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        },\n        {\n          \"exemplar\": false,\n          \"expr\": \"(node_memory_MemTotal_bytes{instance=~\\\"$ip.*\\\"} - node_memory_MemAvailable_bytes{instance=~\\\"$ip.*\\\"}) \/ node_memory_MemTotal_bytes{instance=~\\\"$ip.*\\\"} * 100\",\n          \"format\": \"time_series\",\n          \"hide\": false,\n          \"instant\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\u5185\u5b58\",\n          \"refId\": \"B\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"\u8282\u70b9 CPU \u4f7f\u7528\u7387\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"transformations\": [],\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"$$hashKey\": \"object:434\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        },\n        {\n          \"$$hashKey\": \"object:435\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false\n      }\n    },\n    {\n      \"datasource\": \"prometheus\",\n      \"fieldConfig\": {\n        \"defaults\": {\n          \"color\": {\n            \"mode\": \"thresholds\"\n          },\n          \"custom\": {\n            \"align\": \"auto\",\n            \"displayMode\": \"auto\"\n          },\n          \"mappings\": [],\n          \"thresholds\": {\n            \"mode\": \"absolute\",\n            \"steps\": [\n              {\n                \"color\": \"green\",\n                \"value\": null\n              },\n              {\n                \"color\": \"red\",\n                \"value\": 80\n              }\n            ]\n          }\n        },\n        \"overrides\": [\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u603b\u5bb9\u91cf\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              },\n              {\n                \"id\": \"custom.width\",\n                \"value\": 100\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"device\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 165\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"mountpoint\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 110\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u6587\u4ef6\u7cfb\u7edf\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 91\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u6302\u8f7d\u70b9\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 140\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u8bbe\u5907\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 106\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"\u53ef\u7528\u5bb9\u91cf\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.width\",\n                \"value\": 112\n              },\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              },\n              {\n                \"id\": \"thresholds\",\n                \"value\": {\n                  \"mode\": \"absolute\",\n                  \"steps\": [\n                    {\n                      \"color\": \"red\",\n                      \"value\": null\n                    },\n                    {\n                      \"color\": \"orange\",\n                      \"value\": 10737418240\n                    },\n                    {\n                      \"color\": \"green\",\n                      \"value\": 21474836480\n                    }\n                  ]\n                }\n              },\n              {\n                \"id\": \"custom.displayMode\",\n                \"value\": \"color-background\"\n              }\n            ]\n          },\n          {\n            \"matcher\": {\n              \"id\": \"byName\",\n              \"options\": \"Inode \u53ef\u7528\"\n            },\n            \"properties\": [\n              {\n                \"id\": \"custom.displayMode\",\n                \"value\": \"color-background\"\n              },\n              {\n                \"id\": \"thresholds\",\n                \"value\": {\n                  \"mode\": \"absolute\",\n                  \"steps\": [\n                    {\n                      \"color\": \"red\",\n                      \"value\": null\n                    },\n                    {\n                      \"color\": \"orange\",\n                      \"value\": 1000000\n                    },\n                    {\n                      \"color\": \"green\",\n                      \"value\": 100000000\n                    }\n                  ]\n                }\n              },\n              {\n                \"id\": \"custom.minWidth\",\n                \"value\": 100\n              },\n              {\n                \"id\": \"unit\",\n                \"value\": \"decbytes\"\n              }\n            ]\n          }\n        ]\n      },\n      \"gridPos\": {\n        \"h\": 10,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 17\n      },\n      \"id\": 30,\n      \"options\": {\n        \"footer\": {\n          \"fields\": \"\",\n          \"reducer\": [\n            \"sum\"\n          ],\n          \"show\": false\n        },\n        \"showHeader\": true,\n        \"sortBy\": [\n          {\n            \"desc\": true,\n            \"displayName\": \"\u53ef\u7528\u5bb9\u91cf\"\n          }\n        ]\n      },\n      \"pluginVersion\": \"8.1.1\",\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": true,\n          \"expr\": \"node_filesystem_size_bytes{instance=~\\\"$ip.*\\\"}\",\n          \"format\": \"table\",\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"node_filesystem_free_bytes{instance=~\\\"$ip.*\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"B\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"node_filesystem_files_free{instance=~\\\"$ip.*\\\"}\",\n          \"format\": \"table\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\",\n          \"refId\": \"C\"\n        }\n      ],\n      \"title\": \"\u78c1\u76d8\u4fe1\u606f\",\n      \"transformations\": [\n        {\n          \"id\": \"seriesToColumns\",\n          \"options\": {\n            \"byField\": \"device\"\n          }\n        },\n        {\n          \"id\": \"filterFieldsByName\",\n          \"options\": {\n            \"include\": {\n              \"names\": [\n                \"device\",\n                \"fstype 1\",\n                \"Value #A\",\n                \"Value #B\",\n                \"Value #C\",\n                \"mountpoint 1\"\n              ]\n            }\n          }\n        },\n        {\n          \"id\": \"organize\",\n          \"options\": {\n            \"excludeByName\": {},\n            \"indexByName\": {},\n            \"renameByName\": {\n              \"Value\": \"\u603b\u5bb9\u91cf\",\n              \"Value #A\": \"\u603b\u5bb9\u91cf\",\n              \"Value #B\": \"\u53ef\u7528\u5bb9\u91cf\",\n              \"Value #C\": \"Inode \u53ef\u7528\",\n              \"device\": \"\u8bbe\u5907\",\n              \"fstype 1\": \"\u6587\u4ef6\u7cfb\u7edf\",\n              \"mountpoint 1\": \"\u6302\u8f7d\u70b9\"\n            }\n          }\n        }\n      ],\n      \"type\": \"table\"\n    },\n    {\n      \"collapsed\": false,\n      \"datasource\": null,\n      \"gridPos\": {\n        \"h\": 1,\n        \"w\": 24,\n        \"x\": 0,\n        \"y\": 27\n      },\n      \"id\": 32,\n      \"panels\": [],\n      \"title\": \"Harbor \u4efb\u52a1\u72b6\u6001\u4fe1\u606f\",\n      \"type\": \"row\"\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"prometheus\",\n      \"fill\": 1,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 28\n      },\n      \"hiddenSeries\": false,\n      \"id\": 34,\n      \"legend\": {\n        \"avg\": false,\n        \"current\": false,\n        \"max\": false,\n        \"min\": false,\n        \"show\": false,\n        \"total\": false,\n        \"values\": false\n      },\n      \"lines\": true,\n      \"linewidth\": 1,\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"alertThreshold\": true\n      },\n      \"percentage\": false,\n      \"pluginVersion\": \"8.1.1\",\n      \"pointradius\": 2,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"exemplar\": true,\n          \"expr\": \"process_cpu_seconds_total{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"time_series\",\n          \"instant\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"\u7d2f\u8ba1 CPU \u4f7f\u7528\u65f6\u95f4\",\n          \"queryType\": \"randomWalk\",\n          \"refId\": \"A\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"\u7d2f\u8ba1 CPU \u4f7f\u7528\u65f6\u95f4\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"transformations\": [],\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"$$hashKey\": \"object:1108\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        },\n        {\n          \"$$hashKey\": \"object:1109\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"prometheus\",\n      \"fill\": 1,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 28\n      },\n      \"hiddenSeries\": false,\n      \"id\": 36,\n      \"legend\": {\n        \"avg\": false,\n        \"current\": false,\n        \"max\": false,\n        \"min\": false,\n        \"show\": false,\n        \"total\": false,\n        \"values\": false\n      },\n      \"lines\": true,\n      \"linewidth\": 1,\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"alertThreshold\": true\n      },\n      \"percentage\": false,\n      \"pluginVersion\": \"8.1.1\",\n      \"pointradius\": 2,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": true,\n          \"expr\": \"process_resident_memory_bytes{job=\\\"$job\\\", instance=\\\"$instance\\\"} + process_virtual_memory_bytes{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"format\": \"time_series\",\n          \"interval\": \"\",\n          \"legendFormat\": \"\u5e38\u9a7b\u5185\u5b58\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"\u5185\u5b58\u4f7f\u7528\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"transformations\": [],\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"$$hashKey\": \"object:1194\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        },\n        {\n          \"$$hashKey\": \"object:1195\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"prometheus\",\n      \"fill\": 1,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 0,\n        \"y\": 36\n      },\n      \"hiddenSeries\": false,\n      \"id\": 38,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": true,\n        \"max\": false,\n        \"min\": false,\n        \"rightSide\": true,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 1,\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"alertThreshold\": true\n      },\n      \"percentage\": false,\n      \"pluginVersion\": \"8.1.1\",\n      \"pointradius\": 2,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": true,\n          \"expr\": \"harbor_task_queue_latency{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"interval\": \"\",\n          \"legendFormat\": \"{{type}}_latency\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        },\n        {\n          \"hide\": false,\n          \"refId\": \"B\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"\u4efb\u52a1\u7b49\u5f85\u65f6\u95f4\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"$$hashKey\": \"object:324\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"min\": \"0\",\n          \"show\": true\n        },\n        {\n          \"$$hashKey\": \"object:325\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false\n      }\n    },\n    {\n      \"aliasColors\": {},\n      \"bars\": false,\n      \"dashLength\": 10,\n      \"dashes\": false,\n      \"datasource\": \"prometheus\",\n      \"fill\": 1,\n      \"fillGradient\": 0,\n      \"gridPos\": {\n        \"h\": 8,\n        \"w\": 12,\n        \"x\": 12,\n        \"y\": 36\n      },\n      \"hiddenSeries\": false,\n      \"id\": 40,\n      \"legend\": {\n        \"alignAsTable\": true,\n        \"avg\": true,\n        \"current\": true,\n        \"hideEmpty\": false,\n        \"hideZero\": false,\n        \"max\": false,\n        \"min\": false,\n        \"rightSide\": true,\n        \"show\": true,\n        \"total\": false,\n        \"values\": true\n      },\n      \"lines\": true,\n      \"linewidth\": 1,\n      \"nullPointMode\": \"null\",\n      \"options\": {\n        \"alertThreshold\": true\n      },\n      \"percentage\": false,\n      \"pluginVersion\": \"8.1.1\",\n      \"pointradius\": 2,\n      \"points\": false,\n      \"renderer\": \"flot\",\n      \"seriesOverrides\": [],\n      \"spaceLength\": 10,\n      \"stack\": false,\n      \"steppedLine\": false,\n      \"targets\": [\n        {\n          \"alias\": \"\",\n          \"bucketAggs\": [\n            {\n              \"field\": \"@timestamp\",\n              \"id\": \"2\",\n              \"settings\": {\n                \"interval\": \"auto\"\n              },\n              \"type\": \"date_histogram\"\n            }\n          ],\n          \"exemplar\": true,\n          \"expr\": \"harbor_task_scheduled_total{job=\\\"$job\\\", instance=\\\"$instance\\\"}\",\n          \"interval\": \"\",\n          \"legendFormat\": \"scheduled_total\",\n          \"metrics\": [\n            {\n              \"id\": \"1\",\n              \"type\": \"count\"\n            }\n          ],\n          \"query\": \"\",\n          \"queryType\": \"randomWalk\",\n          \"refId\": \"A\",\n          \"timeField\": \"@timestamp\"\n        },\n        {\n          \"exemplar\": true,\n          \"expr\": \"harbor_task_queue_size{instance=\\\"$instance\\\", job=\\\"$job\\\"}\",\n          \"hide\": false,\n          \"interval\": \"\",\n          \"legendFormat\": \"{{type}}_total\",\n          \"refId\": \"B\"\n        }\n      ],\n      \"thresholds\": [],\n      \"timeFrom\": null,\n      \"timeRegions\": [],\n      \"timeShift\": null,\n      \"title\": \"\u4efb\u52a1\u961f\u5217\",\n      \"tooltip\": {\n        \"shared\": true,\n        \"sort\": 0,\n        \"value_type\": \"individual\"\n      },\n      \"type\": \"graph\",\n      \"xaxis\": {\n        \"buckets\": null,\n        \"mode\": \"time\",\n        \"name\": null,\n        \"show\": true,\n        \"values\": []\n      },\n      \"yaxes\": [\n        {\n          \"$$hashKey\": \"object:59\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"min\": \"0\",\n          \"show\": true\n        },\n        {\n          \"$$hashKey\": \"object:60\",\n          \"format\": \"short\",\n          \"logBase\": 1,\n          \"show\": true\n        }\n      ],\n      \"yaxis\": {\n        \"align\": false\n      }\n    }\n  ],\n  \"refresh\": \"30m\",\n  \"schemaVersion\": 30,\n  \"style\": \"dark\",\n  \"tags\": [],\n  \"templating\": {\n    \"list\": [\n      {\n        \"allValue\": null,\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"10.194.24.53:29090\",\n          \"value\": \"10.194.24.53:29090\"\n        },\n        \"datasource\": \"prometheus\",\n        \"definition\": \"label_values(harbor_health{job=\\\"$job\\\"}, instance)\",\n        \"description\": null,\n        \"error\": null,\n        \"hide\": 0,\n        \"includeAll\": false,\n        \"label\": \"Instance\",\n        \"multi\": false,\n        \"name\": \"instance\",\n        \"options\": [],\n        \"query\": {\n          \"query\": \"label_values(harbor_health{job=\\\"$job\\\"}, instance)\",\n          \"refId\": \"StandardVariableQuery\"\n        },\n        \"refresh\": 1,\n        \"regex\": \"\",\n        \"skipUrlSync\": false,\n        \"sort\": 0,\n        \"type\": \"query\"\n      },\n      {\n        \"allValue\": null,\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"harbor-exporter\",\n          \"value\": \"harbor-exporter\"\n        },\n        \"datasource\": \"prometheus\",\n        \"definition\": \"label_values(harbor_health{}, job)\",\n        \"description\": \"\",\n        \"error\": null,\n        \"hide\": 0,\n        \"includeAll\": false,\n        \"label\": \"JOB\",\n        \"multi\": false,\n        \"name\": \"job\",\n        \"options\": [],\n        \"query\": {\n          \"query\": \"label_values(harbor_health{}, job)\",\n          \"refId\": \"StandardVariableQuery\"\n        },\n        \"refresh\": 1,\n        \"regex\": \"\",\n        \"skipUrlSync\": false,\n        \"sort\": 0,\n        \"type\": \"query\"\n      },\n      {\n        \"allValue\": null,\n        \"current\": {\n          \"selected\": false,\n          \"text\": \"10.194.24.53\",\n          \"value\": \"10.194.24.53\"\n        },\n        \"datasource\": \"prometheus\",\n        \"definition\": \"label_values(harbor_health{job=\\\"$job\\\", instance=\\\"$instance\\\"}, instance)\",\n        \"description\": null,\n        \"error\": null,\n        \"hide\": 0,\n        \"includeAll\": false,\n        \"label\": \"iP\",\n        \"multi\": false,\n        \"name\": \"ip\",\n        \"options\": [],\n        \"query\": {\n          \"query\": \"label_values(harbor_health{job=\\\"$job\\\", instance=\\\"$instance\\\"}, instance)\",\n          \"refId\": \"StandardVariableQuery\"\n        },\n        \"refresh\": 1,\n        \"regex\": \"\/(\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d+)\/\",\n        \"skipUrlSync\": false,\n        \"sort\": 0,\n        \"type\": \"query\"\n      }\n    ]\n  },\n  \"time\": {\n    \"from\": \"now-3h\",\n    \"to\": \"now\"\n  },\n  \"timepicker\": {},\n  \"timezone\": \"\",\n  \"title\": \"harbor-dashboard\",\n  \"uid\": \"cJCys8iSk\",\n  \"version\": 5\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>kube-prometheus\u76d1\u63a7Harbor Harbor\u5b98\u65b9\u5728Harbor v2.2\u5f00\u59cb\u63d0\u4f9b\u5bf9\u76f8\u5173\u6307\u6807\u7684\u91c7 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[332,402,353,403],"tags":[339,352,369],"class_list":["post-2771","post","type-post","status-publish","format-standard","hentry","category-docker","category-grafana","category-kubernetes","category-prometheus","tag-harbor","tag-k8s","tag-prometheus"],"_links":{"self":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/comments?post=2771"}],"version-history":[{"count":1,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2771\/revisions"}],"predecessor-version":[{"id":2772,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2771\/revisions\/2772"}],"wp:attachment":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/media?parent=2771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/categories?post=2771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/tags?post=2771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}