kostya-sigar 2.0.4 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +20 -11
- data/bindings/ruby/rbsigar.c +1 -0
- data/src/os/darwin/darwin_sigar.c +98 -17
- data/src/os/linux/linux_sigar.c +4 -0
- data/src/os/linux/sigar_os.h +1 -1
- data/version.properties +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d4ed0dac36500acd35935a9d6f13a45e7250c733a910b67d722797b00c753720
|
4
|
+
data.tar.gz: af50d7946e54ca9fd8435de5f1090ce5118574f856e317227fa61f3fb2c9c7ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 864a0d980320b58574072b5aaed90245483b146eb3e315c45fce29a97d9fec3d93a4832b023c90105e5ecfe8c268c80f8f49f9335012abadc47a7f112f82768e
|
7
|
+
data.tar.gz: 32b31ca9c561a6154bb51a51357a472bb62a37c1079ac2053d5b13950b614d5c67fd5fee5a49034e559389b07799c2db9e406df4acfa443befbfdd714f221b33
|
data/README.md
CHANGED
@@ -1,22 +1,31 @@
|
|
1
1
|
# System Information Gatherer And Reporter.
|
2
2
|
|
3
|
-
Fork of hyperic/sigar with some fixes. Support only ruby binding.
|
3
|
+
Fork of hyperic/sigar with some fixes. Support only ruby binding. Part of [Eye gem](https://github.com/kostya/eye).
|
4
4
|
|
5
5
|
## Fixed:
|
6
6
|
|
7
|
-
[2.0.
|
8
|
-
*
|
9
|
-
* bug undefined symbol: sigar_skip_token, [#60](https://github.com/hyperic/sigar/pull/60)([commit](https://github.com/kostya/sigar/commit/dfe8fe))
|
10
|
-
* bug detection boot_time on linux (now it works like gnu ps, and fix some issues with process start_time) ([commit](https://github.com/kostya/sigar/commit/660259))
|
7
|
+
### [2.0.7] 02-10-2020
|
8
|
+
* Fix compilation on MacOS [#6](https://github.com/kostya/sigar/issues/8)([commit](https://github.com/kostya/sigar/pull/9/commits/ad39547629fa328e115f7d7bc3c7c358247d1961))
|
11
9
|
|
12
|
-
[2.0.
|
13
|
-
*
|
10
|
+
### [2.0.6] 18-01-2019
|
11
|
+
* Fix compilation on FreeBSD 12 [#6](https://github.com/kostya/sigar/issues/6)([commit](https://github.com/kostya/sigar/commit/2bb67fa1bf6f6f0ddc2626cf028bcc0e4a8cb377))
|
12
|
+
|
13
|
+
### [2.0.5] 02-12-2018
|
14
|
+
* Fix compilation with musl libc [#4](https://github.com/kostya/sigar/pull/4)([commit](https://github.com/kostya/sigar/pull/4/commits/cd07923dd2ed34aca353dfd182f2f85c13853fd9))
|
15
|
+
|
16
|
+
### [2.0.4] 10-06-2018
|
17
|
+
* fix compilation with glibc 2.26, major/minor functions [#2](https://github.com/kostya/sigar/issues/2)([commit](https://github.com/kostya/sigar/commit/a2c67588d0f686e0007dadcaf0e4bbb35c0e1e83))
|
14
18
|
|
15
|
-
[2.0.2]
|
16
|
-
* Remove obsolete rpc usage (fix compilation fail with glibc 2.27) ([commit](https://github.com/kostya/sigar/commit/a971b9e8e1443fdf236c5ffa199c1994c05fcd4b))
|
19
|
+
### [2.0.2] 30-05-2018
|
20
|
+
* Remove obsolete rpc usage (fix compilation fail with glibc 2.27) [#213](https://github.com/kostya/eye/issues/213)([commit](https://github.com/kostya/sigar/commit/a971b9e8e1443fdf236c5ffa199c1994c05fcd4b))
|
17
21
|
|
18
|
-
[2.0.
|
19
|
-
*
|
22
|
+
### [2.0.1] 10-04-2018
|
23
|
+
* FreeBSD: don't use v_cache_min/max [#68](https://github.com/hyperic/sigar/pull/68)([commit](https://github.com/kostya/sigar/commit/800076db97bcacb1ba90805d740b4f9a5a1d3cca))
|
24
|
+
|
25
|
+
### [2.0.0] 22-01-2018
|
26
|
+
* sigfaulted logger, [#28](https://github.com/hyperic/sigar/pull/28)([commit](https://github.com/kostya/sigar/commit/c2a1af))
|
27
|
+
* bug undefined symbol: sigar_skip_token, [#60](https://github.com/hyperic/sigar/pull/60)([commit](https://github.com/kostya/sigar/commit/dfe8fe))
|
28
|
+
* bug detection boot_time on linux (now it works like gnu ps, and fix some issues with process start_time) ([commit](https://github.com/kostya/sigar/commit/660259))
|
20
29
|
|
21
30
|
|
22
31
|
## Installation:
|
data/bindings/ruby/rbsigar.c
CHANGED
@@ -123,6 +123,69 @@
|
|
123
123
|
#endif
|
124
124
|
|
125
125
|
#if defined(SIGAR_FREEBSD5)
|
126
|
+
#if __FreeBSD_version >= 1200028
|
127
|
+
#define VMMETER_TYPE uint64_t
|
128
|
+
#else
|
129
|
+
#define VMMETER_TYPE u_int
|
130
|
+
#endif
|
131
|
+
struct __vmmeter {
|
132
|
+
VMMETER_TYPE v_vm_faults;
|
133
|
+
VMMETER_TYPE v_io_faults;
|
134
|
+
VMMETER_TYPE v_cow_faults;
|
135
|
+
VMMETER_TYPE v_cow_optim;
|
136
|
+
VMMETER_TYPE v_zfod;
|
137
|
+
VMMETER_TYPE v_ozfod;
|
138
|
+
VMMETER_TYPE v_swapin;
|
139
|
+
VMMETER_TYPE v_swapout;
|
140
|
+
VMMETER_TYPE v_swappgsin;
|
141
|
+
VMMETER_TYPE v_swappgsout;
|
142
|
+
VMMETER_TYPE v_vnodein;
|
143
|
+
VMMETER_TYPE v_vnodeout;
|
144
|
+
VMMETER_TYPE v_vnodepgsin;
|
145
|
+
VMMETER_TYPE v_vnodepgsout;
|
146
|
+
VMMETER_TYPE v_intrans;
|
147
|
+
VMMETER_TYPE v_reactivated;
|
148
|
+
VMMETER_TYPE v_pdwakeups;
|
149
|
+
VMMETER_TYPE v_pdpages;
|
150
|
+
VMMETER_TYPE v_pdshortfalls;
|
151
|
+
VMMETER_TYPE v_dfree;
|
152
|
+
VMMETER_TYPE v_pfree;
|
153
|
+
VMMETER_TYPE v_tfree;
|
154
|
+
VMMETER_TYPE v_forks;
|
155
|
+
VMMETER_TYPE v_vforks;
|
156
|
+
VMMETER_TYPE v_rforks;
|
157
|
+
VMMETER_TYPE v_kthreads;
|
158
|
+
VMMETER_TYPE v_forkpages;
|
159
|
+
VMMETER_TYPE v_vforkpages;
|
160
|
+
VMMETER_TYPE v_rforkpages;
|
161
|
+
VMMETER_TYPE v_kthreadpages;
|
162
|
+
VMMETER_TYPE v_swtch;
|
163
|
+
VMMETER_TYPE v_syscall;
|
164
|
+
VMMETER_TYPE v_trap;
|
165
|
+
VMMETER_TYPE v_intr;
|
166
|
+
VMMETER_TYPE v_soft;
|
167
|
+
u_int v_page_size;
|
168
|
+
u_int v_page_count;
|
169
|
+
u_int v_free_reserved;
|
170
|
+
u_int v_free_target;
|
171
|
+
u_int v_free_min;
|
172
|
+
u_int v_free_count;
|
173
|
+
u_int v_wire_count;
|
174
|
+
u_int v_active_count;
|
175
|
+
u_int v_inactive_target;
|
176
|
+
u_int v_inactive_count;
|
177
|
+
u_int v_laundry_count;
|
178
|
+
u_int v_pageout_free_min;
|
179
|
+
u_int v_interrupt_free_min;
|
180
|
+
u_int v_free_severe;
|
181
|
+
#if (__FreeBSD_version < 1200016)
|
182
|
+
u_int v_cache_count;
|
183
|
+
#endif
|
184
|
+
#if (__FreeBSD_version < 1100079)
|
185
|
+
u_int v_cache_min;
|
186
|
+
u_int v_cache_max;
|
187
|
+
#endif
|
188
|
+
};
|
126
189
|
|
127
190
|
#define KI_FD ki_fd
|
128
191
|
#define KI_PID ki_pid
|
@@ -342,24 +405,21 @@ static int sigar_vmstat(sigar_t *sigar, vm_statistics_data_t *vmstat)
|
|
342
405
|
}
|
343
406
|
}
|
344
407
|
#elif defined(__FreeBSD__)
|
345
|
-
static int sigar_vmstat(sigar_t *sigar, struct
|
408
|
+
static int sigar_vmstat(sigar_t *sigar, struct __vmmeter *vmstat)
|
346
409
|
{
|
347
|
-
|
348
|
-
size_t size = sizeof(unsigned int);
|
349
|
-
|
350
|
-
status = kread(sigar, vmstat, sizeof(*vmstat),
|
351
|
-
sigar->koffsets[KOFFSET_VMMETER]);
|
352
|
-
|
353
|
-
if (status == SIGAR_OK) {
|
354
|
-
return SIGAR_OK;
|
355
|
-
}
|
410
|
+
size_t size;
|
356
411
|
|
357
412
|
SIGAR_ZERO(vmstat);
|
358
413
|
|
359
414
|
/* derived from src/usr.bin/vmstat/vmstat.c */
|
360
415
|
/* only collect the ones we actually use */
|
361
|
-
#define GET_VM_STATS(cat, name, used) \
|
362
|
-
|
416
|
+
#define GET_VM_STATS(cat, name, used) do { \
|
417
|
+
if (used) { \
|
418
|
+
size = sizeof(vmstat->name); \
|
419
|
+
sysctlbyname("vm.stats." #cat "." #name, &vmstat->name, \
|
420
|
+
&size, NULL, 0); \
|
421
|
+
} \
|
422
|
+
} while (0)
|
363
423
|
|
364
424
|
/* sys */
|
365
425
|
GET_VM_STATS(sys, v_swtch, 0);
|
@@ -399,10 +459,12 @@ static int sigar_vmstat(sigar_t *sigar, struct vmmeter *vmstat)
|
|
399
459
|
GET_VM_STATS(vm, v_active_count, 0);
|
400
460
|
GET_VM_STATS(vm, v_inactive_target, 0);
|
401
461
|
GET_VM_STATS(vm, v_inactive_count, 1);
|
462
|
+
#if (__FreeBSD_version < 1200016 )
|
402
463
|
GET_VM_STATS(vm, v_cache_count, 1);
|
403
|
-
#
|
404
|
-
|
405
|
-
|
464
|
+
#endif
|
465
|
+
#if (__FreeBSD_version < 1100079 )
|
466
|
+
GET_VM_STATS(vm, v_cache_min, 0);
|
467
|
+
GET_VM_STATS(vm, v_cache_max, 0);
|
406
468
|
#endif
|
407
469
|
GET_VM_STATS(vm, v_pageout_free_min, 0);
|
408
470
|
GET_VM_STATS(vm, v_interrupt_free_min, 0);
|
@@ -442,7 +504,7 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
|
442
504
|
unsigned long mem_total;
|
443
505
|
#endif
|
444
506
|
#if defined(__FreeBSD__)
|
445
|
-
struct
|
507
|
+
struct __vmmeter vmstat;
|
446
508
|
#elif defined(__OpenBSD__) || defined(__NetBSD__)
|
447
509
|
struct uvmexp vmstat;
|
448
510
|
#endif
|
@@ -481,7 +543,11 @@ int sigar_mem_get(sigar_t *sigar, sigar_mem_t *mem)
|
|
481
543
|
kern *= sigar->pagesize;
|
482
544
|
#elif defined(__FreeBSD__)
|
483
545
|
if ((status = sigar_vmstat(sigar, &vmstat)) == SIGAR_OK) {
|
546
|
+
#if (__FreeBSD_version < 1200016 )
|
484
547
|
kern = vmstat.v_cache_count + vmstat.v_inactive_count;
|
548
|
+
#else
|
549
|
+
kern = vmstat.v_inactive_count;
|
550
|
+
#endif
|
485
551
|
kern *= sigar->pagesize;
|
486
552
|
mem->free = vmstat.v_free_count;
|
487
553
|
mem->free *= sigar->pagesize;
|
@@ -691,7 +757,7 @@ int sigar_swap_get(sigar_t *sigar, sigar_swap_t *swap)
|
|
691
757
|
swap->page_out = vmstat.pageouts;
|
692
758
|
#elif defined(__FreeBSD__)
|
693
759
|
struct kvm_swap kswap[1];
|
694
|
-
struct
|
760
|
+
struct __vmmeter vmstat;
|
695
761
|
|
696
762
|
if (getswapinfo_sysctl(kswap, 1) != SIGAR_OK) {
|
697
763
|
if (!sigar->kmem) {
|
@@ -3057,8 +3123,13 @@ static int net_connection_get(sigar_net_connection_walker_t *walker, int proto)
|
|
3057
3123
|
int type, istcp = 0;
|
3058
3124
|
char *buf;
|
3059
3125
|
const char *mibvar;
|
3126
|
+
#if defined(__FreeBSD__) && (__FreeBSD_version >= 1200026)
|
3127
|
+
struct xtcpcb *tp = NULL;
|
3128
|
+
struct xinpcb *inp;
|
3129
|
+
#else
|
3060
3130
|
struct tcpcb *tp = NULL;
|
3061
3131
|
struct inpcb *inp;
|
3132
|
+
#endif
|
3062
3133
|
struct xinpgen *xig, *oxig;
|
3063
3134
|
struct xsocket *so;
|
3064
3135
|
size_t len;
|
@@ -3096,6 +3167,15 @@ static int net_connection_get(sigar_net_connection_walker_t *walker, int proto)
|
|
3096
3167
|
xig->xig_len > sizeof(struct xinpgen);
|
3097
3168
|
xig = (struct xinpgen *)((char *)xig + xig->xig_len))
|
3098
3169
|
{
|
3170
|
+
#if defined(__FreeBSD__) && (__FreeBSD_version >= 1200026)
|
3171
|
+
if (istcp) {
|
3172
|
+
tp = (struct xtcpcb *)xig;
|
3173
|
+
inp = &tp->xt_inp;
|
3174
|
+
} else {
|
3175
|
+
inp = (struct xinpcb *)xig;
|
3176
|
+
}
|
3177
|
+
so = &inp->xi_socket;
|
3178
|
+
#else
|
3099
3179
|
if (istcp) {
|
3100
3180
|
struct xtcpcb *cb = (struct xtcpcb *)xig;
|
3101
3181
|
tp = &cb->xt_tp;
|
@@ -3107,6 +3187,7 @@ static int net_connection_get(sigar_net_connection_walker_t *walker, int proto)
|
|
3107
3187
|
inp = &cb->xi_inp;
|
3108
3188
|
so = &cb->xi_socket;
|
3109
3189
|
}
|
3190
|
+
#endif
|
3110
3191
|
|
3111
3192
|
if (so->xso_protocol != proto) {
|
3112
3193
|
continue;
|
data/src/os/linux/linux_sigar.c
CHANGED
data/src/os/linux/sigar_os.h
CHANGED
data/version.properties
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kostya-sigar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Doug MacEachern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: System Information Gatherer And Reporter
|
14
14
|
email: sigar-users@hyperic.org
|
@@ -82,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
requirements: []
|
85
|
-
|
86
|
-
rubygems_version: 2.4.5
|
85
|
+
rubygems_version: 3.1.2
|
87
86
|
signing_key:
|
88
87
|
specification_version: 4
|
89
88
|
summary: System Information Gatherer And Reporter
|