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].

Reply via email to