Skip to content

Latest commit

 

History

History
133 lines (121 loc) · 12.5 KB

CONFIG-PROPERTIES.md

File metadata and controls

133 lines (121 loc) · 12.5 KB

EVE Runtime Configuration Properties

Name Type Default Description
app.allow.vnc boolean false (only local access) allow access to EVE's VNC ports from external IPs
app.fml.resolution string notset Set system-wide value of forced resolution for applications running in FML mode, it can be one of predefined FmlResolution* values.
timer.config.interval integer in seconds 60 how frequently device gets config
timer.cert.interval integer in seconds 1 day (24*3600) how frequently device checks for new controller certificates
timer.metric.interval integer in seconds 60 how frequently device reports metrics
timer.metric.diskscan.interval integer in seconds 300 how frequently device should scan the disk for metrics
timer.location.cloud.interval integer in seconds 1 hour how frequently device reports geographic location information to controller
timer.location.app.interval integer in seconds 20 how frequently device reports geographic location information to applications (to local profile server and to other apps via meta-data server)
timer.ntpsources.interval integer in seconds 10 minutes how frequently device forcibly reports information about NTP sources to which EVE has established a connection for the NTP synchronization. Requests are also sent to the controller if the list of NTP peers or NTP peer fields, such as mode, state, have changed.
timer.send.timeout timer in seconds 120 time for each http/send
timer.dial.timeout timer in seconds 10 maximum time allowed to establish connection
timer.reboot.no.network integer in seconds 7 days reboot after no cloud connectivity
timer.update.fallback.no.network integer in seconds 300 fallback after no cloud connectivity
timer.test.baseimage.update integer in seconds 600 commit to update
timer.gc.vdisk integer in seconds 1 hour garbage collect unused instance virtual disk
timer.defer.content.delete integer in seconds zero if set, keep content trees around for reuse after they have been deleted
timer.download.retry integer in seconds 600 retry a failed download
timer.download.stalled integer in seconds 600 cancel a stalled download
timer.boot.retry integer in seconds 600 retry a failed domain boot
timer.port.georedo integer in seconds 1 hour redo IP geolocation
timer.port.georetry integer in seconds 600 retry geolocation after failure
timer.port.testduration integer in seconds 30 wait for DHCP to give address
timer.port.testinterval timer in seconds 300 retest the current port config
timer.port.timeout timer in seconds 15 time for each http/send
timer.port.testbetterinterval timer in seconds 600 test a higher prio port config
network.fallback.any.eth "enabled" or "disabled" disabled (enabled forcefully during onboarding if no network config) if no connectivity try any Ethernet, WiFi, or LTE with DHCP client
network.download.max.cost 0-255 0 max port cost for download to avoid e.g., LTE ports
blob.download.max.retries 1-10 5 max download retries when image verification fails.
debug.enable.usb boolean false allow USB e.g. keyboards on device
debug.enable.vga boolean false allow VGA console on device
debug.enable.ssh authorized ssh key empty string(ssh disabled) allow ssh to EVE
debug.enable.console boolean false allow console access to EVE (reboot required to disable)
debug.enable.vnc.shim.vm boolean false allow VNC access to the container application shim VM (reboot required to disable)
storage.dom0.disk.minusage.percent integer percent 20 min. percent of persist partition reserved for dom0
storage.zfs.reserved.percent integer percent 20 min. percent of persist partition reserved for zfs performance
storage.apps.ignore.disk.check boolean false Ignore disk usage check for Apps. Allows apps to create images bigger than available disk
timer.appcontainer.stats.interval integer in seconds 300 collect application container stats
timer.vault.ready.cutoff integer in seconds 300 reboot after inaccessible vault
maintenance.mode "enabled" or "disabled" "none" don't run applications etc
force.fallback.counter integer 0 forces fallback to other image if counter is changed
newlog.allow.fastupload boolean false allow faster upload gzip logfiles to controller
memory.apps.ignore.check boolean false Ignore memory usage check for Apps
memory.vmm.limit.MiB integer 0 Manually override how much overhead is allocated for each running VMM
gogc.memory.limit.bytes integer 0 Golang runtime soft memory limit, see details in API doc ["https://pkg.go.dev/runtime/debug#SetMemoryLimit"]
gogc.percent integer 100 Golang runtime garbage collector target percentage, see details in API doc ["https://pkg.go.dev/runtime/debug#SetGCPercent"]
gogc.forced.interval.seconds integer in seconds 10 minimum interval of forced execution of the GC. Forced GC is disabled when interval is set to 0
gogc.forced.growth.memory.MiB integer in Mbytes 50 minimum allocated memory in MiB required for the next GC execution
gogc.forced.growth.memory.percent integer 20 minimum allocated memory percentage from last reclaim required for the next GC execution
newlog.gzipfiles.ondisk.maxmegabytes integer in Mbytes 2048 the quota for keepig newlog gzip files on device
process.cloud-init.multipart boolean false help VMs which do not handle mime multi-part themselves
netdump.enable boolean true enable publishing of network diagnostics (as tgz archives to /persist/netdump)
netdump.topic.preonboard.interval integer in seconds 1 hour how frequently (in seconds) can be netdumps of the same topic published while device is not yet onboarded
netdump.topic.postonboard.interval integer in seconds 1 day how frequently (in seconds) can be netdumps of the same topic published after device has been onboarded
netdump.topic.maxcount integer 10 maximum number of netdumps that can be published for each topic. The oldest netdump is unpublished should a new netdump exceed the limit.
netdump.downloader.with.pcap boolean false include packet captures inside netdumps for download requests. However, even if enabled, TCP segments carrying non-empty payload (i.e. content which is being downloaded) are excluded and the overall PCAP size is limited to 64MB.
netdump.downloader.http.with.fieldvalue boolean false include HTTP header field values in captured network traces for download requests (beware: may contain secrets, such as datastore credentials).
network.switch.enable.arpsnoop boolean true enable ARP Snooping on switch Network Instances
wwan.query.visible.providers bool false enable to periodically (once per hour) query the set of visible cellular service providers and publish them under WirelessStatus (for every modem)
network.local.legacy.mac.address bool false enables legacy MAC address generation for local network instances for those EVE nodes where changing MAC addresses in applications will lead to incorrect network configuration
goroutine.leak.detection.threshold integer 5000 Amount of goroutines, reaching which will trigger leak detection regardless of growth rate.
goroutine.leak.detection.check.interval.minutes integer (minutes) 1 Interval in minutes between the measurements of the goroutine count.
goroutine.leak.detection.check.window.minutes integer (minutes) 10 Interval in minutes for which the leak analysis is performed. It should contain at least 10 measurements, so no less than 10 × goroutine.leak.detection.check.interval.minutes.
goroutine.leak.detection.keep.stats.hours integer (hours) 24 Amount of hours to keep the stats for leak detection. We keep more stats than the check window to be able to react to settings with a bigger check window via configuration.
goroutine.leak.detection.cooldown.minutes integer (minutes) 5 Cooldown period in minutes after the leak detection is triggered. During this period, no stack traces are collected; only warning messages are logged.
kubevirt.drain.timeout integer 24 hours to allow kubernetes to drain a node

