Plugins
All plugins are configured within the plugins section of the TARDIS configuration. Using multiple plugins is supported by using a separate MappingNode per plugin.
Plugins:
Plugin_1:
option_1: my_option_1
Plugin_2:
option_123: my_option_123
SQLite Registry
The SqliteRegistry
implements a persistent storage of all Drone states in a
SQLite database. The usage of this module is recommended in order to recover the last state of TARDIS in case the
service has to be restarted.
Available configuration options
Option |
Short Description |
Requirement |
---|---|---|
db_file |
Location of the SQLite database. |
Required |
Example configuration
Plugins:
SqliteRegistry:
db_file: drone_registry.db
Telegraf Monitoring
The TelegrafMonitoring
implements an interface to monitor state changes
of the Drones in a telegraf service running a UDP input module.
Note
By default the machine name of the host running tardis is added as default tag. It can be overwritten by adding tardis_machine_name: ‘something_else’ as default_tag in the configuration.
Available configuration options
Option |
Short Description |
Requirement |
---|---|---|
host |
Hostname or IP address the telegraf UDP input module is listening to. |
Required |
port |
Port the telegraf UDP input module is listening on. |
Required |
default_tags |
Tags that should be included by default for all entries sent to telegraf. |
Optional |
Example configuration
Plugins:
TelegrafMonitoring:
host: der_telegraf.foo.bar
port: 8092
default_tags:
something_default: 'The Default Tag'
Prometheus Monitoring
The PrometheusMonitoring
implements an interface to monitor the
number of drones in the states Booting
, Running
, Stopped
, Deleted
, and Error
.
Available configuration options
Option |
Short Description |
Requirement |
---|---|---|
addr |
Address on which the metrics are served on for Prometheus |
Required |
port |
Port on which the metrics are served on for Prometheus |
Required |
Example configuration
Plugins:
PrometheusMonitoring:
addr: 127.0.0.1
port: 8080
ElasticSearch Monitoring
The ElasticsearchMonitoring
implements an interface to push
the done state to an Elasticsearch instance at every state change.
Available configuration options
Option |
Short Description |
Requirement |
---|---|---|
host |
Hostname or IP address of the Elasticsearch instance. |
Required |
port |
Port the Elasticsearch instance is listening on. |
Required |
index |
Target index in the Elasticsearch instance |
Required |
meta |
Additional meta data (can be used to distinguish TARDIS instances). |
Optional |
Example configuration
Plugins:
ElasticsearchMonitoring:
host: elasticsearch.foo.bar
port: 9200
index: cobald_tardis
meta: instance1
Auditor Accounting
The Auditor
implements an interface to push
information from the drones relevant for accounting to an Auditor instance.
The plugin extracts the components to be accounted for from the MachineMetaData
in the configuration.
Scores which help relating resources of the same kind with different performance to each other can be configured as well.
Scores are configured for each MachineType
individually and multiple scores per MachineType
are possible.
An Auditor record requires a site_id
, a user_id
and a group_id
. The latter two can be configured in the
Auditor
plugin configuration (and default to tardis
if omitted). The site_id
is taken from the Sites
in
the TARDIS config.
Available configuration options
Option | Short Description |
Requirement |
||
---|---|---|---|
host | Hostname or IP address of the Auditor instance. |
Required |
||
port | Port on which the Auditor instance is listening on. |
Required |
||
user | User name added to the record. Defaults to |
Optional |
||
group | Group name added to the record. Defaults to |
Optional |
||
components | Configuration of the components per |
Optional |
Example configuration
Plugins:
Auditor:
host: "127.0.0.1"
port: 8000
user: "some-user"
group: "some-group"
components:
machinetype_1:
Cores:
HEPSPEC06: 1.2
OTHERBENCHMARK: 1.4
machinetype_2:
Cores:
HEPSPEC06: 1.0
Memory:
PRECIOUSMEMORY: 2.0
Your favorite monitoring is currently not supported? Please, have a look at how to contribute.