/mercury

A tool for monitoring and exploring the Confluent platform.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

mercury

⚠️ This project is no longer under active development

We are looking for contributors to bring this tool to a stable release

A tool for monitoring the Confluent platform.

Table of contents


Back-End Development


Running Kafka Cluster using Docker

Run the start_kafka.sh script to start docker instance

# Starting a Kafka Cluster | Single Node Zookeeper & Kafka
./start_kafka.sh
# Starting a Kafka Cluster | Multi Node Zookeeper & Kafka
./start_kafka.sh cluster

Clean up containers

./clean_docker.sh

Starting the server

1. Prerequisites

To obtain the required packages for Mercury, you will need to install Yarn

2. Clone the repo

git clone git@gitlab.amicillc.com:mercury/mercury.git

3. Install Modules

Using the Yarn package manager, fetch the required modules.

# Install dependencies
yarn install

4. Start the application

To start the development server run the below command

# Start the development server
yarn run dev

Front-End Development


Scripts

# build for production with minification
yarn run build

# build for production and view the bundle analyzer report
yarn run build --report

# run unit tests
yarn run unit

# run all tests
yarn test

GraphQL Schema


type Cluster {
  # Datacenter identifier
  datacenter: String

  # Zookeeper connection string for a cluster
  zookeeperString: String

  # Alias or helping text for cluster identification
  alias: String

  # Collection of topics from the cluster
  topics: [Topic]

  # Zookeeper nodes from a cluster
  zookeepers: [Zookeeper]
  zookeeper(hostname: String!): Zookeeper

  # Kafka Brokers that are active in a given cluster
  kafkaBrokers: [KafkaBroker]
  kafkaBroker(hostname: String!): KafkaBroker

  # Consumer groups registed in a given cluster
  consumers: [Consumer]
  consumer(group: String!): Consumer
}

type Consumer {
  group: String
  topicCount: Int
  topics: [Topic]
}

# The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
scalar JSON

type KafkaBroker {
  hostname: String
  bytesUp: Int
  bytesDown: Int
  metrics: JSON
}

type Message {
  offset: String
  partition: Int
  timestamp: String
  data: String
}

type Query {
  cluster(address: String!): Cluster
  clusters: [Cluster]
}

type Subscription {
  newMessage(topic: String!): Message
}

type Topic {
  name: String
  offset: Int
  partitions: Int
}

type Zookeeper {
  hostname: String
  metrics: JSON
  latency: Int
  isLeader: Boolean
}