peep 0.6 → 0.7
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.
- data.tar.gz.sig +2 -2
- data/CHANGELOG +2 -0
- data/README +1 -1
- data/bin/peep +1 -1
- data/ext/ptrace.c +1 -2
- data/lib/peep/peep.rb +13 -8
- data/peep.gemspec +4 -4
- metadata +17 -5
- metadata.gz.sig +6 -2
data.tar.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
�~��S��
|
2
|
+
n�����Y�s�s�0ad@�h*�<�ԟ��PR�"8��K��2�wZѠmy�JZ�@,��`��qV���ލ��:H)!I�/����Ą��;�)3�@��������(yR,����]݂<����@�I�z:cP�r�o:2S�\F=̈́�5F�7�2ٍ]���!}`:R��E�-����V���1L�7N{�nS�t���F���0�H��
|
data/CHANGELOG
CHANGED
data/README
CHANGED
data/bin/peep
CHANGED
data/ext/ptrace.c
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
#include <sys/user.h>
|
6
6
|
#include <sys/ptrace.h>
|
7
7
|
#include <linux/ptrace.h>
|
8
|
+
#include <stdbool.h>
|
8
9
|
|
9
10
|
#include "ruby.h"
|
10
11
|
#include "rubyio.h"
|
@@ -60,8 +61,6 @@ static VALUE stats_offsets () {
|
|
60
61
|
STATS_(get_hits);
|
61
62
|
STATS_(get_misses);
|
62
63
|
STATS_(started);
|
63
|
-
STATS_(bytes_read);
|
64
|
-
STATS_(bytes_written);
|
65
64
|
|
66
65
|
rb_hash_freeze(p_hash);
|
67
66
|
return p_hash;
|
data/lib/peep/peep.rb
CHANGED
@@ -36,7 +36,7 @@ module Peep
|
|
36
36
|
def init_addresses
|
37
37
|
@addresses = {}
|
38
38
|
IO.popen("gdb -q memcached #{pid}", "w+") do |gdb|
|
39
|
-
%w(primary_hashtable hash_items hashpower stats settings).each do | key|
|
39
|
+
%w(primary_hashtable hash_items hashpower stats settings process_started).each do | key|
|
40
40
|
gdb.puts "p &#{key}"
|
41
41
|
1 while (line = gdb.gets) !~ /\(gdb\)/
|
42
42
|
@addresses[key] = line.split.last.hex
|
@@ -70,7 +70,8 @@ module Peep
|
|
70
70
|
{
|
71
71
|
'hashtable' => read_long(addresses['primary_hashtable']),
|
72
72
|
'hash_items' => read_long(addresses['hash_items']),
|
73
|
-
'hashpower' => read_int(addresses['hashpower'])
|
73
|
+
'hashpower' => read_int(addresses['hashpower']),
|
74
|
+
'process_started' => read_long(addresses['process_started'])
|
74
75
|
}
|
75
76
|
end
|
76
77
|
end
|
@@ -105,9 +106,13 @@ module Peep
|
|
105
106
|
end
|
106
107
|
|
107
108
|
IT_FLAGS = {
|
108
|
-
1 => "
|
109
|
-
2 => "
|
110
|
-
|
109
|
+
1 => "LINKED",
|
110
|
+
2 => "CAS",
|
111
|
+
3 => "LINKED CAS",
|
112
|
+
4 => "SLABBED",
|
113
|
+
5 => "LINKED SLABBED",
|
114
|
+
6 => "SLABBED CAS",
|
115
|
+
7 => "LINKED SLABBED CAS"
|
111
116
|
}
|
112
117
|
|
113
118
|
HEADER = ['time', 'exptime', 'nbytes', 'nsuffix', 'it_f', 'clsid', 'nkey', 'key', 'exprd', 'flushd']
|
@@ -115,7 +120,7 @@ module Peep
|
|
115
120
|
def items
|
116
121
|
basics
|
117
122
|
|
118
|
-
now = Time.now.to_i -
|
123
|
+
now = Time.now.to_i - basics['process_started']
|
119
124
|
flushed = settings['oldest_live']
|
120
125
|
items = []
|
121
126
|
|
@@ -131,10 +136,10 @@ module Peep
|
|
131
136
|
exptime = read_int(bucket + ITEM_OFFSETS['exptime']),
|
132
137
|
read_int(bucket + ITEM_OFFSETS['nbytes']),
|
133
138
|
read_uint8(bucket + ITEM_OFFSETS['nsuffix']),
|
134
|
-
IT_FLAGS[read_uint8(bucket + ITEM_OFFSETS['it_flags'])],
|
139
|
+
IT_FLAGS[it_flags = read_uint8(bucket + ITEM_OFFSETS['it_flags'])],
|
135
140
|
read_uint8(bucket + ITEM_OFFSETS['slabs_clsid']),
|
136
141
|
nkey = read_uint8(bucket + ITEM_OFFSETS['nkey']),
|
137
|
-
read_bytes(bucket + ITEM_OFFSETS['end'], nkey),
|
142
|
+
read_bytes(bucket + ITEM_OFFSETS['end'] + (it_flags & 2 ? 8 : 0), nkey),
|
138
143
|
|
139
144
|
!(exptime.zero? or now < exptime), # expired?
|
140
145
|
!(flushed.zero? or flushed < time) # flushed?
|
data/peep.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{peep}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.7"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Evan Weaver"]
|
9
9
|
s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
|
10
|
-
s.date = %q{
|
10
|
+
s.date = %q{2011-02-16}
|
11
11
|
s.default_executable = %q{peep}
|
12
12
|
s.description = %q{A heap inspector for live memcached instances.}
|
13
13
|
s.email = %q{}
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Peep", "--main", "README"]
|
20
20
|
s.require_paths = ["lib", "ext"]
|
21
21
|
s.rubyforge_project = %q{fauna}
|
22
|
-
s.rubygems_version = %q{1.3.
|
22
|
+
s.rubygems_version = %q{1.3.7}
|
23
23
|
s.signing_key = %q{/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-private_key.pem}
|
24
24
|
s.summary = %q{A heap inspector for live memcached instances.}
|
25
25
|
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
28
28
|
s.specification_version = 3
|
29
29
|
|
30
|
-
if Gem::Version.new(Gem::
|
30
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
31
31
|
else
|
32
32
|
end
|
33
33
|
else
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: peep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 5
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 7
|
9
|
+
version: "0.7"
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Evan Weaver
|
@@ -30,7 +35,7 @@ cert_chain:
|
|
30
35
|
yZ0=
|
31
36
|
-----END CERTIFICATE-----
|
32
37
|
|
33
|
-
date:
|
38
|
+
date: 2011-02-16 00:00:00 -08:00
|
34
39
|
default_executable:
|
35
40
|
dependencies: []
|
36
41
|
|
@@ -75,21 +80,28 @@ require_paths:
|
|
75
80
|
- lib
|
76
81
|
- ext
|
77
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
78
84
|
requirements:
|
79
85
|
- - ">="
|
80
86
|
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
81
90
|
version: "0"
|
82
|
-
version:
|
83
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
84
93
|
requirements:
|
85
94
|
- - ">="
|
86
95
|
- !ruby/object:Gem::Version
|
96
|
+
hash: 11
|
97
|
+
segments:
|
98
|
+
- 1
|
99
|
+
- 2
|
87
100
|
version: "1.2"
|
88
|
-
version:
|
89
101
|
requirements: []
|
90
102
|
|
91
103
|
rubyforge_project: fauna
|
92
|
-
rubygems_version: 1.3.
|
104
|
+
rubygems_version: 1.3.7
|
93
105
|
signing_key:
|
94
106
|
specification_version: 3
|
95
107
|
summary: A heap inspector for live memcached instances.
|
metadata.gz.sig
CHANGED
@@ -1,2 +1,6 @@
|
|
1
|
-
|
2
|
-
�
|
1
|
+
����h���XD녞۫��Oe�(e�i�k��a���R��KD`�Ѓ��Ϗ�+�7���
|
2
|
+
�49�'j�w9�
|
3
|
+
P,�6-͓��Y ���~��=Y�UMFalB��bb��8���ߔ��<��E���Ul0��l���6�)}J���
|
4
|
+
'�D�0٢�|#�<��mj�!S����|r谄�z0\x\�_���
|
5
|
+
�,�!]꼳�/�ƥ4F1w3����љ~�P��'Md(J;�ܼ��%�
|
6
|
+
�]��%�~XDnȽ�$
|