Package: chaosdb
chaosdb: Chaostoolkit storeevent ControlThis control allows you to store events on a configurable data store.
The data store can then be used to monitor events on a monitoring dashboard
or to collect events on a time series datastore.
The control currently implements the following drivers:an influx driver to store events on a InfluxDB time series databasea grafana driver to store events on a Grafana server as annotationsThe grafana driver supports the following authentication types:basic auth (username/password)bearer API tokenTo understand what a chaos-toolkit control is please refer to the official
documentation oncontrols.The Influx driverInfluxDB is one of the most used time series data stores, it's implemented in
golang and therefore is pretty fast and very easy to install and set up.
Moreover, if you use Gatling for your performance input load simulations, it is
pretty simple to store Gatling metrics on InfluxDB as well (as the Influx server can be
configured to accept data in the graphite protocol), so you can use the
same Influx data store for Gatling metrics and chaos toolkit events.You can configure the Influx driver setting these parameters in the
configuration section (the values provided represent the defaults):"configuration": {
      "influxdb": {
        "host": "localhost",
        "port": 8086,
        "http_endpoint": "/write",
        "database": "gatlingdb"
      }
    }Then, at the proper level, configure the control driver:"controls": [
                {
                    "name": "tracing",
                    "provider": {
                        "type": "python",
                        "module": "chaosdb.influx"
                    }
                }
            ],The Grafana driverThe Grafana driver can be quite convenient if you use grafana for your
dashboards. The driver sends chaos-toolkit events directly to Grafana using
the Annotation HTTP API.
Moreover it is able to draw a region annotation around the whole experiment,
making experiment visualization more visible.The grafana configuration section is keyed"grafana".
The grafana driver accepts a list of configuration sections, one for each
grafana server you want to send annotations to.
Each section accepts the following configuration attributes:AttributeDescriptionhostthe grafana server fqdnportthe grafana service portprotocolhttp/https (defaults to http if not set)api_tokengrafana API token (not mandatory)cert_filefile where the TSL certificate is stored (not mandatory)usernamethe simple auth user name (not mandatory)passwordthe simple auth password (not mandatory)dashboardIda specific dashboard ID (all in case it's not specified or 0)only_actionsa boolean flag to send only actions or probes as well (defaults to false)tagsa list of custom tags to tag annotationsannotation_api_endpointdefaults to '/api/annotations'The 'dashboardId' parameter points to the dashboard annotations are added to,
otherwise annotations will be displayed on all dashboards.The 'only_actions' parameter allows to trace only actions, not probes.
The 'tags' parameter allows to add custom tags to each annotation.Then, at the proper level, configure the control driver:"controls": [
                {
                    "name": "tracing",
                    "provider": {
                        "type": "python",
                        "module": "chaosdb.grafana"
                    }
                }
            ],