Dashboard for visualizing Spring Boot microservices and the components they link to.
HTML JavaScript CSS
Clone or download

README.md

microservices-dashboard

Gitter Codeship Status for ordina-jworks/microservices-dashboard Codacy Badge Average time to resolve an issue Percentage of issues still open Download

Overview

The primary goal of this project is to visualize links between microservices and the encompassing ecosystem. This AngularJS application consumes endpoints exposed by microservices-dashboard-server. It displays four columns: UI, Resources, Microservices and Backends. Each of these columns show nodes and links between them. The information for these links come from Spring Boot Actuator health and mappings endpoints, pact consumer-driven-contract-tests and hypermedia indexes, which are aggregated in the microservices-dashboard-server project.

Reference documentation

To learn everything there is to know about the Microservices Dashboard, please consult the reference documentation.

Screenshots

screen shot 2016-07-27 at 09 26 14

screen shot 2016-07-27 at 09 26 26

screen shot 2016-07-27 at 09 26 41

screen shot 2016-07-27 at 09 27 52

screen shot 2016-07-27 at 09 29 51

Setting up the dashboard

There are two ways of getting up and running with the microservices-dashboard. Either by running a sample, or by creating your own instance of the dashboard.

The microservices-dashboard consists of two components: the UI and the server. This repository contains the UI while the server is located under the microservices-dashboard-server repository. These two components can either be packaged and deployed together as a single Spring Boot application (as explained in the microservices-dashboard-server README), or separately as a NodeJS application and a Spring Boot application. In case of the former, the UI is served from the embedded Tomcat inside the Spring Boot application. In case of the latter, the UI is ran separately on a NodeJS server, while the Spring Boot application simply exposes the JSON API.

Using a sample

The samples can be found in the microservices-dashboard-server repository.

Using a vanilla Spring Boot application

First you need to setup a simple Spring Boot project (using start.spring.io for example). Microservices-dashboard-server requires Java 8 or later.

Add the microservices-dashboard-server as a dependency to your new Spring Boot's dependencies:

<dependency>
	<groupId>be.ordina</groupId>
	<artifactId>microservices-dashboard-server</artifactId>
	<version>x.y.z</version>
</dependency>

In case you use a SNAPSHOT version, add the JFrog OSS Artifactory repository:

<repositories>
	<repository>
		<id>oss-snapshots</id>
		<name>JFrog OSS Snapshots</name>
		<url>https://oss.jfrog.org/simple/oss-snapshot-local/</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
	</repository>
</repositories>

Pull in the Microservices Dashboard Server configuration via adding @EnableMicroservicesDashboardServer to your configuration:

@SpringBootApplication
@EnableMicroservicesDashboardServer
public class MicroservicesDashboardServerApplication {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

Using a separate UI and server

You can run the UI separately as well by building and running the UI code on NodeJS. Ideally the Spring Boot server shouldn't serve the UI in this case.

Excluding the UI from the Spring Boot application

<dependency>
	<groupId>be.ordina</groupId>
	<artifactId>microservices-dashboard-server</artifactId>
	<version>x.y.z</version>
	<exclusions>
	  <exclusion>
	    <artifactId>microservices-dashboard-ui</artifactId>
	    <groupId>be.ordina</groupId>
	   </exclusion>
	</exclusions>
</dependency>

Building and running the UI from source

First a basic build should be done:

npm install

Then bower dependencies should be installed:

bower install

Use gulp to serve the resources using the configuration file:

gulp serve --standalone

You can configure the location of the dashboard server by modifying the baseUrl in gulp/conf.js

If you want to run the UI on an existing server, with potentially another port, execute gulp build --standalone and deploy the dist folder on that server.

Note:

The server needs to be started to get any data in the dashboard: microservices-dashboard-server

TODO

  • Single run instances gulp build
  • Cleanup gulp files
  • Serve directly from src, not .tmp
  • Remove unused tasks
  • Add bump tasks

Contributing

Contributors to this project agree to uphold its code of conduct.

There are several ways in which you can contribute to microservices-dashboard:

Licence

Microservices Dashboard is open source software released under the Apache 2.0 license.