diff options
author | Ben Kochie <superq@gmail.com> | 2019-10-30 10:28:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-30 10:28:11 +0100 |
commit | f9d2bbe85476395c764188a445997960e4dae718 (patch) | |
tree | 7f02b72acdceb853d7b0c0d74d798041e15a5d03 | |
parent | d574b4b41b72966a2ace4d6d81195081dfca8301 (diff) | |
parent | d089776e8b81876610f3e07f068ab3fe769ef3b0 (diff) | |
download | prometheus_node_collector-f9d2bbe85476395c764188a445997960e4dae718.tar.bz2 prometheus_node_collector-f9d2bbe85476395c764188a445997960e4dae718.tar.xz prometheus_node_collector-f9d2bbe85476395c764188a445997960e4dae718.zip |
Merge pull request #1280 from shaardie/power_supply_class
Introduce Collector for Power Supply Class
-rw-r--r-- | collector/fixtures/e2e-64k-page-output.txt | 35 | ||||
-rw-r--r-- | collector/fixtures/e2e-output.txt | 35 | ||||
-rw-r--r-- | collector/fixtures/sys.ttar | 283 | ||||
-rw-r--r-- | collector/powersupplyclass.go | 194 |
4 files changed, 547 insertions, 0 deletions
diff --git a/collector/fixtures/e2e-64k-page-output.txt b/collector/fixtures/e2e-64k-page-output.txt index c7fe830..729deff 100644 --- a/collector/fixtures/e2e-64k-page-output.txt +++ b/collector/fixtures/e2e-64k-page-output.txt | |||
@@ -2393,6 +2393,40 @@ node_nfsd_server_rpcs_total 18628 | |||
2393 | # HELP node_nfsd_server_threads Total number of NFSd kernel threads that are running. | 2393 | # HELP node_nfsd_server_threads Total number of NFSd kernel threads that are running. |
2394 | # TYPE node_nfsd_server_threads gauge | 2394 | # TYPE node_nfsd_server_threads gauge |
2395 | node_nfsd_server_threads 8 | 2395 | node_nfsd_server_threads 8 |
2396 | # HELP node_power_supply_capacity capacity value of /sys/class/power_supply/<power_supply>. | ||
2397 | # TYPE node_power_supply_capacity gauge | ||
2398 | node_power_supply_capacity{power_supply="BAT0"} 81 | ||
2399 | # HELP node_power_supply_cyclecount cyclecount value of /sys/class/power_supply/<power_supply>. | ||
2400 | # TYPE node_power_supply_cyclecount gauge | ||
2401 | node_power_supply_cyclecount{power_supply="BAT0"} 0 | ||
2402 | # HELP node_power_supply_energy_full energy_full value of /sys/class/power_supply/<power_supply>. | ||
2403 | # TYPE node_power_supply_energy_full gauge | ||
2404 | node_power_supply_energy_full{power_supply="BAT0"} 4.507e+07 | ||
2405 | # HELP node_power_supply_energy_full_design energy_full_design value of /sys/class/power_supply/<power_supply>. | ||
2406 | # TYPE node_power_supply_energy_full_design gauge | ||
2407 | node_power_supply_energy_full_design{power_supply="BAT0"} 4.752e+07 | ||
2408 | # HELP node_power_supply_energy_now energy_now value of /sys/class/power_supply/<power_supply>. | ||
2409 | # TYPE node_power_supply_energy_now gauge | ||
2410 | node_power_supply_energy_now{power_supply="BAT0"} 3.658e+07 | ||
2411 | # HELP node_power_supply_info info of /sys/class/power_supply/<power_supply>. | ||
2412 | # TYPE node_power_supply_info gauge | ||
2413 | node_power_supply_info{power_supply="AC",type="Mains"} 1 | ||
2414 | node_power_supply_info{capacity_level="Normal",manufacturer="LGC",model_name="LNV-45N1",power_supply="BAT0",serial_number="38109",status="Discharging",technology="Li-ion",type="Battery"} 1 | ||
2415 | # HELP node_power_supply_online online value of /sys/class/power_supply/<power_supply>. | ||
2416 | # TYPE node_power_supply_online gauge | ||
2417 | node_power_supply_online{power_supply="AC"} 0 | ||
2418 | # HELP node_power_supply_power_now power_now value of /sys/class/power_supply/<power_supply>. | ||
2419 | # TYPE node_power_supply_power_now gauge | ||
2420 | node_power_supply_power_now{power_supply="BAT0"} 5.002e+06 | ||
2421 | # HELP node_power_supply_present present value of /sys/class/power_supply/<power_supply>. | ||
2422 | # TYPE node_power_supply_present gauge | ||
2423 | node_power_supply_present{power_supply="BAT0"} 1 | ||
2424 | # HELP node_power_supply_voltage_min_design voltage_min_design value of /sys/class/power_supply/<power_supply>. | ||
2425 | # TYPE node_power_supply_voltage_min_design gauge | ||
2426 | node_power_supply_voltage_min_design{power_supply="BAT0"} 1.08e+07 | ||
2427 | # HELP node_power_supply_voltage_now voltage_now value of /sys/class/power_supply/<power_supply>. | ||
2428 | # TYPE node_power_supply_voltage_now gauge | ||
2429 | node_power_supply_voltage_now{power_supply="BAT0"} 1.166e+07 | ||
2396 | # HELP node_pressure_cpu_waiting_seconds_total Total time in seconds that processes have waited for CPU time | 2430 | # HELP node_pressure_cpu_waiting_seconds_total Total time in seconds that processes have waited for CPU time |
2397 | # TYPE node_pressure_cpu_waiting_seconds_total counter | 2431 | # TYPE node_pressure_cpu_waiting_seconds_total counter |
2398 | node_pressure_cpu_waiting_seconds_total 14.036781000000001 | 2432 | node_pressure_cpu_waiting_seconds_total 14.036781000000001 |
@@ -2492,6 +2526,7 @@ node_scrape_collector_success{collector="netdev"} 1 | |||
2492 | node_scrape_collector_success{collector="netstat"} 1 | 2526 | node_scrape_collector_success{collector="netstat"} 1 |
2493 | node_scrape_collector_success{collector="nfs"} 1 | 2527 | node_scrape_collector_success{collector="nfs"} 1 |
2494 | node_scrape_collector_success{collector="nfsd"} 1 | 2528 | node_scrape_collector_success{collector="nfsd"} 1 |
2529 | node_scrape_collector_success{collector="powersupplyclass"} 1 | ||
2495 | node_scrape_collector_success{collector="pressure"} 1 | 2530 | node_scrape_collector_success{collector="pressure"} 1 |
2496 | node_scrape_collector_success{collector="processes"} 1 | 2531 | node_scrape_collector_success{collector="processes"} 1 |
2497 | node_scrape_collector_success{collector="qdisc"} 1 | 2532 | node_scrape_collector_success{collector="qdisc"} 1 |
diff --git a/collector/fixtures/e2e-output.txt b/collector/fixtures/e2e-output.txt index a10db8a..41129c4 100644 --- a/collector/fixtures/e2e-output.txt +++ b/collector/fixtures/e2e-output.txt | |||
@@ -2393,6 +2393,40 @@ node_nfsd_server_rpcs_total 18628 | |||
2393 | # HELP node_nfsd_server_threads Total number of NFSd kernel threads that are running. | 2393 | # HELP node_nfsd_server_threads Total number of NFSd kernel threads that are running. |
2394 | # TYPE node_nfsd_server_threads gauge | 2394 | # TYPE node_nfsd_server_threads gauge |
2395 | node_nfsd_server_threads 8 | 2395 | node_nfsd_server_threads 8 |
2396 | # HELP node_power_supply_capacity capacity value of /sys/class/power_supply/<power_supply>. | ||
2397 | # TYPE node_power_supply_capacity gauge | ||
2398 | node_power_supply_capacity{power_supply="BAT0"} 81 | ||
2399 | # HELP node_power_supply_cyclecount cyclecount value of /sys/class/power_supply/<power_supply>. | ||
2400 | # TYPE node_power_supply_cyclecount gauge | ||
2401 | node_power_supply_cyclecount{power_supply="BAT0"} 0 | ||
2402 | # HELP node_power_supply_energy_full energy_full value of /sys/class/power_supply/<power_supply>. | ||
2403 | # TYPE node_power_supply_energy_full gauge | ||
2404 | node_power_supply_energy_full{power_supply="BAT0"} 45.07 | ||
2405 | # HELP node_power_supply_energy_full_design energy_full_design value of /sys/class/power_supply/<power_supply>. | ||
2406 | # TYPE node_power_supply_energy_full_design gauge | ||
2407 | node_power_supply_energy_full_design{power_supply="BAT0"} 47.52 | ||
2408 | # HELP node_power_supply_energy_watthour energy_watthour value of /sys/class/power_supply/<power_supply>. | ||
2409 | # TYPE node_power_supply_energy_watthour gauge | ||
2410 | node_power_supply_energy_watthour{power_supply="BAT0"} 36.58 | ||
2411 | # HELP node_power_supply_info info of /sys/class/power_supply/<power_supply>. | ||
2412 | # TYPE node_power_supply_info gauge | ||
2413 | node_power_supply_info{power_supply="AC",type="Mains"} 1 | ||
2414 | node_power_supply_info{capacity_level="Normal",manufacturer="LGC",model_name="LNV-45N1",power_supply="BAT0",serial_number="38109",status="Discharging",technology="Li-ion",type="Battery"} 1 | ||
2415 | # HELP node_power_supply_online online value of /sys/class/power_supply/<power_supply>. | ||
2416 | # TYPE node_power_supply_online gauge | ||
2417 | node_power_supply_online{power_supply="AC"} 0 | ||
2418 | # HELP node_power_supply_power_watt power_watt value of /sys/class/power_supply/<power_supply>. | ||
2419 | # TYPE node_power_supply_power_watt gauge | ||
2420 | node_power_supply_power_watt{power_supply="BAT0"} 5.002 | ||
2421 | # HELP node_power_supply_present present value of /sys/class/power_supply/<power_supply>. | ||
2422 | # TYPE node_power_supply_present gauge | ||
2423 | node_power_supply_present{power_supply="BAT0"} 1 | ||
2424 | # HELP node_power_supply_voltage_min_design voltage_min_design value of /sys/class/power_supply/<power_supply>. | ||
2425 | # TYPE node_power_supply_voltage_min_design gauge | ||
2426 | node_power_supply_voltage_min_design{power_supply="BAT0"} 10.8 | ||
2427 | # HELP node_power_supply_voltage_volt voltage_volt value of /sys/class/power_supply/<power_supply>. | ||
2428 | # TYPE node_power_supply_voltage_volt gauge | ||
2429 | node_power_supply_voltage_volt{power_supply="BAT0"} 11.66 | ||
2396 | # HELP node_pressure_cpu_waiting_seconds_total Total time in seconds that processes have waited for CPU time | 2430 | # HELP node_pressure_cpu_waiting_seconds_total Total time in seconds that processes have waited for CPU time |
2397 | # TYPE node_pressure_cpu_waiting_seconds_total counter | 2431 | # TYPE node_pressure_cpu_waiting_seconds_total counter |
2398 | node_pressure_cpu_waiting_seconds_total 14.036781000000001 | 2432 | node_pressure_cpu_waiting_seconds_total 14.036781000000001 |
@@ -2492,6 +2526,7 @@ node_scrape_collector_success{collector="netdev"} 1 | |||
2492 | node_scrape_collector_success{collector="netstat"} 1 | 2526 | node_scrape_collector_success{collector="netstat"} 1 |
2493 | node_scrape_collector_success{collector="nfs"} 1 | 2527 | node_scrape_collector_success{collector="nfs"} 1 |
2494 | node_scrape_collector_success{collector="nfsd"} 1 | 2528 | node_scrape_collector_success{collector="nfsd"} 1 |
2529 | node_scrape_collector_success{collector="powersupplyclass"} 1 | ||
2495 | node_scrape_collector_success{collector="pressure"} 1 | 2530 | node_scrape_collector_success{collector="pressure"} 1 |
2496 | node_scrape_collector_success{collector="processes"} 1 | 2531 | node_scrape_collector_success{collector="processes"} 1 |
2497 | node_scrape_collector_success{collector="qdisc"} 1 | 2532 | node_scrape_collector_success{collector="qdisc"} 1 |
diff --git a/collector/fixtures/sys.ttar b/collector/fixtures/sys.ttar index 8502ec6..27aa0a7 100644 --- a/collector/fixtures/sys.ttar +++ b/collector/fixtures/sys.ttar | |||
@@ -995,6 +995,289 @@ Lines: 1 | |||
995 | 1 | 995 | 1 |
996 | Mode: 644 | 996 | Mode: 644 |
997 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 997 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
998 | Directory: sys/class/power_supply | ||
999 | Mode: 755 | ||
1000 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1001 | Directory: sys/class/power_supply/AC | ||
1002 | Mode: 755 | ||
1003 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1004 | Path: sys/class/power_supply/AC/online | ||
1005 | Lines: 1 | ||
1006 | 0 | ||
1007 | Mode: 444 | ||
1008 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1009 | Directory: sys/class/power_supply/AC/power | ||
1010 | Mode: 755 | ||
1011 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1012 | Path: sys/class/power_supply/AC/power/async | ||
1013 | Lines: 1 | ||
1014 | disabled | ||
1015 | Mode: 644 | ||
1016 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1017 | Path: sys/class/power_supply/AC/power/autosuspend_delay_ms | ||
1018 | Lines: 0 | ||
1019 | Mode: 644 | ||
1020 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1021 | Path: sys/class/power_supply/AC/power/control | ||
1022 | Lines: 1 | ||
1023 | auto | ||
1024 | Mode: 644 | ||
1025 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1026 | Path: sys/class/power_supply/AC/power/runtime_active_kids | ||
1027 | Lines: 1 | ||
1028 | 0 | ||
1029 | Mode: 444 | ||
1030 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1031 | Path: sys/class/power_supply/AC/power/runtime_active_time | ||
1032 | Lines: 1 | ||
1033 | 0 | ||
1034 | Mode: 444 | ||
1035 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1036 | Path: sys/class/power_supply/AC/power/runtime_enabled | ||
1037 | Lines: 1 | ||
1038 | disabled | ||
1039 | Mode: 444 | ||
1040 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1041 | Path: sys/class/power_supply/AC/power/runtime_status | ||
1042 | Lines: 1 | ||
1043 | unsupported | ||
1044 | Mode: 444 | ||
1045 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1046 | Path: sys/class/power_supply/AC/power/runtime_suspended_time | ||
1047 | Lines: 1 | ||
1048 | 0 | ||
1049 | Mode: 444 | ||
1050 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1051 | Path: sys/class/power_supply/AC/power/runtime_usage | ||
1052 | Lines: 1 | ||
1053 | 0 | ||
1054 | Mode: 444 | ||
1055 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1056 | Path: sys/class/power_supply/AC/power/wakeup | ||
1057 | Lines: 1 | ||
1058 | enabled | ||
1059 | Mode: 644 | ||
1060 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1061 | Path: sys/class/power_supply/AC/power/wakeup_abort_count | ||
1062 | Lines: 1 | ||
1063 | 0 | ||
1064 | Mode: 444 | ||
1065 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1066 | Path: sys/class/power_supply/AC/power/wakeup_active | ||
1067 | Lines: 1 | ||
1068 | 0 | ||
1069 | Mode: 444 | ||
1070 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1071 | Path: sys/class/power_supply/AC/power/wakeup_active_count | ||
1072 | Lines: 1 | ||
1073 | 1 | ||
1074 | Mode: 444 | ||
1075 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1076 | Path: sys/class/power_supply/AC/power/wakeup_count | ||
1077 | Lines: 1 | ||
1078 | 0 | ||
1079 | Mode: 444 | ||
1080 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1081 | Path: sys/class/power_supply/AC/power/wakeup_expire_count | ||
1082 | Lines: 1 | ||
1083 | 0 | ||
1084 | Mode: 444 | ||
1085 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1086 | Path: sys/class/power_supply/AC/power/wakeup_last_time_ms | ||
1087 | Lines: 1 | ||
1088 | 7888 | ||
1089 | Mode: 444 | ||
1090 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1091 | Path: sys/class/power_supply/AC/power/wakeup_max_time_ms | ||
1092 | Lines: 1 | ||
1093 | 2 | ||
1094 | Mode: 444 | ||
1095 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1096 | Path: sys/class/power_supply/AC/power/wakeup_prevent_sleep_time_ms | ||
1097 | Lines: 1 | ||
1098 | 0 | ||
1099 | Mode: 444 | ||
1100 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1101 | Path: sys/class/power_supply/AC/power/wakeup_total_time_ms | ||
1102 | Lines: 1 | ||
1103 | 2 | ||
1104 | Mode: 444 | ||
1105 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1106 | Path: sys/class/power_supply/AC/type | ||
1107 | Lines: 1 | ||
1108 | Mains | ||
1109 | Mode: 444 | ||
1110 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1111 | Path: sys/class/power_supply/AC/uevent | ||
1112 | Lines: 2 | ||
1113 | POWER_SUPPLY_NAME=AC | ||
1114 | POWER_SUPPLY_ONLINE=0 | ||
1115 | Mode: 644 | ||
1116 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1117 | Directory: sys/class/power_supply/BAT0 | ||
1118 | Mode: 755 | ||
1119 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1120 | Path: sys/class/power_supply/BAT0/alarm | ||
1121 | Lines: 1 | ||
1122 | 2253000 | ||
1123 | Mode: 644 | ||
1124 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1125 | Path: sys/class/power_supply/BAT0/capacity | ||
1126 | Lines: 1 | ||
1127 | 81 | ||
1128 | Mode: 444 | ||
1129 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1130 | Path: sys/class/power_supply/BAT0/capacity_level | ||
1131 | Lines: 1 | ||
1132 | Normal | ||
1133 | Mode: 444 | ||
1134 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1135 | Path: sys/class/power_supply/BAT0/charge_start_threshold | ||
1136 | Lines: 1 | ||
1137 | 95 | ||
1138 | Mode: 644 | ||
1139 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1140 | Path: sys/class/power_supply/BAT0/charge_stop_threshold | ||
1141 | Lines: 1 | ||
1142 | 100 | ||
1143 | Mode: 644 | ||
1144 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1145 | Path: sys/class/power_supply/BAT0/cycle_count | ||
1146 | Lines: 1 | ||
1147 | 0 | ||
1148 | Mode: 444 | ||
1149 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1150 | Path: sys/class/power_supply/BAT0/energy_full | ||
1151 | Lines: 1 | ||
1152 | 45070000 | ||
1153 | Mode: 444 | ||
1154 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1155 | Path: sys/class/power_supply/BAT0/energy_full_design | ||
1156 | Lines: 1 | ||
1157 | 47520000 | ||
1158 | Mode: 444 | ||
1159 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1160 | Path: sys/class/power_supply/BAT0/energy_now | ||
1161 | Lines: 1 | ||
1162 | 36580000 | ||
1163 | Mode: 444 | ||
1164 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1165 | Path: sys/class/power_supply/BAT0/manufacturer | ||
1166 | Lines: 1 | ||
1167 | LGC | ||
1168 | Mode: 444 | ||
1169 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1170 | Path: sys/class/power_supply/BAT0/model_name | ||
1171 | Lines: 1 | ||
1172 | LNV-45N1 | ||
1173 | Mode: 444 | ||
1174 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1175 | Directory: sys/class/power_supply/BAT0/power | ||
1176 | Mode: 755 | ||
1177 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1178 | Path: sys/class/power_supply/BAT0/power/async | ||
1179 | Lines: 1 | ||
1180 | disabled | ||
1181 | Mode: 644 | ||
1182 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1183 | Path: sys/class/power_supply/BAT0/power/autosuspend_delay_ms | ||
1184 | Lines: 0 | ||
1185 | Mode: 644 | ||
1186 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1187 | Path: sys/class/power_supply/BAT0/power/control | ||
1188 | Lines: 1 | ||
1189 | auto | ||
1190 | Mode: 644 | ||
1191 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1192 | Path: sys/class/power_supply/BAT0/power/runtime_active_kids | ||
1193 | Lines: 1 | ||
1194 | 0 | ||
1195 | Mode: 444 | ||
1196 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1197 | Path: sys/class/power_supply/BAT0/power/runtime_active_time | ||
1198 | Lines: 1 | ||
1199 | 0 | ||
1200 | Mode: 444 | ||
1201 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1202 | Path: sys/class/power_supply/BAT0/power/runtime_enabled | ||
1203 | Lines: 1 | ||
1204 | disabled | ||
1205 | Mode: 444 | ||
1206 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1207 | Path: sys/class/power_supply/BAT0/power/runtime_status | ||
1208 | Lines: 1 | ||
1209 | unsupported | ||
1210 | Mode: 444 | ||
1211 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1212 | Path: sys/class/power_supply/BAT0/power/runtime_suspended_time | ||
1213 | Lines: 1 | ||
1214 | 0 | ||
1215 | Mode: 444 | ||
1216 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1217 | Path: sys/class/power_supply/BAT0/power/runtime_usage | ||
1218 | Lines: 1 | ||
1219 | 0 | ||
1220 | Mode: 444 | ||
1221 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1222 | Path: sys/class/power_supply/BAT0/power_now | ||
1223 | Lines: 1 | ||
1224 | 5002000 | ||
1225 | Mode: 444 | ||
1226 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1227 | Path: sys/class/power_supply/BAT0/present | ||
1228 | Lines: 1 | ||
1229 | 1 | ||
1230 | Mode: 444 | ||
1231 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1232 | Path: sys/class/power_supply/BAT0/serial_number | ||
1233 | Lines: 1 | ||
1234 | 38109 | ||
1235 | Mode: 444 | ||
1236 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1237 | Path: sys/class/power_supply/BAT0/status | ||
1238 | Lines: 1 | ||
1239 | Discharging | ||
1240 | Mode: 444 | ||
1241 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1242 | Path: sys/class/power_supply/BAT0/technology | ||
1243 | Lines: 1 | ||
1244 | Li-ion | ||
1245 | Mode: 444 | ||
1246 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1247 | Path: sys/class/power_supply/BAT0/type | ||
1248 | Lines: 1 | ||
1249 | Battery | ||
1250 | Mode: 444 | ||
1251 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1252 | Path: sys/class/power_supply/BAT0/uevent | ||
1253 | Lines: 16 | ||
1254 | POWER_SUPPLY_NAME=BAT0 | ||
1255 | POWER_SUPPLY_STATUS=Discharging | ||
1256 | POWER_SUPPLY_PRESENT=1 | ||
1257 | POWER_SUPPLY_TECHNOLOGY=Li-ion | ||
1258 | POWER_SUPPLY_CYCLE_COUNT=0 | ||
1259 | POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000 | ||
1260 | POWER_SUPPLY_VOLTAGE_NOW=11660000 | ||
1261 | POWER_SUPPLY_POWER_NOW=5002000 | ||
1262 | POWER_SUPPLY_ENERGY_FULL_DESIGN=47520000 | ||
1263 | POWER_SUPPLY_ENERGY_FULL=45070000 | ||
1264 | POWER_SUPPLY_ENERGY_NOW=36580000 | ||
1265 | POWER_SUPPLY_CAPACITY=81 | ||
1266 | POWER_SUPPLY_CAPACITY_LEVEL=Normal | ||
1267 | POWER_SUPPLY_MODEL_NAME=LNV-45N1 | ||
1268 | POWER_SUPPLY_MANUFACTURER=LGC | ||
1269 | POWER_SUPPLY_SERIAL_NUMBER=38109 | ||
1270 | Mode: 644 | ||
1271 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1272 | Path: sys/class/power_supply/BAT0/voltage_min_design | ||
1273 | Lines: 1 | ||
1274 | 10800000 | ||
1275 | Mode: 444 | ||
1276 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | ||
1277 | Path: sys/class/power_supply/BAT0/voltage_now | ||
1278 | Lines: 1 | ||
1279 | 11660000 | ||
1280 | Mode: 444 | ||
998 | Directory: sys/class/thermal | 1281 | Directory: sys/class/thermal |
999 | Mode: 755 | 1282 | Mode: 755 |
1000 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 1283 | # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
diff --git a/collector/powersupplyclass.go b/collector/powersupplyclass.go new file mode 100644 index 0000000..3b5c8d7 --- /dev/null +++ b/collector/powersupplyclass.go | |||
@@ -0,0 +1,194 @@ | |||
1 | // Copyright 2019 The Prometheus Authors | ||
2 | // Licensed under the Apache License, Version 2.0 (the "License"); | ||
3 | // you may not use this file except in compliance with the License. | ||
4 | // You may obtain a copy of the License at | ||
5 | // | ||
6 | // http://www.apache.org/licenses/LICENSE-2.0 | ||
7 | // | ||
8 | // Unless required by applicable law or agreed to in writing, software | ||
9 | // distributed under the License is distributed on an "AS IS" BASIS, | ||
10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
11 | // See the License for the specific language governing permissions and | ||
12 | // limitations under the License. | ||
13 | |||
14 | // +build !nopowersupplyclass | ||
15 | // +build linux | ||
16 | |||
17 | package collector | ||
18 | |||
19 | import ( | ||
20 | "fmt" | ||
21 | "regexp" | ||
22 | |||
23 | "github.com/prometheus/client_golang/prometheus" | ||
24 | "github.com/prometheus/procfs/sysfs" | ||
25 | "gopkg.in/alecthomas/kingpin.v2" | ||
26 | ) | ||
27 | |||
28 | var ( | ||
29 | powerSupplyClassIgnoredPowerSupplies = kingpin.Flag("collector.powersupply.ignored-supplies", "Regexp of power supplies to ignore for powersupplyclass collector.").Default("^$").String() | ||
30 | ) | ||
31 | |||
32 | type powerSupplyClassCollector struct { | ||
33 | subsystem string | ||
34 | ignoredPattern *regexp.Regexp | ||
35 | metricDescs map[string]*prometheus.Desc | ||
36 | } | ||
37 | |||
38 | func init() { | ||
39 | registerCollector("powersupplyclass", defaultEnabled, NewPowerSupplyClassCollector) | ||
40 | } | ||
41 | |||
42 | func NewPowerSupplyClassCollector() (Collector, error) { | ||
43 | pattern := regexp.MustCompile(*powerSupplyClassIgnoredPowerSupplies) | ||
44 | return &powerSupplyClassCollector{ | ||
45 | subsystem: "power_supply", | ||
46 | ignoredPattern: pattern, | ||
47 | metricDescs: map[string]*prometheus.Desc{}, | ||
48 | }, nil | ||
49 | } | ||
50 | |||
51 | func (c *powerSupplyClassCollector) Update(ch chan<- prometheus.Metric) error { | ||
52 | powerSupplyClass, err := getPowerSupplyClassInfo(c.ignoredPattern) | ||
53 | if err != nil { | ||
54 | return fmt.Errorf("could not get power_supply class info: %s", err) | ||
55 | } | ||
56 | for _, powerSupply := range powerSupplyClass { | ||
57 | |||
58 | for name, value := range map[string]*int64{ | ||
59 | "authentic": powerSupply.Authentic, | ||
60 | "calibrate": powerSupply.Calibrate, | ||
61 | "capacity": powerSupply.Capacity, | ||
62 | "capacity_alert_max": powerSupply.CapacityAlertMax, | ||
63 | "capacity_alert_min": powerSupply.CapacityAlertMin, | ||
64 | "cyclecount": powerSupply.CycleCount, | ||
65 | "online": powerSupply.Online, | ||
66 | "present": powerSupply.Present, | ||
67 | "time_to_empty_seconds": powerSupply.TimeToEmptyNow, | ||
68 | "time_to_full_seconds": powerSupply.TimeToFullNow, | ||
69 | } { | ||
70 | if value != nil { | ||
71 | pushPowerSupplyMetric(ch, c.subsystem, name, float64(*value), powerSupply.Name, prometheus.GaugeValue) | ||
72 | } | ||
73 | } | ||
74 | |||
75 | for name, value := range map[string]*int64{ | ||
76 | "current_boot": powerSupply.CurrentBoot, | ||
77 | "current_max": powerSupply.CurrentMax, | ||
78 | "current_ampere": powerSupply.CurrentNow, | ||
79 | "energy_empty": powerSupply.EnergyEmpty, | ||
80 | "energy_empty_design": powerSupply.EnergyEmptyDesign, | ||
81 | "energy_full": powerSupply.EnergyFull, | ||
82 | "energy_full_design": powerSupply.EnergyFullDesign, | ||
83 | "energy_watthour": powerSupply.EnergyNow, | ||
84 | "voltage_boot": powerSupply.VoltageBoot, | ||
85 | "voltage_max": powerSupply.VoltageMax, | ||
86 | "voltage_max_design": powerSupply.VoltageMaxDesign, | ||
87 | "voltage_min": powerSupply.VoltageMin, | ||
88 | "voltage_min_design": powerSupply.VoltageMinDesign, | ||
89 | "voltage_volt": powerSupply.VoltageNow, | ||
90 | "voltage_ocv": powerSupply.VoltageOCV, | ||
91 | "charge_control_limit": powerSupply.ChargeControlLimit, | ||
92 | "charge_control_limit_max": powerSupply.ChargeControlLimitMax, | ||
93 | "charge_counter": powerSupply.ChargeCounter, | ||
94 | "charge_empty": powerSupply.ChargeEmpty, | ||
95 | "charge_empty_design": powerSupply.ChargeEmptyDesign, | ||
96 | "charge_full": powerSupply.ChargeFull, | ||
97 | "charge_full_design": powerSupply.ChargeFullDesign, | ||
98 | "charge_ampere": powerSupply.ChargeNow, | ||
99 | "charge_term_current": powerSupply.ChargeTermCurrent, | ||
100 | "constant_charge_current": powerSupply.ConstantChargeCurrent, | ||
101 | "constant_charge_current_max": powerSupply.ConstantChargeCurrentMax, | ||
102 | "constant_charge_voltage": powerSupply.ConstantChargeVoltage, | ||
103 | "constant_charge_voltage_max": powerSupply.ConstantChargeVoltageMax, | ||
104 | "precharge_current": powerSupply.PrechargeCurrent, | ||
105 | "input_current_limit": powerSupply.InputCurrentLimit, | ||
106 | "power_watt": powerSupply.PowerNow, | ||
107 | } { | ||
108 | if value != nil { | ||
109 | pushPowerSupplyMetric(ch, c.subsystem, name, float64(*value)/1e6, powerSupply.Name, prometheus.GaugeValue) | ||
110 | } | ||
111 | } | ||
112 | |||
113 | for name, value := range map[string]*int64{ | ||
114 | "temp_celsius": powerSupply.Temp, | ||
115 | "temp_alert_max_celsius": powerSupply.TempAlertMax, | ||
116 | "temp_alert_min_celsius": powerSupply.TempAlertMin, | ||
117 | "temp_ambient_celsius": powerSupply.TempAmbient, | ||
118 | "temp_ambient_max_celsius": powerSupply.TempAmbientMax, | ||
119 | "temp_ambient_min_celsius": powerSupply.TempAmbientMin, | ||
120 | "temp_max_celsius": powerSupply.TempMax, | ||
121 | "temp_min_celsius": powerSupply.TempMin, | ||
122 | } { | ||
123 | if value != nil { | ||
124 | pushPowerSupplyMetric(ch, c.subsystem, name, float64(*value)/10.0, powerSupply.Name, prometheus.GaugeValue) | ||
125 | } | ||
126 | } | ||
127 | |||
128 | var ( | ||
129 | keys []string | ||
130 | values []string | ||
131 | ) | ||
132 | for name, value := range map[string]string{ | ||
133 | "power_supply": powerSupply.Name, | ||
134 | "capacity_level": powerSupply.CapacityLevel, | ||
135 | "charge_type": powerSupply.ChargeType, | ||
136 | "health": powerSupply.Health, | ||
137 | "manufacturer": powerSupply.Manufacturer, | ||
138 | "model_name": powerSupply.ModelName, | ||
139 | "serial_number": powerSupply.SerialNumber, | ||
140 | "status": powerSupply.Status, | ||
141 | "technology": powerSupply.Technology, | ||
142 | "type": powerSupply.Type, | ||
143 | "usb_type": powerSupply.UsbType, | ||
144 | "scope": powerSupply.Scope, | ||
145 | } { | ||
146 | if value != "" { | ||
147 | keys = append(keys, name) | ||
148 | values = append(values, value) | ||
149 | } | ||
150 | } | ||
151 | |||
152 | fieldDesc := prometheus.NewDesc( | ||
153 | prometheus.BuildFQName(namespace, c.subsystem, "info"), | ||
154 | "info of /sys/class/power_supply/<power_supply>.", | ||
155 | keys, | ||
156 | nil, | ||
157 | ) | ||
158 | ch <- prometheus.MustNewConstMetric(fieldDesc, prometheus.GaugeValue, 1.0, values...) | ||
159 | |||
160 | } | ||
161 | |||
162 | return nil | ||
163 | } | ||
164 | |||
165 | func pushPowerSupplyMetric(ch chan<- prometheus.Metric, subsystem string, name string, value float64, powerSupplyName string, valueType prometheus.ValueType) { | ||
166 | fieldDesc := prometheus.NewDesc( | ||
167 | prometheus.BuildFQName(namespace, subsystem, name), | ||
168 | fmt.Sprintf("%s value of /sys/class/power_supply/<power_supply>.", name), | ||
169 | []string{"power_supply"}, | ||
170 | nil, | ||
171 | ) | ||
172 | |||
173 | ch <- prometheus.MustNewConstMetric(fieldDesc, valueType, value, powerSupplyName) | ||
174 | } | ||
175 | |||
176 | func getPowerSupplyClassInfo(ignore *regexp.Regexp) (sysfs.PowerSupplyClass, error) { | ||
177 | fs, err := sysfs.NewFS(*sysPath) | ||
178 | if err != nil { | ||
179 | return nil, err | ||
180 | } | ||
181 | powerSupplyClass, err := fs.PowerSupplyClass() | ||
182 | |||
183 | if err != nil { | ||
184 | return powerSupplyClass, fmt.Errorf("error obtaining power_supply class info: %s", err) | ||
185 | } | ||
186 | |||
187 | for device := range powerSupplyClass { | ||
188 | if ignore.MatchString(device) { | ||
189 | delete(powerSupplyClass, device) | ||
190 | } | ||
191 | } | ||
192 | |||
193 | return powerSupplyClass, nil | ||
194 | } | ||