Add ability to configure multiple kibana dashboards

Exploit kibana spaces, which allows to run multiple kibana
dashboards separate from each others.

Please note that this change does not prevent kibana dashboards to have
visibility on elasticsearch indexes beyond the namespace they currently
are configured for.

Authorization will be added in future releases.

Feature: Issue 9865
Change-Id: I02938a0c4ed38d84a47d5cc181443807e66c5e4a
10 files changed
tree: ad34df3341b39cde3b862193aa05cc9af189c0a8
  1. analytics-setup/
  2. local_environment/
  3. .gitignore

Kibana Dashboard

The goal of this project is to provide the tools to manage and configure kibana dashboard(s) aimed to visualize analytics on project contributions. Kibana configuration is maintained in elasticsearch so, in reality, this project will talk to the elasticsearch instance which kibana is connected to.

For the time being, this project allows to configure only one type of dashboard:

  • Git Commits Dashboard: which is able to display data produced by the execution of the GIT commits ETL analytics ETL

Getting Started

To get you running in no time, this project also provides a way to spin up a local environment with elasticsearch and kibana:

cd local_environment
docker-compose up

this will start:

  • elasticsearch, bound and exposing port 9200 and 9300
  • kibana, bound and exposing port 5601

and will also configure the dashboard for you so that you already have all the mappings, the kibana settigs and the main visualizations and dashboard already configured. Just browse to http://localhost:5601 to see the configured dashboard.

At this point the dashboard will still be empty. If you want to populate it with data you might want to run the GIT commits ETL


Restore kibana configuration

To configure a kibana dashboard you can simply point the setup script to the target elasticsearch as follows


  • ELASTICSEARCH_URL: default is http://host.docker.internal (the current host running docker)
  • ELASTICSEARCH_PORT: default is 9200
  • NAMESPACE: default is empty.


A namespace is a string that will be postifxed to elassticsearch indexes. This allows to configure multiple kibana instances against the same elasticsearch instance without collision of names. For example, if you use the namespace foo, this will configure in order:

  • an elasticsearch index named gitcommitsfoo
  • a kibana dashboard named .kibanafoo

Dump kibana configuration

If you make some changes to kibana and you want to dump them on disk for later use you can just run:


  • ELASTICSEARCH_URL: default is http://host.docker.internal (the current host running docker)
  • ELASTICSEARCH_PORT: default is 9200

For example to dump the configuration of kibana spinned up via local environment you can simply run:

cd analytics-setup
make dump

This will save any changes to kibana-config/


This project is licensed under the Apache License, Version 2.0 License - see the LICENSE file for details