From 445dc2b852617953fefd7dd6b40c5f1eee480450 Mon Sep 17 00:00:00 2001 From: Gagan Trivedi Date: Wed, 3 Jan 2024 15:09:57 +0530 Subject: [PATCH] fix(infra/staging): Add INFLUXDB_BUCKET to task def (#3199) Co-authored-by: Matthew Elwell --- api/app/settings/common.py | 32 ++++++++++--------- .../ecs-task-definition-task-processor.json | 4 +++ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/api/app/settings/common.py b/api/app/settings/common.py index 25a046e304fe..812810cad794 100644 --- a/api/app/settings/common.py +++ b/api/app/settings/common.py @@ -55,20 +55,10 @@ MAX_PROJECTS_IN_FREE_PLAN = 1 -# Google Analytics Configuration -GOOGLE_ANALYTICS_KEY = env("GOOGLE_ANALYTICS_KEY", default="") -GOOGLE_SERVICE_ACCOUNT = env("GOOGLE_SERVICE_ACCOUNT", default=None) -GA_TABLE_ID = env("GA_TABLE_ID", default=None) - -INFLUXDB_TOKEN = env.str("INFLUXDB_TOKEN", default="") -INFLUXDB_BUCKET = env.str("INFLUXDB_BUCKET", default="") -INFLUXDB_URL = env.str("INFLUXDB_URL", default="") -INFLUXDB_ORG = env.str("INFLUXDB_ORG", default="") ALLOWED_HOSTS = env.list("DJANGO_ALLOWED_HOSTS", default=[]) USE_X_FORWARDED_HOST = env.bool("USE_X_FORWARDED_HOST", default=False) -USE_POSTGRES_FOR_ANALYTICS = env.bool("USE_POSTGRES_FOR_ANALYTICS", default=False) CSRF_TRUSTED_ORIGINS = env.list("DJANGO_CSRF_TRUSTED_ORIGINS", default=[]) @@ -288,17 +278,29 @@ # ref: https://docs.djangoproject.com/en/2.2/ref/middleware/#middleware-ordering MIDDLEWARE.insert(1, "django.middleware.gzip.GZipMiddleware") +# Google Analytics Configuration +GOOGLE_ANALYTICS_KEY = env("GOOGLE_ANALYTICS_KEY", default="") +GOOGLE_SERVICE_ACCOUNT = env("GOOGLE_SERVICE_ACCOUNT", default=None) +GA_TABLE_ID = env("GA_TABLE_ID", default=None) + if GOOGLE_ANALYTICS_KEY: MIDDLEWARE.append("app_analytics.middleware.GoogleAnalyticsMiddleware") -if INFLUXDB_TOKEN: - MIDDLEWARE.append("app_analytics.middleware.InfluxDBMiddleware") +# Influx configuration +INFLUXDB_TOKEN = env.str("INFLUXDB_TOKEN", default="") +INFLUXDB_BUCKET = env.str("INFLUXDB_BUCKET", default="") +INFLUXDB_URL = env.str("INFLUXDB_URL", default="") +INFLUXDB_ORG = env.str("INFLUXDB_ORG", default="") -if USE_POSTGRES_FOR_ANALYTICS: - if INFLUXDB_BUCKET: - raise RuntimeError("Cannot use both InfluxDB and Postgres for analytics") +USE_POSTGRES_FOR_ANALYTICS = env.bool("USE_POSTGRES_FOR_ANALYTICS", default=False) +# NOTE: Because we use Postgres for analytics data in staging and Influx for tracking SSE data, +# we need to support setting the influx configuration alongside using postgres for analytics. +if USE_POSTGRES_FOR_ANALYTICS: MIDDLEWARE.append("app_analytics.middleware.APIUsageMiddleware") +elif INFLUXDB_TOKEN: + MIDDLEWARE.append("app_analytics.middleware.InfluxDBMiddleware") + ALLOWED_ADMIN_IP_ADDRESSES = env.list("ALLOWED_ADMIN_IP_ADDRESSES", default=list()) if len(ALLOWED_ADMIN_IP_ADDRESSES) > 0: diff --git a/infrastructure/aws/staging/ecs-task-definition-task-processor.json b/infrastructure/aws/staging/ecs-task-definition-task-processor.json index 421bf63c5074..cce2e17edba5 100644 --- a/infrastructure/aws/staging/ecs-task-definition-task-processor.json +++ b/infrastructure/aws/staging/ecs-task-definition-task-processor.json @@ -127,6 +127,10 @@ "name": "INFLUXDB_ORG", "value": "ben.rometsch@bullet-train.io" }, + { + "name": "INFLUXDB_BUCKET", + "value": "api_staging" + }, { "name": "INFLUXDB_URL", "value": "https://eu-central-1-1.aws.cloud2.influxdata.com"