#
# Copyright © 2016-2020 The Thingsboard Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

apiVersion: v1
kind: ConfigMap
metadata:
  name: tb-node-config
  namespace: thingsboard
  labels:
    name: tb-node-config
data:
  conf: |
      export JAVA_OPTS="$JAVA_OPTS -Dplatform=deb -Dinstall.data_dir=/usr/share/thingsboard/data"
      export JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/thingsboard/${TB_SERVICE_ID}/gc.log -XX:+IgnoreUnrecognizedVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/thingsboard/${TB_SERVICE_ID}/heapdump.bin -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
      export JAVA_OPTS="$JAVA_OPTS -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10"
      export JAVA_OPTS="$JAVA_OPTS -XX:GCLogFileSize=10M -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -XX:+UseCondCardMark"
      export JAVA_OPTS="$JAVA_OPTS -XX:CMSWaitDuration=10000 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+CMSParallelInitialMarkEnabled"
      export JAVA_OPTS="$JAVA_OPTS -XX:+CMSEdenChunksRecordAlways -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+ExitOnOutOfMemoryError"
      export LOG_FILENAME=thingsboard.out
      export LOADER_PATH=/usr/share/thingsboard/conf,/usr/share/thingsboard/extensions
  logback: |
      <!DOCTYPE configuration>
      <configuration scan="true" scanPeriod="10 seconds">

          <appender name="fileLogAppender"
                    class="ch.qos.logback.core.rolling.RollingFileAppender">
              <file>/var/log/thingsboard/${TB_SERVICE_ID}/thingsboard.log</file>
              <rollingPolicy
                      class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                  <fileNamePattern>/var/log/thingsboard/${TB_SERVICE_ID}/thingsboard.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                  <maxFileSize>100MB</maxFileSize>
                  <maxHistory>30</maxHistory>
                  <totalSizeCap>3GB</totalSizeCap>
              </rollingPolicy>
              <encoder>
                  <pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
              </encoder>
          </appender>

          <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
              <encoder>
                  <pattern>%d{ISO8601} [%thread] %-5level %logger{36} - %msg%n</pattern>
              </encoder>
          </appender>

          <logger name="org.thingsboard.server" level="INFO" />
          <logger name="com.google.common.util.concurrent.AggregateFuture" level="OFF" />

          <root level="INFO">
              <appender-ref ref="fileLogAppender"/>
              <appender-ref ref="STDOUT"/>
          </root>

      </configuration>
