Skip to content

Commit 04dd719

Browse files
authored
Merge pull request #3 from green-coding-solutions/ribalba-patch-1
Update document title with usage scenario variable
2 parents bd7cace + 35ea969 commit 04dd719

File tree

1 file changed

+46
-51
lines changed

1 file changed

+46
-51
lines changed

js/details.js

Lines changed: 46 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,67 @@
11
"use strict";
22

33
(async () => {
4+
const url_params = getURLParams()
45

5-
const url_params = getURLParams()
6+
let normalized_url;
7+
try {
8+
normalized_url = normalizeUrl(url_params?.page);
9+
} catch (error) {
10+
alert('URL is invalid. Please enter a valid URL.')
11+
return;
12+
}
613

7-
let normalized_url;
8-
try {
9-
normalized_url = normalizeUrl(url_params?.page);
10-
} catch (error) {
11-
alert('URL is invalid. Please enter a valid URL.')
12-
return;
13-
}
14+
// first we check if we already have a run in the last 30 days for this
15+
const last_run = await fetchData(1, normalized_url);
16+
if (last_run == null) {
17+
alert('A run for this URL does not exist. Did you follow a correct link?');
18+
return
19+
}
1420

15-
// first we check if we already have a run in the last 30 days for this
16-
const last_run = await fetchData(1, normalized_url);
17-
if (last_run == null) {
18-
alert('A run for this URL does not exist. Did you follow a correct link?');
19-
return
20-
}
21+
const uuid = last_run[0][0];
22+
const usage_scenario_variables = last_run[0][7];
23+
const last_run_date = new Date(last_run[0][4]);
24+
let usage_scenario_variables_json = Object.entries(usage_scenario_variables).map(([k, v]) => typeof(v) == 'number' ? `"${k}": ${v}` : `"${k}": ${JSON.stringify(v)}`).join(', ')
25+
usage_scenario_variables_json = `{${usage_scenario_variables_json}}`
2126

22-
const uuid = last_run[0][0];
23-
const usage_scenario_variables = last_run[0][7];
24-
const last_run_date = new Date(last_run[0][4]);
25-
let usage_scenario_variables_json = Object.entries(usage_scenario_variables).map(([k, v]) => typeof(v) == 'number' ? `"${k}": ${v}` : `"${k}": ${JSON.stringify(v)}`).join(', ')
26-
usage_scenario_variables_json = `{${usage_scenario_variables_json}}`
2727

28+
const phase_stats = await fetch(`https://api.green-coding.io/v1/phase_stats/single/${uuid}`).then(response => response.json())
2829

29-
const phase_stats = await fetch(`https://api.green-coding.io/v1/phase_stats/single/${uuid}`).then(response => response.json())
30+
const data = phase_stats.data;
3031

31-
const data = phase_stats.data;
32+
const cpu_energy_uJ = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['cpu_energy_rapl_msr_component']?.['data']?.['Package_0']?.['data']?.[uuid]?.['mean'];
33+
const cpu_energy_mWh = cpu_energy_uJ/3600/1000;
34+
const cpu_energy_10k_kWh = 10*cpu_energy_mWh/1000;
3235

33-
const cpu_energy_uJ = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['cpu_energy_rapl_msr_component']?.['data']?.['Package_0']?.['data']?.[uuid]?.['mean'];
34-
const cpu_energy_mWh = cpu_energy_uJ/3600/1000;
35-
const cpu_energy_10k_kWh = 10*cpu_energy_mWh/1000;
36+
const cpu_power_mW = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['cpu_power_rapl_msr_component']?.['data']?.['Package_0']?.['data']?.[uuid]?.['mean'];
37+
const cpu_power_W = cpu_power_mW / 1_000;
3638

37-
const cpu_power_mW = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['cpu_power_rapl_msr_component']?.['data']?.['Package_0']?.['data']?.[uuid]?.['mean'];
38-
const cpu_power_W = cpu_power_mW / 1_000;
39+
const total_duration_us = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['phase_time_syscall_system']?.['data']?.['[SYSTEM]']?.['data']?.[uuid]?.['mean'];
40+
const total_duration_s = total_duration_us/1e6;
3941

40-
const total_duration_us = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['phase_time_syscall_system']?.['data']?.['[SYSTEM]']?.['data']?.[uuid]?.['mean'];
41-
const total_duration_s = total_duration_us/1e6;
42+
const network_transfer_bytes = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['network_total_cgroup_container']?.['data']?.['gmt-playwright-nodejs']?.['data']?.[uuid]?.['mean'];
43+
const network_transfer_kb = network_transfer_bytes/1000;
4244

43-
const network_transfer_bytes = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['network_total_cgroup_container']?.['data']?.['gmt-playwright-nodejs']?.['data']?.[uuid]?.['mean'];
44-
const network_transfer_kb = network_transfer_bytes/1000;
45+
const network_carbon_ug = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['network_carbon_formula_global']?.['data']?.['[FORMULA]']?.['data']?.[uuid]?.['mean'];
46+
const network_carbon_10k_kg = 10*12*network_carbon_ug/1e6
4547

46-
const network_carbon_ug = data?.['data']?.['Visit page and idle for 5 s']?.['data']?.['network_carbon_formula_global']?.['data']?.['[FORMULA]']?.['data']?.[uuid]?.['mean'];
47-
const network_carbon_10k_kg = 10*12*network_carbon_ug/1e6
48-
49-
const [render_energy_html, network_transfer_html] = getRatings(cpu_energy_mWh, network_transfer_kb);
50-
51-
52-
document.querySelector('#website-name').textContent = usage_scenario_variables['__GMT_VAR_PAGE__'];
53-
document.querySelector('#last-run-date').textContent = last_run_date;
54-
document.querySelector('#rendering-energy-label').innerHTML = render_energy_html;
55-
document.querySelector('#network-transfer-label').innerHTML = network_transfer_html;
56-
57-
document.querySelector('#rendering-power').textContent = `${cpu_power_W.toFixed(2)} W`;
58-
document.querySelector('#rendering-energy').textContent = `${(cpu_energy_mWh).toFixed(2)} mWh`;
59-
document.querySelector('#rendering-energy-10k').textContent = `${(cpu_energy_10k_kWh).toFixed(2)} kWh`;
60-
61-
document.querySelectorAll('.measurement-duration').forEach(el => el.textContent = `${(total_duration_s).toFixed(2)} s`); // in s
62-
document.querySelector('#network-transfer').textContent = `${network_transfer_kb.toFixed(2)} kB`;
63-
document.querySelector('#network-carbon-10k-year').textContent = `${(network_carbon_10k_kg).toFixed(2)} kg`;
64-
65-
document.querySelector('#measurement-details-link').href = `https://metrics.green-coding.io/stats.html?id=${uuid}`;
66-
document.querySelector('#timeline-link').href = `https://metrics.green-coding.io/timeline.html?uri=https%3A%2F%2Fgithub.com%2Fgreen-coding-solutions%2Fgreen-metrics-tool&branch=main&machine_id=6&filename=templates%2Fwebsite%2Fusage_scenario_cached.yml&usage_scenario_variables=${encodeURIComponent(usage_scenario_variables_json)}&metrics=key`;
48+
const [render_energy_html, network_transfer_html] = getRatings(cpu_energy_mWh, network_transfer_kb);
6749

50+
document.title = "webNRG - " + usage_scenario_variables['__GMT_VAR_PAGE__'];
51+
document.querySelector('#website-name').textContent = usage_scenario_variables['__GMT_VAR_PAGE__'];
52+
document.querySelector('#last-run-date').textContent = last_run_date;
53+
document.querySelector('#rendering-energy-label').innerHTML = render_energy_html;
54+
document.querySelector('#network-transfer-label').innerHTML = network_transfer_html;
6855

56+
document.querySelector('#rendering-power').textContent = `${cpu_power_W.toFixed(2)} W`;
57+
document.querySelector('#rendering-energy').textContent = `${(cpu_energy_mWh).toFixed(2)} mWh`;
58+
document.querySelector('#rendering-energy-10k').textContent = `${(cpu_energy_10k_kWh).toFixed(2)} kWh`;
6959

60+
document.querySelectorAll('.measurement-duration').forEach(el => el.textContent = `${(total_duration_s).toFixed(2)} s`); // in s
61+
document.querySelector('#network-transfer').textContent = `${network_transfer_kb.toFixed(2)} kB`;
62+
document.querySelector('#network-carbon-10k-year').textContent = `${(network_carbon_10k_kg).toFixed(2)} kg`;
7063

64+
document.querySelector('#measurement-details-link').href = `https://metrics.green-coding.io/stats.html?id=${uuid}`;
65+
document.querySelector('#timeline-link').href = `https://metrics.green-coding.io/timeline.html?uri=https%3A%2F%2Fgithub.com%2Fgreen-coding-solutions%2Fgreen-metrics-tool&branch=main&machine_id=6&filename=templates%2Fwebsite%2Fusage_scenario_cached.yml&usage_scenario_variables=${encodeURIComponent(usage_scenario_variables_json)}&metrics=key`;
7166

7267
})()

0 commit comments

Comments
 (0)