A dashboard to monitor your chatbot is almost as important as the bot itself. Among many other aspects, you need to keep an eye on the visitors’ questions the bot is unable to match, where they stop the conversation, how often they use the bot…
By default, Xatkit comes equipped with a chatbot monitoring API you can use to build your own dashboard (our pro users have access to their individual predefined dashboard). This API is implemented on top of MapDB. As an embedded database, MapDB offers several benefits: no separate installation/configuration and tight integration with the rest of the Xatkit components. But also a few drawbacks, such as: no specific support for time series analysis, no easy way to access the data, or the impossibility of sharing the same database across several bots.
These issues motivated us to offer a more advanced implementation of the monitoring API, this time relying on InfluxDB, the open-source time-series database. With this option, you can now use a single InfluxDB instance for all your bots and analyze the bot data both via the monitoring API or by using InfluxDB specific analysis tools.
Configuring InfluxDB for Xatkit is straightforward. Once you have Xatkit installed (depending on when you read this, you may want to build the latest development version) and InfluxDB up and running, you need to choose or create the bucket to use and find your token. Then just set the following properties in your configuration file or directly in the bot model:
|xatkit.database.model||influxDB (Default: MapDB)|
|xatkit.influx.token||token that connects to the bucket|
|xatkit.influx.bucket||influxDB bucket that we want to populate with our bot’s data|
|xatkit.influx.organization||influxDB defined organization where the bucket belongs|
|xatkit.influx.url||Where to find the influxDB database. Default: http://localhost:9999|
Once the bot is starting, Xatkit will check this configuration and if so, switch to use InfluxDB to store all the bot’s monitoring information. Note that by using influxDB, data WON’T be stored in the internal mapDB instance.