Log levels

Log level can be set for three different components of EVE: EVE microservices, syslog, and kernel. The log levels set this way are used to control the verbosity of the logs produced by the corresponding components. All logs produced this way will be saved locally in /persist/newlog/keepSentQueue/ directory and will be subject to rotation based on the max total size of stored logs.

Due to implementation specifics, there are two different sets of log levels that can be set: logrus and syslog levels. Logrus levels are used by the EVE microservices, while syslog levels are used by syslog and kernel.

Additionally all log levels can be set to "none" to disable logging for the corresponding component or to "all" to enable all log levels.

Furthermore, the "remote" log levels control which subset of the generated logs are sent to the controller. A corresponding "remote" log level can be set for each of the three components: EVE microservices, syslog, and kernel.

Name Type Default Description
debug.default.loglevel string debug default level of logs produced by EVE microservices. Can be overwritten by agent.agentname.debug.loglevel. Uses logrus log levels as described here ["https://pkg.go.dev/github.com/sirupsen/logrus"]: panic, fatal, error, warning, info, debug and trace.
debug.default.remote.loglevel string warning default level of logs sent by EVE microservices to the controller. Can be overwritten by agent.agentname.debug.remote.loglevel. Uses logrus log levels as described here ["https://pkg.go.dev/github.com/sirupsen/logrus"]: panic, fatal, error, warning, info, debug and trace.
debug.syslog.loglevel string info level of the produced syslog messages. System default loglevel string representation should be used as described here ["https://man7.org/linux/man-pages/man3/syslog.3.html"]: emerg, alert, crit, err, warning, notice, info, debug.
debug.syslog.remote.loglevel string info level of the syslog messages sent to the controller. System default loglevel string representation should be used as described here ["https://man7.org/linux/man-pages/man3/syslog.3.html"]: emerg, alert, crit, err, warning, notice, info, debug.
debug.kernel.loglevel string info level of the produced kernel log messages. System default loglevel string representation should be used as described here ["https://man7.org/linux/man-pages/man3/syslog.3.html"]: emerg, alert, crit, err, warning, notice, info, debug.
debug.kernel.remote.loglevel string info level of the kernel log messages sent to the controller. System default loglevel string representation should be used as described here ["https://man7.org/linux/man-pages/man3/syslog.3.html"]: emerg, alert, crit, err, warning, notice, info, debug.

In addition, there can be per-agent settings to overwrite the default log level set for EVE microservices. These use the same log levels as the default log level settings (logrus). The per-agent settings begin with "agent.agentname.setting":

Name Type Description
agent.agentname.debug.loglevel string if set overrides debug.default.loglevel for this particular agent
agent.agentname.debug.remote.loglevel string if set overrides debug.default.remote.loglevel for this particular agent

Right now the following agents support per-agent log level settings:

  • newlogd
  • wwan
  • nodeagent
  • downloader
  • tpmmgr
  • client
  • vcomlink
  • executor
  • vaultmgr
  • baseosmgr
  • zedagent
  • verifier
  • wstunnelclient
  • zfsmanager
  • zedkube
  • ledmanager
  • faultinjection
  • zedmanager
  • nim
  • loguploader
  • watcher
  • volumemgr
  • zedrouter
  • msrv
  • domainmgr
  • diag