Skip to content

CloudHub is a totally designed system that lets you monitor and manage the availability of something like servers, applications, virtual machines, Kubernetes, and so on.

License

Notifications You must be signed in to change notification settings

snetsystems/cloudhub

Repository files navigation

CloudHub

Intro

CloudHub is another branch of an open-source web application derived from Influxdata's Chronograf written in Go and React.js that provides the tools to visualize your monitoring data and easily create alerting and automation rules.

Therefore, CloudHub will be enhanced by adding our direction, such as automation of configuration management and monitoring the systems or applications over several Clouds.

CloudHub has been started with Chronograf version 1.7.11.

Using the basic common features

As we follow on using guides like the way of TICK Script or Flux queries, for more informations of the basic common features between Chronograf 1.7.11 and CloudHub refer to the following link.
Github for chronograf
Documents for TICK Stack

Test Environment

For running this project, maybe, you should get the environment for test data and composition like telegraf, kapacity and influxdb (but not need chronograf). This Sandbox provided by Influxdata will help to do.
Download Sandbox

Key Differences against Chronograf at this point(version).

  • Compose of directories.
    • Divide as backend and frontend.
  • Easier debugging environment support without a proxy server by node.js.
  • For more Dev. Env., provide Visual Studio Code Env. including the setting.json and launch.json.
  • Window build & run Env. support.
  • Hosts to Infrastructures and basic charts added.
  • Visualization added by criteria of Applications.
  • Telegraf daemon management and configuration editing and deploying remotely via SaltStack.
  • Tenant by a group for influxdb data sources, Kapacitor alerts, etc.
  • Optionable Addon features
    • SWAN Router & SDPlex(Oncue) Features.

Change log

We've been managing this project with Github's Projects since v0.9.1 last Mar. You could know the changelog by versions via that.

Setting in VSCode

  • Add the followings into User Setting or Workspace Setting.
{
  "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  "terminal.integrated.rightClickBehavior": "default",
  "terminal.explorerKind": "external",
  "terminal.integrated.copyOnSelection": true,
  "terminal.integrated.scrollback": 10000,
  "breadcrumbs.enabled": true,
  "editor.renderControlCharacters": true,
  "editor.largeFileOptimizations": false,
  "editor.formatOnSave": true,
  "editor.renderWhitespace": "none",
  "editor.wordWrap": "on",
  "workbench.startupEditor": "newUntitledFile",
  "explorer.confirmDelete": false,
  "explorer.confirmDragAndDrop": false,
  "files.eol": "\n",
  "go.formatTool": "goimports",
  "go.lintOnSave": "package",
  "go.autocompleteUnimportedPackages": true,
  "prettier.singleQuote": true,
  "prettier.bracketSpacing": false,
  "prettier.semi": false,
  "prettier.trailingComma": "es5",
  "prettier.arrowParens": "avoid",
  "eslint.alwaysShowStatus": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "files.associations": {
    "*.yml": "yaml"
  },
  "window.zoomLevel": 0,
  "gitlens.views.repositories.files.layout": "tree",
  "git.ignoreLegacyWarning": true,
  "screencastMode.onlyKeyboardShortcuts": true,
  "diffEditor.ignoreTrimWhitespace": false,
  "workbench.sideBar.location": "left"
}

How to build

Preparing dependencies

  • CloudHub works with go 1.11+, node LTS, and yarn 1.7+.
  • In the case of Windows, it cannot be invoked "make" command,
    So you need to download and install GNUMake for windows.

Getting the source code from github.

[If you're on Windows, run "Git Bash" and] type the followings.

# If you're on Windows, run "Git Bash" and type the followings.

$ go get github.com/snetsystems/cloudhub
$ cd $GOPATH/src/github.com/snetsystems/cloudhub
$ make

If well done, you can see the binary.

$ cd backend/cmd/cloudhub
$ ls -l
total 28072
...
-rwxr-xr-x 1 Snetsystems 197121 28610048 Jul 15 09:09 cloudhub

Once run cloudhub, 8888 port will be listened.

$ ./cloudhub

You can see the CloudHub UI via browser: http://localhost:8888

How to debug via VSCode for Development.

For your convenience, make ".code-workspace" for VSCode in your snetsystems folder.

$ cd $GOPATH/src/github.com/snetsystems/
$ cat snet.code-workspace
{
  "folders": [
    {
      "path": "cloudhub"
    }
  ],
  "settings": {
    "files.exclude": {}
  }
}

Run VSCode as above workspace.

$ code snet.code-workspace

Simply, select "Launch Server" and then run.
Also, for UI debugging, select "Launch Chrome" and then run debug.
For continuous debugging, you can use "Launch Chrome" after yarn start

[Note]
For continuous debugging, you need to add develop mode into the running argument.

We already prepared ".vscode/launch.json" and ".vscode/settings.json"

  • Using GO111MODULE.
    • Not need a vendor directory anymore.
  • Snetsystems Github login setting as a default.
    • You need to change to the Github's keys of your organization.
    • If you don't need to login, get rid of the login information.
     ...
     "args": [
       "-l=debug",
       "-d"
       "-c=./cloudhub-canned/",
       "--protoboards-path=./cloudhub-protoboards/",
       "--auth-duration=0",
       "-t=74c1e9e245088f060b5bff36b935cd0bf2976d35",
       "--github-client-id=c170bbdbc5cb2ea8f6d3",
       "--github-client-secret=55c35715b0e4eebab7edbdeef3081bf890e79d22"
     ],
     ...
    

If you run a not login mode, you can use "Launch Chrome via Proxy" after yarn start

$ cd $CloudHub_PATH/frontend
$ yarn start
yarn run v1.15.2
$ node parcel.jsx
Serving on http://localhost:8080
√  Built in 7.54s.