Merge pull request #5 from odoocker/feature/sentry-integration

Yhael | Feature | Sentry Integration
This commit is contained in:
Yhael S
2023-10-09 17:34:59 -06:00
committed by GitHub
5 changed files with 100 additions and 59 deletions

View File

@@ -5,7 +5,8 @@
APP_ENV=local APP_ENV=local
INIT= INIT=
UPDATE= UPDATE=
LOAD=base,web,session_redis,attachment_s3 LOAD=base,web,session_redis,attachment_s3,sentry
ROOT_PATH=/usr/lib/python3/dist-packages/odoo
WORKERS=2 WORKERS=2
DEV_MODE=reload,xml DEV_MODE=reload,xml
DOMAIN=erp.odoocker.test DOMAIN=erp.odoocker.test
@@ -26,7 +27,7 @@ LOAD_LANGUAGE=
DB_SSLMODE=prefer DB_SSLMODE=prefer
DB_MAXCONN=64 DB_MAXCONN=64
DB_TEMPLATE=unaccent_template DB_TEMPLATE=unaccent_template
UNACCENT=True UNACCENT=False
LIST_DB=True LIST_DB=True
DBFILTER=.* DBFILTER=.*
@@ -34,6 +35,16 @@ DBFILTER=.*
LOG_LEVEL=info LOG_LEVEL=info
# Additional logs # Additional logs
LOG_HANDLER_LEVEL=INFO LOG_HANDLER_LEVEL=INFO
# Sentry
SENTRY_DSN=https://84799fb74edc4053aa3368aec3c2cb89@o4504596558577664.ingest.sentry.io/4504596563230720
SENTRY_ENABLED=true
SENTRY_LOGGING_LEVEL=warn
SENTRY_EXCLUDE_LOGGERS=
SENTRY_IGNORE_EXCEPTIONS=
SENTRY_INCLUDE_CONTEXT=true
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=
SENTRY_ODOO_DIR=${ROOT_PATH}
# Nginx # Nginx
CORS_ALLOWED_DOMAIN="'http://external-domain.test'" CORS_ALLOWED_DOMAIN="'http://external-domain.test'"
@@ -65,20 +76,23 @@ REDIS_HOST=redis
REDIS_PORT=6379 REDIS_PORT=6379
REDIS_PASSWORD= REDIS_PASSWORD=
REDIS_URL= REDIS_URL=
REDIS_PREFIX=odoo REDIS_PREFIX=odoocker
REDIS_SENTINEL_MASTER_NAME=
REDIS_SENTINEL_HOST=
REDIS_SENTINEL_PORT=26379
REDIS_EXPIRATION=604800 REDIS_EXPIRATION=604800
REDIS_EXPIRATION_ANONYMOUS=10800 REDIS_EXPIRATION_ANONYMOUS=10800
REDIS_DATA=/var/lib/keydb
# Filesystem # Filesystem
S3_VIRTUAL_HOST=s3.odoocker.test S3_VIRTUAL_HOST=s3.odoocker.test
S3_API_PORT=9000 S3_API_PORT=9000
S3_CONSOLE_PORT=9001 S3_CONSOLE_PORT=9001
AWS_HOST=http://s3:${S3_API_PORT}
AWS_REGION=
AWS_ACCESS_KEY_ID=myaccesskey AWS_ACCESS_KEY_ID=myaccesskey
AWS_SECRET_ACCESS_KEY=mysecretkey AWS_SECRET_ACCESS_KEY=mysecretkey
AWS_BUCKETNAME=odoocker AWS_BUCKETNAME=odoocker
AWS_HOST=http://s3:${S3_API_PORT}
AWS_REGION=
# PgAdmin # PgAdmin
PGADMIN_DOMAIN=pgadmin.odoocker.test PGADMIN_DOMAIN=pgadmin.odoocker.test
@@ -103,26 +117,13 @@ SUPPORT_EMAIL=mail@example.com
# Containers' Tags # Containers' Tags
ODOO_TAG=16.0 ODOO_TAG=16.0
POSTGRES_TAG=16.0 POSTGRES_TAG=16.0
REDIS_TAG=latest KEYDB_TAG=latest
S3_TAG=latest MINIO_TAG=latest
NGINX_TAG=1.25.2 NGINX_TAG=1.25.2
NGINX_PROXY_TAG=1.3.1 NGINX_PROXY_TAG=1.3.1
ACME_COMPANION_TAG=2.2.8 ACME_COMPANION_TAG=2.2.8
PGADMIN_TAG=7.6 PGADMIN_TAG=7.6
#------------#
# Odoo #
#------------#
# Options not exposed on the command line.
ADMIN_PASSWD=${ADMIN_PASSWD}
CSV_INTERNAL_SEP=,
PUBLISHER_WARRANTY_URL=http://services.openerp.com/publisher-warranty/
ROOT_PATH=/usr/lib/python3/dist-packages/odoo
REPORTGZ=False
WEBSOCKET_KEEP_ALIVE_TIMEOUT=3600
WEBSOCKET_RATE_LIMIT_BURST=10
WEBSOCKET_RATE_LIMIT_DELAY=0.2
# Custom paths # Custom paths
COMMUNITY_ADDONS=${ROOT_PATH}/addons COMMUNITY_ADDONS=${ROOT_PATH}/addons
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
@@ -132,6 +133,19 @@ CUSTOM_ADDONS=${ROOT_PATH}/custom-addons
LOG_PATH=/var/log/odoo/odoo.log LOG_PATH=/var/log/odoo/odoo.log
DEBUG_PATH=/usr/bin/odoo DEBUG_PATH=/usr/bin/odoo
#------------#
# Odoo #
#------------#
# Options not exposed on the command line.
ADMIN_PASSWD=${ADMIN_PASSWD}
CSV_INTERNAL_SEP=,
PUBLISHER_WARRANTY_URL=http://services.openerp.com/publisher-warranty/
ROOT_PATH=${ROOT_PATH}
REPORTGZ=False
WEBSOCKET_KEEP_ALIVE_TIMEOUT=3600
WEBSOCKET_RATE_LIMIT_BURST=10
WEBSOCKET_RATE_LIMIT_DELAY=0.2
# Server startup config # Server startup config
ODOO_RC=${ROOT_PATH}/odoo.conf ODOO_RC=${ROOT_PATH}/odoo.conf
SAVE=False SAVE=False
@@ -159,14 +173,14 @@ XMLRPCS=True
PROXY_MODE=True PROXY_MODE=True
X_SENDFILE=False X_SENDFILE=False
# Testing # Testing Group
TEST_FILE=False TEST_FILE=False
TEST_ENABLE=${TEST_ENABLE} TEST_ENABLE=${TEST_ENABLE}
TEST_TAGS=${TEST_TAGS} TEST_TAGS=${TEST_TAGS}
SCREENCASTS=None SCREENCASTS=None
SCREENSHOTS=/tmp/odoo_tests SCREENSHOTS=/tmp/odoo_tests
# Logging # Logging Group
LOG_LEVEL=${LOG_LEVEL} LOG_LEVEL=${LOG_LEVEL}
LOG_HANDLER=odoo.http.rpc.request:${LOG_HANDLER_LEVEL},odoo.http.rpc.response:${LOG_HANDLER_LEVEL},:${LOG_HANDLER_LEVEL},odoo.sql_db:${LOG_HANDLER_LEVEL} LOG_HANDLER=odoo.http.rpc.request:${LOG_HANDLER_LEVEL},odoo.http.rpc.response:${LOG_HANDLER_LEVEL},:${LOG_HANDLER_LEVEL},odoo.sql_db:${LOG_HANDLER_LEVEL}
LOG_DB=False LOG_DB=False
@@ -174,7 +188,7 @@ LOG_DB_LEVEL=${LOG_LEVEL}
SYSLOG=False SYSLOG=False
LOGFILE= LOGFILE=
# Email # SMTP Group
EMAIL_FROM=${EMAIL_FROM} EMAIL_FROM=${EMAIL_FROM}
FROM_FILTER=${FROM_FILTER} FROM_FILTER=${FROM_FILTER}
SMTP_SERVER=${SMTP_SERVER} SMTP_SERVER=${SMTP_SERVER}
@@ -224,6 +238,29 @@ LIMIT_TIME_REAL=480
LIMIT_TIME_REAL_CRON=600 LIMIT_TIME_REAL_CRON=600
LIMIT_REQUEST=8192 LIMIT_REQUEST=8192
# Redis
ODOO_SESSION_REDIS=${SESSION_REDIS}
ODOO_SESSION_REDIS_HOST=${REDIS_HOST}
ODOO_SESSION_REDIS_PORT=${REDIS_PORT}
ODOO_SESSION_REDIS_PASSWORD=${REDIS_PASSWORD}
ODOO_SESSION_REDIS_URL=${REDIS_URL}
ODOO_SESSION_REDIS_PREFIX=${REDIS_PREFIX}
ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME=${REDIS_SENTINEL_MASTER_NAME}
ODOO_SESSION_REDIS_SENTINEL_HOST=${REDIS_SENTINEL_HOST}
ODOO_SESSION_REDIS_SENTINEL_PORT=${REDIS_SENTINEL_PORT}
ODOO_SESSION_REDIS_EXPIRATION=${REDIS_EXPIRATION}
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
# Base Attachment Object Storage
DISABLE_ATTACHMENT_STORAGE=0
# S3
AWS_HOST=${AWS_HOST}
AWS_REGION=${AWS_REGION}
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
AWS_BUCKETNAME=${AWS_BUCKETNAME}
#--------------# #--------------#
# Docker # # Docker #
#--------------# #--------------#
@@ -270,25 +307,12 @@ DEFAULT_EMAIL=${SUPPORT_EMAIL}
#-------------# #-------------#
# Redis # # Redis #
#-------------# #-------------#
ODOO_SESSION_REDIS=${SESSION_REDIS} KEYDB_PORT=${REDIS_PORT}
ODOO_SESSION_REDIS_HOST=${REDIS_HOST} KEYDB_DATA=/var/lib/keydb
ODOO_SESSION_REDIS_PORT=${REDIS_PORT}
ODOO_SESSION_REDIS_PASSWORD=${REDIS_PASSWORD}
ODOO_SESSION_REDIS_URL=${REDIS_URL}
ODOO_SESSION_REDIS_PREFIX=${REDIS_PREFIX}
ODOO_SESSION_REDIS_EXPIRATION=${REDIS_EXPIRATION}
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
#----------# #-------------#
# S3 # # Minio #
#----------# #-------------#
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
AWS_REGION=${AWS_REGION}
AWS_HOST=${AWS_HOST}
AWS_BUCKETNAME=${AWS_BUCKETNAME}
DISABLE_ATTACHMENT_STORAGE=0
MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID} MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY} MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
MINIO_VIRTUAL_HOST=${S3_VIRTUAL_HOST} MINIO_VIRTUAL_HOST=${S3_VIRTUAL_HOST}

View File

@@ -33,6 +33,9 @@ services:
- ODOO_SESSION_REDIS_PASSWORD - ODOO_SESSION_REDIS_PASSWORD
- ODOO_SESSION_REDIS_URL - ODOO_SESSION_REDIS_URL
- ODOO_SESSION_REDIS_PREFIX - ODOO_SESSION_REDIS_PREFIX
- ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME
- ODOO_SESSION_REDIS_SENTINEL_HOST
- ODOO_SESSION_REDIS_SENTINEL_PORT
- ODOO_SESSION_REDIS_EXPIRATION - ODOO_SESSION_REDIS_EXPIRATION
- ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS - ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS
- AWS_HOST - AWS_HOST
@@ -69,18 +72,18 @@ services:
- internal - internal
redis: redis:
image: eqalpha/keydb:${REDIS_TAG} image: eqalpha/keydb:${KEYDB_TAG}
platform: linux/amd64 platform: linux/amd64
ports: ports:
- ${REDIS_PORT}:${REDIS_PORT} - ${KEYDB_PORT}:${KEYDB_PORT}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- redis-data:${REDIS_DATA} - redis-data:${KEYDB_DATA}
networks: networks:
- internal - internal
s3: s3:
image: minio/minio:${S3_TAG} image: minio/minio:${MINIO_TAG}
environment: environment:
- MINIO_ROOT_USER - MINIO_ROOT_USER
- MINIO_ROOT_PASSWORD - MINIO_ROOT_PASSWORD

