The *DataCenter**DataBase* (DCDB) is a modular, continuous and holistic monitoring framework targeted at HPC environments. The framework consists of the three main parts:
* _Storage_ _Backend_: Here all the collected data is stored. By default a Cassandra database is used but the framework is intended to support usage of other data storage solutions as well.
* _Collect_ _Agent_: The collect agent functions as intermediary between one storage backend and one or multiple pushers.
* _Pusher_: The main part for collecting data is the pusher framework. It allows to run arbitrary data collection plugins and pushes the data to the collect agent via MQTT messages.
Other features included by DCDB:
* libdcdb: a library to access the storage backend with external tools
* a set of tools leveraging libdcdb (e.g. a command line tool to query the storage backend)
* built in data analytics framework
* pusher plugins for a variety of typical HPC data sources
## Build, install and run
Prerequisites:
* cmake
* C++11 compiler
```bash
//Create a new directory for DCDB
$ mkdir DCDB &&cd DCDB
//Download the DCDB sources
$ git clone https://gitlab.lrz.de/dcdb/dcdb.git
//Start building and installation of DCDB and all of its dependencies.
$ cd dcdb
$ make depsinstall install
//OR use this make command instead to also build the doxygen documentation
$ make depsinstall install doc
```
To run DCDB locally with the included default config files:
```bash
//Change to the DCDB directory you created during installation
$ cd DCDB
//Set required environment variables
$ source install/dcdb.bash
//Start one storage backend and one collect agent locally
$ install/etc/init.d/dcdb start
//Start a dcdbpusher instance
$ cd dcdb/dcdbpusher
$ ./dcdbpusher config/
```
## License and Copyright
Copyright (C) 2011-2019 Leibniz Supercomputing Centre
DCDB (except for the libdcdb parts) is licensed under the terms
and conditions of the GNU GENERAL PUBLIC LICENSE (Version 2 or later).
Libdcdb is licensed under the terms and conditions of the GNU LESSER
GENERAL PUBLIC LICENSE (Version 2.1 or later).
See the `LICENSE` file for more information.
<!---
TODO:
write pages for:
-how to use dcdb
-architecture of dcdb
-develop plugin for pusher/analyzer
-develop for framework itself
-dig deeper into doxygen to get a beatiful documentation. perhaps use
markdown files for pages (for tutorials, architecture explanation)