All Downloads are FREE. Search and download functionalities are using the official Maven repository.

irius-kernel.12.4.source-code.component-kernel.conf Maven / Gradle / Ivy

#
# Made with all the love in the world
# by scireum in Remshalden, Germany
#
# Copyright by scireum GmbH
# http://www.scireum.de - [email protected]
#

# Contains product specific information. This should most probably be overridden in the application.conf.
product {

    # Contains the name of the product
    name = ""

    # Contains the current version of the product
    version = ""

    # Contains the current build number
    build = ""

    # Contains the build date
    date = ""

    # Contains the current vcs revision
    vcs = ""

    # Contains all modules known to the system
    modules {
        # Adding the kernel module to the list of known modules...
        sirius-kernel {
            version = "${project.version}"
            build = "${build.number}"
            date = "${timestamp}"
            vcs = "${build.vcs.number}"
        }
    }

}

# Contains framework specific information
sirius {

    # Sets the node name of this instance. This should be setup in the instance.conf. If the value is empty,
    # the current hostname is used.
    nodeName = ""

    # Modules can be split into frameworks which can be disabled if not needed.
    # The kernel itself provides the TimerService which calls participants in regular intervals. This can
    # be disabled via the kernel.timer framework.
    frameworks {
        kernel.timer = true
    }

    # By default no customizations are active. This can be used to enable one or more customizations.
    # This will enable classes in "customizations.[name]" as well as resources in "customizations/[name]/resource-path".
    # This can be used to adjust small pieces of the software for multiple customers while maintaining a single
    # consistent codebase.
    customizations = []

    # If enabled a set of provided rules ensures that a minimal amount of system configuration and data is
    # present. This can be used to automatically setup an empty database etc. By default this is disabled and
    # has to be enabled for development / staging / test environments.
    autoSetup = false

}

# Contains the configuration of the native language support
nls {

    # Sets the default language as two-letter code
    defaultLanguage = en

    # Enumerates all supported languages as two-letter codes
    languages = [ en, de ]
}

# Contains settings for the dependency injector
di {
    # Lists root packages to scan. An empty lists will cause all packages to be scanned.
    # If a list is provided, it must contain "sirius" as root package so that core classes
    # are included.
    packageFilter = []
}

# Sets the logging configuration. Each logger can be enumerated here, along with its log level
# This can be OFF, DEBUG, INFO, WARN, ERROR - the default level is INFO
logging {
    # Turn this on to log "ignored" or unnecessary exceptions.
    ignored = OFF
}

# Contains configuration regarding the health system
health {
    # Controls the max numbers of errors kept in the MemoryBasedHealthMonitor
    max-errors = 100

    # Controls the max number of log messages kept in the MemoryBasedHealthMonitor
    max-logs = 100

    # Determines how long old log files are kept
    logFileRetention = 45 days
}

# Determines the hour of day in which log files are removed
timer.daily.logs-cleanup = 3

# Sets up the caching system
cache {

    # Default settings applied to each cache if not further specified
    default {
        # Determines the maximal number of entries in the cache
        maxSize = 128

        # Determines the maximal time to live for a cached object. After this period, the entry will be evicted.
        ttl = 1 hour

        # If the cache can verify values, this determines the interval after which a value needs to be verified
        # before it is served to the requestor.
        verification = 1 hour
    }

    # XPATH expressions are cached (per thread) so that intense XML parsing is faster
    xpath {
        maxSize = 512
        ttl = 30 minutes
    }

}

# Sets of the async execution system
async {

    executor {

        # Default settings applied to each executor if not further specified
        default {
            # Max number of parallel threads used by this executor
            poolSize = 20

            # Max number of tasks queued if all threads are busy. If the queue length is reached, the executor will
            # either block the caller and execute tasks at the callsite or it will drop the task and not do anything
            # at all (if a drop handler for this task is present). If a value of 0 is specified an unbounded
            # queue is used. If a negative value is used, no items will be queued.
            queueLength = 200
        }

        # Used by BackgroundLoop(s) as default executor to perform system maintenance tasks
        background {
            poolSize = 32
            queueLength = 0
        }

        # The Timers class starts all timer related tasks in this executor. Since one might task some time to
        # initialize we use two threads. We also provide a bit of a queue as the Timers class shovels all
        # tasks into the executor at once, so there might be a short contention.
        timer {
            poolSize = 2
            queueLength = 50
        }
    }

}


