Skip to content

Commit 454edaf

Browse files
committed
docs: exact Scaphandre-as-a-service steps for Windows CPU power
1 parent f5b8070 commit 454edaf

1 file changed

Lines changed: 35 additions & 8 deletions

File tree

docs/guides/16-privileged-windows.md

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,41 @@ which installs the signed Hubblo RAPL driver and runs as a Windows service.
4141

4242
Set it up once:
4343

44-
1. Download **Scaphandre ≥ 1.0.0** for Windows (its installer bundles the Hubblo
45-
RAPL driver — Intel and AMD since Ryzen).
46-
2. Run the Prometheus exporter, e.g. `scaphandre prometheus` (default
47-
`http://127.0.0.1:8080/metrics`), ideally as a service so it starts at boot.
48-
49-
Heimdall scrapes that endpoint and reports the summed per-socket power
50-
(`scaph_socket_power_microwatts`) as `power.cpu` — pure Go, no cgo. If Scaphandre
51-
listens elsewhere, point Heimdall at it with `HEIMDALL_SCAPHANDRE_URL`.
44+
1. **(only if the driver won't load — dev/unsigned builds)** enable test-signing
45+
as administrator, then **reboot**:
46+
47+
```
48+
bcdedit.exe -set TESTSIGNING ON
49+
bcdedit.exe -set nointegritychecks on
50+
```
51+
52+
The tell is `Failed to open device : HANDLE(-1)` from `scaphandre stdout`.
53+
54+
2. Download the latest **Scaphandre** Windows `.exe` installer (≥ 1.0.0) and run
55+
it **as administrator** — it installs the Hubblo RAPL driver (Intel and AMD
56+
since Ryzen).
57+
58+
3. Register it as a service running the **`prometheus`** exporter (the *pull*
59+
exporter that listens locally — **not** `prometheus-push`, which pushes to a
60+
remote gateway):
61+
62+
```
63+
sc.exe create Scaphandre binPath="C:\Program Files (x86)\scaphandre\scaphandre.exe prometheus -a 127.0.0.1 -p 8080" DisplayName=Scaphandre start=auto
64+
sc.exe start Scaphandre
65+
```
66+
67+
4. Verify:
68+
69+
```
70+
driverquery /v | findstr capha
71+
& 'C:\Program Files (x86)\scaphandre\scaphandre.exe' stdout
72+
powershell -Command "(Invoke-WebRequest http://127.0.0.1:8080/metrics).Content | Select-String scaph_socket_power"
73+
```
74+
75+
Heimdall scrapes `http://127.0.0.1:8080/metrics` and reports the summed per-socket
76+
power (`scaph_socket_power_microwatts`) as `power.cpu` — pure Go, no cgo. If
77+
Scaphandre listens elsewhere, point Heimdall at it with `HEIMDALL_SCAPHANDRE_URL`;
78+
restart `heimdall-daemon` once Scaphandre is up.
5279

5380
When Scaphandre isn't reachable, `power.cpu` reads `unavailable` with
5481
`no RAPL on Windows — run Scaphandre for CPU power` rather than failing.

0 commit comments

Comments
 (0)