Analytics
This document describes various configuration mechanisms for controlling analytics for Flipt.
Analytics
Flipt includes functionality for reporting analytical data to a configurable storage engine.
Currently, Flipt has support for collecting data into the following storage engines:
The data that gets collected currently includes:
- Flag Evaluation Count
Once a storage engine is configured, these analytics are viewable in the UI allowing users to visualize up to 24 hours of data for each metric.
The image above shows the past 30 minutes of the flag flag1
evaluation counts.
Origin
Analytics are currently only collected as they pass through the evaluation server. This means that analytics will be captured if you are using the REST or GRPC APIs via one of our Server SDKs or GRPC SDKs for evaluations.
We have plans to support collecting analytics for Client-Side evaluations in the future.
ClickHouse
You can use a self-hosted ClickHouse instance or a managed instance to store your analytics data.
We highly recommend using a separate database for analytics produced by Flipt. This ensures that Flipt analytic data can be logically isolated from the rest of your Clickhouse data.
The analytics database must be created before Flipt will be able to write analytical data and run any migrations. See our migration section for more info.
To create a database for Flipt analytics, you can use the following SQL:
See the ClickHouse documentation for more information on how to get started with ClickHouse.
Configuration
To configure Flipt to use ClickHouse for analytics, you will need to add the following configuration to your config.yml
file or environment variables:
Prometheus
You can use any Prometheus server to store your analytics data.
Configuration
To configure Flipt to use Prometheus for analytics, you will need to add the following configuration to your config.yml
file or environment variables:
Custom Headers
You can also add custom headers to the Prometheus requests by setting the analytics.storage.prometheus.headers
configuration property. This can be useful if you are using a proxy or need to add additional authentication headers.