Kaynağa Gözat

[API] Add broker API

Oleg Shuralev 5 yıl önce
ebeveyn
işleme
338fee267a
3 değiştirilmiş dosya ile 56 ekleme ve 5 silme
  1. 25 0
      api/mocks/brokerMetrics.js
  2. 21 0
      api/mocks/brokers.js
  3. 10 5
      api/services/brokers.js

+ 25 - 0
api/mocks/brokerMetrics.js

@@ -0,0 +1,25 @@
+const randomBrokerMetrics = () => ({
+  bytesInPerSec: Math.ceil(Math.random() * 10000),
+
+  brokerCount: 1,
+  zooKeeperStatus: 1,
+  activeControllers: 1,
+  uncleanLeaderElectionCount: 0,
+  networkPoolUsage: Math.random(),
+  requestPoolUsage: Math.random(),
+  onlinePartitionCount: Math.ceil(Math.random() * 1000),
+  underReplicatedPartitionCount: Math.ceil(Math.random() * 10),
+  offlinePartitionCount: Math.ceil(Math.random() * 10),
+  diskUsage: [
+    {
+      brokerId: 1,
+      segmentSize: Math.ceil(Math.random() * 1_000_000_000),
+    },
+  ],
+  diskUsageDistribution: 'even',
+});
+
+module.exports = {
+  'wrYGf-csNgiGdK7B_ADF7Z': randomBrokerMetrics(),
+  'dMMQx-WRh77BKYas_g2ZTz': randomBrokerMetrics(),
+};

+ 21 - 0
api/mocks/brokers.js

@@ -0,0 +1,21 @@
+const randomBroker = () => ({
+  bytesInPerSec: Math.ceil(Math.random() * 10000),
+  bytesOutPerSec: Math.ceil(Math.random() * 10000),
+  segmentSize: Math.ceil(Math.random() * 1_000_000_000),
+  partitionReplicas: 134,
+});
+
+module.exports = {
+  'wrYGf-csNgiGdK7B_ADF7Z': [
+    {
+      brokerId: 1,
+      ...randomBroker(),
+    },
+  ],
+  'dMMQx-WRh77BKYas_g2ZTz': [
+    {
+      brokerId: 2,
+      ...randomBroker(),
+    },
+  ],
+};

+ 10 - 5
api/services/brokers.js

@@ -1,11 +1,16 @@
 'use strict'
 
-module.exports = function (fastify, opts, next) {
-  fastify.get('/brokers', function (request, reply) {
-    reply.send([
+const brokers = require('../mocks/brokers');
+const brokerMetrics = require('../mocks/brokerMetrics');
 
-    ]);
-  });
+module.exports = function (fastify, opts, next) {
+  fastify
+    .get('/clusters/:clusterId/brokers', function (request, reply) {
+      reply.send(brokers[request.params.clusterId]);
+    })
+    .get('/clusters/:clusterId/metrics/broker', function (request, reply) {
+      reply.send(brokerMetrics[request.params.clusterId]);
+    });
 
   next();
 }