This section describes requirements for using a managed or external Postgres instance (for example AWS RDS, Google Cloud SQL, or Azure Database for PostgreSQL Flexible Server) instead of the default in-cluster Postgres StatefulSet. The following requirements apply before installation. Postgres versionDocumentation Index
Fetch the complete documentation index at: https://arize-ax.mintlify.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Postgres 17.x, with 17.6 or later recommended.
| Resource | Recommended |
|---|---|
| Storage type | Block storage (e.g. AWS gp2) |
| Storage size | 50 GB |
| Memory | 6 GiB |
| CPU | 3 vCPU |
max_connections, the value matches the bundled Arize AX Postgres 17 server configuration (postgres.conf) and the default database flags for Arize AX self hosted deployments.
| Parameter | Value |
|---|---|
max_connections | 600 |
log_timezone | UTC |
timezone | UTC |
track_io_timing | on |
pg_stat_statements.max | 10000 |
pg_stat_statements.track | all |
max_connections: On-prem Terraform defaults use 600. The in-cluster Arize AX Postgres 17 image ships max_connections = 900 in postgres.conf. For external Postgres, 600 is the documented baseline; raise it if your expected client count requires more headroom.
Databases
- Arize AX uses two databases:
postgresdb(application data) anddruid. The Arize AX install job will create both databases if they do not already exist. You may also pre-create them.
ISO, MDY DateStyle. The Arize AX install job applies the necessary ALTER DATABASE statements when the admin user can run them. Setting DateStyle explicitly is required — some managed Postgres providers default to ISO, DMY, which causes date parsing errors in Arize AX.
To set DateStyle manually, use:
CREATE EXTENSION IF NOT EXISTS against postgresdb for:
-
uuid-ossp -
pg_stat_statements
contrib package and are available on AWS RDS, Google Cloud SQL, and Azure Database for PostgreSQL.
Admin user and permissions
Provide Arize AX with a single admin-level Postgres user (via postgresUsername and postgresPassword in values.yaml). The install job uses this user to bootstrap the databases and create the fine-grained runtime roles that Arize AX services use.
The admin user must be able to:
-
CREATE DATABASE(forpostgresdbanddruid, if not pre-created) -
CREATE ROLE(the install job creates roles used by Arize AX services, includingmigrations,app_server,druid,auth, and others) -
CREATE EXTENSIONforuuid-osspandpg_stat_statements -
ALTER DATABASE ... SETto setDateStyle -
GRANTon thepublicschema of both databases
rds_superuser on AWS RDS, the cloudsqlsuperuser role on Google Cloud SQL, or membership in azure_pg_admin on Azure Database for PostgreSQL Flexible Server.
The runtime roles created by the install job are managed entirely by Arize AX. You do not need to pre-create them, and the admin user is not used by Arize AX services at runtime.
Set the following fields in values.yaml to use an external Postgres instance instead of the default in-cluster StatefulSet.
values.yaml:
values.yaml, follow the installation guide for your environment: Installation on AWS, Installation on GCP, Installation on Azure, or Installation on OpenShift.
Choose an approach based on the deployment. For helm: