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
INIT=
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
DEV_MODE=reload,xml
DOMAIN=erp.odoocker.test
@@ -26,7 +27,7 @@ LOAD_LANGUAGE=
DB_SSLMODE=prefer
DB_MAXCONN=64
DB_TEMPLATE=unaccent_template
UNACCENT=True
UNACCENT=False
LIST_DB=True
DBFILTER=.*
@@ -34,6 +35,16 @@ DBFILTER=.*
LOG_LEVEL=info
# Additional logs
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
CORS_ALLOWED_DOMAIN="'http://external-domain.test'"
@@ -65,20 +76,23 @@ REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_URL=
REDIS_PREFIX=odoo
REDIS_PREFIX=odoocker
REDIS_SENTINEL_MASTER_NAME=
REDIS_SENTINEL_HOST=
REDIS_SENTINEL_PORT=26379
REDIS_EXPIRATION=604800
REDIS_EXPIRATION_ANONYMOUS=10800
REDIS_DATA=/var/lib/keydb
# Filesystem
S3_VIRTUAL_HOST=s3.odoocker.test
S3_API_PORT=9000
S3_CONSOLE_PORT=9001
AWS_HOST=http://s3:${S3_API_PORT}
AWS_REGION=
AWS_ACCESS_KEY_ID=myaccesskey
AWS_SECRET_ACCESS_KEY=mysecretkey
AWS_BUCKETNAME=odoocker
AWS_HOST=http://s3:${S3_API_PORT}
AWS_REGION=
# PgAdmin
PGADMIN_DOMAIN=pgadmin.odoocker.test
@@ -103,26 +117,13 @@ SUPPORT_EMAIL=mail@example.com
# Containers' Tags
ODOO_TAG=16.0
POSTGRES_TAG=16.0
REDIS_TAG=latest
S3_TAG=latest
KEYDB_TAG=latest
MINIO_TAG=latest
NGINX_TAG=1.25.2
NGINX_PROXY_TAG=1.3.1
ACME_COMPANION_TAG=2.2.8
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
COMMUNITY_ADDONS=${ROOT_PATH}/addons
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
@@ -132,6 +133,19 @@ CUSTOM_ADDONS=${ROOT_PATH}/custom-addons
LOG_PATH=/var/log/odoo/odoo.log
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
ODOO_RC=${ROOT_PATH}/odoo.conf
SAVE=False
@@ -159,14 +173,14 @@ XMLRPCS=True
PROXY_MODE=True
X_SENDFILE=False
# Testing
# Testing Group
TEST_FILE=False
TEST_ENABLE=${TEST_ENABLE}
TEST_TAGS=${TEST_TAGS}
SCREENCASTS=None
SCREENSHOTS=/tmp/odoo_tests
# Logging
# Logging Group
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_DB=False
@@ -174,7 +188,7 @@ LOG_DB_LEVEL=${LOG_LEVEL}
SYSLOG=False
LOGFILE=
# Email
# SMTP Group
EMAIL_FROM=${EMAIL_FROM}
FROM_FILTER=${FROM_FILTER}
SMTP_SERVER=${SMTP_SERVER}
@@ -224,6 +238,29 @@ LIMIT_TIME_REAL=480
LIMIT_TIME_REAL_CRON=600
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 #
#--------------#
@@ -270,25 +307,12 @@ DEFAULT_EMAIL=${SUPPORT_EMAIL}
#-------------#
# 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_EXPIRATION=${REDIS_EXPIRATION}
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
KEYDB_PORT=${REDIS_PORT}
KEYDB_DATA=/var/lib/keydb
#----------#
# S3 #
#----------#
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 #
#-------------#
MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
MINIO_VIRTUAL_HOST=${S3_VIRTUAL_HOST}

View File

@@ -33,6 +33,9 @@ services:
- ODOO_SESSION_REDIS_PASSWORD
- ODOO_SESSION_REDIS_URL
- 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_ANONYMOUS
- AWS_HOST
@@ -69,18 +72,18 @@ services:
- internal
redis:
image: eqalpha/keydb:${REDIS_TAG}
image: eqalpha/keydb:${KEYDB_TAG}
platform: linux/amd64
ports:
- ${REDIS_PORT}:${REDIS_PORT}
- ${KEYDB_PORT}:${KEYDB_PORT}
restart: unless-stopped
volumes:
- redis-data:${REDIS_DATA}
- redis-data:${KEYDB_DATA}
networks:
- internal
s3:
image: minio/minio:${S3_TAG}
image: minio/minio:${MINIO_TAG}
environment:
- MINIO_ROOT_USER
- MINIO_ROOT_PASSWORD

View File

@@ -44,7 +44,7 @@ addons_path = ${ADDONS_PATH}
upgrade_path = ${UPGRADE_PATH}
; --load
server_wide_modules = ${SERVER_WIDE_MODULES}
server_wide_modules = ${LOAD}
; --data-dir
data_dir = ${DATA_DIR}
@@ -263,6 +263,19 @@ limit_request = ${LIMIT_REQUEST}
; 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 ;
;-------------;
@@ -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)
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 ;
;----------;
; -- Disable S3 storage
DISABLE_ATTACHMENT_STORAGE = ${DISABLE_ATTACHMENT_STORAGE}
; -- Not required if using AWS S3
AWS_HOST = ${AWS_HOST}

View File

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

View File

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