View File

@@ -44,7 +44,7 @@ addons_path = ${ADDONS_PATH}
upgrade_path = ${UPGRADE_PATH} upgrade_path = ${UPGRADE_PATH}
; --load ; --load
server_wide_modules = ${SERVER_WIDE_MODULES} server_wide_modules = ${LOAD}
; --data-dir ; --data-dir
data_dir = ${DATA_DIR} data_dir = ${DATA_DIR}
@@ -263,6 +263,19 @@ limit_request = ${LIMIT_REQUEST}
; External Integrations ; ; External Integrations ;
;-----------------------------; ;-----------------------------;
;--------------;
; Sentry ;
;--------------;
sentry_dsn = ${SENTRY_DSN}
sentry_enabled = ${SENTRY_ENABLED}
sentry_logging_level = ${SENTRY_LOGGING_LEVEL}
sentry_exclude_loggers = ${SENTRY_EXCLUDE_LOGGERS}
sentry_ignore_exceptions = ${SENTRY_IGNORE_EXCEPTIONS}
sentry_include_context = ${SENTRY_INCLUDE_CONTEXT}
sentry_environment = ${SENTRY_ENVIRONMENT}
sentry_release = ${SENTRY_RELEASE}
sentry_odoo_dir = ${SENTRY_ODOO_DIR}
;-------------; ;-------------;
; Redis ; ; Redis ;
;-------------; ;-------------;
@@ -290,12 +303,15 @@ ODOO_SESSION_REDIS_EXPIRATION = ${ODOO_SESSION_REDIS_EXPIRATION}
; -- Time in seconds before expiration of the anonymous sessions (default is 3 hours) ; -- Time in seconds before expiration of the anonymous sessions (default is 3 hours)
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = ${ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS} ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = ${ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
;--------------------------------------;
; Base Attachment Object Storage ;
;--------------------------------------;
; -- Disable Attachment Object Storage
DISABLE_ATTACHMENT_STORAGE = ${DISABLE_ATTACHMENT_STORAGE}
;----------; ;----------;
; S3 ; ; S3 ;
;----------; ;----------;
; -- Disable S3 storage
DISABLE_ATTACHMENT_STORAGE = ${DISABLE_ATTACHMENT_STORAGE}
; -- Not required if using AWS S3 ; -- Not required if using AWS S3
AWS_HOST = ${AWS_HOST} AWS_HOST = ${AWS_HOST}

View File

@@ -2,3 +2,4 @@ debugpy
websocket-client websocket-client
redis redis
boto3 boto3
sentry-sdk

View File

@@ -4,17 +4,14 @@ set -e
# Check if the repository directory exists # Check if the repository directory exists
if [ ! -d "odoo-cloud-platform" ]; then if [ ! -d "odoo-cloud-platform" ]; then
git clone https://github.com/camptocamp/odoo-cloud-platform.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags; git clone https://github.com/odoocker/odoo-cloud-platform.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
cp -r odoo-cloud-platform/session_redis ${THIRD_PARTY_ADDONS}/session_redis cp -r odoo-cloud-platform/session_redis ${THIRD_PARTY_ADDONS}/session_redis
cp -r odoo-cloud-platform/base_attachment_object_storage ${THIRD_PARTY_ADDONS}/base_attachment_object_storage cp -r odoo-cloud-platform/base_attachment_object_storage ${THIRD_PARTY_ADDONS}/base_attachment_object_storage
cp -r odoo-cloud-platform/attachment_s3 ${THIRD_PARTY_ADDONS}/attachment_s3 cp -r odoo-cloud-platform/attachment_s3 ${THIRD_PARTY_ADDONS}/attachment_s3
fi fi
# Define the path to the manifest file # Check if the repository directory exists
redis_manifest="${THIRD_PARTY_ADDONS}/session_redis/__manifest__.py" if [ ! -d "server-tools" ]; then
# Define the path to the manifest file git clone https://github.com/odoocker/server-tools.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
s3_manifest="${THIRD_PARTY_ADDONS}/attachment_s3/__manifest__.py" cp -r server-tools/sentry ${THIRD_PARTY_ADDONS}/sentry
fi
# Modify the manifest file
python3 /fix-manifest.py $redis_manifest
python3 /fix-manifest.py $s3_manifest