InfluxDB is an open-source time series database for the storage and retrieval of time series data. It is designed to store large volumes of time series data and quickly perform analysis of the stored data. Within FlexDeploy, these features are leveraged to provide end-users with Value Stream Metrics that are available on the Dashboard page and the Project Insights section in all the Projects.
InfluxDB System Requirements
2 to 4 GB of available RAM for the system
1+ CPU or vCPU Cores
Recommend 5GB of disk space for storage of InfluxDB data with a minimum of 500 IOPS for the storage device. This is a part of the total space recommended for the Application Directory here
At least 16384 available file descriptors (ulimit) on Linux machines
All the commands specified have to be run from the <FLEXDEPLOY_HOME>/influxdb directory
InfluxDB Directory Structure with FlexDeploy
The executables for the database and the command line client along with the associated configuration are stored in the influxdb directory in the <FLEXDEPLOY_HOME>
The files in the config directory:
config.yaml - Used to store customizations to the overall InfluxDB configuration. Details on available options can be found here
fdinflux.config - Stores details that will be used by FlexDeploy to connect to the InfluxDB instance like URL, Org, and Bucket. Can also be used to override the default value for the wait duration between writes.
The time series data for the InfluxDB instance is stored in <FLEXDEPLOY_HOME>/application/vsm/data
The presence of the wal directory indicates that the Org has been successfully set up in InfluxDB and data is being written here.
InfluxDB Token Management
The influx auth
command can be used to manage the API Tokens for use with FlexDeploy. Further information about the command can be found here.
The
influx auth list
command can be used to list all the API Tokens available for the instance.The
influx auth create
command can be used to create a new API Token that can be used by FlexDeploy.
FlexDeploy requires the created API Token to have the following permissions at the minimum.read-buckets read-orgs write-buckets write-orgs
The
influx auth active -i <token_id>
and theinflux auth inactive -i <token_id>
commands can be used to activate and deactivate API Tokens temporarily as required.The
influx auth delete -i <token_id>
command can be used to delete any unused API Tokens.
The current API Token that you wish to use with FlexDeploy must be set as the value for the FD_INFLUXDB_ADMIN_TOKEN credential.
Retention Policy for Metrics/Insights
The retention policy for the time series data in InfluxDB is set to 2 years after the installation of FlexDeploy. This is separate from the Purge Settings available in FlexDeploy and only covers the duration of data available to be displayed in Metrics/Insights. Any data older than this is automatically removed by InfluxDB at regular intervals.
The retention period can be modified by using the below command if required.
# The id of the bucket can be obtained from the "influx bucket ls" command $ ./influx bucket update --id <bucket_id> --retention <rentention_period>
Common Troubleshooting
Check if InfluxDB is currently running
The influx ping
command can be used to check if InfluxDB is currently running. Influx starts from the StartFlexDeploy.sh script, not the usual Tomcat start script. Please always use the StartFlexDeploy.sh script to start FlexDeploy.
If InfluxDB is running, “OK“ is printed as the output with a 0 return code.
If InfluxDB is not currently running, the return code is 1 with an error along the following lines.
Error: Get "http://localhost:8086/health": dial tcp [::1]:8086: connect: connection refused
Org is not correctly configured
If you are seeing 401 Unauthorized errors after starting up FlexDeploy or when using the CLI, this could indicate that the org setup has not been done.
Run the setup command shown below to set up the org.
$ rm -rf ~/.influxdbv2 $ ./influx setup --bucket flexbucket --token ${INFLUX_DB_TOKEN} --org flexdeploy --username=flexuser --password=${INFLUX_DB_PASSWORD} --host=http://localhost:8086 --force
If the instance has already been configured, the following error will be thrown by the above command.
Error: instance has already been set up
Influx CLI throws 401 Unauthorized errors even with Org configured
This generally happens when the CLI is incorrectly configured during installation. To resolve this, run the command given below from the influxdb directory in <FLEXDEPLOY_HOME>
$ ./influx config create --config-name default --host-url http://localhost:8086 --token <api_token> --org flexdeploy -a Active Name URL Org * default http://localhost:8086 flexdeploy
The command should also create ~/.influxdbv2/configs file upon successful execution.
401 Unauthorized errors in Dashboard/Project Insights even with Org configured
The active API Token that you wish to use with FlexDeploy must be set as the value for the FD_INFLUXDB_ADMIN_TOKEN credential in the Credentials page. Once this is set, refreshing the Dashboard/Project page should resolve the issue.