Install

Infinitic is still in active development. Subscribe here to follow the progress.

Currently, Infinitic's web-based dashboard focuses on providing an easy way to monitor our infrastructure, showing statistics of Pulsar topics used specifically to manage each task/service or workflow.

Since this dashbord directly interacts with Pulsar, it is required to deploy it into the same network as the Pulsar clusters to be able to talk to it.

Build from source code

To run this dashboard, add to a project:

  • the pulsar-dashboard lib
  • a logger
  • the application plugin
  • the shadow plugin to build a fat jar
build.gradle
...

plugins {
    ...
    id 'application'
    id("com.github.johnrengelman.shadow").version("7.0.0")
}

repositories {
    ...
    mavenCentral()
    maven { url = "https://jitpack.io" }
}

dependencies {
    ...
    implementation "io.infinitic:infinitic-dashboard:0.7.+"
}

application {
    mainClass = 'full.name.of.Main'
}

shadowJar {
    mergeServiceFiles()
}

build.gradle.kts
...
plugins {
    ...
    application
    id("com.github.johnrengelman.shadow").version("7.0.0")
}

repositories {
    ...
    mavenCentral()
    maven("https://jitpack.io")
}

dependencies {
    ...
    implementation "org.slf4j:slf4j-simple:1.7.+" // or another logger
    implementation("io.infinitic:infinitic-dashboard:0.7.+")
}

application {
    mainClass.set("full.name.of.MainKt")
}

tasks.withType<ShadowJar> {
    mergeServiceFiles()
}

Note that use of jitpack.io is mandatory, as the KWeb dependency is not yet published on MavenCentral().

The dashboard server can then be started using:

import io.infinitic.dashboard.DashboardServer;

public class App {
    public static void main(String[] args) {
        String file = args.length>0 ? args[0] : "infinitic.yml";

        DashboardServer.fromConfigFile(file).start();
    }
}
import io.infinitic.dashboard.DashboardServer

fun main(String[] args) {
    val file = args.getOrNull(0) ?: "infinitic.yml"

    DashboardServer.fromConfigFile(file).start()
}

where infinitic.yml is a configuration file mapped to a io.infinitic.config.DashboardConfig instance, for example:

infinitic.yml
port: 16097  # default port for KWeb server

debug: true  # default value for KWeb server

pulsar:
  serviceUrl: pulsar://localhost:6650
  serviceHttpUrl: http://localhost:8080
  tenant: infinitic
  namespace: dev
Edit this page on GitHub Updated at Fri, Jul 30, 2021