1- # Example Kepler configuration for "Prometheus-based node power input"
2- # Use this when an external system (e.g., PDU + exporter + recording rules)
3- # already provides a power metric (watts), and Kepler should attribute it to processes.
1+ # Example Kepler configuration for "Prometheus-based node power input".
2+ #
3+ # Use this when an external monitoring system (for example:
4+ # PDU + exporter + recording rules in Prometheus / VictoriaMetrics)
5+ # already provides a power metric in watts, and Kepler should
6+ # attribute that node-level power to processes.
7+ #
8+ # This example also demonstrates how to enable HTTPS / TLS and
9+ # Basic Authentication for the Kepler HTTP server via exporter-toolkit.
10+ #
11+ # Note:
12+ # - TLS and Basic Auth are configured via web.configFile
13+ # - The referenced web-config file is not part of this YAML and must be
14+ # created separately by the operator
15+ # - Replace the example baseURL and query with environment-specific values
416
517log :
6- level : info # debug, info, warn, error
7- format : text # text or json
18+ level : info
19+ format : text
820
921host :
1022 sysfs : /sys
1123 procfs : /proc
1224
1325monitor :
1426 interval : 5s
15- staleness : 30s # how long samples may be considered valid
27+ staleness : 30s
1628
1729exporter :
1830 prometheus :
@@ -25,8 +37,28 @@ exporter:
2537 # - pod
2638
2739web :
40+ # Kepler may listen on multiple addresses / ports.
41+ # In this example:
42+ # - 28282 can be used for plain HTTP if desired
43+ # - 28443 is intended for HTTPS when configured via web.configFile
2844 listenAddresses :
29- - :28282
45+ - 0.0.0.0:28282
46+ - :28443
47+
48+ # Path to the exporter-toolkit web configuration file.
49+ # This file can enable:
50+ # - TLS / HTTPS
51+ # - Basic Authentication
52+ #
53+ # Example contents:
54+ #
55+ # tls_server_config:
56+ # cert_file: /etc/kepler/tls/server.crt
57+ # key_file: /etc/kepler/tls/server.key
58+ #
59+ # basic_auth_users:
60+ # kepleruser: "<bcrypt-hash>"
61+ configFile : /etc/kepler/web-config.yml
3062
3163kube :
3264 enabled : false
3971
4072# Disable RAPL zones in this example, because node power comes from Prometheus.
4173rapl :
74+ enabled : false
4275 zones : []
4376
4477experimental :
45- # Prometheus/VictoriaMetrics based power input.
46- # Kepler queries an external Prometheus-compatible API endpoint for a single power time series (watts).
4778 prometheus-power :
4879 enabled : true
49- baseURL : http://<PROMETHEUS_OR_VICTORIAMETRICS_HOST>:8428
50- # The query must return exactly one time series (one sample).
51- # Example: device_power_watts_avg{rack="R3.033",device="kub01"}
52- query : <PROMQL_QUERY_RETURNING_SINGLE_WATTS_SERIES>
80+
81+ # Replace with your monitoring endpoint.
82+ #
83+ # Example:
84+ # https://monitoring.example.org:8428
85+ #
86+ # If authentication is required by the monitoring backend,
87+ # credentials must be provided according to the deployment model.
88+ # For local testing, credentials may be embedded in the URL,
89+ # but in production a more secure mechanism is recommended.
90+ baseURL : https://monitoring.example.org:8428
91+
92+ # Replace with an environment-specific query that returns
93+ # the node power in watts for the current machine / target.
94+ #
95+ # Example:
96+ # node_power_watts{instance="server01"}
97+ query : node_power_watts{instance="example-node"}
5398
5499 platform :
55100 redfish :
56101 enabled : false
57102
58103 hwmon :
59104 enabled : false
60-
105+
61106 gpu :
62107 enabled : false
0 commit comments