This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch update-antdpro
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking-ui.git
The following commit(s) were added to refs/heads/update-antdpro by this push:
new 6d540cc Add models
6d540cc is described below
commit 6d540cc4d062c2eef9440642eac3be8eae953b34
Author: hanahmily <[email protected]>
AuthorDate: Mon Feb 26 11:40:43 2018 +0800
Add models
---
src/models/alarm.js | 93 ++++++++++++++++++++++++++++++++++++++++++
src/models/application.js | 65 +++++++++++++++++++++++++++++
src/models/dashboard.js | 52 ++++++++++++++++++++++++
src/models/server.js | 52 ++++++++++++++++++++++++
src/models/service.js | 60 +++++++++++++++++++++++++++
src/models/topology.js | 40 ++++++++++++++++++
src/models/trace.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 463 insertions(+)
diff --git a/src/models/alarm.js b/src/models/alarm.js
new file mode 100644
index 0000000..3b9df76
--- /dev/null
+++ b/src/models/alarm.js
@@ -0,0 +1,93 @@
+import { generateModal } from '../utils/utils';
+
+const dataQuery = `
+ query Alarm($keyword: String, $alarmType: AlarmType, $duration:Duration!,
$paging: Pagination!){
+ loadAlarmList(keyword: $keyword, alarmType: $alarmType, duration:
$duration, paging: $paging) {
+ items {
+ key: id
+ title
+ content
+ startTime
+ causeType
+ }
+ total
+ }
+ }
+`;
+
+export default generateModal({
+ namespace: 'alarm',
+ state: {
+ applicationAlarmList: {
+ items: [],
+ total: 0,
+ },
+ serverAlarmList: {
+ items: [],
+ total: 0,
+ },
+ serviceAlarmList: {
+ items: [],
+ total: 0,
+ },
+ },
+ dataQuery,
+ reducers: {
+ saveApplicationAlarmList(preState, { payload }) {
+ if (!payload) {
+ return preState;
+ }
+ const { loadAlarmList } = payload;
+ const { data } = preState;
+ return {
+ ...preState,
+ data: {
+ ...data,
+ applicationAlarmList: loadAlarmList,
+ },
+ };
+ },
+ saveServerAlarmList(preState, { payload }) {
+ if (!payload) {
+ return preState;
+ }
+ const { loadAlarmList } = payload;
+ const { data } = preState;
+ return {
+ ...preState,
+ data: {
+ ...data,
+ serverAlarmList: loadAlarmList,
+ },
+ };
+ },
+ saveServiceAlarmList(preState, { payload }) {
+ if (!payload) {
+ return preState;
+ }
+ const { loadAlarmList } = payload;
+ const { data } = preState;
+ return {
+ ...preState,
+ data: {
+ ...data,
+ serviceAlarmList: loadAlarmList,
+ },
+ };
+ },
+ },
+ subscriptions: {
+ setup({ history, dispatch }) {
+ return history.listen(({ pathname, state }) => {
+ if (pathname === '/alarm' && state) {
+ dispatch({
+ type: 'alarm/saveVariables',
+ payload: { values: {
+ alarmType: state.type.toUpperCase(),
+ } },
+ });
+ }
+ });
+ },
+ },
+});
diff --git a/src/models/application.js b/src/models/application.js
new file mode 100644
index 0000000..e57227b
--- /dev/null
+++ b/src/models/application.js
@@ -0,0 +1,65 @@
+import { generateModal } from '../utils/utils';
+
+const optionsQuery = `
+ query ApplicationOption($duration: Duration!) {
+ applicationId: getAllApplication(duration: $duration) {
+ key: id
+ label: name
+ }
+ }
+`;
+
+const dataQuery = `
+ query Application($applicationId: ID!, $duration: Duration!) {
+ getSlowService(applicationId: $applicationId, duration: $duration, topN:
10) {
+ key: id
+ name
+ avgResponseTime
+ }
+ getServerThroughput(applicationId: $applicationId, duration: $duration,
topN: 10) {
+ key: id
+ name
+ tps
+ }
+ getApplicationTopology(applicationId: $applicationId, duration: $duration)
{
+ nodes {
+ id
+ name
+ type
+ ... on ApplicationNode {
+ sla
+ callsPerSec
+ responseTimePerSec
+ apdex
+ isAlarm
+ numOfServer
+ numOfServerAlarm
+ numOfServiceAlarm
+ }
+ }
+ calls {
+ source
+ target
+ isAlert
+ callType
+ callsPerSec
+ responseTimePerSec
+ }
+ }
+ }
+`;
+
+export default generateModal({
+ namespace: 'application',
+ state: {
+ allApplication: [],
+ getSlowService: [],
+ getServerThroughput: [],
+ getApplicationTopology: {
+ nodes: [],
+ calls: [],
+ },
+ },
+ optionsQuery,
+ dataQuery,
+});
diff --git a/src/models/dashboard.js b/src/models/dashboard.js
new file mode 100644
index 0000000..59188f2
--- /dev/null
+++ b/src/models/dashboard.js
@@ -0,0 +1,52 @@
+import { generateModal } from '../utils/utils';
+
+export default generateModal({
+ namespace: 'dashboard',
+ state: {
+ getClusterBrief: {
+ numOfApplication: 0,
+ numOfService: 0,
+ numOfDatabase: 0,
+ numOfCache: 0,
+ numOfMQ: 0,
+ },
+ getAlarmTrend: {
+ numOfAlarmRate: [],
+ },
+ getConjecturalApps: {
+ apps: [],
+ },
+ getTopNSlowService: [],
+ getTopNServerThroughput: [],
+ },
+ dataQuery: `
+ query Dashboard($duration: Duration!) {
+ getClusterBrief(duration: $duration) {
+ numOfApplication
+ numOfService
+ numOfDatabase
+ numOfCache
+ numOfMQ
+ }
+ getAlarmTrend(duration: $duration) {
+ numOfAlarmRate
+ }
+ getConjecturalApps(duration: $duration) {
+ apps {
+ name
+ num
+ }
+ }
+ getTopNSlowService(duration: $duration, topN: 10) {
+ key: id
+ name
+ avgResponseTime
+ }
+ getTopNApplicationThroughput(duration: $duration, topN: 10) {
+ key: applicationId
+ applicationCode
+ tps
+ }
+ }
+ `,
+});
diff --git a/src/models/server.js b/src/models/server.js
new file mode 100644
index 0000000..58c7e26
--- /dev/null
+++ b/src/models/server.js
@@ -0,0 +1,52 @@
+import { generateModal } from '../utils/utils';
+
+const dataQuery = `
+ query Application($serverId: ID!, $duration: Duration!) {
+ getServerResponseTimeTrend(serverId: $serverId, duration: $duration) {
+ trendList
+ }
+ getServerTPSTrend(serverId: $serverId, duration: $duration) {
+ trendList
+ }
+ getCPUTrend(serverId: $serverId, duration: $duration) {
+ cost
+ }
+ getGCTrend(serverId: $serverId, duration: $duration) {
+ youngGC
+ oldGC
+ }
+ getMemoryTrend(serverId: $serverId, duration: $duration) {
+ heap
+ maxHeap
+ noheap
+ maxNoheap
+ }
+ }
+`;
+
+export default generateModal({
+ namespace: 'server',
+ state: {
+ serverInfo: {},
+ getServerResponseTimeTrend: {
+ trendList: [],
+ },
+ getServerTPSTrend: {
+ trendList: [],
+ },
+ getCPUTrend: {
+ cost: [],
+ },
+ getMemoryTrend: {
+ heap: [],
+ maxHeap: [],
+ noheap: [],
+ maxNoheap: [],
+ },
+ getGCTrend: {
+ youngGC: [],
+ oldGC: [],
+ },
+ },
+ dataQuery,
+});
diff --git a/src/models/service.js b/src/models/service.js
new file mode 100644
index 0000000..78c2ff7
--- /dev/null
+++ b/src/models/service.js
@@ -0,0 +1,60 @@
+import { generateModal } from '../utils/utils';
+
+const dataQuery = `
+ query Service($serviceId: ID!, $duration: Duration!) {
+ getServiceResponseTimeTrend(serviceId: $serviceId, duration: $duration) {
+ trendList
+ }
+ getServiceTPSTrend(serviceId: $serviceId, duration: $duration) {
+ trendList
+ }
+ getServiceSLATrend(serviceId: $serviceId, duration: $duration) {
+ trendList
+ }
+ getServiceTopology(serviceId: $serviceId, duration: $duration) {
+ nodes {
+ id
+ name
+ type
+ ... on ApplicationNode {
+ sla
+ callsPerSec
+ responseTimePerSec
+ apdex
+ isAlarm
+ numOfServer
+ numOfServerAlarm
+ numOfServiceAlarm
+ }
+ }
+ calls {
+ source
+ target
+ isAlert
+ callType
+ callsPerSec
+ responseTimePerSec
+ }
+ }
+ }
+`;
+
+export default generateModal({
+ namespace: 'service',
+ state: {
+ getServiceResponseTimeTrend: {
+ trendList: [],
+ },
+ getServiceTPSTrend: {
+ trendList: [],
+ },
+ getServiceSLATrend: {
+ trendList: [],
+ },
+ getServiceTopology: {
+ nodes: [],
+ calls: [],
+ },
+ },
+ dataQuery,
+});
diff --git a/src/models/topology.js b/src/models/topology.js
new file mode 100644
index 0000000..01872c2
--- /dev/null
+++ b/src/models/topology.js
@@ -0,0 +1,40 @@
+import { generateModal } from '../utils/utils';
+
+export default generateModal({
+ namespace: 'topology',
+ state: {
+ getClusterTopology: {
+ nodes: [],
+ calls: [],
+ },
+ },
+ dataQuery: `
+ query Topology($duration: Duration!) {
+ getClusterTopology(duration: $duration) {
+ nodes {
+ id
+ name
+ type
+ ... on ApplicationNode {
+ sla
+ callsPerSec
+ responseTimePerSec
+ apdex
+ isAlarm
+ numOfServer
+ numOfServerAlarm
+ numOfServiceAlarm
+ }
+ }
+ calls {
+ source
+ target
+ isAlert
+ callType
+ callsPerSec
+ responseTimePerSec
+ }
+ }
+ }
+ `,
+});
diff --git a/src/models/trace.js b/src/models/trace.js
new file mode 100644
index 0000000..ab5ee17
--- /dev/null
+++ b/src/models/trace.js
@@ -0,0 +1,101 @@
+import { query } from '../services/graphql';
+import { generateModal } from '../utils/utils';
+
+const optionsQuery = `
+ query ApplicationOption($duration: Duration!) {
+ applicationId: getAllApplication(duration: $duration) {
+ key: id
+ label: name
+ }
+ }
+`;
+
+const dataQuery = `
+ query BasicTraces($condition: TraceQueryCondition) {
+ queryBasicTraces(condition: $condition) {
+ traces {
+ operationName
+ duration
+ start
+ isError
+ traceId
+ }
+ total
+ }
+ }
+`;
+
+const spanQuery = `query Spans($traceId: ID!) {
+ queryTrace(traceId: $traceId) {
+ spnas {
+ traceId
+ segmentId
+ spanId
+ parentSpanId
+ refs {
+ traceId
+ parentSegmentId
+ parentSpanId
+ type
+ }
+ applicationCode
+ startTime
+ endTime
+ operationName
+ type
+ peer
+ component
+ isError
+ layer
+ tags {
+ key
+ value
+ }
+ logs {
+ time
+ data {
+ key
+ value
+ }
+ }
+ }
+ }
+}`;
+
+export default generateModal({
+ namespace: 'trace',
+ state: {
+ queryBasicTraces: {
+ traces: [],
+ pagination: {
+ current: 1,
+ pageSize: 10,
+ total: 0,
+ },
+ },
+ },
+ optionsQuery,
+ dataQuery,
+ effects: {
+ *fetchSpans({ payload }, { call, put }) {
+ const response = yield call(query, 'spans', { query: spanQuery,
variables: payload.variables });
+ yield put({
+ type: 'saveSpans',
+ payload: response,
+ traceId: payload.variables.traceId,
+ });
+ },
+ },
+ reducers: {
+ saveSpans(state, action) {
+ const { traceId } = action;
+ const { queryTrace: { spans } } = action.payload.data;
+ const { data: { queryBasicTraces: { traces } } } = state;
+ const trace = traces.find(t => t.traceId === traceId);
+ trace.spans = spans;
+ return {
+ ...state,
+ };
+ },
+ },
+});
--
To stop receiving notification emails like this one, please contact
[email protected].