This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-rocketbot-ui.git
The following commit(s) were added to refs/heads/master by this push:
new d917a42 Feat: Query and manage templates (#302)
d917a42 is described below
commit d917a4287a9eca80e661f35e1b51bf3aae292e23
Author: Qiuxia Fan <[email protected]>
AuthorDate: Tue Jun 2 15:34:43 2020 +0800
Feat: Query and manage templates (#302)
---
.../fragments/dashboard.ts} | 60 +++--
src/graph/fragments/option.ts | 5 -
src/graph/index.ts | 2 +
.../query/dashboard.ts} | 37 +--
src/graph/query/option.ts | 4 +-
.../modules/dashboard/dashboard-data-layout.ts | 35 ++-
src/store/modules/dashboard/dashboard-data.ts | 37 +++
src/store/modules/dashboard/dashboard-option.ts | 15 +-
src/store/modules/dashboard/mutation-types.ts | 1 +
src/store/modules/topology/index.ts | 3 +
src/template/database-template.ts | 159 -------------
src/template/endpoint-template.ts | 161 -------------
src/template/global-template.ts | 82 -------
src/template/instance-template.ts | 259 ---------------------
src/template/service-template.ts | 206 ----------------
src/template/topology-endpoint-template.ts | 161 -------------
src/template/topology-instance-template.ts | 259 ---------------------
src/types/dashboard.d.ts | 16 ++
src/views/components/dashboard/dashboard-item.vue | 6 +
src/views/containers/dashboard.vue | 40 +++-
.../topology/endpoint/endpoints-survey.vue | 10 +-
src/views/containers/topology/endpoint/index.vue | 3 +-
src/views/containers/topology/instance/index.vue | 3 +-
.../topology/instance/instances-survey.vue | 10 +-
src/views/containers/topology/topology.vue | 27 ++-
25 files changed, 219 insertions(+), 1382 deletions(-)
diff --git a/src/template/group-database-template.ts
b/src/graph/fragments/dashboard.ts
similarity index 50%
rename from src/template/group-database-template.ts
rename to src/graph/fragments/dashboard.ts
index c1547b0..d119df4 100644
--- a/src/template/group-database-template.ts
+++ b/src/graph/fragments/dashboard.ts
@@ -15,17 +15,49 @@
* limitations under the License.
*/
-import globalTemp from './global-template';
-import databaseTemp from './database-template';
-export default [
- {
- name: 'Global',
- children: globalTemp,
- type: 'All',
- },
- {
- name: 'Database',
- children: databaseTemp,
- type: 'Database',
- },
-];
+export const TypeOfMetrics = {
+ variable: '$name: String!',
+ query: `typeOfMetrics(name: $name)`,
+};
+
+export const getAllTemplates = {
+ query: `
+ getAllTemplates(includingDisabled: false) {
+ name,
+ type
+ configuration,
+ activated,
+ disabled,
+ }
+ `,
+};
+
+export const addTemplate = {
+ variable: '$setting: DashboardSetting!',
+ query: `
+ addTemplate(setting: $setting) {
+ status
+ message
+ }
+ `,
+};
+
+export const changeTemplate = {
+ variable: '$setting: DashboardSetting!',
+ query: `
+ changeTemplate(setting: $setting) {
+ status
+ message
+ }
+ `,
+};
+
+export const disableTemplate = {
+ variable: '$setting: DashboardSetting!',
+ query: `
+ disableTemplate(setting: $setting) {
+ status
+ message
+ }
+ `,
+};
diff --git a/src/graph/fragments/option.ts b/src/graph/fragments/option.ts
index abb2c63..f379594 100644
--- a/src/graph/fragments/option.ts
+++ b/src/graph/fragments/option.ts
@@ -68,8 +68,3 @@ export const OAPTimeInfo = {
}
`,
};
-
-export const TypeOfMetrics = {
- variable: '$name: String!',
- query: `typeOfMetrics(name: $name)`,
-};
diff --git a/src/graph/index.ts b/src/graph/index.ts
index ff8a7c9..8bbd91a 100644
--- a/src/graph/index.ts
+++ b/src/graph/index.ts
@@ -22,6 +22,7 @@ import * as trace from './query/trace';
import * as topology from './query/topology';
import * as alarm from './query/alarm';
import * as profile from './query/profile';
+import * as dashboard from './query/dashboard';
const query: any = {
...option,
@@ -29,6 +30,7 @@ const query: any = {
...topology,
...alarm,
...profile,
+ ...dashboard,
};
class Graph {
diff --git a/src/template/group-service-template.ts
b/src/graph/query/dashboard.ts
similarity index 53%
rename from src/template/group-service-template.ts
rename to src/graph/query/dashboard.ts
index 107533b..9f8a520 100644
--- a/src/template/group-service-template.ts
+++ b/src/graph/query/dashboard.ts
@@ -15,29 +15,14 @@
* limitations under the License.
*/
-import globalTemp from './global-template';
-import serviceTemp from './service-template';
-import endpointTemp from './endpoint-template';
-import instanceTemp from './instance-template';
-export default [
- {
- name: 'Global',
- children: globalTemp,
- type: 'Global',
- },
- {
- name: 'Service',
- children: serviceTemp,
- type: 'Service',
- },
- {
- name: 'Endpoint',
- children: endpointTemp,
- type: 'Endpoint',
- },
- {
- name: 'Instance',
- children: instanceTemp,
- type: 'Instance',
- },
-];
+import { TypeOfMetrics, getAllTemplates, addTemplate, changeTemplate,
disableTemplate } from '../fragments/dashboard';
+
+export const queryTypeOfMetrics = `query
queryTypeOfMetrics(${TypeOfMetrics.variable}) {${TypeOfMetrics.query}}`;
+
+export const mutationAddTemplate = `mutation
mutationAddTemplate(${addTemplate.variable}) {${addTemplate.query}}`;
+
+export const mutationChangeTemplate = `mutation
mutationChangeTemplate(${changeTemplate.variable}) {${changeTemplate.query}}`;
+
+export const mutationDisableTemplate = `mutation
mutationDisableTemplate(${disableTemplate.variable})
{${disableTemplate.query}}`;
+
+export const queryGetAllTemplates = `query queryGetAllTemplates
{${getAllTemplates.query}}`;
diff --git a/src/graph/query/option.ts b/src/graph/query/option.ts
index 659e4b5..766892f 100644
--- a/src/graph/query/option.ts
+++ b/src/graph/query/option.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { Services, Endpoints, Instances, Database, OAPTimeInfo, TypeOfMetrics
} from '../fragments/option';
+import { Services, Endpoints, Instances, Database, OAPTimeInfo } from
'../fragments/option';
export const queryServices = `query queryServices(${Services.variable})
{${Services.query}}`;
@@ -26,5 +26,3 @@ export const queryEndpoints = `query
queryEndpoints(${Endpoints.variable}) {${En
export const queryInstances = `query queryInstances(${Instances.variable})
{${Instances.query}}`;
export const queryOAPTimeInfo = `query queryOAPTimeInfo
{${OAPTimeInfo.query}}`;
-
-export const queryTypeOfMetrics = `query
queryTypeOfMetrics(${TypeOfMetrics.variable}) {${TypeOfMetrics.query}}`;
diff --git a/src/store/modules/dashboard/dashboard-data-layout.ts
b/src/store/modules/dashboard/dashboard-data-layout.ts
index 48d4953..1d83948 100644
--- a/src/store/modules/dashboard/dashboard-data-layout.ts
+++ b/src/store/modules/dashboard/dashboard-data-layout.ts
@@ -16,20 +16,18 @@
*/
import { MutationTree } from 'vuex';
-import { CompsTree } from '@/types/dashboard';
-import groupServiceTemp from '../../../template/group-service-template';
-import groupDatabaseTemp from '../../../template/group-database-template';
+import { CompsTree, DashboardTemplate } from '@/types/dashboard';
import * as types from './mutation-types';
-import { uuid } from '@/utils/uuid.ts';
-
export interface State {
current: number;
group: number;
index: number;
tree: CompsTree[];
+ allTemplates: DashboardTemplate[];
}
export const initState: State = {
+ allTemplates: [],
current: 0,
group: 0,
index: 0,
@@ -43,7 +41,7 @@ export const initState: State = {
instance: {},
database: {},
},
- children: groupServiceTemp,
+ children: [{}], // groupServiceTemp
},
{
name: 'Database Dashboard',
@@ -54,13 +52,16 @@ export const initState: State = {
instance: {},
database: {},
},
- children: groupDatabaseTemp,
+ children: [{}], // groupDatabaseTemp
},
],
};
// mutations
const mutations: MutationTree<State> = {
+ [types.SET_ALL_TEMPLATES](state: State, data: DashboardTemplate[]) {
+ state.allTemplates = data;
+ },
[types.SET_COMPS_TREE](state: State, data: CompsTree[]) {
state.tree = data;
},
@@ -85,6 +86,12 @@ const mutations: MutationTree<State> = {
if (!params.name) {
return;
}
+
+ const templates = state.allTemplates.filter((item: any) => item.type ===
'DASHBOARD' && item.activated)[0] || {};
+ const tree = JSON.parse(templates.configuration) || [];
+ const groupServiceTemp = tree.filter((item: any) => item.type ===
'service')[0] || {};
+ const groupDatabaseTemp = tree.filter((item: any) => item.type ===
'database')[0] || {};
+
switch (params.template) {
case 'metric':
const newTree = [];
@@ -99,7 +106,12 @@ const mutations: MutationTree<State> = {
Object.keys(state.tree).forEach((i: any) => {
newServerTree.push(state.tree[i]);
});
- newServerTree.push({ name: params.name, type: params.type, query: {},
children: groupServiceTemp });
+ newServerTree.push({
+ name: params.name,
+ type: params.type,
+ query: {},
+ children: groupServiceTemp.children || [],
+ });
state.tree = newServerTree;
break;
case 'database':
@@ -107,7 +119,12 @@ const mutations: MutationTree<State> = {
Object.keys(state.tree).forEach((i: any) => {
newDatabaseTree.push(state.tree[i]);
});
- newDatabaseTree.push({ name: params.name, type: params.type, query:
{}, children: groupDatabaseTemp });
+ newDatabaseTree.push({
+ name: params.name,
+ type: params.type,
+ query: {},
+ children: groupDatabaseTemp.children || [],
+ });
state.tree = newDatabaseTree;
break;
}
diff --git a/src/store/modules/dashboard/dashboard-data.ts
b/src/store/modules/dashboard/dashboard-data.ts
index e7618b5..fc4e60d 100644
--- a/src/store/modules/dashboard/dashboard-data.ts
+++ b/src/store/modules/dashboard/dashboard-data.ts
@@ -17,6 +17,8 @@
import { ActionTree, MutationTree, Commit, Dispatch } from 'vuex';
import { CompsTree } from '@/types/dashboard';
+import { AxiosResponse } from 'axios';
+import graph from '@/graph';
import dashboardLayout from './dashboard-data-layout';
import dashboardQuery from './dashboard-data-query';
@@ -84,6 +86,41 @@ const actions: ActionTree<State, any> = {
context.dispatch('SET_CURRENT_STATE', context.state.tree[index].query);
context.dispatch('RUN_EVENTS', {}, { root: true });
},
+ TYPE_METRICS(context, params: { name: string }) {
+ const metricNames = (params.name || '').split(',').map((item: string) =>
item.replace(/^\s*|\s*$/g, ''));
+ return Promise.all(
+ metricNames.map((item: string) => {
+ return graph
+ .query('queryTypeOfMetrics')
+ .params({ name: item })
+ .then((res: AxiosResponse) => {
+ return res.data.data;
+ });
+ }),
+ );
+ },
+ GET_ALL_TEMPLATES(context) {
+ return graph
+ .query('queryGetAllTemplates')
+ .params({})
+ .then((res: AxiosResponse) => {
+ if (!res.data.data) {
+ return;
+ }
+ return res.data.data.getAllTemplates || [];
+ });
+ },
+ ADD_TEMPLATE(context, params) {
+ return graph
+ .query('mutationAddTemplate')
+ .params({ setting: params })
+ .then((res: AxiosResponse) => {
+ if (!res.data.data) {
+ return;
+ }
+ return res.data.data.addTemplate || [];
+ });
+ },
};
export default {
diff --git a/src/store/modules/dashboard/dashboard-option.ts
b/src/store/modules/dashboard/dashboard-option.ts
index 0cfcf25..ec27168 100644
--- a/src/store/modules/dashboard/dashboard-option.ts
+++ b/src/store/modules/dashboard/dashboard-option.ts
@@ -190,7 +190,7 @@ const actions: ActionTree<State, any> = {
context.commit('SET_CURRENT_DATABASE', params);
context.dispatch('RUN_EVENTS', {}, { root: true });
},
- SET_CURRENT_STATE(context: { commit: Commit }, params: any) {
+ SET_CURRENT_STATE(context: { commit: Commit }, params: any = {}) {
context.commit(types.SET_CURRENT_SERVICE, params.service ? params.service
: {});
context.commit(types.SET_CURRENT_DATABASE, params.database ?
params.database : {});
context.commit(types.SET_CURRENT_ENDPOINT, params.endpoint ?
params.endpoint : {});
@@ -225,19 +225,6 @@ const actions: ActionTree<State, any> = {
return res.data.data.getServiceInstances;
});
},
- TYPE_METRICS(context, params: { name: string }) {
- const metricNames = (params.name || '').split(',').map((item: string) =>
item.replace(/^\s*|\s*$/g, ''));
- return Promise.all(
- metricNames.map((item: string) => {
- return graph
- .query('queryTypeOfMetrics')
- .params({ name: item })
- .then((res: AxiosResponse) => {
- return res.data.data;
- });
- }),
- );
- },
GET_ITEM_SERVICES(context, params: { duration: any; keyword: string }) {
if (!params.keyword) {
params.keyword = '';
diff --git a/src/store/modules/dashboard/mutation-types.ts
b/src/store/modules/dashboard/mutation-types.ts
index d498905..2668093 100644
--- a/src/store/modules/dashboard/mutation-types.ts
+++ b/src/store/modules/dashboard/mutation-types.ts
@@ -34,6 +34,7 @@ export const SET_INSTANCES = 'SET_INSTANCES';
export const SET_CURRENT_INSTANCE = 'SET_CURRENT_INSTANCE';
export const SET_INSTANCE_INFO = 'SET_INSTANCE_INFO';
export const SET_KEYWORDSERVICE = 'SET_KEYWORDSERVICE';
+export const SET_ALL_TEMPLATES = 'SET_ALL_TEMPLATES';
// comp
export const SET_CURRENT_GROUP = 'SET_CURRENT_GROUP';
diff --git a/src/store/modules/topology/index.ts
b/src/store/modules/topology/index.ts
index c498895..b101193 100644
--- a/src/store/modules/topology/index.ts
+++ b/src/store/modules/topology/index.ts
@@ -265,6 +265,9 @@ const actions: ActionTree<State, any> = {
}
},
GET_TOPO_SERVICE_INFO(context: { commit: Commit; state: State }, params:
any) {
+ if (!params.id) {
+ return;
+ }
return graph
.query('queryTopoServiceInfo')
.params({
diff --git a/src/template/database-template.ts
b/src/template/database-template.ts
deleted file mode 100644
index a8fb721..0000000
--- a/src/template/database-template.ts
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Database Avg ResponseTime',
- width: 3,
- height: 250,
- metricName: 'database_access_resp_time',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: 'ms',
- aggregation: '',
- aggregationNum: 0,
- normal: false,
- },
- {
- chartType: 'ChartNum',
- title: 'Database Avg Throughput',
- width: 3,
- height: 250,
- metricName: 'database_access_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: 'ms',
- aggregation: '',
- aggregationNum: null,
- normal: false,
- },
- {
- chartType: 'ChartNum',
- title: 'Database Avg SLA',
- width: 3,
- height: 250,
- metricName: 'database_access_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: false,
- },
- {
- chartType: 'ChartLine',
- title: 'Database ResponseTime',
- width: 3,
- height: 250,
- metricName: 'database_access_resp_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: 'ms',
- aggregation: '',
- aggregationNum: null,
- normal: false,
- },
- {
- chartType: 'ChartLine',
- title: 'Database Throughput',
- width: 3,
- height: 250,
- metricName: 'database_access_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: 'ms',
- aggregation: '',
- aggregationNum: null,
- normal: false,
- },
- {
- chartType: 'ChartLine',
- title: 'Database SLA',
- width: 3,
- height: 250,
- metricName: 'database_access_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: false,
- },
- {
- chartType: 'ChartLine',
- title: 'Global Response Time Percentile',
- width: 6,
- height: 250,
- metricName: 'all_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'All',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- unit: '',
- aggregation: '',
- aggregationNum: null,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Database Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'database_access_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: false,
- },
- {
- chartType: 'ChartSlow',
- title: 'Database TopN Records',
- width: 6,
- height: 250,
- metricName: 'top_n_database_statement',
- queryMetricType: 'readSampledRecords',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'SAMPLED_RECORD',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- parentService: true,
- normal: false,
- },
-];
diff --git a/src/template/endpoint-template.ts
b/src/template/endpoint-template.ts
deleted file mode 100644
index 580fe17..0000000
--- a/src/template/endpoint-template.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg ResponseTime',
- width: 3,
- height: 80,
- metricName: 'endpoint_avg',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg Throughput',
- width: 3,
- height: 80,
- metricName: 'endpoint_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg SLA',
- width: 3,
- height: 80,
- metricName: 'endpoint_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- version: '1.0',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint ResponseTime',
- width: 3,
- height: 170,
- metricName: 'endpoint_avg',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint Throughput',
- width: 3,
- height: 170,
- metricName: 'endpoint_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint SLA',
- width: 3,
- height: 170,
- metricName: 'endpoint_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- version: '1.0',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Global Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'all_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'All',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'endpoint_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartSlow',
- title: 'Global Top Slow Endpoint',
- width: 6,
- height: 250,
- metricName: 'endpoint_avg',
- queryMetricType: 'sortMetrics',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- parentService: false,
- normal: true,
- },
-];
diff --git a/src/template/global-template.ts b/src/template/global-template.ts
deleted file mode 100644
index 80133f2..0000000
--- a/src/template/global-template.ts
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-export default [
- {
- chartType: 'ChartHeatmap',
- title: 'Global Heatmap',
- width: 6,
- height: 250,
- metricName: 'all_heatmap',
- queryMetricType: 'readHeatMap',
- entityType: 'All',
- independentSelector: false,
- metricType: 'HEATMAP',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Global Response Time Percentile',
- width: 6,
- height: 250,
- metricName: 'all_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'All',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartTrace',
- title: 'Global Top Throughput',
- width: 3,
- height: 250,
- metricName: 'service_cpm',
- queryMetricType: 'sortMetrics',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'cpm',
- parentService: false,
- normal: true,
- },
- {
- chartType: 'ChartSlow',
- title: 'Global Top Slow Endpoint',
- width: 6,
- height: 250,
- metricName: 'endpoint_avg',
- queryMetricType: 'sortMetrics',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- parentService: false,
- normal: true,
- },
-];
diff --git a/src/template/instance-template.ts
b/src/template/instance-template.ts
deleted file mode 100644
index 4ac788f..0000000
--- a/src/template/instance-template.ts
+++ /dev/null
@@ -1,259 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Instance Avg ResponseTime',
- width: 3,
- height: 80,
- metricName: 'service_instance_resp_time',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Instance Avg Throughput',
- width: 3,
- height: 80,
- metricName: 'service_instance_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Instance Avg SLA',
- width: 3,
- height: 80,
- metricName: 'service_instance_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance ResponseTime',
- width: 3,
- height: 170,
- metricName: 'service_instance_resp_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance Throughput',
- width: 3,
- height: 170,
- metricName: 'service_instance_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance SLA',
- width: 3,
- height: 170,
- metricName: 'service_instance_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM Heap (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_memory_heap, instance_jvm_memory_heap_max',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM Non-Heap (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_memory_noheap, instance_jvm_memory_noheap_max',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM GC (ms)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_young_gc_time, instance_jvm_old_gc_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartCount',
- title: 'JVM GC Count',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_young_gc_count, instance_jvm_old_gc_count',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM CPU (%)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_cpu',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR CPU (%)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_cpu',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR GC (Count)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_gen0_collect_count,
instance_clr_gen1_collect_count, instance_clr_gen2_collect_count',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR HeapMemory (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_heap_memory',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Envoy Count',
- width: 3,
- height: 250,
- metricName: 'envoy_total_connections_used, envoy_parent_connections_used',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Envoy Heap Memory Max Used',
- width: 3,
- height: 250,
- metricName: 'envoy_heap_memory_max_used',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
-];
diff --git a/src/template/service-template.ts b/src/template/service-template.ts
deleted file mode 100644
index 205cf4a..0000000
--- a/src/template/service-template.ts
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Service Avg ApdexScore',
- width: 3,
- height: 80,
- metricName: 'service_apdex',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- version: '1.0',
- unit: '',
- aggregation: '/',
- aggregationNum: 10000,
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Service Avg ResponseTime',
- width: 3,
- height: 80,
- metricName: 'service_resp_time',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Service Avg Throughput',
- width: 3,
- height: 80,
- metricName: 'service_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Service Avg SLA',
- width: 3,
- height: 80,
- metricName: 'service_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Service ApdexScore',
- width: 3,
- height: 170,
- metricName: 'service_apdex',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '',
- aggregation: '/',
- aggregationNum: 10000,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Service ResponseTime',
- width: 3,
- height: 170,
- metricName: 'service_resp_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Service Throughput',
- width: 3,
- height: 170,
- metricName: 'service_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Service SLA',
- width: 3,
- height: 170,
- metricName: 'service_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Global Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'all_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'All',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Service Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'service_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'Service',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartSlow',
- title: 'Service Slow Endpoint',
- width: 3,
- height: 250,
- metricName: 'endpoint_avg',
- queryMetricType: 'sortMetrics',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- parentService: true,
- normal: true,
- },
- {
- chartType: 'ChartTrace',
- title: 'Running ServiceInstance',
- width: 3,
- height: 250,
- metricName: 'service_instance_cpm',
- queryMetricType: 'sortMetrics',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'cpm',
- parentService: true,
- normal: true,
- },
-];
diff --git a/src/template/topology-endpoint-template.ts
b/src/template/topology-endpoint-template.ts
deleted file mode 100644
index 580fe17..0000000
--- a/src/template/topology-endpoint-template.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg ResponseTime',
- width: 3,
- height: 80,
- metricName: 'endpoint_avg',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg Throughput',
- width: 3,
- height: 80,
- metricName: 'endpoint_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Endpoint Avg SLA',
- width: 3,
- height: 80,
- metricName: 'endpoint_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- version: '1.0',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint ResponseTime',
- width: 3,
- height: 170,
- metricName: 'endpoint_avg',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint Throughput',
- width: 3,
- height: 170,
- metricName: 'endpoint_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint SLA',
- width: 3,
- height: 170,
- metricName: 'endpoint_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- version: '1.0',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Global Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'all_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'All',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Endpoint Response Time Percentile',
- width: 3,
- height: 250,
- metricName: 'endpoint_percentile',
- queryMetricType: 'readLabeledMetricsValues',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'LABELED_VALUE',
- metricLabels: 'p50, p75, p90, p95, p99',
- labelsIndex: '0, 1, 2, 3, 4',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartSlow',
- title: 'Global Top Slow Endpoint',
- width: 6,
- height: 250,
- metricName: 'endpoint_avg',
- queryMetricType: 'sortMetrics',
- entityType: 'Endpoint',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- parentService: false,
- normal: true,
- },
-];
diff --git a/src/template/topology-instance-template.ts
b/src/template/topology-instance-template.ts
deleted file mode 100644
index 4ac788f..0000000
--- a/src/template/topology-instance-template.ts
+++ /dev/null
@@ -1,259 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-export default [
- {
- chartType: 'ChartNum',
- title: 'Instance Avg ResponseTime',
- width: 3,
- height: 80,
- metricName: 'service_instance_resp_time',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Instance Avg Throughput',
- width: 3,
- height: 80,
- metricName: 'service_instance_cpm',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartNum',
- title: 'Instance Avg SLA',
- width: 3,
- height: 80,
- metricName: 'service_instance_sla',
- queryMetricType: 'readMetricsValue',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance ResponseTime',
- width: 3,
- height: 170,
- metricName: 'service_instance_resp_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance Throughput',
- width: 3,
- height: 170,
- metricName: 'service_instance_cpm',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: 'ms',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Instance SLA',
- width: 3,
- height: 170,
- metricName: 'service_instance_sla',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- unit: '%',
- aggregation: '/',
- aggregationNum: 100,
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM Heap (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_memory_heap, instance_jvm_memory_heap_max',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM Non-Heap (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_memory_noheap, instance_jvm_memory_noheap_max',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM GC (ms)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_young_gc_time, instance_jvm_old_gc_time',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartCount',
- title: 'JVM GC Count',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_young_gc_count, instance_jvm_old_gc_count',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'JVM CPU (%)',
- width: 3,
- height: 250,
- metricName: 'instance_jvm_cpu',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR CPU (%)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_cpu',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR GC (Count)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_gen0_collect_count,
instance_clr_gen1_collect_count, instance_clr_gen2_collect_count',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'CLR HeapMemory (MB)',
- width: 3,
- height: 250,
- metricName: 'instance_clr_heap_memory',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Envoy Count',
- width: 3,
- height: 250,
- metricName: 'envoy_total_connections_used, envoy_parent_connections_used',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
- {
- chartType: 'ChartLine',
- title: 'Envoy Heap Memory Max Used',
- width: 3,
- height: 250,
- metricName: 'envoy_heap_memory_max_used',
- queryMetricType: 'readMetricsValues',
- entityType: 'ServiceInstance',
- independentSelector: false,
- metricType: 'REGULAR_VALUE',
- aggregation: '',
- aggregationNum: null,
- unit: '',
- normal: true,
- },
-];
diff --git a/src/types/dashboard.d.ts b/src/types/dashboard.d.ts
index 20b6f50..0b1aa7e 100644
--- a/src/types/dashboard.d.ts
+++ b/src/types/dashboard.d.ts
@@ -50,3 +50,19 @@ interface Fragment {
fragment: string;
variable: string;
}
+export enum TemplateType {
+ DASHBOARD,
+ TOPOLOGY_SERVICE,
+ TOPOLOGY_INSTANCE,
+ TOPOLOGY_ENDPOINT,
+ TOPOLOGY_SERVICE_RELATION,
+ TOPOLOGY_SERVICE_INSTANCE_RELATION,
+}
+
+export interface DashboardTemplate {
+ name: string;
+ type: TemplateType;
+ configuration: string;
+ activated: boolean;
+ disabled: boolean;
+}
diff --git a/src/views/components/dashboard/dashboard-item.vue
b/src/views/components/dashboard/dashboard-item.vue
index 9de5d04..9ac8a09 100644
--- a/src/views/components/dashboard/dashboard-item.vue
+++ b/src/views/components/dashboard/dashboard-item.vue
@@ -83,6 +83,8 @@ limitations under the License. -->
@Getter('durationTime') private durationTime: any;
@Prop() private item!: any;
@Prop() private index!: number;
+ @Prop() private type!: string;
+
private dialogConfigVisible = false;
private status = 'UNKNOWN';
private title = 'Title';
@@ -99,6 +101,10 @@ limitations under the License. -->
this.height = this.item.height;
this.unit = this.item.unit;
this.itemConfig = this.item;
+ const pageTypes = ['TOPOLOGY_ENDPOINT', 'TOPOLOGY_INSTANCE'];
+ if (pageTypes.includes(this.type)) {
+ return;
+ }
this.chartRender();
}
diff --git a/src/views/containers/dashboard.vue
b/src/views/containers/dashboard.vue
index e386d82..5277f9f 100644
--- a/src/views/containers/dashboard.vue
+++ b/src/views/containers/dashboard.vue
@@ -58,11 +58,15 @@ limitations under the License. -->
@State('rocketbot') private rocketGlobal: any;
@State('rocketOption') private stateDashboardOption!: any;
@State('rocketData') private rocketComps!: any;
- @Mutation('SET_COMPS_TREE') private SET_COMPS_TREE: any;
- @Mutation('SET_CURRENT_COMPS') private SET_CURRENT_COMPS: any;
@Action('MIXHANDLE_GET_OPTION') private MIXHANDLE_GET_OPTION: any;
+ @Action('GET_ALL_TEMPLATES') private GET_ALL_TEMPLATES: any;
+ // @Action('ADD_TEMPLATE') private ADD_TEMPLATE: any;
@Getter('durationTime') private durationTime: any;
+ @Mutation('SET_COMPS_TREE') private SET_COMPS_TREE: any;
+ @Mutation('SET_CURRENT_COMPS') private SET_CURRENT_COMPS: any;
@Mutation('ADD_COMP') private ADD_COMP: any;
+ @Mutation('SET_ALL_TEMPLATES') private SET_ALL_TEMPLATES: any;
+
private isRouterAlive: boolean = true;
public reload(): void {
this.isRouterAlive = false;
@@ -84,10 +88,34 @@ limitations under the License. -->
});
}
private beforeMount() {
- if (window.localStorage.getItem('dashboard')) {
- const data: string = `${window.localStorage.getItem('dashboard')}`;
- this.SET_COMPS_TREE(JSON.parse(data));
- }
+ // this.ADD_TEMPLATE({
+ // name: 'Topology Instance',
+ // type: 'TOPOLOGY_INSTANCE',
+ // active: true,
+ // configuration: JSON.stringify(TopologyInstanceTemp),
+ // }).then((data: any) => {
+ // console.log(data);
+ // });
+ this.GET_ALL_TEMPLATES().then(
+ (
+ allTemplate: Array<{
+ name: string;
+ type: string;
+ configuration: string;
+ activated: boolean;
+ disabled: boolean;
+ }>,
+ ) => {
+ this.SET_ALL_TEMPLATES(allTemplate);
+ if (window.localStorage.getItem('dashboard')) {
+ const data: string = `${window.localStorage.getItem('dashboard')}`;
+ this.SET_COMPS_TREE(JSON.parse(data));
+ } else {
+ const template = allTemplate.filter((item: any) => item.type ===
'DASHBOARD' && item.activated)[0] || {};
+ this.SET_COMPS_TREE(JSON.parse(template.configuration) || []);
+ }
+ },
+ );
this.handleOption();
}
}
diff --git a/src/views/containers/topology/endpoint/endpoints-survey.vue
b/src/views/containers/topology/endpoint/endpoints-survey.vue
index c5c23f3..218969d 100644
--- a/src/views/containers/topology/endpoint/endpoints-survey.vue
+++ b/src/views/containers/topology/endpoint/endpoints-survey.vue
@@ -21,16 +21,16 @@ limitations under the License. -->
:rocketGlobal="{ edit: false }"
:item="i"
:index="index"
+ :type="'TOPOLOGY_ENDPOINT'"
/>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
- import { Component } from 'vue-property-decorator';
+ import { Component, Prop } from 'vue-property-decorator';
import { State } from 'vuex-class';
import DashboardItem from '@/views/components/dashboard/dashboard-item.vue';
- import TopologyEndpointTemp from
'../../../../template/topology-endpoint-template';
@Component({
components: {
@@ -38,11 +38,7 @@ limitations under the License. -->
},
})
export default class InstancesSurvey extends Vue {
- private endpointComps: any = [];
-
- private created() {
- this.endpointComps = TopologyEndpointTemp;
- }
+ @Prop() private endpointComps: any;
}
</script>
diff --git a/src/views/containers/topology/endpoint/index.vue
b/src/views/containers/topology/endpoint/index.vue
index 573cc25..609fa41 100644
--- a/src/views/containers/topology/endpoint/index.vue
+++ b/src/views/containers/topology/endpoint/index.vue
@@ -24,7 +24,7 @@ limitations under the License. -->
icon="code"
/>
</div>
- <endpoints-survey />
+ <endpoints-survey :endpointComps="endpointComps" />
</div>
</template>
@@ -58,6 +58,7 @@ limitations under the License. -->
@Action('GET_SERVICE_ENDPOINTS') private GET_SERVICE_ENDPOINTS: any;
@Action('MIXHANDLE_CHANGE_GROUP_WITH_CURRENT') private
MIXHANDLE_CHANGE_GROUP_WITH_CURRENT: any;
@Prop() private current!: { key: number | string; label: number | string };
+ @Prop() private endpointComps: any;
private selectEndpoint(i: any) {
this.SELECT_ENDPOINT({ endpoint: i, duration: this.durationTime });
diff --git a/src/views/containers/topology/instance/index.vue
b/src/views/containers/topology/instance/index.vue
index bba521e..017fa68 100644
--- a/src/views/containers/topology/instance/index.vue
+++ b/src/views/containers/topology/instance/index.vue
@@ -25,7 +25,7 @@ limitations under the License. -->
icon="disk"
/>
</div>
- <instances-survey />
+ <instances-survey :instanceComps="instanceComps" />
</div>
</template>
@@ -59,6 +59,7 @@ limitations under the License. -->
@Action('GET_SERVICE_INSTANCES') private GET_SERVICE_INSTANCES: any;
@Action('MIXHANDLE_CHANGE_GROUP_WITH_CURRENT') private
MIXHANDLE_CHANGE_GROUP_WITH_CURRENT: any;
@Prop() private current!: { key: number | string; label: number | string };
+ @Prop() private instanceComps: any;
private selectInstance(i: any) {
this.SELECT_INSTANCE({ instance: i, duration: this.durationTime });
diff --git a/src/views/containers/topology/instance/instances-survey.vue
b/src/views/containers/topology/instance/instances-survey.vue
index e03df44..d65c52e 100644
--- a/src/views/containers/topology/instance/instances-survey.vue
+++ b/src/views/containers/topology/instance/instances-survey.vue
@@ -21,16 +21,16 @@ limitations under the License. -->
:rocketGlobal="{ edit: false }"
:item="i"
:index="index"
+ :type="'TOPOLOGY_INSTANCE'"
/>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
- import { Component } from 'vue-property-decorator';
+ import { Component, Prop } from 'vue-property-decorator';
import { State } from 'vuex-class';
import DashboardItem from '@/views/components/dashboard/dashboard-item.vue';
- import TopologyInstanceTemp from
'../../../../template/topology-instance-template';
@Component({
components: {
@@ -38,11 +38,7 @@ limitations under the License. -->
},
})
export default class InstancesSurvey extends Vue {
- private instanceComps: any[] = [];
-
- private created() {
- this.instanceComps = TopologyInstanceTemp;
- }
+ @Prop() private instanceComps: any;
}
</script>
diff --git a/src/views/containers/topology/topology.vue
b/src/views/containers/topology/topology.vue
index 55abd7c..5a458ad 100644
--- a/src/views/containers/topology/topology.vue
+++ b/src/views/containers/topology/topology.vue
@@ -25,8 +25,8 @@ limitations under the License. -->
<TopoAside />
<TopoGroup />
<rk-sidebox :show="dialog.length" @update:show="dialog = ''" :fixed="true"
width="80%">
- <window-endpoint v-if="dialog === 'endpoint'" :current="this.current" />
- <window-instance v-if="dialog === 'instance'" :current="this.current" />
+ <window-endpoint v-if="dialog === 'endpoint'" :current="this.current"
:endpointComps="endpointComps" />
+ <window-instance v-if="dialog === 'instance'" :current="this.current"
:instanceComps="instanceComps" />
<window-trace v-if="dialog === 'trace'" :current="this.current" />
<window-alarm v-if="dialog === 'alarm'" :current="this.current" />
</rk-sidebox>
@@ -60,10 +60,33 @@ limitations under the License. -->
@State('rocketTopo') private stateTopo!: topoState;
@Action('rocketTopo/CLEAR_TOPO') private CLEAR_TOPO: any;
@Action('rocketTopo/CLEAR_TOPO_INFO') private CLEAR_TOPO_INFO: any;
+ @Action('GET_ALL_TEMPLATES') private GET_ALL_TEMPLATES: any;
@Getter('durationTime') private durationTime: any;
private current: any = {};
private dialog: string = '';
+ private instanceComps: any = [];
+ private endpointComps: any = [];
+ private created() {
+ this.GET_ALL_TEMPLATES().then(
+ (
+ allTemplates: Array<{
+ name: string;
+ type: string;
+ configuration: string;
+ activated: boolean;
+ disabled: boolean;
+ }>,
+ ) => {
+ const template =
+ allTemplates.filter((item: any) => item.type ===
'TOPOLOGY_INSTANCE' && item.activated)[0] || {};
+ this.instanceComps = JSON.parse(template.configuration) || [];
+ const endpointTemplate =
+ allTemplates.filter((item: any) => item.type ===
'TOPOLOGY_ENDPOINT' && item.activated)[0] || {};
+ this.endpointComps = JSON.parse(endpointTemplate.configuration) ||
[];
+ },
+ );
+ }
private setCurrent(d: any): void {
this.current = d;
}