diff options
99 files changed, 753 insertions, 79 deletions
@@ -24,6 +24,7 @@ diskstats | Exposes disk I/O statistics from `/proc/diskstats`. | Linux | |||
24 | entropy | Exposes available entropy. | Linux | 24 | entropy | Exposes available entropy. | Linux |
25 | filefd | Exposes file descriptor statistics from `/proc/sys/fs/file-nr`. | Linux | 25 | filefd | Exposes file descriptor statistics from `/proc/sys/fs/file-nr`. | Linux |
26 | filesystem | Exposes filesystem statistics, such as disk space used. | FreeBSD, Dragonfly, Linux, OpenBSD | 26 | filesystem | Exposes filesystem statistics, such as disk space used. | FreeBSD, Dragonfly, Linux, OpenBSD |
27 | hwmon | Expose hardware monitoring and sensor data from `/sys/class/hwmon/`. | Linux | ||
27 | loadavg | Exposes load average. | Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Solaris | 28 | loadavg | Exposes load average. | Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Solaris |
28 | mdadm | Exposes statistics about devices in `/proc/mdstat` (does nothing if no `/proc/mdstat` present). | Linux | 29 | mdadm | Exposes statistics about devices in `/proc/mdstat` (does nothing if no `/proc/mdstat` present). | Linux |
29 | meminfo | Exposes memory statistics. | Dragonfly, FreeBSD, Linux | 30 | meminfo | Exposes memory statistics. | Dragonfly, FreeBSD, Linux |
diff --git a/collector/fixtures/e2e-output.txt b/collector/fixtures/e2e-output.txt index 9956940..54ff679 100644 --- a/collector/fixtures/e2e-output.txt +++ b/collector/fixtures/e2e-output.txt | |||
@@ -12,73 +12,73 @@ go_gc_duration_seconds_count 0 | |||
12 | go_goroutines 13 | 12 | go_goroutines 13 |
13 | # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. | 13 | # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. |
14 | # TYPE go_memstats_alloc_bytes gauge | 14 | # TYPE go_memstats_alloc_bytes gauge |
15 | go_memstats_alloc_bytes 1.077136e+06 | 15 | go_memstats_alloc_bytes 1.236968e+06 |
16 | # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. | 16 | # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. |
17 | # TYPE go_memstats_alloc_bytes_total counter | 17 | # TYPE go_memstats_alloc_bytes_total counter |
18 | go_memstats_alloc_bytes_total 1.077136e+06 | 18 | go_memstats_alloc_bytes_total 1.236968e+06 |
19 | # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. | 19 | # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. |
20 | # TYPE go_memstats_buck_hash_sys_bytes gauge | 20 | # TYPE go_memstats_buck_hash_sys_bytes gauge |
21 | go_memstats_buck_hash_sys_bytes 1.443406e+06 | 21 | go_memstats_buck_hash_sys_bytes 2717 |
22 | # HELP go_memstats_frees_total Total number of frees. | 22 | # HELP go_memstats_frees_total Total number of frees. |
23 | # TYPE go_memstats_frees_total counter | 23 | # TYPE go_memstats_frees_total counter |
24 | go_memstats_frees_total 0 | 24 | go_memstats_frees_total 265 |
25 | # HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. | 25 | # HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. |
26 | # TYPE go_memstats_gc_sys_bytes gauge | 26 | # TYPE go_memstats_gc_sys_bytes gauge |
27 | go_memstats_gc_sys_bytes 98304 | 27 | go_memstats_gc_sys_bytes 65536 |
28 | # HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. | 28 | # HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. |
29 | # TYPE go_memstats_heap_alloc_bytes gauge | 29 | # TYPE go_memstats_heap_alloc_bytes gauge |
30 | go_memstats_heap_alloc_bytes 1.077136e+06 | 30 | go_memstats_heap_alloc_bytes 1.236968e+06 |
31 | # HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. | 31 | # HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. |
32 | # TYPE go_memstats_heap_idle_bytes gauge | 32 | # TYPE go_memstats_heap_idle_bytes gauge |
33 | go_memstats_heap_idle_bytes 737280 | 33 | go_memstats_heap_idle_bytes 139264 |
34 | # HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. | 34 | # HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. |
35 | # TYPE go_memstats_heap_inuse_bytes gauge | 35 | # TYPE go_memstats_heap_inuse_bytes gauge |
36 | go_memstats_heap_inuse_bytes 1.916928e+06 | 36 | go_memstats_heap_inuse_bytes 1.630208e+06 |
37 | # HELP go_memstats_heap_objects Number of allocated objects. | 37 | # HELP go_memstats_heap_objects Number of allocated objects. |
38 | # TYPE go_memstats_heap_objects gauge | 38 | # TYPE go_memstats_heap_objects gauge |
39 | go_memstats_heap_objects 4245 | 39 | go_memstats_heap_objects 8119 |
40 | # HELP go_memstats_heap_released_bytes_total Total number of heap bytes released to OS. | 40 | # HELP go_memstats_heap_released_bytes_total Total number of heap bytes released to OS. |
41 | # TYPE go_memstats_heap_released_bytes_total counter | 41 | # TYPE go_memstats_heap_released_bytes_total counter |
42 | go_memstats_heap_released_bytes_total 0 | 42 | go_memstats_heap_released_bytes_total 0 |
43 | # HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. | 43 | # HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. |
44 | # TYPE go_memstats_heap_sys_bytes gauge | 44 | # TYPE go_memstats_heap_sys_bytes gauge |
45 | go_memstats_heap_sys_bytes 2.654208e+06 | 45 | go_memstats_heap_sys_bytes 1.769472e+06 |
46 | # HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. | 46 | # HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. |
47 | # TYPE go_memstats_last_gc_time_seconds gauge | 47 | # TYPE go_memstats_last_gc_time_seconds gauge |
48 | go_memstats_last_gc_time_seconds 9 | 48 | go_memstats_last_gc_time_seconds 9 |
49 | # HELP go_memstats_lookups_total Total number of pointer lookups. | 49 | # HELP go_memstats_lookups_total Total number of pointer lookups. |
50 | # TYPE go_memstats_lookups_total counter | 50 | # TYPE go_memstats_lookups_total counter |
51 | go_memstats_lookups_total 16 | 51 | go_memstats_lookups_total 9 |
52 | # HELP go_memstats_mallocs_total Total number of mallocs. | 52 | # HELP go_memstats_mallocs_total Total number of mallocs. |
53 | # TYPE go_memstats_mallocs_total counter | 53 | # TYPE go_memstats_mallocs_total counter |
54 | go_memstats_mallocs_total 4245 | 54 | go_memstats_mallocs_total 8384 |
55 | # HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. | 55 | # HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. |
56 | # TYPE go_memstats_mcache_inuse_bytes gauge | 56 | # TYPE go_memstats_mcache_inuse_bytes gauge |
57 | go_memstats_mcache_inuse_bytes 9664 | 57 | go_memstats_mcache_inuse_bytes 9600 |
58 | # HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. | 58 | # HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. |
59 | # TYPE go_memstats_mcache_sys_bytes gauge | 59 | # TYPE go_memstats_mcache_sys_bytes gauge |
60 | go_memstats_mcache_sys_bytes 16384 | 60 | go_memstats_mcache_sys_bytes 16384 |
61 | # HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. | 61 | # HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. |
62 | # TYPE go_memstats_mspan_inuse_bytes gauge | 62 | # TYPE go_memstats_mspan_inuse_bytes gauge |
63 | go_memstats_mspan_inuse_bytes 18144 | 63 | go_memstats_mspan_inuse_bytes 16080 |
64 | # HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. | 64 | # HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. |
65 | # TYPE go_memstats_mspan_sys_bytes gauge | 65 | # TYPE go_memstats_mspan_sys_bytes gauge |
66 | go_memstats_mspan_sys_bytes 32768 | 66 | go_memstats_mspan_sys_bytes 16384 |
67 | # HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. | 67 | # HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. |
68 | # TYPE go_memstats_next_gc_bytes gauge | 68 | # TYPE go_memstats_next_gc_bytes gauge |
69 | go_memstats_next_gc_bytes 4.194304e+06 | 69 | go_memstats_next_gc_bytes 4.194304e+06 |
70 | # HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. | 70 | # HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. |
71 | # TYPE go_memstats_other_sys_bytes gauge | 71 | # TYPE go_memstats_other_sys_bytes gauge |
72 | go_memstats_other_sys_bytes 1.065642e+06 | 72 | go_memstats_other_sys_bytes 558435 |
73 | # HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. | 73 | # HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. |
74 | # TYPE go_memstats_stack_inuse_bytes gauge | 74 | # TYPE go_memstats_stack_inuse_bytes gauge |
75 | go_memstats_stack_inuse_bytes 491520 | 75 | go_memstats_stack_inuse_bytes 327680 |
76 | # HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. | 76 | # HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. |
77 | # TYPE go_memstats_stack_sys_bytes gauge | 77 | # TYPE go_memstats_stack_sys_bytes gauge |
78 | go_memstats_stack_sys_bytes 491520 | 78 | go_memstats_stack_sys_bytes 327680 |
79 | # HELP go_memstats_sys_bytes Number of bytes obtained by system. Sum of all system allocations. | 79 | # HELP go_memstats_sys_bytes Number of bytes obtained by system. Sum of all system allocations. |
80 | # TYPE go_memstats_sys_bytes gauge | 80 | # TYPE go_memstats_sys_bytes gauge |
81 | go_memstats_sys_bytes 5.802232e+06 | 81 | go_memstats_sys_bytes 2.756608e+06 |
82 | # HELP http_request_duration_microseconds The HTTP request latencies in microseconds. | 82 | # HELP http_request_duration_microseconds The HTTP request latencies in microseconds. |
83 | # TYPE http_request_duration_microseconds summary | 83 | # TYPE http_request_duration_microseconds summary |
84 | http_request_duration_microseconds{handler="prometheus",quantile="0.5"} NaN | 84 | http_request_duration_microseconds{handler="prometheus",quantile="0.5"} NaN |
@@ -380,73 +380,93 @@ node_disk_writes_merged{device="vda"} 2.0711856e+07 | |||
380 | node_entropy_available_bits 1337 | 380 | node_entropy_available_bits 1337 |
381 | # HELP node_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which node_exporter was built. | 381 | # HELP node_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which node_exporter was built. |
382 | # TYPE node_exporter_build_info gauge | 382 | # TYPE node_exporter_build_info gauge |
383 | node_exporter_build_info{branch="master",goversion="go1.5.4",revision="252feb6",version="0.12.0rc3"} 1 | 383 | node_exporter_build_info{branch="",goversion="go1.6.2",revision="",version=""} 1 |
384 | # HELP node_exporter_scrape_duration_seconds node_exporter: Duration of a scrape job. | 384 | # HELP node_exporter_scrape_duration_seconds node_exporter: Duration of a scrape job. |
385 | # TYPE node_exporter_scrape_duration_seconds summary | 385 | # TYPE node_exporter_scrape_duration_seconds summary |
386 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.5"} 7.481600000000001e-05 | 386 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.5"} 0.00019123300000000002 |
387 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.9"} 7.481600000000001e-05 | 387 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.9"} 0.00019123300000000002 |
388 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.99"} 7.481600000000001e-05 | 388 | node_exporter_scrape_duration_seconds{collector="bonding",result="success",quantile="0.99"} 0.00019123300000000002 |
389 | node_exporter_scrape_duration_seconds_sum{collector="bonding",result="success"} 7.481600000000001e-05 | 389 | node_exporter_scrape_duration_seconds_sum{collector="bonding",result="success"} 0.00019123300000000002 |
390 | node_exporter_scrape_duration_seconds_count{collector="bonding",result="success"} 1 | 390 | node_exporter_scrape_duration_seconds_count{collector="bonding",result="success"} 1 |
391 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.5"} 0.00027974200000000003 | 391 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.5"} 3.1222e-05 |
392 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.9"} 0.00027974200000000003 | 392 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.9"} 3.1222e-05 |
393 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.99"} 0.00027974200000000003 | 393 | node_exporter_scrape_duration_seconds{collector="conntrack",result="success",quantile="0.99"} 3.1222e-05 |
394 | node_exporter_scrape_duration_seconds_sum{collector="conntrack",result="success"} 0.00027974200000000003 | 394 | node_exporter_scrape_duration_seconds_sum{collector="conntrack",result="success"} 3.1222e-05 |
395 | node_exporter_scrape_duration_seconds_count{collector="conntrack",result="success"} 1 | 395 | node_exporter_scrape_duration_seconds_count{collector="conntrack",result="success"} 1 |
396 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.5"} 0.001661895 | 396 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.5"} 0.001207839 |
397 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.9"} 0.001661895 | 397 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.9"} 0.001207839 |
398 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.99"} 0.001661895 | 398 | node_exporter_scrape_duration_seconds{collector="diskstats",result="success",quantile="0.99"} 0.001207839 |
399 | node_exporter_scrape_duration_seconds_sum{collector="diskstats",result="success"} 0.001661895 | 399 | node_exporter_scrape_duration_seconds_sum{collector="diskstats",result="success"} 0.001207839 |
400 | node_exporter_scrape_duration_seconds_count{collector="diskstats",result="success"} 1 | 400 | node_exporter_scrape_duration_seconds_count{collector="diskstats",result="success"} 1 |
401 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.5"} 0.000146396 | 401 | node_exporter_scrape_duration_seconds{collector="entropy",result="success",quantile="0.5"} 2.1329000000000002e-05 |
402 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.9"} 0.000146396 | 402 | node_exporter_scrape_duration_seconds{collector="entropy",result="success",quantile="0.9"} 2.1329000000000002e-05 |
403 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.99"} 0.000146396 | 403 | node_exporter_scrape_duration_seconds{collector="entropy",result="success",quantile="0.99"} 2.1329000000000002e-05 |
404 | node_exporter_scrape_duration_seconds_sum{collector="filefd",result="success"} 0.000146396 | 404 | node_exporter_scrape_duration_seconds_sum{collector="entropy",result="success"} 2.1329000000000002e-05 |
405 | node_exporter_scrape_duration_seconds_count{collector="entropy",result="success"} 1 | ||
406 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.5"} 3.7313e-05 | ||
407 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.9"} 3.7313e-05 | ||
408 | node_exporter_scrape_duration_seconds{collector="filefd",result="success",quantile="0.99"} 3.7313e-05 | ||
409 | node_exporter_scrape_duration_seconds_sum{collector="filefd",result="success"} 3.7313e-05 | ||
405 | node_exporter_scrape_duration_seconds_count{collector="filefd",result="success"} 1 | 410 | node_exporter_scrape_duration_seconds_count{collector="filefd",result="success"} 1 |
406 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.5"} 6.1362e-05 | 411 | node_exporter_scrape_duration_seconds{collector="hwmon",result="success",quantile="0.5"} 0.002039698 |
407 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.9"} 6.1362e-05 | 412 | node_exporter_scrape_duration_seconds{collector="hwmon",result="success",quantile="0.9"} 0.002039698 |
408 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.99"} 6.1362e-05 | 413 | node_exporter_scrape_duration_seconds{collector="hwmon",result="success",quantile="0.99"} 0.002039698 |
409 | node_exporter_scrape_duration_seconds_sum{collector="loadavg",result="success"} 6.1362e-05 | 414 | node_exporter_scrape_duration_seconds_sum{collector="hwmon",result="success"} 0.002039698 |
415 | node_exporter_scrape_duration_seconds_count{collector="hwmon",result="success"} 1 | ||
416 | node_exporter_scrape_duration_seconds{collector="ksmd",result="success",quantile="0.5"} 9.497000000000001e-05 | ||
417 | node_exporter_scrape_duration_seconds{collector="ksmd",result="success",quantile="0.9"} 9.497000000000001e-05 | ||
418 | node_exporter_scrape_duration_seconds{collector="ksmd",result="success",quantile="0.99"} 9.497000000000001e-05 | ||
419 | node_exporter_scrape_duration_seconds_sum{collector="ksmd",result="success"} 9.497000000000001e-05 | ||
420 | node_exporter_scrape_duration_seconds_count{collector="ksmd",result="success"} 1 | ||
421 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.5"} 0.00030610500000000004 | ||
422 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.9"} 0.00030610500000000004 | ||
423 | node_exporter_scrape_duration_seconds{collector="loadavg",result="success",quantile="0.99"} 0.00030610500000000004 | ||
424 | node_exporter_scrape_duration_seconds_sum{collector="loadavg",result="success"} 0.00030610500000000004 | ||
410 | node_exporter_scrape_duration_seconds_count{collector="loadavg",result="success"} 1 | 425 | node_exporter_scrape_duration_seconds_count{collector="loadavg",result="success"} 1 |
411 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.5"} 0.000199423 | 426 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.5"} 0.001285081 |
412 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.9"} 0.000199423 | 427 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.9"} 0.001285081 |
413 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.99"} 0.000199423 | 428 | node_exporter_scrape_duration_seconds{collector="mdadm",result="success",quantile="0.99"} 0.001285081 |
414 | node_exporter_scrape_duration_seconds_sum{collector="mdadm",result="success"} 0.000199423 | 429 | node_exporter_scrape_duration_seconds_sum{collector="mdadm",result="success"} 0.001285081 |
415 | node_exporter_scrape_duration_seconds_count{collector="mdadm",result="success"} 1 | 430 | node_exporter_scrape_duration_seconds_count{collector="mdadm",result="success"} 1 |
416 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.5"} 0.005821468000000001 | 431 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.5"} 0.006589346 |
417 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.9"} 0.005821468000000001 | 432 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.9"} 0.006589346 |
418 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.99"} 0.005821468000000001 | 433 | node_exporter_scrape_duration_seconds{collector="megacli",result="success",quantile="0.99"} 0.006589346 |
419 | node_exporter_scrape_duration_seconds_sum{collector="megacli",result="success"} 0.005821468000000001 | 434 | node_exporter_scrape_duration_seconds_sum{collector="megacli",result="success"} 0.006589346 |
420 | node_exporter_scrape_duration_seconds_count{collector="megacli",result="success"} 1 | 435 | node_exporter_scrape_duration_seconds_count{collector="megacli",result="success"} 1 |
421 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.5"} 0.001771465 | 436 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.5"} 0.0025752360000000003 |
422 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.9"} 0.001771465 | 437 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.9"} 0.0025752360000000003 |
423 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.99"} 0.001771465 | 438 | node_exporter_scrape_duration_seconds{collector="meminfo",result="success",quantile="0.99"} 0.0025752360000000003 |
424 | node_exporter_scrape_duration_seconds_sum{collector="meminfo",result="success"} 0.001771465 | 439 | node_exporter_scrape_duration_seconds_sum{collector="meminfo",result="success"} 0.0025752360000000003 |
425 | node_exporter_scrape_duration_seconds_count{collector="meminfo",result="success"} 1 | 440 | node_exporter_scrape_duration_seconds_count{collector="meminfo",result="success"} 1 |
426 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.5"} 0.000959257 | 441 | node_exporter_scrape_duration_seconds{collector="meminfo_numa",result="success",quantile="0.5"} 0.000494111 |
427 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.9"} 0.000959257 | 442 | node_exporter_scrape_duration_seconds{collector="meminfo_numa",result="success",quantile="0.9"} 0.000494111 |
428 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.99"} 0.000959257 | 443 | node_exporter_scrape_duration_seconds{collector="meminfo_numa",result="success",quantile="0.99"} 0.000494111 |
429 | node_exporter_scrape_duration_seconds_sum{collector="netdev",result="success"} 0.000959257 | 444 | node_exporter_scrape_duration_seconds_sum{collector="meminfo_numa",result="success"} 0.000494111 |
445 | node_exporter_scrape_duration_seconds_count{collector="meminfo_numa",result="success"} 1 | ||
446 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.5"} 0.00038711700000000003 | ||
447 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.9"} 0.00038711700000000003 | ||
448 | node_exporter_scrape_duration_seconds{collector="netdev",result="success",quantile="0.99"} 0.00038711700000000003 | ||
449 | node_exporter_scrape_duration_seconds_sum{collector="netdev",result="success"} 0.00038711700000000003 | ||
430 | node_exporter_scrape_duration_seconds_count{collector="netdev",result="success"} 1 | 450 | node_exporter_scrape_duration_seconds_count{collector="netdev",result="success"} 1 |
431 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.5"} 0.0017044130000000001 | 451 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.5"} 0.0009007370000000001 |
432 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.9"} 0.0017044130000000001 | 452 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.9"} 0.0009007370000000001 |
433 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.99"} 0.0017044130000000001 | 453 | node_exporter_scrape_duration_seconds{collector="netstat",result="success",quantile="0.99"} 0.0009007370000000001 |
434 | node_exporter_scrape_duration_seconds_sum{collector="netstat",result="success"} 0.0017044130000000001 | 454 | node_exporter_scrape_duration_seconds_sum{collector="netstat",result="success"} 0.0009007370000000001 |
435 | node_exporter_scrape_duration_seconds_count{collector="netstat",result="success"} 1 | 455 | node_exporter_scrape_duration_seconds_count{collector="netstat",result="success"} 1 |
436 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.5"} 0.000153337 | 456 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.5"} 0.000119957 |
437 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.9"} 0.000153337 | 457 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.9"} 0.000119957 |
438 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.99"} 0.000153337 | 458 | node_exporter_scrape_duration_seconds{collector="sockstat",result="success",quantile="0.99"} 0.000119957 |
439 | node_exporter_scrape_duration_seconds_sum{collector="sockstat",result="success"} 0.000153337 | 459 | node_exporter_scrape_duration_seconds_sum{collector="sockstat",result="success"} 0.000119957 |
440 | node_exporter_scrape_duration_seconds_count{collector="sockstat",result="success"} 1 | 460 | node_exporter_scrape_duration_seconds_count{collector="sockstat",result="success"} 1 |
441 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.5"} 0.00011309800000000001 | 461 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.5"} 0.00014981800000000002 |
442 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.9"} 0.00011309800000000001 | 462 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.9"} 0.00014981800000000002 |
443 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.99"} 0.00011309800000000001 | 463 | node_exporter_scrape_duration_seconds{collector="stat",result="success",quantile="0.99"} 0.00014981800000000002 |
444 | node_exporter_scrape_duration_seconds_sum{collector="stat",result="success"} 0.00011309800000000001 | 464 | node_exporter_scrape_duration_seconds_sum{collector="stat",result="success"} 0.00014981800000000002 |
445 | node_exporter_scrape_duration_seconds_count{collector="stat",result="success"} 1 | 465 | node_exporter_scrape_duration_seconds_count{collector="stat",result="success"} 1 |
446 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.5"} 3.29e-07 | 466 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.5"} 3.0500000000000004e-07 |
447 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.9"} 3.29e-07 | 467 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.9"} 3.0500000000000004e-07 |
448 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.99"} 3.29e-07 | 468 | node_exporter_scrape_duration_seconds{collector="textfile",result="success",quantile="0.99"} 3.0500000000000004e-07 |
449 | node_exporter_scrape_duration_seconds_sum{collector="textfile",result="success"} 3.29e-07 | 469 | node_exporter_scrape_duration_seconds_sum{collector="textfile",result="success"} 3.0500000000000004e-07 |
450 | node_exporter_scrape_duration_seconds_count{collector="textfile",result="success"} 1 | 470 | node_exporter_scrape_duration_seconds_count{collector="textfile",result="success"} 1 |
451 | # HELP node_filefd_allocated File descriptor statistics: allocated. | 471 | # HELP node_filefd_allocated File descriptor statistics: allocated. |
452 | # TYPE node_filefd_allocated gauge | 472 | # TYPE node_filefd_allocated gauge |
@@ -457,6 +477,180 @@ node_filefd_maximum 1.631329e+06 | |||
457 | # HELP node_forks Total number of forks. | 477 | # HELP node_forks Total number of forks. |
458 | # TYPE node_forks counter | 478 | # TYPE node_forks counter |
459 | node_forks 26442 | 479 | node_forks 26442 |
480 | # HELP node_hwmon_fan_alarm Hardware sensor alarm status (fan) | ||
481 | # TYPE node_hwmon_fan_alarm gauge | ||
482 | node_hwmon_fan_alarm{chip="nct6779",sensor="fan2"} 0 | ||
483 | # HELP node_hwmon_fan_beep_enabled Hardware monitor sensor has beeping enabled | ||
484 | # TYPE node_hwmon_fan_beep_enabled gauge | ||
485 | node_hwmon_fan_beep_enabled{chip="nct6779",sensor="fan2"} 0 | ||
486 | # HELP node_hwmon_fan_manual Hardware monitor fan element manual | ||
487 | # TYPE node_hwmon_fan_manual gauge | ||
488 | node_hwmon_fan_manual{chip="applesmc_768",sensor="left_side"} 0 | ||
489 | node_hwmon_fan_manual{chip="applesmc_768",sensor="right_side"} 0 | ||
490 | # HELP node_hwmon_fan_max_rpm Hardware monitor for fan revolutions per minute (max) | ||
491 | # TYPE node_hwmon_fan_max_rpm gauge | ||
492 | node_hwmon_fan_max_rpm{chip="applesmc_768",sensor="left_side"} 6156 | ||
493 | node_hwmon_fan_max_rpm{chip="applesmc_768",sensor="right_side"} 5700 | ||
494 | # HELP node_hwmon_fan_min_rpm Hardware monitor for fan revolutions per minute (min) | ||
495 | # TYPE node_hwmon_fan_min_rpm gauge | ||
496 | node_hwmon_fan_min_rpm{chip="applesmc_768",sensor="left_side"} 2160 | ||
497 | node_hwmon_fan_min_rpm{chip="applesmc_768",sensor="right_side"} 2000 | ||
498 | node_hwmon_fan_min_rpm{chip="nct6779",sensor="fan2"} 0 | ||
499 | # HELP node_hwmon_fan_output Hardware monitor fan element output | ||
500 | # TYPE node_hwmon_fan_output gauge | ||
501 | node_hwmon_fan_output{chip="applesmc_768",sensor="left_side"} 2160 | ||
502 | node_hwmon_fan_output{chip="applesmc_768",sensor="right_side"} 2000 | ||
503 | # HELP node_hwmon_fan_pulses Hardware monitor fan element pulses | ||
504 | # TYPE node_hwmon_fan_pulses gauge | ||
505 | node_hwmon_fan_pulses{chip="nct6779",sensor="fan2"} 2 | ||
506 | # HELP node_hwmon_fan_rpm Hardware monitor for fan revolutions per minute (input) | ||
507 | # TYPE node_hwmon_fan_rpm gauge | ||
508 | node_hwmon_fan_rpm{chip="applesmc_768",sensor="left_side"} 0 | ||
509 | node_hwmon_fan_rpm{chip="applesmc_768",sensor="right_side"} 1998 | ||
510 | node_hwmon_fan_rpm{chip="nct6779",sensor="fan2"} 1098 | ||
511 | # HELP node_hwmon_fan_target_rpm Hardware monitor for fan revolutions per minute (target) | ||
512 | # TYPE node_hwmon_fan_target_rpm gauge | ||
513 | node_hwmon_fan_target_rpm{chip="nct6779",sensor="fan2"} 27000 | ||
514 | # HELP node_hwmon_fan_tolerance Hardware monitor fan element tolerance | ||
515 | # TYPE node_hwmon_fan_tolerance gauge | ||
516 | node_hwmon_fan_tolerance{chip="nct6779",sensor="fan2"} 0 | ||
517 | # HELP node_hwmon_in_alarm Hardware sensor alarm status (in) | ||
518 | # TYPE node_hwmon_in_alarm gauge | ||
519 | node_hwmon_in_alarm{chip="nct6779",sensor="in0"} 0 | ||
520 | node_hwmon_in_alarm{chip="nct6779",sensor="in1"} 1 | ||
521 | # HELP node_hwmon_in_beep_enabled Hardware monitor sensor has beeping enabled | ||
522 | # TYPE node_hwmon_in_beep_enabled gauge | ||
523 | node_hwmon_in_beep_enabled{chip="nct6779",sensor="in0"} 0 | ||
524 | node_hwmon_in_beep_enabled{chip="nct6779",sensor="in1"} 0 | ||
525 | # HELP node_hwmon_in_max_volts Hardware monitor for voltage (max) | ||
526 | # TYPE node_hwmon_in_max_volts gauge | ||
527 | node_hwmon_in_max_volts{chip="nct6779",sensor="in0"} 1.744 | ||
528 | node_hwmon_in_max_volts{chip="nct6779",sensor="in1"} 0 | ||
529 | # HELP node_hwmon_in_min_volts Hardware monitor for voltage (min) | ||
530 | # TYPE node_hwmon_in_min_volts gauge | ||
531 | node_hwmon_in_min_volts{chip="nct6779",sensor="in0"} 0 | ||
532 | node_hwmon_in_min_volts{chip="nct6779",sensor="in1"} 0 | ||
533 | # HELP node_hwmon_in_volts Hardware monitor for voltage (input) | ||
534 | # TYPE node_hwmon_in_volts gauge | ||
535 | node_hwmon_in_volts{chip="nct6779",sensor="in0"} 0.792 | ||
536 | node_hwmon_in_volts{chip="nct6779",sensor="in1"} 1.024 | ||
537 | # HELP node_hwmon_intrusion_alarm Hardware sensor alarm status (intrusion) | ||
538 | # TYPE node_hwmon_intrusion_alarm gauge | ||
539 | node_hwmon_intrusion_alarm{chip="nct6779",sensor="intrusion0"} 1 | ||
540 | node_hwmon_intrusion_alarm{chip="nct6779",sensor="intrusion1"} 1 | ||
541 | # HELP node_hwmon_intrusion_beep_enabled Hardware monitor sensor has beeping enabled | ||
542 | # TYPE node_hwmon_intrusion_beep_enabled gauge | ||
543 | node_hwmon_intrusion_beep_enabled{chip="nct6779",sensor="intrusion0"} 0 | ||
544 | node_hwmon_intrusion_beep_enabled{chip="nct6779",sensor="intrusion1"} 0 | ||
545 | # HELP node_hwmon_pwm_auto_point1_pwm Hardware monitor pwm element auto_point1_pwm | ||
546 | # TYPE node_hwmon_pwm_auto_point1_pwm gauge | ||
547 | node_hwmon_pwm_auto_point1_pwm{chip="nct6779",sensor="pwm1"} 153 | ||
548 | # HELP node_hwmon_pwm_auto_point1_temp Hardware monitor pwm element auto_point1_temp | ||
549 | # TYPE node_hwmon_pwm_auto_point1_temp gauge | ||
550 | node_hwmon_pwm_auto_point1_temp{chip="nct6779",sensor="pwm1"} 30000 | ||
551 | # HELP node_hwmon_pwm_auto_point2_pwm Hardware monitor pwm element auto_point2_pwm | ||
552 | # TYPE node_hwmon_pwm_auto_point2_pwm gauge | ||
553 | node_hwmon_pwm_auto_point2_pwm{chip="nct6779",sensor="pwm1"} 255 | ||
554 | # HELP node_hwmon_pwm_auto_point2_temp Hardware monitor pwm element auto_point2_temp | ||
555 | # TYPE node_hwmon_pwm_auto_point2_temp gauge | ||
556 | node_hwmon_pwm_auto_point2_temp{chip="nct6779",sensor="pwm1"} 70000 | ||
557 | # HELP node_hwmon_pwm_auto_point3_pwm Hardware monitor pwm element auto_point3_pwm | ||
558 | # TYPE node_hwmon_pwm_auto_point3_pwm gauge | ||
559 | node_hwmon_pwm_auto_point3_pwm{chip="nct6779",sensor="pwm1"} 255 | ||
560 | # HELP node_hwmon_pwm_auto_point3_temp Hardware monitor pwm element auto_point3_temp | ||
561 | # TYPE node_hwmon_pwm_auto_point3_temp gauge | ||
562 | node_hwmon_pwm_auto_point3_temp{chip="nct6779",sensor="pwm1"} 70000 | ||
563 | # HELP node_hwmon_pwm_auto_point4_pwm Hardware monitor pwm element auto_point4_pwm | ||
564 | # TYPE node_hwmon_pwm_auto_point4_pwm gauge | ||
565 | node_hwmon_pwm_auto_point4_pwm{chip="nct6779",sensor="pwm1"} 255 | ||
566 | # HELP node_hwmon_pwm_auto_point4_temp Hardware monitor pwm element auto_point4_temp | ||
567 | # TYPE node_hwmon_pwm_auto_point4_temp gauge | ||
568 | node_hwmon_pwm_auto_point4_temp{chip="nct6779",sensor="pwm1"} 70000 | ||
569 | # HELP node_hwmon_pwm_auto_point5_pwm Hardware monitor pwm element auto_point5_pwm | ||
570 | # TYPE node_hwmon_pwm_auto_point5_pwm gauge | ||
571 | node_hwmon_pwm_auto_point5_pwm{chip="nct6779",sensor="pwm1"} 255 | ||
572 | # HELP node_hwmon_pwm_auto_point5_temp Hardware monitor pwm element auto_point5_temp | ||
573 | # TYPE node_hwmon_pwm_auto_point5_temp gauge | ||
574 | node_hwmon_pwm_auto_point5_temp{chip="nct6779",sensor="pwm1"} 75000 | ||
575 | # HELP node_hwmon_pwm_crit_temp_tolerance Hardware monitor pwm element crit_temp_tolerance | ||
576 | # TYPE node_hwmon_pwm_crit_temp_tolerance gauge | ||
577 | node_hwmon_pwm_crit_temp_tolerance{chip="nct6779",sensor="pwm1"} 2000 | ||
578 | # HELP node_hwmon_pwm_enable Hardware monitor pwm element enable | ||
579 | # TYPE node_hwmon_pwm_enable gauge | ||
580 | node_hwmon_pwm_enable{chip="nct6779",sensor="pwm1"} 5 | ||
581 | # HELP node_hwmon_pwm_floor Hardware monitor pwm element floor | ||
582 | # TYPE node_hwmon_pwm_floor gauge | ||
583 | node_hwmon_pwm_floor{chip="nct6779",sensor="pwm1"} 1 | ||
584 | # HELP node_hwmon_pwm_mode Hardware monitor pwm element mode | ||
585 | # TYPE node_hwmon_pwm_mode gauge | ||
586 | node_hwmon_pwm_mode{chip="nct6779",sensor="pwm1"} 1 | ||
587 | # HELP node_hwmon_pwm_start Hardware monitor pwm element start | ||
588 | # TYPE node_hwmon_pwm_start gauge | ||
589 | node_hwmon_pwm_start{chip="nct6779",sensor="pwm1"} 1 | ||
590 | # HELP node_hwmon_pwm_step_down_time Hardware monitor pwm element step_down_time | ||
591 | # TYPE node_hwmon_pwm_step_down_time gauge | ||
592 | node_hwmon_pwm_step_down_time{chip="nct6779",sensor="pwm1"} 100 | ||
593 | # HELP node_hwmon_pwm_step_up_time Hardware monitor pwm element step_up_time | ||
594 | # TYPE node_hwmon_pwm_step_up_time gauge | ||
595 | node_hwmon_pwm_step_up_time{chip="nct6779",sensor="pwm1"} 100 | ||
596 | # HELP node_hwmon_pwm_stop_time Hardware monitor pwm element stop_time | ||
597 | # TYPE node_hwmon_pwm_stop_time gauge | ||
598 | node_hwmon_pwm_stop_time{chip="nct6779",sensor="pwm1"} 6000 | ||
599 | # HELP node_hwmon_pwm_target_temp Hardware monitor pwm element target_temp | ||
600 | # TYPE node_hwmon_pwm_target_temp gauge | ||
601 | node_hwmon_pwm_target_temp{chip="nct6779",sensor="pwm1"} 0 | ||
602 | # HELP node_hwmon_pwm_temp_sel Hardware monitor pwm element temp_sel | ||
603 | # TYPE node_hwmon_pwm_temp_sel gauge | ||
604 | node_hwmon_pwm_temp_sel{chip="nct6779",sensor="pwm1"} 7 | ||
605 | # HELP node_hwmon_pwm_temp_tolerance Hardware monitor pwm element temp_tolerance | ||
606 | # TYPE node_hwmon_pwm_temp_tolerance gauge | ||
607 | node_hwmon_pwm_temp_tolerance{chip="nct6779",sensor="pwm1"} 0 | ||
608 | # HELP node_hwmon_pwm_weight_duty_base Hardware monitor pwm element weight_duty_base | ||
609 | # TYPE node_hwmon_pwm_weight_duty_base gauge | ||
610 | node_hwmon_pwm_weight_duty_base{chip="nct6779",sensor="pwm1"} 0 | ||
611 | # HELP node_hwmon_pwm_weight_duty_step Hardware monitor pwm element weight_duty_step | ||
612 | # TYPE node_hwmon_pwm_weight_duty_step gauge | ||
613 | node_hwmon_pwm_weight_duty_step{chip="nct6779",sensor="pwm1"} 0 | ||
614 | # HELP node_hwmon_pwm_weight_temp_sel Hardware monitor pwm element weight_temp_sel | ||
615 | # TYPE node_hwmon_pwm_weight_temp_sel gauge | ||
616 | node_hwmon_pwm_weight_temp_sel{chip="nct6779",sensor="pwm1"} 1 | ||
617 | # HELP node_hwmon_pwm_weight_temp_step Hardware monitor pwm element weight_temp_step | ||
618 | # TYPE node_hwmon_pwm_weight_temp_step gauge | ||
619 | node_hwmon_pwm_weight_temp_step{chip="nct6779",sensor="pwm1"} 0 | ||
620 | # HELP node_hwmon_pwm_weight_temp_step_base Hardware monitor pwm element weight_temp_step_base | ||
621 | # TYPE node_hwmon_pwm_weight_temp_step_base gauge | ||
622 | node_hwmon_pwm_weight_temp_step_base{chip="nct6779",sensor="pwm1"} 0 | ||
623 | # HELP node_hwmon_pwm_weight_temp_step_tol Hardware monitor pwm element weight_temp_step_tol | ||
624 | # TYPE node_hwmon_pwm_weight_temp_step_tol gauge | ||
625 | node_hwmon_pwm_weight_temp_step_tol{chip="nct6779",sensor="pwm1"} 0 | ||
626 | # HELP node_hwmon_temp_celsius Hardware monitor for temperature (input) | ||
627 | # TYPE node_hwmon_temp_celsius gauge | ||
628 | node_hwmon_temp_celsius{chip="coretemp",sensor="core_0"} 54 | ||
629 | node_hwmon_temp_celsius{chip="coretemp",sensor="core_1"} 52 | ||
630 | node_hwmon_temp_celsius{chip="coretemp",sensor="core_2"} 53 | ||
631 | node_hwmon_temp_celsius{chip="coretemp",sensor="core_3"} 50 | ||
632 | node_hwmon_temp_celsius{chip="coretemp",sensor="physical_id_0"} 55 | ||
633 | # HELP node_hwmon_temp_crit_alarm_celsius Hardware monitor for temperature (crit_alarm) | ||
634 | # TYPE node_hwmon_temp_crit_alarm_celsius gauge | ||
635 | node_hwmon_temp_crit_alarm_celsius{chip="coretemp",sensor="core_0"} 0 | ||
636 | node_hwmon_temp_crit_alarm_celsius{chip="coretemp",sensor="core_1"} 0 | ||
637 | node_hwmon_temp_crit_alarm_celsius{chip="coretemp",sensor="core_2"} 0 | ||
638 | node_hwmon_temp_crit_alarm_celsius{chip="coretemp",sensor="core_3"} 0 | ||
639 | node_hwmon_temp_crit_alarm_celsius{chip="coretemp",sensor="physical_id_0"} 0 | ||
640 | # HELP node_hwmon_temp_crit_celsius Hardware monitor for temperature (crit) | ||
641 | # TYPE node_hwmon_temp_crit_celsius gauge | ||
642 | node_hwmon_temp_crit_celsius{chip="coretemp",sensor="core_0"} 100 | ||
643 | node_hwmon_temp_crit_celsius{chip="coretemp",sensor="core_1"} 100 | ||
644 | node_hwmon_temp_crit_celsius{chip="coretemp",sensor="core_2"} 100 | ||
645 | node_hwmon_temp_crit_celsius{chip="coretemp",sensor="core_3"} 100 | ||
646 | node_hwmon_temp_crit_celsius{chip="coretemp",sensor="physical_id_0"} 100 | ||
647 | # HELP node_hwmon_temp_max_celsius Hardware monitor for temperature (max) | ||
648 | # TYPE node_hwmon_temp_max_celsius gauge | ||
649 | node_hwmon_temp_max_celsius{chip="coretemp",sensor="core_0"} 84 | ||
650 | node_hwmon_temp_max_celsius{chip="coretemp",sensor="core_1"} 84 | ||
651 | node_hwmon_temp_max_celsius{chip="coretemp",sensor="core_2"} 84 | ||
652 | node_hwmon_temp_max_celsius{chip="coretemp",sensor="core_3"} 84 | ||
653 | node_hwmon_temp_max_celsius{chip="coretemp",sensor="physical_id_0"} 84 | ||
460 | # HELP node_intr Total number of interrupts serviced. | 654 | # HELP node_intr Total number of interrupts serviced. |
461 | # TYPE node_intr counter | 655 | # TYPE node_intr counter |
462 | node_intr 8.885917e+06 | 656 | node_intr 8.885917e+06 |
@@ -1540,8 +1734,8 @@ node_sockstat_UDP_mem_bytes 0 | |||
1540 | node_sockstat_sockets_used 229 | 1734 | node_sockstat_sockets_used 229 |
1541 | # HELP node_textfile_mtime Unixtime mtime of textfiles successfully read. | 1735 | # HELP node_textfile_mtime Unixtime mtime of textfiles successfully read. |
1542 | # TYPE node_textfile_mtime gauge | 1736 | # TYPE node_textfile_mtime gauge |
1543 | node_textfile_mtime{file="metrics1.prom"} 1.451167666820433e+09 | 1737 | node_textfile_mtime{file="metrics1.prom"} 1.463773694e+09 |
1544 | node_textfile_mtime{file="metrics2.prom"} 1.451167666820433e+09 | 1738 | node_textfile_mtime{file="metrics2.prom"} 1.463773694e+09 |
1545 | # HELP node_textfile_scrape_error 1 if there was an error opening or reading a file, 0 otherwise | 1739 | # HELP node_textfile_scrape_error 1 if there was an error opening or reading a file, 0 otherwise |
1546 | # TYPE node_textfile_scrape_error gauge | 1740 | # TYPE node_textfile_scrape_error gauge |
1547 | node_textfile_scrape_error 0 | 1741 | node_textfile_scrape_error 0 |
@@ -1553,16 +1747,16 @@ process_cpu_seconds_total 0 | |||
1553 | process_max_fds 1024 | 1747 | process_max_fds 1024 |
1554 | # HELP process_open_fds Number of open file descriptors. | 1748 | # HELP process_open_fds Number of open file descriptors. |
1555 | # TYPE process_open_fds gauge | 1749 | # TYPE process_open_fds gauge |
1556 | process_open_fds 7 | 1750 | process_open_fds 8 |
1557 | # HELP process_resident_memory_bytes Resident memory size in bytes. | 1751 | # HELP process_resident_memory_bytes Resident memory size in bytes. |
1558 | # TYPE process_resident_memory_bytes gauge | 1752 | # TYPE process_resident_memory_bytes gauge |
1559 | process_resident_memory_bytes 1.23904e+07 | 1753 | process_resident_memory_bytes 1.1108352e+07 |
1560 | # HELP process_start_time_seconds Start time of the process since unix epoch in seconds. | 1754 | # HELP process_start_time_seconds Start time of the process since unix epoch in seconds. |
1561 | # TYPE process_start_time_seconds gauge | 1755 | # TYPE process_start_time_seconds gauge |
1562 | process_start_time_seconds 1.45121398864e+09 | 1756 | process_start_time_seconds 1.47509459587e+09 |
1563 | # HELP process_virtual_memory_bytes Virtual memory size in bytes. | 1757 | # HELP process_virtual_memory_bytes Virtual memory size in bytes. |
1564 | # TYPE process_virtual_memory_bytes gauge | 1758 | # TYPE process_virtual_memory_bytes gauge |
1565 | process_virtual_memory_bytes 1.30809856e+08 | 1759 | process_virtual_memory_bytes 2.0549632e+08 |
1566 | # HELP testmetric1_1 Metric read from collector/fixtures/textfile/two_metric_files/metrics1.prom | 1760 | # HELP testmetric1_1 Metric read from collector/fixtures/textfile/two_metric_files/metrics1.prom |
1567 | # TYPE testmetric1_1 untyped | 1761 | # TYPE testmetric1_1 untyped |
1568 | testmetric1_1{foo="bar"} 10 | 1762 | testmetric1_1{foo="bar"} 10 |
diff --git a/collector/fixtures/sys/class/hwmon/hwmon0 b/collector/fixtures/sys/class/hwmon/hwmon0 new file mode 120000 index 0000000..0d95805 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon0 | |||
@@ -0,0 +1 @@ | |||
../../devices/platform/coretemp.0/hwmon/hwmon0 \ No newline at end of file | |||
diff --git a/collector/fixtures/sys/class/hwmon/hwmon1 b/collector/fixtures/sys/class/hwmon/hwmon1 new file mode 120000 index 0000000..bfb5f22 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon1 | |||
@@ -0,0 +1 @@ | |||
../../devices/platform/nct6775.656/hwmon/hwmon1 \ No newline at end of file | |||
diff --git a/collector/fixtures/sys/class/hwmon/hwmon2 b/collector/fixtures/sys/class/hwmon/hwmon2 new file mode 120000 index 0000000..3a98f61 --- /dev/null +++ b/collector/fixtures/sys/class/hwmon/hwmon2 | |||
@@ -0,0 +1 @@ | |||
../../devices/platform/applesmc.768/hwmon/hwmon2 \ No newline at end of file | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_input b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_input new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_input | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_label b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_label new file mode 100644 index 0000000..ac8988c --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_label | |||
@@ -0,0 +1 @@ | |||
Left side | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_manual b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_manual new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_manual | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_max b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_max new file mode 100644 index 0000000..8abbad5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_max | |||
@@ -0,0 +1 @@ | |||
6156 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_min b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_min new file mode 100644 index 0000000..317509b --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_min | |||
@@ -0,0 +1 @@ | |||
2160 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_output b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_output new file mode 100644 index 0000000..317509b --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_output | |||
@@ -0,0 +1 @@ | |||
2160 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan1_safe b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_safe new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan1_safe | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_input b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_input new file mode 100644 index 0000000..1ff838f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_input | |||
@@ -0,0 +1 @@ | |||
1998 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_label b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_label new file mode 100644 index 0000000..b5b1ea6 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_label | |||
@@ -0,0 +1 @@ | |||
Right side | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_manual b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_manual new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_manual | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_max b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_max new file mode 100644 index 0000000..7a1f00d --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_max | |||
@@ -0,0 +1 @@ | |||
5700 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_min b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_min new file mode 100644 index 0000000..8bd1af1 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_min | |||
@@ -0,0 +1 @@ | |||
2000 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_output b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_output new file mode 100644 index 0000000..8bd1af1 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_output | |||
@@ -0,0 +1 @@ | |||
2000 | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/fan2_safe b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_safe new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/fan2_safe | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/hwmon/hwmon2/device b/collector/fixtures/sys/devices/platform/applesmc.768/hwmon/hwmon2/device new file mode 120000 index 0000000..6d0a2fe --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/hwmon/hwmon2/device | |||
@@ -0,0 +1 @@ | |||
../../../applesmc.768 \ No newline at end of file | |||
diff --git a/collector/fixtures/sys/devices/platform/applesmc.768/name b/collector/fixtures/sys/devices/platform/applesmc.768/name new file mode 100644 index 0000000..b47d174 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/applesmc.768/name | |||
@@ -0,0 +1 @@ | |||
applesmc | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/name b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/name new file mode 100644 index 0000000..77ce462 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/name | |||
@@ -0,0 +1 @@ | |||
coretemp | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit new file mode 100644 index 0000000..f7393e8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit | |||
@@ -0,0 +1 @@ | |||
100000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit_alarm b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_crit_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input new file mode 100644 index 0000000..2ef4768 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input | |||
@@ -0,0 +1 @@ | |||
55000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_label b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_label new file mode 100644 index 0000000..f93d047 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_label | |||
@@ -0,0 +1 @@ | |||
Physical id 0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_max b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_max new file mode 100644 index 0000000..9c2ebf5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_max | |||
@@ -0,0 +1 @@ | |||
84000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit new file mode 100644 index 0000000..f7393e8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit | |||
@@ -0,0 +1 @@ | |||
100000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit_alarm b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_crit_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input new file mode 100644 index 0000000..627c5c7 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input | |||
@@ -0,0 +1 @@ | |||
54000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_label b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_label new file mode 100644 index 0000000..09f8cbd --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_label | |||
@@ -0,0 +1 @@ | |||
Core 0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_max b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_max new file mode 100644 index 0000000..9c2ebf5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_max | |||
@@ -0,0 +1 @@ | |||
84000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit new file mode 100644 index 0000000..f7393e8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit | |||
@@ -0,0 +1 @@ | |||
100000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit_alarm b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_crit_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_input b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_input new file mode 100644 index 0000000..44a1fc2 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_input | |||
@@ -0,0 +1 @@ | |||
52000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_label b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_label new file mode 100644 index 0000000..e98a1da --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_label | |||
@@ -0,0 +1 @@ | |||
Core 1 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_max b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_max new file mode 100644 index 0000000..9c2ebf5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_max | |||
@@ -0,0 +1 @@ | |||
84000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit new file mode 100644 index 0000000..f7393e8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit | |||
@@ -0,0 +1 @@ | |||
100000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit_alarm b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_crit_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_input b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_input new file mode 100644 index 0000000..7f13265 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_input | |||
@@ -0,0 +1 @@ | |||
53000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_label b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_label new file mode 100644 index 0000000..18c8a0b --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_label | |||
@@ -0,0 +1 @@ | |||
Core 2 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_max b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_max new file mode 100644 index 0000000..9c2ebf5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_max | |||
@@ -0,0 +1 @@ | |||
84000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit new file mode 100644 index 0000000..f7393e8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit | |||
@@ -0,0 +1 @@ | |||
100000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit_alarm b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_crit_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_input b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_input new file mode 100644 index 0000000..ccfc37a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_input | |||
@@ -0,0 +1 @@ | |||
50000 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_label b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_label new file mode 100644 index 0000000..5ec08ee --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_label | |||
@@ -0,0 +1 @@ | |||
Core 3 | |||
diff --git a/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_max b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_max new file mode 100644 index 0000000..9c2ebf5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_max | |||
@@ -0,0 +1 @@ | |||
84000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_alarm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_beep b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_beep new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_beep | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_input b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_input new file mode 100644 index 0000000..e2bb11d --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_input | |||
@@ -0,0 +1 @@ | |||
1098 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_min b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_min new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_min | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_pulses b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_pulses new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_pulses | |||
@@ -0,0 +1 @@ | |||
2 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_target b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_target new file mode 100644 index 0000000..48fa3d2 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_target | |||
@@ -0,0 +1 @@ | |||
27000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_tolerance b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_tolerance new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/fan2_tolerance | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_alarm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_alarm new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_alarm | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_beep b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_beep new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_beep | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_input b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_input new file mode 100644 index 0000000..16331dd --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_input | |||
@@ -0,0 +1 @@ | |||
792 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_max b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_max new file mode 100644 index 0000000..548f0a5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_max | |||
@@ -0,0 +1 @@ | |||
1744 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_min b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_min new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in0_min | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_alarm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_alarm new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_alarm | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_beep b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_beep new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_beep | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_input b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_input new file mode 100644 index 0000000..d7b1c44 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_input | |||
@@ -0,0 +1 @@ | |||
1024 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_max b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_max new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_max | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_min b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_min new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/in1_min | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_alarm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_alarm new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_alarm | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_beep b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_beep new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion0_beep | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_alarm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_alarm new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_alarm | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_beep b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_beep new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/intrusion1_beep | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/name b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/name new file mode 100644 index 0000000..bddebf2 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/name | |||
@@ -0,0 +1 @@ | |||
nct6779 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_pwm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_pwm new file mode 100644 index 0000000..7f1ddd5 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_pwm | |||
@@ -0,0 +1 @@ | |||
153 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_temp new file mode 100644 index 0000000..3a05c8b --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point1_temp | |||
@@ -0,0 +1 @@ | |||
30000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_pwm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_pwm new file mode 100644 index 0000000..ace9d03 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_pwm | |||
@@ -0,0 +1 @@ | |||
255 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_temp new file mode 100644 index 0000000..5bf3711 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point2_temp | |||
@@ -0,0 +1 @@ | |||
70000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_pwm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_pwm new file mode 100644 index 0000000..ace9d03 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_pwm | |||
@@ -0,0 +1 @@ | |||
255 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_temp new file mode 100644 index 0000000..5bf3711 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point3_temp | |||
@@ -0,0 +1 @@ | |||
70000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_pwm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_pwm new file mode 100644 index 0000000..ace9d03 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_pwm | |||
@@ -0,0 +1 @@ | |||
255 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_temp new file mode 100644 index 0000000..5bf3711 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point4_temp | |||
@@ -0,0 +1 @@ | |||
70000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_pwm b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_pwm new file mode 100644 index 0000000..ace9d03 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_pwm | |||
@@ -0,0 +1 @@ | |||
255 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_temp new file mode 100644 index 0000000..f2617ca --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_auto_point5_temp | |||
@@ -0,0 +1 @@ | |||
75000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_crit_temp_tolerance b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_crit_temp_tolerance new file mode 100644 index 0000000..8bd1af1 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_crit_temp_tolerance | |||
@@ -0,0 +1 @@ | |||
2000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_enable b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_enable new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_enable | |||
@@ -0,0 +1 @@ | |||
5 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_floor b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_floor new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_floor | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_mode b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_mode new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_mode | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_start b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_start new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_start | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_down_time b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_down_time new file mode 100644 index 0000000..29d6383 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_down_time | |||
@@ -0,0 +1 @@ | |||
100 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_up_time b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_up_time new file mode 100644 index 0000000..29d6383 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_step_up_time | |||
@@ -0,0 +1 @@ | |||
100 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_stop_time b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_stop_time new file mode 100644 index 0000000..a77fd92 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_stop_time | |||
@@ -0,0 +1 @@ | |||
6000 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_target_temp b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_target_temp new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_target_temp | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_sel b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_sel new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_sel | |||
@@ -0,0 +1 @@ | |||
7 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_tolerance b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_tolerance new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_temp_tolerance | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_base b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_base new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_base | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_step b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_step new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_duty_step | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_sel b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_sel new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_sel | |||
@@ -0,0 +1 @@ | |||
1 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_base b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_base new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_base | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_tol b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_tol new file mode 100644 index 0000000..573541a --- /dev/null +++ b/collector/fixtures/sys/devices/platform/nct6775.656/hwmon/hwmon1/pwm1_weight_temp_step_tol | |||
@@ -0,0 +1 @@ | |||
0 | |||
diff --git a/collector/hwmon_linux.go b/collector/hwmon_linux.go new file mode 100644 index 0000000..4ee1bc0 --- /dev/null +++ b/collector/hwmon_linux.go | |||
@@ -0,0 +1,386 @@ | |||
1 | // Copyright 2016 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 !nohwmon | ||
15 | |||
16 | package collector | ||
17 | |||
18 | import ( | ||
19 | "errors" | ||
20 | "io/ioutil" | ||
21 | "os" | ||
22 | "path" | ||
23 | "path/filepath" | ||
24 | "regexp" | ||
25 | "strconv" | ||
26 | "strings" | ||
27 | |||
28 | "github.com/prometheus/client_golang/prometheus" | ||
29 | ) | ||
30 | |||
31 | const ( | ||
32 | hwMonSubsystem = "hwmon" | ||
33 | ) | ||
34 | |||
35 | var ( | ||
36 | hwmonInvalidMetricChars = regexp.MustCompile("[^a-z0-9:_]") | ||
37 | hwmonFilenameFormat = regexp.MustCompile(`^(?P<type>[^0-9]+)(?P<id>[0-9]*)?(_(?P<property>.+))?$`) | ||
38 | hwmonLabelDesc = []string{"chip", "sensor"} | ||
39 | hwmonSensorTypes = []string{ | ||
40 | "vrm", "beep_enable", "update_interval", "in", "cpu", "fan", | ||
41 | "pwm", "temp", "curr", "power", "energy", "humidity", | ||
42 | "intrusion", | ||
43 | } | ||
44 | ) | ||
45 | |||
46 | func init() { | ||
47 | Factories["hwmon"] = NewHwMonCollector | ||
48 | } | ||
49 | |||
50 | type hwMonCollector struct{} | ||
51 | |||
52 | // Takes a prometheus registry and returns a new Collector exposing | ||
53 | // /sys/class/hwmon stats (similar to lm-sensors). | ||
54 | func NewHwMonCollector() (Collector, error) { | ||
55 | return &hwMonCollector{}, nil | ||
56 | } | ||
57 | |||
58 | func cleanMetricName(name string) string { | ||
59 | lower := strings.ToLower(name) | ||
60 | replaced := hwmonInvalidMetricChars.ReplaceAllLiteralString(lower, "_") | ||
61 | cleaned := strings.Trim(replaced, "_") | ||
62 | return cleaned | ||
63 | } | ||
64 | |||
65 | func addValueFile(data map[string]map[string]string, sensor string, prop string, file string) { | ||
66 | raw, e := ioutil.ReadFile(file) | ||
67 | if e != nil { | ||
68 | return | ||
69 | } | ||
70 | value := strings.Trim(string(raw), "\n") | ||
71 | |||
72 | if _, ok := data[sensor]; !ok { | ||
73 | data[sensor] = make(map[string]string) | ||
74 | } | ||
75 | |||
76 | data[sensor][prop] = value | ||
77 | } | ||
78 | |||
79 | // Split a sensor name into <type><num>_<property> | ||
80 | func explodeSensorFilename(filename string) (ok bool, sensorType string, sensorNum int, sensorProperty string) { | ||
81 | matches := hwmonFilenameFormat.FindStringSubmatch(filename) | ||
82 | if len(matches) == 0 { | ||
83 | return false, sensorType, sensorNum, sensorProperty | ||
84 | } | ||
85 | for i, match := range hwmonFilenameFormat.SubexpNames() { | ||
86 | if i >= len(matches) { | ||
87 | return true, sensorType, sensorNum, sensorProperty | ||
88 | } | ||
89 | if match == "type" { | ||
90 | sensorType = matches[i] | ||
91 | } | ||
92 | if match == "property" { | ||
93 | sensorProperty = matches[i] | ||
94 | } | ||
95 | if match == "id" && len(matches[i]) > 0 { | ||
96 | if num, err := strconv.Atoi(matches[i]); err == nil { | ||
97 | sensorNum = num | ||
98 | } else { | ||
99 | return false, sensorType, sensorNum, sensorProperty | ||
100 | } | ||
101 | } | ||
102 | } | ||
103 | return true, sensorType, sensorNum, sensorProperty | ||
104 | } | ||
105 | |||
106 | func collectSensorData(dir string, data map[string]map[string]string) (err error) { | ||
107 | sensorFiles, dirError := ioutil.ReadDir(dir) | ||
108 | if dirError != nil { | ||
109 | return dirError | ||
110 | } | ||
111 | for _, file := range sensorFiles { | ||
112 | filename := file.Name() | ||
113 | ok, sensorType, sensorNum, sensorProperty := explodeSensorFilename(filename) | ||
114 | if !ok { | ||
115 | continue | ||
116 | } | ||
117 | |||
118 | for _, t := range hwmonSensorTypes { | ||
119 | if t == sensorType { | ||
120 | addValueFile(data, sensorType+strconv.Itoa(sensorNum), sensorProperty, path.Join(dir, file.Name())) | ||
121 | break | ||
122 | } | ||
123 | } | ||
124 | } | ||
125 | return nil | ||
126 | } | ||
127 | |||
128 | func (c *hwMonCollector) updateHwmon(ch chan<- prometheus.Metric, dir string) (err error) { | ||
129 | hwmonName, err := c.hwmonName(dir) | ||
130 | if err != nil { | ||
131 | return err | ||
132 | } | ||
133 | |||
134 | data := make(map[string]map[string]string) | ||
135 | err = collectSensorData(dir, data) | ||
136 | if err != nil { | ||
137 | return err | ||
138 | } | ||
139 | if _, err := os.Stat(path.Join(dir, "device")); err == nil { | ||
140 | err := collectSensorData(path.Join(dir, "device"), data) | ||
141 | if err != nil { | ||
142 | return err | ||
143 | } | ||
144 | } | ||
145 | |||
146 | // format all sensors | ||
147 | for sensor, sensorData := range data { | ||
148 | |||
149 | _, sensorType, _, _ := explodeSensorFilename(sensor) | ||
150 | |||
151 | if labelText, ok := sensorData["label"]; ok { | ||
152 | label := cleanMetricName(labelText) | ||
153 | if label != "" { | ||
154 | sensor = label | ||
155 | } | ||
156 | } | ||
157 | labels := []string{hwmonName, sensor} | ||
158 | |||
159 | if sensorType == "beep_enable" { | ||
160 | value := 0.0 | ||
161 | if sensorData[""] == "1" { | ||
162 | value = 1.0 | ||
163 | } | ||
164 | metricName := "node_hwmon_beep_enabled" | ||
165 | desc := prometheus.NewDesc(metricName, "Hardware beep enabled", hwmonLabelDesc, nil) | ||
166 | ch <- prometheus.MustNewConstMetric( | ||
167 | desc, prometheus.GaugeValue, value, labels...) | ||
168 | continue | ||
169 | } | ||
170 | if sensorType == "vrm" { | ||
171 | parsedValue, err := strconv.ParseFloat(sensorData[""], 64) | ||
172 | if err != nil { | ||
173 | continue | ||
174 | } | ||
175 | metricName := "node_hwmon_voltage_regulator_version" | ||
176 | desc := prometheus.NewDesc(metricName, "Hardware voltage regulator", hwmonLabelDesc, nil) | ||
177 | ch <- prometheus.MustNewConstMetric( | ||
178 | desc, prometheus.GaugeValue, parsedValue, labels...) | ||
179 | continue | ||
180 | } | ||
181 | if sensorType == "update_interval" { | ||
182 | parsedValue, err := strconv.ParseFloat(sensorData[""], 64) | ||
183 | if err != nil { | ||
184 | continue | ||
185 | } | ||
186 | metricName := "node_hwmon_update_interval_seconds" | ||
187 | desc := prometheus.NewDesc(metricName, "Hardware monitor update interval", hwmonLabelDesc, nil) | ||
188 | ch <- prometheus.MustNewConstMetric( | ||
189 | desc, prometheus.GaugeValue, parsedValue*0.001, labels...) | ||
190 | continue | ||
191 | } | ||
192 | |||
193 | prefix := "node_hwmon_" + sensorType | ||
194 | |||
195 | for element, value := range sensorData { | ||
196 | |||
197 | if element == "label" { | ||
198 | continue | ||
199 | } | ||
200 | |||
201 | name := prefix | ||
202 | if element == "input" { | ||
203 | // input is actually the value | ||
204 | if _, ok := sensorData[""]; ok { | ||
205 | name = name + "_input" | ||
206 | } | ||
207 | } else if element != "" { | ||
208 | name = name + "_" + cleanMetricName(element) | ||
209 | } | ||
210 | parsedValue, err := strconv.ParseFloat(value, 64) | ||
211 | if err != nil { | ||
212 | continue | ||
213 | } | ||
214 | |||
215 | // special elements, fault, alarm & beep should be handed out without units | ||
216 | if element == "fault" || element == "alarm" { | ||
217 | desc := prometheus.NewDesc(name, "Hardware sensor "+element+" status ("+sensorType+")", hwmonLabelDesc, nil) | ||
218 | ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, parsedValue, labels...) | ||
219 | continue | ||
220 | } | ||
221 | if element == "beep" { | ||
222 | desc := prometheus.NewDesc(name+"_enabled", "Hardware monitor sensor has beeping enabled", hwmonLabelDesc, nil) | ||
223 | ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, parsedValue, labels...) | ||
224 | continue | ||
225 | } | ||
226 | |||
227 | // everything else should get a unit | ||
228 | if sensorType == "in" || sensorType == "cpu" { | ||
229 | desc := prometheus.NewDesc(name+"_volts", "Hardware monitor for voltage ("+element+")", hwmonLabelDesc, nil) | ||
230 | ch <- prometheus.MustNewConstMetric( | ||
231 | desc, prometheus.GaugeValue, parsedValue*0.001, labels...) | ||
232 | continue | ||
233 | } | ||
234 | if sensorType == "temp" && element != "type" { | ||
235 | desc := prometheus.NewDesc(name+"_celsius", "Hardware monitor for temperature ("+element+")", hwmonLabelDesc, nil) | ||
236 | ch <- prometheus.MustNewConstMetric( | ||
237 | desc, prometheus.GaugeValue, parsedValue*0.001, labels...) | ||
238 | continue | ||
239 | } | ||
240 | if sensorType == "curr" { | ||
241 | desc := prometheus.NewDesc(name+"_amps", "Hardware monitor for current ("+element+")", hwmonLabelDesc, nil) | ||
242 | ch <- prometheus.MustNewConstMetric( | ||
243 | desc, prometheus.GaugeValue, parsedValue*0.001, labels...) | ||
244 | continue | ||
245 | } | ||
246 | if sensorType == "energy" { | ||
247 | desc := prometheus.NewDesc(name+"_joule_total", "Hardware monitor for joules used so far ("+element+")", hwmonLabelDesc, nil) | ||
248 | ch <- prometheus.MustNewConstMetric( | ||
249 | desc, prometheus.CounterValue, parsedValue/1000000.0, labels...) | ||
250 | continue | ||
251 | } | ||
252 | if sensorType == "power" && element == "accuracy" { | ||
253 | desc := prometheus.NewDesc(name, "Hardware monitor power meter accuracy, as a ratio", hwmonLabelDesc, nil) | ||
254 | ch <- prometheus.MustNewConstMetric( | ||
255 | desc, prometheus.GaugeValue, parsedValue/1000000.0, labels...) | ||
256 | continue | ||
257 | } | ||
258 | if sensorType == "power" && (element == "average_interval" || element == "average_interval_min" || element == "average_interval_max") { | ||
259 | desc := prometheus.NewDesc(name+"_seconds", "Hardware monitor power usage update interval ("+element+")", hwmonLabelDesc, nil) | ||
260 | ch <- prometheus.MustNewConstMetric( | ||
261 | desc, prometheus.GaugeValue, parsedValue*0.001, labels...) | ||
262 | continue | ||
263 | } | ||
264 | if sensorType == "power" { | ||
265 | desc := prometheus.NewDesc(name+"_watt", "Hardware monitor for power usage in watts ("+element+")", hwmonLabelDesc, nil) | ||
266 | ch <- prometheus.MustNewConstMetric( | ||
267 | desc, prometheus.GaugeValue, parsedValue/1000000.0, labels...) | ||
268 | continue | ||
269 | } | ||
270 | |||
271 | if sensorType == "humidity" { | ||
272 | desc := prometheus.NewDesc(name, "Hardware monitor for humidity, as a ratio (multiply with 100.0 to get the humidity as a percentage) ("+element+")", hwmonLabelDesc, nil) | ||
273 | ch <- prometheus.MustNewConstMetric( | ||
274 | desc, prometheus.GaugeValue, parsedValue/1000000.0, labels...) | ||
275 | continue | ||
276 | } | ||
277 | |||
278 | if sensorType == "fan" && (element == "input" || element == "min" || element == "max" || element == "target") { | ||
279 | desc := prometheus.NewDesc(name+"_rpm", "Hardware monitor for fan revolutions per minute ("+element+")", hwmonLabelDesc, nil) | ||
280 | ch <- prometheus.MustNewConstMetric( | ||
281 | desc, prometheus.GaugeValue, parsedValue, labels...) | ||
282 | continue | ||
283 | } | ||
284 | |||
285 | // fallback, just dump the metric as is | ||
286 | |||
287 | desc := prometheus.NewDesc(name, "Hardware monitor "+sensorType+" element "+element, hwmonLabelDesc, nil) | ||
288 | ch <- prometheus.MustNewConstMetric( | ||
289 | desc, prometheus.GaugeValue, parsedValue, labels...) | ||
290 | } | ||
291 | } | ||
292 | |||
293 | return nil | ||
294 | } | ||
295 | |||
296 | func (c *hwMonCollector) hwmonName(dir string) (string, error) { | ||
297 | // generate a name for a sensor path | ||
298 | |||
299 | // sensor numbering depends on the order of linux module loading and | ||
300 | // is thus unstable. | ||
301 | // However the path of the device has to be stable: | ||
302 | // - /sys/devices/<bus>/<device> | ||
303 | // Some hardware monitors have a "name" file that exports a human | ||
304 | // readbale name that can be used. | ||
305 | |||
306 | // human readable names would be bat0 or coretemp, while a path string | ||
307 | // could be platform_applesmc.768 | ||
308 | |||
309 | // preference 1: is there a name file | ||
310 | |||
311 | sysnameRaw, nameErr := ioutil.ReadFile(path.Join(dir, "name")) | ||
312 | if nameErr == nil && string(sysnameRaw) != "" { | ||
313 | cleanName := cleanMetricName(string(sysnameRaw)) | ||
314 | if cleanName != "" { | ||
315 | return cleanName, nil | ||
316 | } | ||
317 | } | ||
318 | |||
319 | // preference 2: construct a name based on device | ||
320 | |||
321 | devicePath, devErr := filepath.EvalSymlinks(path.Join(dir, "device")) | ||
322 | if devErr == nil { | ||
323 | devPathPrefix, devName := path.Split(devicePath) | ||
324 | _, devType := path.Split(devPathPrefix) | ||
325 | |||
326 | cleanDevName := cleanMetricName(devName) | ||
327 | cleanDevType := cleanMetricName(devType) | ||
328 | |||
329 | if cleanDevType != "" && cleanDevName != "" { | ||
330 | return cleanDevType + "_" + cleanDevName, nil | ||
331 | } | ||
332 | |||
333 | if cleanDevName != "" { | ||
334 | return cleanDevName, nil | ||
335 | } | ||
336 | } | ||
337 | |||
338 | // it looks bad, name and device don't provide enough information | ||
339 | // return a hwmon[0-9]* name | ||
340 | |||
341 | realDir, err := filepath.EvalSymlinks(dir) | ||
342 | if err != nil { | ||
343 | return "", err | ||
344 | } | ||
345 | |||
346 | // take the last path element, this will be hwmonX | ||
347 | _, name := path.Split(realDir) | ||
348 | cleanName := cleanMetricName(name) | ||
349 | if cleanName != "" { | ||
350 | return cleanName, nil | ||
351 | } | ||
352 | return "", errors.New("Could not derive a monitoring name for " + dir) | ||
353 | } | ||
354 | |||
355 | func (c *hwMonCollector) Update(ch chan<- prometheus.Metric) (err error) { | ||
356 | // Step 1: scan /sys/class/hwmon, resolve all symlinks and call | ||
357 | // updatesHwmon for each folder | ||
358 | |||
359 | hwmonPathName := path.Join(sysFilePath("class"), "hwmon") | ||
360 | |||
361 | hwmonFiles, err := ioutil.ReadDir(hwmonPathName) | ||
362 | if err != nil { | ||
363 | return err | ||
364 | } | ||
365 | |||
366 | for _, hwDir := range hwmonFiles { | ||
367 | hwmonXPathName := path.Join(hwmonPathName, hwDir.Name()) | ||
368 | |||
369 | if hwDir.Mode()&os.ModeSymlink > 0 { | ||
370 | hwDir, err = os.Stat(hwmonXPathName) | ||
371 | if err != nil { | ||
372 | continue | ||
373 | } | ||
374 | } | ||
375 | |||
376 | if !hwDir.IsDir() { | ||
377 | continue | ||
378 | } | ||
379 | |||
380 | if lastErr := c.updateHwmon(ch, hwmonXPathName); lastErr != nil { | ||
381 | err = lastErr | ||
382 | } | ||
383 | } | ||
384 | |||
385 | return err | ||
386 | } | ||
diff --git a/end-to-end-test.sh b/end-to-end-test.sh index 89f799f..4e4ba41 100755 --- a/end-to-end-test.sh +++ b/end-to-end-test.sh | |||
@@ -7,6 +7,7 @@ collectors=$(cat << COLLECTORS | |||
7 | diskstats | 7 | diskstats |
8 | entropy | 8 | entropy |
9 | filefd | 9 | filefd |
10 | hwmon | ||
10 | ksmd | 11 | ksmd |
11 | loadavg | 12 | loadavg |
12 | mdadm | 13 | mdadm |
diff --git a/node_exporter.go b/node_exporter.go index 1e5594a..52d76b4 100644 --- a/node_exporter.go +++ b/node_exporter.go | |||
@@ -31,7 +31,7 @@ import ( | |||
31 | ) | 31 | ) |
32 | 32 | ||
33 | const ( | 33 | const ( |
34 | defaultCollectors = "conntrack,cpu,diskstats,entropy,filefd,filesystem,loadavg,mdadm,meminfo,netdev,netstat,sockstat,stat,textfile,time,uname,vmstat" | 34 | defaultCollectors = "conntrack,cpu,diskstats,entropy,filefd,filesystem,hwmon,loadavg,mdadm,meminfo,netdev,netstat,sockstat,stat,textfile,time,uname,vmstat" |
35 | ) | 35 | ) |
36 | 36 | ||
37 | var ( | 37 | var ( |