@cloudcare/guance-front-tools 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -136,21 +136,22 @@ function covertPanelToGuanceChart(grafanaPanel, rowPanel) {
136
136
  const queries = [];
137
137
  if (targets && targets.length) {
138
138
  targets.forEach((_target) => {
139
- if (!_target.expr)
139
+ const queryStr = _target.expr || _target.query;
140
+ if (!queryStr)
140
141
  return;
141
142
  const queryItem = {
142
143
  datasource: 'dataflux',
143
144
  qtype: 'promql',
144
145
  type: chartType,
145
146
  query: {
146
- q: replaceVariableStr(_target.expr),
147
+ q: replaceVariableStr(queryStr),
147
148
  type: 'promql',
148
149
  },
149
150
  };
150
151
  queries.push(queryItem);
151
152
  });
152
153
  }
153
- const settings = {};
154
+ let settings = {};
154
155
  if (options) {
155
156
  switch (chartType) {
156
157
  case 'text':
@@ -161,6 +162,12 @@ function covertPanelToGuanceChart(grafanaPanel, rowPanel) {
161
162
  };
162
163
  queries.push(queryItem);
163
164
  break;
165
+ case 'toplist':
166
+ settings = {
167
+ showTopSize: true,
168
+ chartType: 'bar',
169
+ };
170
+ break;
164
171
  default:
165
172
  break;
166
173
  }
@@ -141,20 +141,21 @@ function covertPanelToGuanceChart(grafanaPanel: Panel, rowPanel: RowPanel | unde
141
141
  const queries: GuanceChartQueries = []
142
142
  if (targets && targets.length) {
143
143
  targets.forEach((_target) => {
144
- if (!_target.expr) return
144
+ const queryStr: string | unknown = _target.expr || _target.query
145
+ if (!queryStr) return
145
146
  const queryItem: GuanceChartQueryItem = {
146
147
  datasource: 'dataflux',
147
148
  qtype: 'promql',
148
149
  type: chartType,
149
150
  query: {
150
- q: replaceVariableStr(_target.expr as string),
151
+ q: replaceVariableStr(queryStr as string),
151
152
  type: 'promql',
152
153
  },
153
154
  }
154
155
  queries.push(queryItem)
155
156
  })
156
157
  }
157
- const settings: GuanceChartSettings = {}
158
+ let settings: GuanceChartSettings = {}
158
159
  if (options) {
159
160
  switch (chartType) {
160
161
  case 'text':
@@ -165,6 +166,12 @@ function covertPanelToGuanceChart(grafanaPanel: Panel, rowPanel: RowPanel | unde
165
166
  }
166
167
  queries.push(queryItem)
167
168
  break
169
+ case 'toplist':
170
+ settings = {
171
+ showTopSize: true,
172
+ chartType: 'bar',
173
+ }
174
+ break
168
175
  default:
169
176
  break
170
177
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/guance-front-tools",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/test/pod.json ADDED
@@ -0,0 +1 @@
1
+ {"title":"项目容器状态","dashboardExtend":{"groupUnfoldStatus":{}},"main":{"vars":[{"type":"PROMQL_QUERY","datasource":"dataflux","name":"namespace","seq":0,"hide":0,"multiple":false,"includeStar":false,"valueSort":"desc","code":"namespace","definition":{"value":"label_values(kube_pod_info, namespace)","defaultVal":{"label":"kube-system","value":"kube-system"}}},{"type":"PROMQL_QUERY","datasource":"dataflux","name":"workload","seq":1,"hide":0,"multiple":false,"includeStar":false,"valueSort":"desc","code":"workload","definition":{"value":"label_values(kube_deployment_created{namespace=\"#{namespace}\"}, deployment)","defaultVal":{"label":"tiller-deploy","value":"tiller-deploy"}}}],"charts":[{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":0.5,"h":5.8,"w":3},"name":"CPU Limit","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"max(kube_pod_container_resource_limits_cpu_cores{namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"})","type":"promql"}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":3,"y":0.5,"h":5.8,"w":3},"name":"Memory Limit","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"max(kube_pod_container_resource_limits_memory_bytes{namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"})","type":"promql"}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":6,"y":0.5,"h":5.8,"w":3},"name":"最大实例数","queries":[{"datasource":"dataflux","qtype":"promql","type":"singlestat","query":{"q":"kube_deployment_spec_replicas{deployment=~\"#{workload}\"}","type":"promql"}}],"type":"singlestat"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":9,"y":0.5,"h":15.3,"w":5},"name":"整体CPU使用率","queries":[{"datasource":"dataflux","qtype":"promql","type":"gauge","query":{"q":"avg(\navg(irate(container_cpu_usage_seconds_total{container!~\"(POD|istio-proxy)\", namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m]) ) by (pod)\n/\navg( kube_pod_container_resource_limits_cpu_cores{namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"} ) by (pod)\n)","type":"promql"}}],"type":"gauge"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":14,"y":0.5,"h":15.3,"w":5},"name":"整体内存使用率","queries":[{"datasource":"dataflux","qtype":"promql","type":"gauge","query":{"q":"avg(\navg(container_memory_working_set_bytes{ container=\"#{workload}\",namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"} ) by (pod)\n/\nmax( kube_pod_container_resource_limits_memory_bytes{container=~\"#{workload}\"} ) by (pod)\n)","type":"promql"}}],"type":"gauge"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":19,"y":0.5,"h":15.3,"w":5},"name":"实例可用率","queries":[{"datasource":"dataflux","qtype":"promql","type":"gauge","query":{"q":"kube_deployment_status_replicas_available{deployment=~\"#{workload}\"} / kube_deployment_spec_replicas{deployment=~\"#{workload}\"} ","type":"promql"}}],"type":"gauge"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":5.8,"h":9.6,"w":9},"name":"可用副本数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"kube_deployment_status_replicas_available{deployment=~\"${workload}\"}","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":15.3,"h":15.3,"w":12},"name":"CPU使用率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"avg(irate(container_cpu_usage_seconds_total{container!~\"(POD|istio-proxy)\", namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m]) ) by (pod)\n/\nmax( kube_pod_container_resource_limits_cpu_cores{namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"} ) by (pod)","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":15.3,"h":15.3,"w":12},"name":"内存使用率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"avg(container_memory_working_set_bytes{ container=\"#{workload}\", namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"} ) by (pod)\n/\nmax( kube_pod_container_resource_limits_memory_bytes{namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"} ) by (pod)","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":30.5,"h":15.3,"w":12},"name":"磁盘读取速率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(container_fs_reads_bytes_total{namespace=~\"#{namespace}\", container=~\"#{workload}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m])","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":30.5,"h":15.3,"w":12},"name":"磁盘写入速率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"rate(container_fs_writes_bytes_total{namespace=~\"#{namespace}\", container=~\"#{workload}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m])","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":45.7,"h":17.2,"w":12},"name":"网络传输速率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"irate(container_network_transmit_bytes_total{namespace=~\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m])","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":45.7,"h":17.2,"w":12},"name":"网络接收速率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"irate(container_network_receive_bytes_total{namespace=~\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m])","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":62.8,"h":15.3,"w":12},"name":"文件打开数","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"process_files_open{namespace=~\"#{namespace}\", service=~\"#{workload}\"}","type":"promql"}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"process_files_open_files{namespace=~\"#{namespace}\", service=~\"#{workload}\"}","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":62.8,"h":15.3,"w":12},"name":"网络速率","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(irate(container_network_receive_bytes_total{namespace=~\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m]))","type":"promql"}},{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"0- sum(irate(container_network_transmit_bytes_total{namespace=~\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m]))","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":78,"h":15.3,"w":12},"name":"业务状态码 isSuccess","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"product_appId_isSuccess:polaris_requests_business_code_total:increase1m{appId=~\"#{workload}\"}","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":78,"h":15.3,"w":12},"name":"业务状态码 respCode - busCode","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(product_appId_isSuccess_respCode_busCode:polaris_requests_business_code_total:increase1m{appId=~\"#{workload}\"}) by (respCode, busCode)","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":93.2,"h":15.3,"w":12},"name":"访问量","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(increase(nginx_ingress_controller_requests{namespace=\"#{namespace}\", service=\"#{workload}\",service!~\"ingress.+\"}[1m])) by (service) ","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":93.2,"h":15.3,"w":12},"name":"状态码","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"sum(increase(nginx_ingress_controller_requests{status=~\"(40[1-4]|40[5-9]|4[1-9][0-9]|5[0-9]+)\", namespace=\"#{namespace}\", service=\"#{workload}\"}[1m])) by (service, status) > 0","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":0,"y":108.4,"h":15.3,"w":12},"name":"cpu throttle (核心数)","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"irate(container_cpu_cfs_throttled_seconds_total{container=~\"#{workload}\", namespace=\"#{namespace}\", pod=~\"#{workload}-[0-9a-z]+-[0-9a-z]+\"}[5m])","type":"promql"}}],"type":"sequence"},{"extend":{"settings":{}},"group":{"name":null},"pos":{"x":12,"y":108.4,"h":15.3,"w":12},"name":"pod挂载状态","queries":[{"datasource":"dataflux","qtype":"promql","type":"sequence","query":{"q":"kube_pod_container_status_ready{container=\"#{workload}\"} == 1","type":"promql"}}],"type":"sequence"}],"groups":[]}}