diff --git a/.env.template b/.env.template index 637f5cea..5a5cc0f0 100644 --- a/.env.template +++ b/.env.template @@ -1,4 +1,4 @@ -ADS_PORT=7676 +ADS_PORT=3030 DISCOUNTS_PORT=2814 AUTH_PORT=7578 DBM_PORT=7595 @@ -20,12 +20,12 @@ NEXT_PUBLIC_SPREE_CLIENT_HOST=http://localhost:4000 NEXT_PUBLIC_SPREE_IMAGE_HOST=http://localhost:4000 NEXT_PUBLIC_SPREE_ALLOWED_IMAGE_DOMAIN=localhost # for local development (on localhost) -NEXT_PUBLIC_ADS_PORT=7676 +NEXT_PUBLIC_ADS_PORT=3030 NEXT_PUBLIC_DISCOUNTS_PORT=2814 NEXT_PUBLIC_ADS_ROUTE="http://localhost" NEXT_PUBLIC_DISCOUNTS_ROUTE="http://localhost" # for labs/public use -NEXT_PUBLIC_ADS_URL_FULL="http://localhost:7676" +NEXT_PUBLIC_ADS_URL_FULL="http://localhost:3030" NEXT_PUBLIC_DISCOUNTS_URL_FULL="http://localhost:2814" NEXT_PUBLIC_DD_APPLICATION_ID="" diff --git a/deploy/docker-compose/docker-compose.yml b/deploy/docker-compose/docker-compose.yml deleted file mode 100644 index b94a42b1..00000000 --- a/deploy/docker-compose/docker-compose.yml +++ /dev/null @@ -1,136 +0,0 @@ -version: '3.7' -services: - frontend: - image: public.ecr.aws/x2b9z2t7/storedog/frontend:1.0.8 - command: yarn dev - volumes: - - "../../services/frontend/site:/storedog-app/site" - depends_on: - - worker - ports: - - 3000:3000 - networks: - - storedog-net - nginx: - image: public.ecr.aws/x2b9z2t7/storedog/nginx:1.0.8 - restart: always - ports: - - "80:80" - depends_on: - - frontend - labels: - com.datadoghq.ad.logs: '[{"source": "nginx", "service": "nginx"}]' - networks: - - storedog-net - postgres: - image: postgres:13-alpine - restart: always - environment: - POSTGRES_HOST_AUTH_METHOD: trust - volumes: - - 'postgres:/var/lib/postgresql/data' - - ../../services/backend/db/restore:/docker-entrypoint-initdb.d - networks: - - storedog-net - labels: - com.datadoghq.ad.check_names: '["postgres"]' - com.datadoghq.ad.init_configs: '[{}]' - com.datadoghq.ad.instances: '[{"host":"%%host%%", "port":5432,"username":"datadog","password":"datadog"}]' - com.datadoghq.ad.logs: '[{"source":"postgresql","service":"postgresql"}]' - redis: - image: redis:6.2-alpine - volumes: - - 'redis:/data' - networks: - - storedog-net - web: - image: public.ecr.aws/x2b9z2t7/storedog/backend:latest - depends_on: - - 'postgres' - - 'redis' - ports: - - '${DOCKER_HOST_WEB_PORT:-4000}:4000' - environment: - REDIS_URL: redis://redis:6379/0 - DB_HOST: postgres - DB_PORT: 5432 - DISABLE_SPRING: 1 - networks: - - storedog-net - worker: - image: public.ecr.aws/x2b9z2t7/storedog/backend:latest - command: bundle exec sidekiq -C config/sidekiq.yml - depends_on: - - 'postgres' - - 'redis' - - 'web' - environment: - REDIS_URL: redis://redis:6379/0 - DB_HOST: postgres - DB_PORT: 5432 - DISABLE_SPRING: 1 - networks: - - storedog-net - ads-java: - image: public.ecr.aws/x2b9z2t7/storedog/ads-java:1.0.8 - environment: - - DD_SERVICE=ads-java - - DD_AGENT_HOST=dd-agent - - DD_LOGS_INJECTION=true - - DD_TRACE_ANALYTICS_ENABLED=true - - DD_PROFILING_ENABLED=true - ports: - - "3030:8080" - networks: - - storedog-net - discounts: - image: public.ecr.aws/x2b9z2t7/storedog/discounts:1.0.8 - command: ./my-wrapper-script.sh ${DISCOUNTS_PORT} - depends_on: - - postgres - environment: - - FLASK_APP=discounts.py - - FLASK_DEBUG=1 - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - - POSTGRES_USER=${POSTGRES_USER} - - POSTGRES_HOST=postgres - - DD_SERVICE=discounts - - DD_AGENT_HOST=dd-agent - - DD_LOGS_INJECTION=true - - DD_TRACE_ANALYTICS_ENABLED=true - - DD_PROFILING_ENABLED=true - ports: - - "${DISCOUNTS_PORT}:${DISCOUNTS_PORT}" - - "22" - networks: - - storedog-net - dd-agent: - image: gcr.io/datadoghq/agent:latest - environment: - - DD_API_KEY=${DD_API_KEY} - - DD_APM_ENABLED=true - - DD_APM_NON_LOCAL_TRAFFIC=true - - DD_LOGS_ENABLED=true - - DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true - - DD_CONTAINER_EXCLUDE="name:datadog-agent" - ports: - - "8126:8126" - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - /proc/:/host/proc/:ro - - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro - networks: - - storedog-net - -volumes: - redis: - postgres: - bundle_cache: - -networks: - storedog-net: - driver: bridge - ipam: - config: - - subnet: 172.43.0.0/16 - gateway: 172.43.0.1 diff --git a/docker-compose.pinned.yml b/docker-compose.pinned.yml new file mode 100644 index 00000000..ae7f1c2a --- /dev/null +++ b/docker-compose.pinned.yml @@ -0,0 +1,277 @@ +version: '3.7' +services: + dd-agent: + image: gcr.io/datadoghq/agent:latest + environment: + - DD_API_KEY=${DD_API_KEY} + - DD_APM_ENABLED=true + - DD_APM_NON_LOCAL_TRAFFIC=true + - DD_LOGS_ENABLED=true + - DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true + - DD_CONTAINER_EXCLUDE="name:dd-agent,name:puppeteer" + - DD_HOSTNAME_TRUST_UTS_NAMESPACE=true + - DD_PROCESS_AGENT_ENABLED=true + - DD_CONTAINER_LABELS_AS_TAGS={"my.custom.label.team":"team"} + - DD_TAGS=${DD_TAGS-env:storedog} + - DD_HOSTNAME=${DD_HOSTNAME-storedog-host} + - DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true + - DD_DBM_PROPAGATION_MODE=full + ports: + - '8126:8126/tcp' + - '8125:8125/udp' + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /proc/:/host/proc/:ro + - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro + - ./services/datadog-agent/postgres/dd-agent-conf.yaml:/conf.d/postgres.d/conf.yaml + frontend: + image: public.ecr.aws/x2b9z2t7/storedog/frontend:1.2.0 + command: npm run dev + depends_on: + - worker + - dd-agent + volumes: + - ./services/frontend:/storedog-app + - /storedog-app/node_modules + ports: + - 3000:3000 + environment: + - DD_VERSION=${DD_VERSION-7} + - DD_SERVICE=store-frontend + - DD_ENV=${DD_ENV-dev} + - DD_AGENT_HOST=dd-agent + - DD_LOGS_INJECTION=true + - DD_RUNTIME_METRICS_ENABLED=true + - DD_PROFILING_ENABLED=true + labels: + com.datadoghq.ad.logs: '[{"source": "nodejs", "service": "store-frontend", "auto_multi_line_detection":true }]' + com.datadoghq.tags.env: '${DD_ENV-dev}' + com.datadoghq.tags.service: 'store-frontend' + com.datadoghq.tags.version: '${DD_VERSION-7}' + my.custom.label.team: 'frontend' + nginx: + image: public.ecr.aws/x2b9z2t7/storedog/nginx:1.2.0 + restart: always + ports: + - '80:80' + depends_on: + - frontend + - dd-agent + volumes: + - ./services/nginx/nginx.conf:/etc/nginx/nginx.conf + - ./services/nginx/default.conf:/etc/nginx/conf.d/default.conf + - ./services/nginx/status.conf:/etc/nginx/conf.d/status.conf + labels: + com.datadog.tags.env: '${DD_ENV}' + com.datadog.tags.service: 'store-nginx' + com.datadog.tags.version: '1.21.4' + com.datadoghq.ad.logs: '[{"source": "nginx", "service": "webserver"}]' + com.datadoghq.ad.check_names: '["nginx"]' + com.datadoghq.ad.init_configs: '[{}]' + com.datadoghq.ad.instances: '[{"nginx_status_url": "http://%%host%%:81/nginx_status/"}]' + postgres: + image: postgres:13-alpine + command: ['postgres', '-c', 'config_file=/postgresql.conf'] + restart: always + depends_on: + - dd-agent + environment: + - POSTGRES_HOST_AUTH_METHOD=trust + - POSTGRES_USER + - POSTGRES_PASSWORD + - DD_ENV=${DD_ENV-dev} + - DD_SERVICE=storedog-db + - DD_VERSION=${DD_VERSION-7} + - DD_AGENT_HOST=dd-agent + - DD_DBM_PROPAGATION_MODE=full + - DD_LOGS_INJECTION=true + - DD_RUNTIME_METRICS_ENABLED=true + - DD_PROFILING_ENABLED=true + volumes: + - 'postgres:/var/lib/postgresql/data' + - ./services/backend/db/restore:/docker-entrypoint-initdb.d + - ./services/backend/db/postgresql.conf:/postgresql.conf + labels: + com.datadoghq.tags.env: '${DD_ENV}' + com.datadoghq.tags.service: 'storedog-db' + com.datadoghq.tags.version: '13' + com.datadoghq.ad.check_names: '["postgres", "postgres"]' + com.datadoghq.ad.init_configs: '[{}, {}]' + com.datadoghq.ad.instances: '[ + { + "dbm":true, + "host":"%%host%%", + "port":5432, + "username":"datadog", + "password":"datadog", + "relations": [{ + "relation_name": "advertisement", + "relation_name": "discount", + "relation_name": "items", + "relation_name": "preorder_items", + "relation_name": "influencer" + }], + "query_samples": { + "enabled": true, + "explain_parameterized_queries": true + }, + "max_relations": 400, + "collect_function_metrics": true, + "collection_interval": 1 + }, + { + "dbm":true, + "host":"%%host%%", + "port":5432, + "username":"datadog", + "password":"datadog", + "dbname": "spree_starter_development", + "relations": [{ + "relation_regex": "spree_.*" + }], + "query_samples": { + "enabled": true, + "explain_parameterized_queries": true + }, + "max_relations": 400, + "collect_function_metrics": true, + "collection_interval": 1 + }]' + com.datadoghq.ad.logs: '[{"source": "postgresql", "service": "postgres", "auto_multi_line_detection":true }]' + my.custom.label.team: 'database' + redis: + image: redis:6.2-alpine + depends_on: + - dd-agent + volumes: + - 'redis:/data' + labels: + com.datadoghq.tags.env: '${DD_ENV}' + com.datadoghq.tags.service: 'redis' + com.datadoghq.tags.version: '6.2' + com.datadoghq.ad.check_names: '["redisdb"]' + com.datadoghq.ad.init_configs: '[{}]' + com.datadoghq.ad.instances: '[{"host":"%%host%%", "port":6379}]' + com.datadoghq.ad.logs: '[{"source": "redis", "service": "redis"}]' + my.custom.label.team: 'database' + web: + depends_on: + - 'postgres' + - 'redis' + - 'dd-agent' + image: public.ecr.aws/x2b9z2t7/storedog/backend:1.2.0 + command: wait-for-it postgres:5432 -- bundle exec rails s -b 0.0.0.0 -p 4000 + ports: + - '${DOCKER_HOST_WEB_PORT:-4000}:4000' + volumes: + - './services/backend:/app' + - .env:/app/.env + environment: + - REDIS_URL=redis://redis:6379/0 + - DB_HOST=postgres + - DB_PORT=5432 + - POSTGRES_USER + - POSTGRES_PASSWORD + - DISABLE_SPRING=1 + - DD_APPSEC_ENABLED=true + - DD_AGENT_HOST=dd-agent + - DD_VERSION=${DD_VERSION-7} + - DD_SERVICE=store-backend + - DD_ENV=${DD_ENV-dev} + - DD_LOGS_INJECTION=true + - DD_RUNTIME_METRICS_ENABLED=true + - DD_PROFILING_ENABLED=true + - RAILS_ENV=development + labels: + com.datadoghq.ad.logs: '[{"source": "ruby", "service": "store-backend", "auto_multi_line_detection":true }]' + com.datadoghq.tags.env: '${DD_ENV}' + com.datadoghq.tags.service: 'store-backend' + com.datadoghq.tags.version: '1.0.9' + my.custom.label.team: 'backend' + worker: + image: public.ecr.aws/x2b9z2t7/storedog/backend:1.2.0 + command: wait-for-it postgres:5432 -- bundle exec sidekiq -C config/sidekiq.yml + depends_on: + - 'postgres' + - 'redis' + - 'web' + - 'dd-agent' + volumes: + - ./services/backend:/app + - .env:/app/.env + - ./services/worker/config/initializers/datadog-tracer.rb:/app/config/initializers/datadog-tracer.rb + environment: + - REDIS_URL=redis://redis:6379/0 + - DB_HOST=postgres + - DB_PORT=5432 + - DISABLE_SPRING=1 + - DD_AGENT_HOST=dd-agent + - DD_ENV=${DD_ENV-dev} + - DD_SERVICE=store-worker + - DD_VERSION=${DD_VERSION-7} + - DD_LOGS_INJECTION=true + - DD_RUNTIME_METRICS_ENABLED=true + - DD_PROFILING_ENABLED=true + - DD_APPSEC_ENABLED=true + labels: + com.datadoghq.ad.logs: '[{"source": "ruby", "service": "storedog-worker", "auto_multi_line_detection":true }]' + com.datadoghq.tags.env: '${DD_ENV}' + com.datadoghq.tags.service: 'store-worker' + com.datadoghq.tags.version: '1.0.9' + my.custom.label.team: 'backend' + discounts: + image: public.ecr.aws/x2b9z2t7/storedog/discounts:1.2.0 + command: ./my-wrapper-script.sh ${DISCOUNTS_PORT} + depends_on: + - postgres + - dd-agent + environment: + - FLASK_APP=discounts.py + - FLASK_DEBUG=0 + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_HOST=postgres + - DD_AGENT_HOST=dd-agent + - DD_LOGS_INJECTION=true + - DD_TRACE_ANALYTICS_ENABLED=true + - DD_PROFILING_ENABLED=true + - DD_APPSEC_ENABLED=true + - DD_VERSION=${DD_VERSION-7} + - DD_SERVICE=store-discounts + - DD_ENV=${DD_ENV-dev} + volumes: + - ./services/discounts:/app + ports: + - '${DISCOUNTS_PORT}:${DISCOUNTS_PORT}' + - '22:22' + labels: + com.datadoghq.ad.logs: '[{"source": "python", "service": "store-discounts"}]' + com.datadoghq.tags.env: '${DD_ENV-dev}' + com.datadoghq.tags.service: 'store-discounts' + com.datadoghq.tags.version: '${DD_VERSION-7}' + my.custom.label.team: 'discounts' + ads-java: + image: public.ecr.aws/x2b9z2t7/storedog/ads-java:1.2.0 + depends_on: + - dd-agent + environment: + - DD_SERVICE=store-ads-java + - DD_AGENT_HOST=dd-agent + - DD_LOGS_INJECTION=true + - DD_TRACE_ANALYTICS_ENABLED=true + - DD_PROFILING_ENABLED=true + - DD_TRACE_SAMPLE_RATE=1 + - DD_VERSION=${DD_VERSION-7} + - DD_ENV=${DD_ENV-dev} + ports: + - '3030:8080' + labels: + com.datadoghq.ad.logs: '[{"source": "java", "service": "ads-java"}]' + com.datadoghq.tags.env: '${DD_ENV-dev}' + com.datadoghq.tags.service: 'store-ads-java' + com.datadoghq.tags.version: '${DD_VERSION-7}' + my.custom.label.team: 'advertisements' + +volumes: + redis: + postgres: diff --git a/docker-compose.yml b/docker-compose.yml index 237ff669..e84c6474 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: '3.7' services: dd-agent: image: gcr.io/datadoghq/agent:latest @@ -255,6 +254,8 @@ services: depends_on: - postgres - dd-agent + profiles: + - python-ads environment: - FLASK_APP=ads.py - FLASK_DEBUG=0 @@ -362,6 +363,8 @@ services: - STOREDOG_URL=${STOREDOG_URL-http://localhost} - PUPPETEER_TIMEOUT - SKIP_SESSION_CLOSE + profiles: + - puppeteer depends_on: - frontend command: bash puppeteer.sh