# Configures the system health monitoring
health {

    # Determines settings for the MemoryBasedHealthMonitor, which provides logs and error reporting
    # if no other LogTap or ExceptionHandler is installed. This is also used to report how many
    # logs / min and exceptions / min occur.
    memory {
        # Max number of exceptions to keep in ram
        max-errors = 100

        # Max number of logs to keep in ram
        max-logs = 100
    }

    # Defines limits for all collected metrics which will cause the system state to be set appropriately
    # Note that 0 means "no limit". Also all given limits are best guesses and depend heavily on the application
    # and the machine the software is running on. The given values are always "per minute" or in percents.
    # .gray always defines a limit where everything below is considered "uninteresting" (GRAY). Everything above
    # .warn and below .warning is "ok" (GREEN). Everything above .warning and below .error is "warning" (YELLOW) and
    # indicates that a metric is in a critical region. Everything above .red is "error" (RED) and signals a failure
    # condition. Using "0" for any value disable the respective limit.
    limits {

        # Number of log lines written per minute
        sys-logs.gray = 10
        sys-logs.warning = 100
        sys-logs.error = 250

        # Number of incidents
        sys-incidents.gray = 1
        sys-incidents.warning = 1000
        sys-incidents.error = 0

        # Number of unique incidents (from different locations)
        sys-unique-incidents.gray = 1
        sys-unique-incidents.warning = 10
        sys-unique-incidents.error = 25

        # Size of all log files in mb
        sys-log-size.gray = 32
        sys-log-size.warning = 128
        sys-log-size.error = 0

        # Filesystem usage in %
        sys-fs.gray = 80
        sys-fs.warning = 80
        sys-fs.error = 95

        # CPU utilization caused by the JVM in %
        jvm-cpu.gray = 10
        jvm-cpu.warning = 80
        jvm-cpu.error = 0

        # Heap usage in %
        jvm-heap.gray = 50
        jvm-heap.warning = 75
        jvm-heap.error = 0

        # Old gen usage in %
        jvm-old-heap.gray = 50
        jvm-old-heap.warning = 75
        jvm-old-heap.error = 0

        # Number of garbage collections performed
        jvm-gc.gray = 25
        jvm-gc.warning = 100
        jvm-gc.error = 0

        # Number of tasks / events processed by the system
        sys-interactions.gray = 250
        sys-interactions.warning = 0
        sys-interactions.error = 0

        # Number of tasks / events processed by the system
        sys-interactions.gray = 250
        sys-interactions.warning = 0
        sys-interactions.error = 0

        # Number of active operations
        active-operations.gray = 0

        # Number of (probably) hanging operations
        hanging-operations.gray = 0
        hanging-operations.warning = 1
        hanging-operations.error = 2

        # Number of tasks being put into the delay line
        delay-line-tasks.gray = 10
        delay-line-tasks.warning = 0
        delay-line-tasks.error = 0

        # Number of tasks currently in the delay line
        delay-line-length.gray = 0
        delay-line-length.warning = 100
        delay-line-length.error = 0
    }

}

# Contains settings which determines which docker-compose file to start
docker {
    # Contains the name of the docker-compose file to use...
    file = ""
    file = ${?SIRIUS_DOCKER_FILE}

    # Determines if docker-compose pull should be executed for each start...
    pull = false

    # Contains the number of retries when talking to docker-compose
    retryAttempts = 2

    # Contains the project name to use (empty = random name)
    project = ""
    project = ${?SIRIUS_DOCKER_PROJECT}

    # Can be used to supply a custom host IP. This might be useful
    # when the environment is composed within a container (e.g. on a build system).
    #
    hostIp = ""
    hostIp = ${?SIRIUS_DOCKER_HOST}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy