forked from green-coding-solutions/green-metrics-tool
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yml.example
More file actions
276 lines (259 loc) · 12.4 KB
/
Copy pathconfig.yml.example
File metadata and controls
276 lines (259 loc) · 12.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
postgresql:
host: green-coding-postgres-container
user: postgres
dbname: green-coding
password: PLEASE_CHANGE_THIS
port: 9573
retry_timeout: 300 # Total time to retry database connections on outage/failure (5 minutes)
redis:
host: green-coding-redis-container
port: 6379
smtp:
server: SMTP_SERVER
sender: SMTP_SENDER
port: SMTP_PORT
password: SMTP_AUTH_PW
user: SMTP_AUTH_USER
admin:
# This address will get an email, for notifications in the system like an added job through the interface
notification_email: False
# Takes a file path to log all the errors to it. This is disabled if False
error_file: False
# Sends an error notification also via email. This is disabled if False
error_email: False
# This email will always get a copy of email sent which is not already the receipient, even for user-only mails like the "Your report is ready" mail.
email_bcc: False
cluster:
api_url: __API_URL__
metrics_url: __METRICS_URL__
cors_allowed_origins:
- __API_URL__
- __METRICS_URL__
client:
sleep_time_no_job: 300
jobs_processing: "random"
shutdown_on_job_no: suspend
# These two parameters have only effect in cluster mode. When using CLI they will be set via flags --docker-prune and --full-docker-prune only
docker_prune: True
full_docker_prune: False
# define a workload to check cluster noise floor
time_between_control_workload_validations: 21600
send_control_workload_status_mail: False
control_workload:
name: "Measurement control Workload"
uri: "https://github.com/green-coding-solutions/measurement-control-workload"
filename: "usage_scenario.yml"
branch: "event-bound"
comparison_window: 5
phase: "004_[RUNTIME]"
metrics:
psu_energy_ac_mcp_machine:
threshold: 0.01 # 1%
type: stddev_rel
psu_power_ac_mcp_machine:
threshold: 0.01 # 1%
type: stddev_rel
cpu_power_rapl_msr_component:
threshold: 0.01 # 1%
type: stddev_rel
cpu_energy_rapl_msr_component:
threshold: 0.01 # 1%
type: stddev_rel
psu_carbon_ac_mcp_machine:
threshold: 0.01 # 1%
type: stddev_rel
network_total_cgroup_container:
threshold: 10000 # 10 kB
type: stddev
phase_time_syscall_system:
threshold: 0.01 # 1%
type: stddev_rel
machine:
id: 1
description: "Development machine for testing"
base_temperature_value: False
base_temperature_chip: False
base_temperature_feature: False
measurement:
full_docker_prune_whitelist:
- gcr.io/kaniko-project/executor
metric_providers:
# Please select the needed providers according to the working ones on your system
# More info https://docs.green-coding.io/docs/measuring/metric-providers
# Please activate and deactivate any provider in this list by uncommenting it.
# Keep in mind that some reporters need separate installation steps to be found @
# https://docs.green-coding.io/docs/installation/installation-overview/
# You can ignore any line that starts with #---
#--- Architecture - Linux Only
linux:
#--- Always-On - We recommend these providers to be always enabled
cpu.utilization.procfs.system.provider.CpuUtilizationProcfsSystemProvider:
sampling_rate: 99
#--- CGroupV2 - Turn these on if you have CGroupsV2 working on your machine
cpu.utilization.cgroup.container.provider.CpuUtilizationCgroupContainerProvider:
sampling_rate: 99
memory.used.cgroup.container.provider.MemoryUsedCgroupContainerProvider:
sampling_rate: 99
network.io.cgroup.container.provider.NetworkIoCgroupContainerProvider:
sampling_rate: 99
disk.io.cgroup.container.provider.DiskIoCgroupContainerProvider:
sampling_rate: 99
#--- RAPL - Only enable these if you have RAPL enabled on your machine
# cpu.energy.rapl.msr.component.provider.CpuEnergyRaplMsrComponentProvider:
# sampling_rate: 99
# memory.energy.rapl.msr.component.provider.MemoryEnergyRaplMsrComponentProvider:
# sampling_rate: 99
#--- Machine Energy - These providers need special hardware / lab equipment to work
# psu.energy.ac.gude.machine.provider.PsuEnergyAcGudeMachineProvider:
# sampling_rate: 99
# psu.energy.ac.powerspy2.machine.provider.PsuEnergyAcPowerspy2MachineProvider:
# sampling_rate: 250
# psu.energy.ac.mcp.machine.provider.PsuEnergyAcMcpMachineProvider:
# sampling_rate: 99
# psu.energy.ac.ipmi.machine.provider.PsuEnergyAcIpmiMachineProvider:
# sampling_rate: 99
# psu.energy.dc.rapl.msr.machine.provider.PsuEnergyDcRaplMsrMachineProvider:
# sampling_rate: 99
#--- GPU - Only enable these if you have GPUs with power measurement enabled in your machine
# gpu.energy.nvidia.nvml.component.provider.GpuEnergyNvidiaNvmlComponentProvider:
# sampling_rate: 99
#--- Sensors - these providers need the lm-sensors package installed
# lmsensors.temperature.component.provider.LmsensorsTemperatureComponentProvider:
# sampling_rate: 99
# Please change these values according to the names in '$ sensors'
# chips: ['thinkpad-isa-0000', 'coretemp-isa-0000']
# features: ['CPU', 'Package id 0', 'Core 0', 'Core 1', 'Core 2', 'Core 3']
# lmsensors.fan.component.provider.LmsensorsFanComponentProvider:
# sampling_rate: 99
# Please change these values according to the names in '$ sensors'
# chips: ['thinkpad-isa-0000']
# features: ['fan1', 'fan2']
#--- Debug - These providers should only be needed for debugging and introspection purposes
# cpu.throttling.msr.component.provider.CpuThrottlingMsrComponentProvider:
# sampling_rate: 99
# cpu.frequency.sysfs.core.provider.CpuFrequencySysfsCoreProvider:
# sampling_rate: 99
# cpu.time.cgroup.container.provider.CpuTimeCgroupContainerProvider:
# sampling_rate: 99
# cpu.time.cgroup.system.provider.CpuTimeCgroupSystemProvider:
# sampling_rate: 99
# cpu.time.procfs.system.provider.CpuTimeProcfsSystemProvider:
# sampling_rate: 99
# disk.io.procfs.system.provider.DiskIoProcfsSystemProvider:
# sampling_rate: 99
# network.io.procfs.system.provider.NetworkIoProcfsSystemProvider:
# sampling_rate: 99
# remove_virtual_interfaces: True
# disk.used.statvfs.system.provider.DiskUsedStatvfsSystemProvider:
# sampling_rate: 99
# memory.used.procfs.system.provider.MemoryUsedProcfsSystemProvider:
# sampling_rate: 99
#--- Cgroup system monitoring - These providers can be used to monitor background processes
# cpu.utilization.cgroup.system.provider.CpuUtilizationCgroupSystemProvider:
# sampling_rate: 99
# cgroups:
# "org.gnome.Shell@wayland.service":
# name: "Window Manager incl. X11"
# "session-2.scope":
# name: "GNOME Desktop"
# memory.used.cgroup.system.provider.MemoryUsedCgroupSystemProvider:
# sampling_rate: 99
# cgroups:
# "org.gnome.Shell@wayland.service":
# name: "Window Manager incl. X11"
# "session-2.scope":
# name: "GNOME Desktop"
# disk.io.cgroup.system.provider.DiskIoCgroupSystemProvider:
# sampling_rate: 99
# cgroups:
# "org.gnome.Shell@wayland.service":
# name: "Window Manager incl. X11"
# "session-2.scope":
# name: "GNOME Desktop"
# network.io.cgroup.system.provider.NetworkIoCgroupSystemProvider:
# sampling_rate: 99
# cgroups:
# "org.gnome.Shell@wayland.service":
# name: "Window Manager incl. X11"
# "session-2.scope":
# name: "GNOME Desktop"
#--- Architecture - MacOS
macos:
#--- MacOS: On Mac you only need this provider. Please remove all others!
powermetrics.provider.PowermetricsProvider:
sampling_rate: 499 # If you set this value too low powermetrics will not be able to accommodate the timing. We recommend no lower than 199 ms
cpu.utilization.mach.system.provider.CpuUtilizationMachSystemProvider:
sampling_rate: 99
#--- Architecture - Common
common:
# network.connections.proxy.container.provider.NetworkConnectionsProxyContainerProvider:
## host_ip: 192.168.1.2 # This only needs to be enabled if automatic detection fails
#--- Model based - These providers estimate rather than measure. Helpful where measuring is not possible, like in VMs
# psu.energy.ac.sdia.machine.provider.PsuEnergyAcSdiaMachineProvider:
#-- This is a default configuration. Please change this to your system!
# CPUChips: 1
# TDP: 65
# psu.energy.ac.xgboost.machine.provider.PsuEnergyAcXgboostMachineProvider:
#-- This is a default configuration. Please change this to your system!
# CPUChips: 1
# HW_CPUFreq: 3200
# CPUCores: 4
# CPUThreads: 4
# TDP: 65
######### The value for memory must be in GB not in GiB
# HW_MemAmountGB: 16
# Hardware_Availability_Year: 2011
######### vhost_ratio is the virtualization degree of the machine. For Bare Metal this is 1. For 1 out of 4 VMs this would be 0.25 etc.
# VHost_Ratio: 1
#
###### DEBUG
# network.connections.tcpdump.system.provider.NetworkConnectionsTcpdumpSystemProvider:
# split_ports: True
#--- END
sci:
# https://github.com/Green-Software-Foundation/sci/blob/main/Software_Carbon_Intensity/Software_Carbon_Intensity_Specification.md
# The values specific to the machine will be set here. The values that are specific to the
# software, like R (functional unit), will be set in the usage_scenario.yml
# EL Expected Lifespan; the anticipated time that the equipment will be installed. Value is in years
# The number 3.5 comes from a typical developer machine (Pro Laptop - https://dataviz.boavizta.org/terminalimpact)
EL: 4
# RS Resource-share; the share of the total available resources of the hardware reserved for use by the software.
# This ratio is typically 1 with the Green Metrics Tool unless you use a custom distributed orchestrator
RS: 1
# TE Total Embodied Emissions; the sum of Life Cycle Assessment (LCA) emissions for all hardware components.
# Value is in gCO2eq
# The value has to be identified from vendor datasheets. Here are some example sources:
# https://dataviz.boavizta.org/manufacturerdata
# https://tco.exploresurface.com/sustainability/calculator
# https://www.delltechnologies.com/asset/en-us/products/servers/technical-support/Full_LCA_Dell_R740.pdf
# The default is the value for a developer machine (Pro Laptop - https://dataviz.boavizta.org/terminalimpact)
TE: 181000
# I is the Carbon Intensity at the location of this machine
# The value can either be a number in gCO2e/kWh or a carbon intensity provider that fetches this number dynamically
# https://docs.green-coding.io/docs/measuring/carbon-intensity-providers/carbon-intensity-providers-overview/ (TODO)
# For fixed world-wide values get the number from https://ember-climate.org/insights/research/global-electricity-review-2025/
# The number worldwide for 2024 is 473
# The number 334 that comes as default is for Germany from 2024 and comes from https://app.electricitymaps.com/zone/DE/all/yearly
I: 334
# N is not technically part of the SCI, but we keep the value here for better clustering.
# N is the network energy intensity per transferred data. It transforms values like GB to kWh
# See https://www.green-coding.io/co2-formulas/ for details
N: 0.04106063
#optimization:
# ignore:
# - example_optimization_test
# In order to get the carbon intensity we use electricity maps which requires a token.
# You can get this under https://api-portal.electricitymaps.com/
# This is a free service please note that you need to pay if you want to use this commercially!
#electricity_maps_token: '123'
# Modules API / Frontend
# GMT can selectively activate some API and frontend components. This is asked in the install process and should NOT
# only be changed here as files in different locations are changed too. Please re-run the install process.
activate_scenario_runner: False
activate_eco_ci: False
activate_power_hog: False
activate_carbon_db: False
activate_ai: False
# GMT can activate additional enterprise only functionality
# If you have a subscription insert your token here
ee_token: False