Implementing Flags with TimescaleDB

TimescaleDB is an extension of Postgres that is required for the Flags feature. It is recommended to use the Virtual Machine/EC2 installation for TimescaleDB instead of using Helm.

We have included two different deployment strategies for the Timescale implementation:

  1. Primary Server with Read Replica
  2. Single Server

We recommend using Primary/Secondary for production-level environments and the Single Server for non-production environments. The TimescaleDB template is stored in the TimescaleDB folder.

Primary Server with Read Replica

This deployment strategy involves creating 2 VMs. One that will serve as the primary and another that will serve as the secondary read replica. This can be deployed using our terraform template or by manually deploying VMs and using our auto install userdata as a reference for server config. Primary, Secondary.

Single Server

This deployment strategy involves creating 1 VM. This VM will serve as the primary and single point of failure. This can be deployed using our terraform template by setting var.timescale_server_replication_enabled to false or by manually deploying a VM and using our auto install userdata as a reference for server config. [Primary]

Backups

In the terraform deployment, we have configured pgBackRest to perform full and incremental backups to a storage account. If installing manually, the auto install script can be used as a reference.

๐Ÿ“˜

Note for AWS govcloud

Before running the template, you must manually enable the ami via Marketplace, if this is a new account and build a VM. If you search for ubuntu jammy, you should pick the image and build a virtual machine. Its

Values to update

{{- if eq .timescale_enabled true | default $.Values.timescale.enabled }}

  • name: "SETUP__TIMESERIES__ENABLED"
    value:
  • name: "SERVICES__TIMESERIES_DATABASE_URL"
    value:
    {{- end }}