Besides package manager dependencies and artifacts also runtime configurations may be relevant for the energy consumption of a system.
This issue is a epic for this topic. Other issues will be used to describe the collection of a specific runtime configuration type.
Brainstorming of potential relevant configurations:
Environment Variables
Memory/CPU limits - JAVA_OPTS, NODE_OPTIONS, GOMAXPROCS
Logging levels - LOG_LEVEL, DEBUG, PYTHONOPTIMIZE
Feature flags - ENABLE_CACHING, FEATURE_XYZ_ENABLED
Connection pools - DB_POOL_SIZE, MAX_CONNECTIONS
Worker processes - WEB_CONCURRENCY, WORKERS
APM settings - DATADOG_TRACE_SAMPLE_RATE, NEWRELIC_ENABLED
Runtime-relevant Settings from Configuration Files (Parsing Required)
Application configs - application.yml, config.json, settings.py
Runtime configs - jvm.options, gunicorn.conf.py
Web server configs - nginx.conf, apache2.conf
Database configs - postgresql.conf, my.cnf
Init system configs - systemd unit files, supervisord configs
Process management - Docker entrypoint scripts, startup scripts
System network configs - /etc/hosts, /etc/resolv.conf, /etc/nsswitch.conf
System resource configs - /etc/security/limits.conf, /etc/systemd/system.conf
Kernel tuning configs - /etc/sysctl.conf, /etc/sysctl.d/*
CPU/scheduling configs - /etc/default/grub, /sys/devices/system/cpu/ settings
Memory management configs - /proc/sys/vm/ tunables, swap configurations
I/O scheduler configs - /sys/block/*/queue/scheduler, I/O priority settings
Network stack configs - /etc/systemd/networkd.conf, TCP buffer settings
Logging system configs - /etc/rsyslog.conf, /etc/journald.conf
Time/locale configs - /etc/timezone, /etc/locale.conf (affects string operations)
Container Runtime Inspection
Resource limits - Memory limits, CPU quotas from container runtime
Security contexts - User namespaces, capabilities
Volume mounts - Tmpfs usage, bind mounts
Process/System Inspection (Runtime state)
Command line arguments - /proc/PID/cmdline
System limits - /proc/PID/limits
Active connections - netstat, /proc/net/
Thread counts - /proc/PID/task/
Application Sideloading Patterns (Static Code Analysis)
HTTP config clients - requests.get(), fetch(), HttpClient calls for runtime config
Remote config frameworks - Spring Cloud Config, Consul Template, etcd client usage
Dynamic library loading - dlopen(), LoadLibrary(), Python importlib for runtime libs
Plugin/extension loading - Runtime loading from /plugins/, /extensions/ directories
Package sideloading - Code downloading JARs, Python packages, Node modules at runtime
Feature flag clients - LaunchDarkly, Split.io, Flagsmith SDK usage
Service discovery clients - Consul, etcd, Kubernetes API calls for endpoint discovery
Besides package manager dependencies and artifacts also runtime configurations may be relevant for the energy consumption of a system.
This issue is a epic for this topic. Other issues will be used to describe the collection of a specific runtime configuration type.
Brainstorming of potential relevant configurations:
JAVA_OPTS,NODE_OPTIONS,GOMAXPROCSLOG_LEVEL,DEBUG,PYTHONOPTIMIZEENABLE_CACHING,FEATURE_XYZ_ENABLEDDB_POOL_SIZE,MAX_CONNECTIONSWEB_CONCURRENCY,WORKERSDATADOG_TRACE_SAMPLE_RATE,NEWRELIC_ENABLEDapplication.yml,config.json,settings.pyjvm.options,gunicorn.conf.pynginx.conf,apache2.confpostgresql.conf,my.cnf/etc/hosts,/etc/resolv.conf,/etc/nsswitch.conf/etc/security/limits.conf,/etc/systemd/system.conf/etc/sysctl.conf,/etc/sysctl.d/*/etc/default/grub,/sys/devices/system/cpu/settings/proc/sys/vm/tunables, swap configurations/sys/block/*/queue/scheduler, I/O priority settings/etc/systemd/networkd.conf, TCP buffer settings/etc/rsyslog.conf,/etc/journald.conf/etc/timezone,/etc/locale.conf(affects string operations)/proc/PID/cmdline/proc/PID/limitsnetstat,/proc/net//proc/PID/task/requests.get(),fetch(),HttpClientcalls for runtime configdlopen(),LoadLibrary(), Pythonimportlibfor runtime libs/plugins/,/extensions/directories