Remote dashboards with Discovery Explorer

Discovery Explorer now allows you to mix local dashboards with remote ones served over HTTP(s).

Remote dashboards with Discovery Explorer

Discovery Explorer is a handy tool for exposing your Discovery Dashboards. You can even plug it in with KeyCloak.

By the way, dashboard file has to be physically stored on the disc. Of course, you could use WarpFleetSynchronizer to sync your git repo with the file system.

Since version 1.0.50, you can now declare remote dashboards.

There are two ways (not incompatible) to do it:

  • Declare each dashboard as an HTTP url
  • Declare an endpoint that provides a collection of dashboard urls.
Get started with Discovery, a dynamic dashboard as code tool dedicated to Warp 10.

Discovery setup for single dashboards URL

You can declare a set of remote individual dashboards. They must be served by an HTTP server.

Create a file called conf.json:

{
  "dashRoot": "/data",
  "remoteCollections": [],
  "remotes": [
    "http://your-http-server/monitoring/prod/worker01.mc2",
    "http://your-http-server/monitoring/prod/worker02.mc2",
    "http://your-http-server/monitoring/prod/worker03.mc2"
  ],
  "plugins": [ ]
}

In this sample, mc2 files are served by an HTTP server and remotes stands for a collection of dashboard urls.

Discovery setup for a collection of dashboards URLs

You can also declare a set of endpoint which must return a list of individual dashboards URLs. It could be served by a REST API.

You can also use Warp 10's HTTP Plugin to expose a collection of urls. Here is a sample of a mc2 file used by the HTTP Plugin:

{
  'path' '/dashboard' // root path
  'prefix' true  // allow to get path info
  'parsePayload' true // parse payload of a POST url encoded
  'macro' <%    
    'request' STORE
      // list dashboards
      [
        'http://your-http-server/monitoring/preprod/preprod1.mc2'
        'http://your-http-server/monitoring/preprod/preprod2.mc2'
        'http://your-http-server/monitoring/prod/load-balancer.mc2'
      ] 'dashboards' STORE
    {
      'status' 200  
      'body' $dashboards ->JSON
      'headers' { 'Content-Type' 'application/json' }
    }
  %>
}

You can declare this endpoint as follows:

{
  "dashRoot": "/data",
  "remoteCollections": [
    "https://your-warp10:8082/dashboard/"
  ],
  "remotes": [
...
  ],
  "plugins": [ ]
}

remoteCollections stands for a list of urls returning a list of dashboard urls.

Start Discovery Explorer Docker container

And start Discovery Explorer with docker (for example):

docker run -p 9090:3000 \
   -v /opt/discovery/conf.json:/opt/discovery-dashboard/conf.json \
   warp10io/discovery-explorer:latest

Now you will find your remote dashboards in the Discovery Explorer menu.

Going further

Of course, local and remote dashboards can be protected by KeyCloack. You can protect remote dashboards as followed.

[...]
 "routing": [
      {
        "path": "/.*",
        "groups": [ ".*" ],
        "private": true
      },
      {
        "path": "http://your-http-server/monitoring/.*",
        "groups": [
          "/Remotes"
        ],
        "private": true
      },
      {
        "path": "/senx/.*",
        "groups": [
          "/SenX"
        ],
        "private": true
      },
[...]
Have questions about Discovery or anything else about Warp 10? Join the Warp 10 community on Slack!