-
Notifications
You must be signed in to change notification settings - Fork 23
/
config.yml.example
224 lines (209 loc) · 9.55 KB
/
config.yml.example
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
postgresql:
host: green-coding-postgres-container
user: postgres
dbname: green-coding
password: PLEASE_CHANGE_THIS
port: 9573
redis:
host: green-coding-redis-container
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"
time_between_control_workload_validations: 21600
send_control_workload_status_mail: False
shutdown_on_job_no: 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
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:
system_check_threshold: 3 # Can be 1=INFO, 2=WARN or 3=ERROR
pre-test-sleep: 5
idle-duration: 5
baseline-duration: 5
post-test-sleep: 5
phase-transition-time: 1
boot:
wait_time_dependencies: 60
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:
resolution: 99
#--- CGroupV2 - Turn these on if you have CGroupsV2 working on your machine
cpu.utilization.cgroup.container.provider.CpuUtilizationCgroupContainerProvider:
resolution: 99
memory.used.cgroup.container.provider.MemoryUsedCgroupContainerProvider:
resolution: 99
network.io.cgroup.container.provider.NetworkIoCgroupContainerProvider:
resolution: 99
#--- RAPL - Only enable these if you have RAPL enabled on your machine
# cpu.energy.rapl.msr.component.provider.CpuEnergyRaplMsrComponentProvider:
# resolution: 99
# memory.energy.rapl.msr.component.provider.MemoryEnergyRaplMsrComponentProvider:
# resolution: 99
#--- Machine Energy - These providers need special hardware / lab equipment to work
# psu.energy.ac.gude.machine.provider.PsuEnergyAcGudeMachineProvider:
# resolution: 99
# psu.energy.ac.powerspy2.machine.provider.PsuEnergyAcPowerspy2MachineProvider:
# resolution: 250
# psu.energy.ac.mcp.machine.provider.PsuEnergyAcMcpMachineProvider:
# resolution: 99
# psu.energy.ac.ipmi.machine.provider.PsuEnergyAcIpmiMachineProvider:
# resolution: 99
# psu.energy.dc.rapl.msr.machine.provider.PsuEnergyDcRaplMsrMachineProvider:
# resolution: 99
#--- GPU - Only enable these if you have GPUs with power measurement enabled in your machine
# gpu.energy.nvidia.smi.component.provider.GpuEnergyNvidiaSmiComponentProvider:
# resolution: 99
#--- Sensors - these providers need the lm-sensors package installed
# lmsensors.temperature.component.provider.LmsensorsTemperatureComponentProvider:
# resolution: 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:
# resolution: 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.frequency.sysfs.core.provider.CpuFrequencySysfsCoreProvider:
# resolution: 99
# cpu.time.cgroup.container.provider.CpuTimeCgroupContainerProvider:
# resolution: 99
# cpu.time.cgroup.system.provider.CpuTimeCgroupSystemProvider:
# resolution: 99
# cpu.time.procfs.system.provider.CpuTimeProcfsSystemProvider:
# resolution: 99
# disk.io.procfs.system.provider.DiskIoProcfsSystemProvider:
# resolution: 99
# network.io.procfs.system.provider.NetworkIoProcfsSystemProvider:
# resolution: 99
# remove_virtual_interfaces: True
# disk.used.statvfs.system.provider.DiskUsedStatvfsSystemProvider:
# resolution: 99
# memory.used.procfs.system.provider.MemoryUsedProcfsSystemProvider:
# resolution: 99
#--- Architecture - MacOS
macos:
#--- MacOS: On Mac you only need this provider. Please remove all others!
powermetrics.provider.PowermetricsProvider:
resolution: 99
cpu.utilization.mach.system.provider.CpuUtilizationMachSystemProvider:
resolution: 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:
# resolution: 99
#-- This is a default configuration. Please change this to your system!
# CPUChips: 1
# TDP: 65
# psu.energy.ac.xgboost.machine.provider.PsuEnergyAcXgboostMachineProvider:
# resolution: 99
#-- 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
#--- 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/
# For fixed values get the number from https://ember-climate.org/insights/research/global-electricity-review-2023/
# The number 436 that comes as default is for Germany from 2022
I: 436
#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'