diff --git a/docker/Dockerfile b/docker/Dockerfile index 2cfc32cf..f869b03d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -16,6 +16,10 @@ FROM monasca/base:$BASE_TAG ENV \ DEBUG=false \ VERBOSE=true \ + LOG_LEVEL=WARNING \ + LOG_LEVEL_KAFKA=WARNING \ + LOG_LEVEL_INFLUXDB=WARNING \ + LOG_LEVEL_CASSANDRA=WARNING \ ZOOKEEPER_URI=zookeeper:2181 \ KAFKA_URI=kafka:9092 \ KAFKA_ALARM_HISTORY_BATCH_SIZE=1000 \ @@ -40,7 +44,7 @@ ENV \ STAY_ALIVE_ON_FAILURE="false" # Copy all necessary files to proper locations. -COPY monasca_persister.conf.j2 /etc/monasca/ +COPY monasca-persister.conf.j2 persister-logging.conf.j2 /etc/monasca/ # Run here all additional steps your service need post installation. # Stay with only one `RUN` and use `&& \` for next steps to don't create diff --git a/docker/README.rst b/docker/README.rst index 2db7af01..d6fc2b1b 100644 --- a/docker/README.rst +++ b/docker/README.rst @@ -71,6 +71,10 @@ CASSANDRA_PASSWORD password Cassandra passwo CASSANDRA_KEY_SPACE monasca Keyspace name where metrics are stored CASSANDRA_CONNECTION_TIMEOUT 5 Cassandra timeout in seconds CASSANDRA_RETENTION_POLICY 45 Data retention period in days +LOG_LEVEL WARNING Log level for monasca persister +LOG_LEVEL_KAFKA WARNING Log level for communication with Kafka +LOG_LEVEL_INFLUXDB WARNING Log level for communication with InfluxDB +LOG_LEVEL_CASSANDRA WARNING Log level for communication with Cassandra STAY_ALIVE_ON_FAILURE false If true, container runs 2 hours even start fails =============================== =============================== ================================================ diff --git a/docker/monasca_persister.conf.j2 b/docker/monasca-persister.conf.j2 similarity index 96% rename from docker/monasca_persister.conf.j2 rename to docker/monasca-persister.conf.j2 index 9e715e12..cf160014 100644 --- a/docker/monasca_persister.conf.j2 +++ b/docker/monasca-persister.conf.j2 @@ -1,8 +1,7 @@ [DEFAULT] -#log_file = monasca_persister.log -#log_dir = /var/log/monasca_persister +# Provide logging configuration +log_config_append = /etc/monasca/persister-logging.conf -# Default log level is WARNING # Show debugging output in logs (sets DEBUG log level output) debug = {{ DEBUG }} # Show more verbose log output (sets INFO log level output) if debug is False diff --git a/docker/persister-logging.conf.j2 b/docker/persister-logging.conf.j2 new file mode 100644 index 00000000..7f202582 --- /dev/null +++ b/docker/persister-logging.conf.j2 @@ -0,0 +1,43 @@ +[loggers] +keys = root, kafka, influxdb, cassandra + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = {{ LOG_LEVEL }} +formatter = default +handlers = console + +[logger_kafka] +qualname = kafka +level = {{ LOG_LEVEL_KAFKA }} +formatter = default +handlers = console +propagate = 0 + +[logger_influxdb] +qualname = influxdb +level = {{ LOG_LEVEL_INFLUXDB }} +formatter = default +handlers = console +propagate = 0 + +[logger_cassandra] +qualname = cassandra +level = {{ LOG_LEVEL_CASSANDRA }} +formatter = default +handlers = console +propagate = 0 + +[handler_console] +class = logging.StreamHandler +args = (sys.stderr,) +level = DEBUG +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)s [%(name)s][%(threadName)s] %(message)s diff --git a/docker/start.sh b/docker/start.sh index a43fc3b4..8e84a88c 100644 --- a/docker/start.sh +++ b/docker/start.sh @@ -25,12 +25,13 @@ python3 /kafka_wait_for_topics.py # Template all config files before start, it will use env variables. # Read usage examples: https://pypi.org/project/Templer/ echo "Start script: creating config files from templates" -templer -v -f /etc/monasca/monasca_persister.conf.j2 /etc/monasca/monasca_persister.conf +templer -v -f /etc/monasca/monasca-persister.conf.j2 /etc/monasca/monasca-persister.conf +templer -v -f /etc/monasca/persister-logging.conf.j2 /etc/monasca/persister-logging.conf # Start our service. # gunicorn --args echo "Start script: starting container" -monasca-persister --config-file /etc/monasca/monasca_persister.conf +monasca-persister --config-file /etc/monasca/monasca-persister.conf # Allow server to stay alive in case of failure for 2 hours for debugging. RESULT=$?