kb-simple-metrics 0.0.12-java
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/.gitignore +20 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE +13 -0
- data/README.md +144 -0
- data/Rakefile +7 -0
- data/doc/NurseRatched.html +246 -0
- data/doc/Rdio.html +233 -0
- data/doc/Samovar.html +241 -0
- data/doc/Simple/Metrics/Check.html +308 -0
- data/doc/Simple/Metrics/Graphite.html +262 -0
- data/doc/Simple/Metrics/HEALTHY.html +144 -0
- data/doc/Simple/Metrics/Health.html +288 -0
- data/doc/Simple/Metrics/Healthchecks.html +413 -0
- data/doc/Simple/Metrics/Meter.html +295 -0
- data/doc/Simple/Metrics/RackMetrics.html +366 -0
- data/doc/Simple/Metrics/Timer.html +232 -0
- data/doc/Simple/Metrics/UNHEALTHY.html +144 -0
- data/doc/Simple/Metrics/WARNING.html +144 -0
- data/doc/Simple/Metrics.html +510 -0
- data/doc/Simple.html +117 -0
- data/doc/_index.html +259 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +224 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +224 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +180 -0
- data/doc/top-level-namespace.html +114 -0
- data/lib/java/jackson-core-asl-1.9.5.jar +0 -0
- data/lib/java/jackson-mapper-asl-1.9.5.jar +0 -0
- data/lib/java/metrics-core-2.1.1.jar +0 -0
- data/lib/java/metrics-graphite-2.1.1.jar +0 -0
- data/lib/java/metrics-servlet-2.1.1.jar +0 -0
- data/lib/java/slf4j-api-1.6.4.jar +0 -0
- data/lib/simple/metrics/graphite.rb +23 -0
- data/lib/simple/metrics/health.rb +15 -0
- data/lib/simple/metrics/healthcheck.rb +65 -0
- data/lib/simple/metrics/meter.rb +23 -0
- data/lib/simple/metrics/rack_metrics.rb +32 -0
- data/lib/simple/metrics/timer.rb +24 -0
- data/lib/simple/metrics.rb +51 -0
- data/lib/simple/version.rb +5 -0
- data/lib/simple.rb +6 -0
- data/simple-metrics.gemspec +21 -0
- data/spec/metrics/graphite_spec.rb +9 -0
- data/spec/metrics/healthcheck_spec.rb +55 -0
- data/spec/metrics/meter_spec.rb +20 -0
- data/spec/metrics/timer_spec.rb +29 -0
- data/spec/spec_helper.rb +13 -0
- metadata +182 -0
data/doc/css/style.css
ADDED
@@ -0,0 +1,328 @@
|
|
1
|
+
body {
|
2
|
+
padding: 0 20px;
|
3
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
4
|
+
font-size: 13px;
|
5
|
+
}
|
6
|
+
body.frames { padding: 0 5px; }
|
7
|
+
h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
|
8
|
+
h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
|
9
|
+
h1.title { margin-bottom: 10px; }
|
10
|
+
h1.alphaindex { margin-top: 0; font-size: 22px; }
|
11
|
+
h2 {
|
12
|
+
padding: 0;
|
13
|
+
padding-bottom: 3px;
|
14
|
+
border-bottom: 1px #aaa solid;
|
15
|
+
font-size: 1.4em;
|
16
|
+
margin: 1.8em 0 0.5em;
|
17
|
+
}
|
18
|
+
h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right; }
|
19
|
+
.clear { clear: both; }
|
20
|
+
.inline { display: inline; }
|
21
|
+
.inline p:first-child { display: inline; }
|
22
|
+
.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
|
23
|
+
.docstring h1 { font-size: 1.2em; }
|
24
|
+
.docstring h2 { font-size: 1.1em; }
|
25
|
+
.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
|
26
|
+
.summary_desc .object_link, .docstring .object_link { font-family: monospace; }
|
27
|
+
.rdoc-term { padding-right: 25px; font-weight: bold; }
|
28
|
+
.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
|
29
|
+
|
30
|
+
/* style for <ul> */
|
31
|
+
#filecontents li > p, .docstring li > p { margin: 0px; }
|
32
|
+
#filecontents ul, .docstring ul { padding-left: 20px; }
|
33
|
+
/* style for <dl> */
|
34
|
+
#filecontents dl, .docstring dl { border: 1px solid #ccc; }
|
35
|
+
#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
|
36
|
+
#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
|
37
|
+
#filecontents dd > p, .docstring dd > p { margin: 0px; }
|
38
|
+
|
39
|
+
.note {
|
40
|
+
color: #222;
|
41
|
+
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
42
|
+
background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
|
43
|
+
display: block;
|
44
|
+
}
|
45
|
+
.note.todo { background: #ffffc5; border-color: #ececaa; }
|
46
|
+
.note.returns_void { background: #efefef; }
|
47
|
+
.note.deprecated { background: #ffe5e5; border-color: #e9dada; }
|
48
|
+
.note.private { background: #ffffc5; border-color: #ececaa; }
|
49
|
+
.note.title { padding: 1px 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
|
50
|
+
.summary_signature + .note.title { margin-left: 7px; }
|
51
|
+
h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
|
52
|
+
.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
53
|
+
.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
|
54
|
+
.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
|
55
|
+
.note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
|
56
|
+
.note.title.not_defined_here { background: transparent; border: none; font-style: italic; }
|
57
|
+
.discussion .note { margin-top: 6px; }
|
58
|
+
.discussion .note:first-child { margin-top: 0; }
|
59
|
+
|
60
|
+
h3.inherited {
|
61
|
+
font-style: italic;
|
62
|
+
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
63
|
+
font-weight: normal;
|
64
|
+
padding: 0;
|
65
|
+
margin: 0;
|
66
|
+
margin-top: 12px;
|
67
|
+
margin-bottom: 3px;
|
68
|
+
font-size: 13px;
|
69
|
+
}
|
70
|
+
p.inherited {
|
71
|
+
padding: 0;
|
72
|
+
margin: 0;
|
73
|
+
margin-left: 25px;
|
74
|
+
}
|
75
|
+
|
76
|
+
#filecontents dl.box, dl.box {
|
77
|
+
border: 0;
|
78
|
+
width: 520px;
|
79
|
+
font-size: 1em;
|
80
|
+
}
|
81
|
+
#filecontents dl.box dt, dl.box dt {
|
82
|
+
float: left;
|
83
|
+
display: block;
|
84
|
+
width: 100px;
|
85
|
+
margin: 0;
|
86
|
+
text-align: right;
|
87
|
+
font-weight: bold;
|
88
|
+
background: transparent;
|
89
|
+
border: 1px solid #aaa;
|
90
|
+
border-width: 1px 0px 0px 1px;
|
91
|
+
padding: 6px 0;
|
92
|
+
padding-right: 10px;
|
93
|
+
}
|
94
|
+
#filecontents dl.box dd, dl.box dd {
|
95
|
+
float: left;
|
96
|
+
display: block;
|
97
|
+
width: 380px;
|
98
|
+
margin: 0;
|
99
|
+
padding: 6px 0;
|
100
|
+
padding-right: 20px;
|
101
|
+
border: 1px solid #aaa;
|
102
|
+
border-width: 1px 1px 0 0;
|
103
|
+
}
|
104
|
+
#filecontents dl.box .last, dl.box .last {
|
105
|
+
border-bottom: 1px solid #aaa;
|
106
|
+
}
|
107
|
+
#filecontents dl.box .r1, dl.box .r1 { background: #eee; }
|
108
|
+
|
109
|
+
ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
|
110
|
+
.index_inline_list { padding-left: 0; font-size: 1.1em; }
|
111
|
+
.index_inline_list li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; }
|
112
|
+
|
113
|
+
dl.constants { margin-left: 40px; }
|
114
|
+
dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
|
115
|
+
dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
|
116
|
+
|
117
|
+
.summary_desc { margin-left: 32px; display: block; font-family: sans-serif; }
|
118
|
+
.summary_desc tt { font-size: 0.9em; }
|
119
|
+
dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
|
120
|
+
dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
|
121
|
+
dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
|
122
|
+
dl.constants .discussion *:first-child { margin-top: 0; }
|
123
|
+
dl.constants .discussion *:last-child { margin-bottom: 0; }
|
124
|
+
|
125
|
+
.method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
|
126
|
+
.method_details.first { border: 0; }
|
127
|
+
p.signature, h3.signature {
|
128
|
+
font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
|
129
|
+
padding: 6px 10px; margin-top: 18px;
|
130
|
+
background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
131
|
+
}
|
132
|
+
p.signature tt,
|
133
|
+
h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
|
134
|
+
p.signature .overload,
|
135
|
+
h3.signature .overload { display: block; }
|
136
|
+
p.signature .extras,
|
137
|
+
h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
|
138
|
+
p.signature .not_defined_here,
|
139
|
+
h3.signature .not_defined_here,
|
140
|
+
p.signature .aliases,
|
141
|
+
h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
|
142
|
+
p.signature .aliases .names,
|
143
|
+
h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
|
144
|
+
|
145
|
+
.tags .tag_title { font-size: 1em; margin-bottom: 0; font-weight: bold; }
|
146
|
+
.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
|
147
|
+
.tags ul li { margin-bottom: 3px; }
|
148
|
+
.tags ul .name { font-family: monospace; font-weight: bold; }
|
149
|
+
.tags ul .note { padding: 3px 6px; }
|
150
|
+
.tags { margin-bottom: 12px; }
|
151
|
+
|
152
|
+
.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; }
|
153
|
+
.tags .examples .inline p { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
|
154
|
+
|
155
|
+
.tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
|
156
|
+
.tags .overload .overload_item .signature {
|
157
|
+
padding: 2px 8px;
|
158
|
+
background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
|
159
|
+
}
|
160
|
+
.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
|
161
|
+
.tags .overload .docstring { margin-top: 15px; }
|
162
|
+
|
163
|
+
.defines { display: none; }
|
164
|
+
|
165
|
+
#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
|
166
|
+
|
167
|
+
.showSource { font-size: 0.9em; }
|
168
|
+
.showSource a:link, .showSource a:visited { text-decoration: none; color: #666; }
|
169
|
+
|
170
|
+
#content a:link, #content a:visited { text-decoration: none; color: #05a; }
|
171
|
+
#content a:hover { background: #ffffa5; }
|
172
|
+
div.docstring, p.docstring { margin-right: 6em; }
|
173
|
+
|
174
|
+
ul.summary {
|
175
|
+
list-style: none;
|
176
|
+
font-family: monospace;
|
177
|
+
font-size: 1em;
|
178
|
+
line-height: 1.5em;
|
179
|
+
}
|
180
|
+
ul.summary a:link, ul.summary a:visited {
|
181
|
+
text-decoration: none; font-size: 1.1em;
|
182
|
+
}
|
183
|
+
ul.summary li { margin-bottom: 5px; }
|
184
|
+
.summary .summary_signature {
|
185
|
+
padding: 1px 10px;
|
186
|
+
background: #eaeaff; border: 1px solid #dfdfe5;
|
187
|
+
-moz-border-radius: 3px; -webkit-border-radius: 3px;
|
188
|
+
}
|
189
|
+
.summary_signature:hover { background: #eeeeff; cursor: pointer; }
|
190
|
+
ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
|
191
|
+
ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
|
192
|
+
#content .summary_signature:hover a:link,
|
193
|
+
#content .summary_signature:hover a:visited {
|
194
|
+
background: transparent;
|
195
|
+
color: #48f;
|
196
|
+
}
|
197
|
+
|
198
|
+
p.inherited a { font-family: monospace; font-size: 0.9em; }
|
199
|
+
p.inherited { word-spacing: 5px; font-size: 1.2em; }
|
200
|
+
|
201
|
+
p.children { font-size: 1.2em; }
|
202
|
+
p.children a { font-size: 0.9em; }
|
203
|
+
p.children strong { font-size: 0.8em; }
|
204
|
+
p.children strong.modules { padding-left: 5px; }
|
205
|
+
|
206
|
+
ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
|
207
|
+
ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
|
208
|
+
ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; }
|
209
|
+
ul.fullTree li:first-child { padding-top: 0; background: transparent; }
|
210
|
+
ul.fullTree li:last-child { padding-bottom: 0; }
|
211
|
+
.showAll ul.fullTree { display: block; }
|
212
|
+
.showAll .inheritName { display: none; }
|
213
|
+
|
214
|
+
#search { position: absolute; right: 14px; top: 0px; }
|
215
|
+
#search a:link, #search a:visited {
|
216
|
+
display: block; float: left; margin-right: 4px;
|
217
|
+
padding: 8px 10px; text-decoration: none; color: #05a;
|
218
|
+
border: 1px solid #d8d8e5;
|
219
|
+
-moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
|
220
|
+
-webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
|
221
|
+
background: #eaf0ff;
|
222
|
+
-webkit-box-shadow: -1px 1px 3px #ddd;
|
223
|
+
}
|
224
|
+
#search a:hover { background: #f5faff; color: #06b; }
|
225
|
+
#search a.active {
|
226
|
+
background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
|
227
|
+
-moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
|
228
|
+
-webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
|
229
|
+
}
|
230
|
+
#search a.inactive { color: #999; }
|
231
|
+
.frames #search { display: none; }
|
232
|
+
.inheritanceTree, .toggleDefines { float: right; }
|
233
|
+
|
234
|
+
#menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; }
|
235
|
+
#menu .title, #menu a { font-size: 0.7em; }
|
236
|
+
#menu .title a { font-size: 1em; }
|
237
|
+
#menu .title { color: #555; }
|
238
|
+
#menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
|
239
|
+
#menu a:hover { color: #05a; }
|
240
|
+
#menu .noframes { display: inline; }
|
241
|
+
.frames #menu .noframes { display: inline; float: right; }
|
242
|
+
|
243
|
+
#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
|
244
|
+
#footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
|
245
|
+
#footer a:hover { color: #05a; }
|
246
|
+
|
247
|
+
#listing ul.alpha { font-size: 1.1em; }
|
248
|
+
#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
|
249
|
+
#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
|
250
|
+
#listing ul.alpha ul { margin: 0; padding-left: 15px; }
|
251
|
+
#listing ul small { color: #666; font-size: 0.7em; }
|
252
|
+
|
253
|
+
li.r1 { background: #f0f0f0; }
|
254
|
+
li.r2 { background: #fafafa; }
|
255
|
+
|
256
|
+
#search_frame {
|
257
|
+
z-index: 9999;
|
258
|
+
background: #fff;
|
259
|
+
display: none;
|
260
|
+
position: absolute;
|
261
|
+
top: 36px;
|
262
|
+
right: 18px;
|
263
|
+
width: 500px;
|
264
|
+
height: 80%;
|
265
|
+
overflow-y: scroll;
|
266
|
+
border: 1px solid #999;
|
267
|
+
border-collapse: collapse;
|
268
|
+
-webkit-box-shadow: -7px 5px 25px #aaa;
|
269
|
+
-moz-box-shadow: -7px 5px 25px #aaa;
|
270
|
+
-moz-border-radius: 2px;
|
271
|
+
-webkit-border-radius: 2px;
|
272
|
+
}
|
273
|
+
|
274
|
+
#content ul.summary li.deprecated .summary_signature a:link,
|
275
|
+
#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
|
276
|
+
|
277
|
+
#toc {
|
278
|
+
padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
|
279
|
+
max-width: 300px;
|
280
|
+
-webkit-box-shadow: -2px 2px 6px #bbb;
|
281
|
+
-moz-box-shadow: -2px 2px 6px #bbb;
|
282
|
+
z-index: 5000;
|
283
|
+
position: relative;
|
284
|
+
}
|
285
|
+
#toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
|
286
|
+
#toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
|
287
|
+
#toc .title { margin: 0; }
|
288
|
+
#toc ol { padding-left: 1.8em; }
|
289
|
+
#toc li { font-size: 1.1em; line-height: 1.7em; }
|
290
|
+
#toc > ol > li { font-size: 1.1em; font-weight: bold; }
|
291
|
+
#toc ol > ol { font-size: 0.9em; }
|
292
|
+
#toc ol ol > ol { padding-left: 2.3em; }
|
293
|
+
#toc ol + li { margin-top: 0.3em; }
|
294
|
+
#toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
|
295
|
+
#filecontents h1 + #toc.nofloat { margin-top: 0; }
|
296
|
+
|
297
|
+
/* syntax highlighting */
|
298
|
+
.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
|
299
|
+
#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
|
300
|
+
#filecontents pre.code, .docstring pre.code { display: block; }
|
301
|
+
.source_code .lines { padding-right: 12px; color: #555; text-align: right; }
|
302
|
+
#filecontents pre.code, .docstring pre.code,
|
303
|
+
.tags pre.example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
|
304
|
+
pre.code { color: #000; }
|
305
|
+
pre.code .info.file { color: #555; }
|
306
|
+
pre.code .val { color: #036A07; }
|
307
|
+
pre.code .tstring_content,
|
308
|
+
pre.code .heredoc_beg, pre.code .heredoc_end,
|
309
|
+
pre.code .qwords_beg, pre.code .qwords_end,
|
310
|
+
pre.code .tstring, pre.code .dstring { color: #036A07; }
|
311
|
+
pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
|
312
|
+
pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
|
313
|
+
pre.code .dot + pre.code .id,
|
314
|
+
pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
|
315
|
+
pre.code .comment { color: #0066FF; }
|
316
|
+
pre.code .const, pre.code .constant { color: #585CF6; }
|
317
|
+
pre.code .symbol { color: #C5060B; }
|
318
|
+
pre.code .kw,
|
319
|
+
pre.code .label,
|
320
|
+
pre.code .rubyid_require,
|
321
|
+
pre.code .rubyid_extend,
|
322
|
+
pre.code .rubyid_include { color: #0000FF; }
|
323
|
+
pre.code .ivar { color: #318495; }
|
324
|
+
pre.code .gvar,
|
325
|
+
pre.code .rubyid_backref,
|
326
|
+
pre.code .rubyid_nth_ref { color: #6D79DE; }
|
327
|
+
pre.code .regexp, .dregexp { color: #036A07; }
|
328
|
+
pre.code a { border-bottom: 1px dotted #bbf; }
|
@@ -0,0 +1,224 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<title>
|
7
|
+
File: README
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.3
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '';
|
20
|
+
framesUrl = "frames.html#!" + escape(window.location.href);
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="_index.html">Index</a> »
|
35
|
+
<span class="title">File: README</span>
|
36
|
+
|
37
|
+
|
38
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div id="search">
|
42
|
+
|
43
|
+
<a class="full_list_link" id="class_list_link"
|
44
|
+
href="class_list.html">
|
45
|
+
Class List
|
46
|
+
</a>
|
47
|
+
|
48
|
+
<a class="full_list_link" id="method_list_link"
|
49
|
+
href="method_list.html">
|
50
|
+
Method List
|
51
|
+
</a>
|
52
|
+
|
53
|
+
<a class="full_list_link" id="file_list_link"
|
54
|
+
href="file_list.html">
|
55
|
+
File List
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<iframe id="search_frame"></iframe>
|
63
|
+
|
64
|
+
<div id="content"><div id='filecontents'><h1 id="simplemetrics">Simple::Metrics</h1>
|
65
|
+
|
66
|
+
<p>A simple JRuby wrapper around Coda’s excellent <a href="http://metrics.codahale.com/">Metrics package</a></p>
|
67
|
+
|
68
|
+
<h2 id="installation">Installation</h2>
|
69
|
+
|
70
|
+
<p>Add this line to your application’s Gemfile:</p>
|
71
|
+
|
72
|
+
<pre class="code ruby"><code><span class='rubyid_gem identifier id'>gem</span> <span class='string val'>'simple-metrics'</span>
|
73
|
+
</code></pre>
|
74
|
+
|
75
|
+
<p>And then execute:</p>
|
76
|
+
|
77
|
+
<pre class="code ruby"><code>$ <span class='rubyid_bundle identifier id'>bundle</span>
|
78
|
+
</code></pre>
|
79
|
+
|
80
|
+
<p>Or install it yourself as:</p>
|
81
|
+
|
82
|
+
<pre class="code ruby"><code>$ <span class='rubyid_gem identifier id'>gem</span> <span class='rubyid_install identifier id'>install</span> <span class='rubyid_simple identifier id'>simple</span><span class='minus op'>-</span><span class='rubyid_metrics identifier id'>metrics</span>
|
83
|
+
</code></pre>
|
84
|
+
|
85
|
+
<h2 id="healthchecks">Healthchecks</h2>
|
86
|
+
|
87
|
+
<p>Monitor the health of your application in a granular way.</p>
|
88
|
+
|
89
|
+
<p>In a Sinatra/Padrino app, register healthchecks as an extension like so:</p>
|
90
|
+
|
91
|
+
<pre class="code ruby"><code><span class='rubyid_register identifier id'>register</span> <span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_Healthchecks constant id'>Healthchecks</span>
|
92
|
+
</code></pre>
|
93
|
+
|
94
|
+
<p>To register a new healthcheck:</p>
|
95
|
+
|
96
|
+
<pre class="code ruby"><code><span class='rubyid_class class kw'>class</span> <span class='rubyid_NurseRatched constant id'>NurseRatched</span>
|
97
|
+
<span class='rubyid_extend identifier id'>extend</span> <span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_Healthchecks constant id'>Healthchecks</span>
|
98
|
+
|
99
|
+
<span class='rubyid_attr_accessor identifier id'>attr_accessor</span> <span class='symbol val'>:temp</span>
|
100
|
+
|
101
|
+
<span class='rubyid_new_healthcheck identifier id'>new_healthcheck</span><span class='lparen token'>(</span><span class='string val'>"temperature"</span><span class='rparen token'>)</span> <span class='rubyid_do do kw'>do</span>
|
102
|
+
<span class='rubyid_if if kw'>if</span> <span class='rubyid_@temp ivar id'>@temp</span> <span class='assign token'>=</span> <span class='integer val'>98</span>
|
103
|
+
<span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_HEALTHY constant id'>HEALTHY</span>
|
104
|
+
<span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_@temp ivar id'>@temp</span> <span class='gt op'>></span> <span class='integer val'>101</span>
|
105
|
+
<span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_UNHEALTHY constant id'>UNHEALTHY</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='string val'>"Fever!"</span><span class='rparen token'>)</span>
|
106
|
+
<span class='rubyid_else else kw'>else</span>
|
107
|
+
<span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_WARNING constant id'>WARNING</span>
|
108
|
+
<span class='rubyid_end end kw'>end</span>
|
109
|
+
<span class='rubyid_end end kw'>end</span>
|
110
|
+
<span class='rubyid_end end kw'>end</span>
|
111
|
+
</code></pre>
|
112
|
+
|
113
|
+
<p>Run all healthchecks:</p>
|
114
|
+
|
115
|
+
<pre class="code ruby"><code><span class='rubyid_NurseRatched constant id'>NurseRatched</span><span class='dot token'>.</span><span class='rubyid_run_all_healthchecks identifier id'>run_all_healthchecks</span>
|
116
|
+
</code></pre>
|
117
|
+
|
118
|
+
<p>Your healthchecks will be run in a separate thread every 5 seconds. This is a great way to monitor the health of your db connections, thread pools and connections to queues.</p>
|
119
|
+
|
120
|
+
<p>If you are running the servlet in a warbler .war file (see example below), you can monitor the overall health of your application with nagios or other monitoring tools.</p>
|
121
|
+
|
122
|
+
<h2 id="timers">Timers</h2>
|
123
|
+
|
124
|
+
<p>From: <a href="http://metrics.codahale.com/getting-started/#timers">Timers</a>:</p>
|
125
|
+
|
126
|
+
<p>A timer measures both the rate that a particular piece of code is called and the distribution of its duration.</p>
|
127
|
+
|
128
|
+
<pre class="code ruby"><code><span class='rubyid_class class kw'>class</span> <span class='rubyid_Samovar constant id'>Samovar</span>
|
129
|
+
<span class='rubyid_include identifier id'>include</span> <span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span>
|
130
|
+
|
131
|
+
<span class='rubyid_def def kw'>def</span> <span class='rubyid_buh identifier id'>buh</span>
|
132
|
+
<span class='rubyid_timer identifier id'>timer</span><span class='lparen token'>(</span><span class='string val'>"tea time"</span><span class='rparen token'>)</span> <span class='rubyid_do do kw'>do</span>
|
133
|
+
<span class='string val'>"Brewing..."</span>
|
134
|
+
<span class='rubyid_end end kw'>end</span>
|
135
|
+
<span class='rubyid_end end kw'>end</span>
|
136
|
+
<span class='rubyid_end end kw'>end</span>
|
137
|
+
</code></pre>
|
138
|
+
|
139
|
+
<h2 id="meters">Meters</h2>
|
140
|
+
|
141
|
+
<p>From: <a href="http://metrics.codahale.com/getting-started/#meters">Meters</a>:</p>
|
142
|
+
|
143
|
+
<p>“A meter measures the rate of events over time (e.g., “requests per second”). In addition to the mean rate, meters also track 1-, 5-, and 15-minute moving averages.”</p>
|
144
|
+
|
145
|
+
<pre class="code ruby"><code><span class='rubyid_class class kw'>class</span> <span class='rubyid_Rdio constant id'>Rdio</span>
|
146
|
+
<span class='rubyid_extend identifier id'>extend</span> <span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_Meter constant id'>Meter</span>
|
147
|
+
|
148
|
+
<span class='rubyid_define_meter identifier id'>define_meter</span> <span class='symbol val'>:bump_meter</span>
|
149
|
+
|
150
|
+
<span class='rubyid_def def kw'>def</span> <span class='rubyid_bump_dat identifier id'>bump_dat</span>
|
151
|
+
<span class='rubyid_bump_meter identifier id'>bump_meter</span><span class='dot token'>.</span><span class='rubyid_mark identifier id'>mark</span>
|
152
|
+
<span class='rubyid_end end kw'>end</span>
|
153
|
+
<span class='rubyid_end end kw'>end</span>
|
154
|
+
</code></pre>
|
155
|
+
|
156
|
+
<h2 id="send-metrics-directly-to-graphite">Send metrics directly to graphite</h2>
|
157
|
+
|
158
|
+
<p>In a Sinatra app:</p>
|
159
|
+
|
160
|
+
<pre class="code ruby"><code><span class='rubyid_register identifier id'>register</span> <span class='rubyid_Simple constant id'>Simple</span><span class='colon2 op'>::</span><span class='rubyid_Metrics constant id'>Metrics</span><span class='colon2 op'>::</span><span class='rubyid_Graphite constant id'>Graphite</span>
|
161
|
+
|
162
|
+
<span class='rubyid_enable_graphite_reporter identifier id'>enable_graphite_reporter</span><span class='lparen token'>(</span><span class='string val'>"graphite.example.com"</span><span class='comma token'>,</span> <span class='integer val'>2003</span><span class='comma token'>,</span> <span class='dstring node'>"services.#{RACK_ENV}"</span><span class='rparen token'>)</span>
|
163
|
+
</code></pre>
|
164
|
+
|
165
|
+
<h2 id="exposing-metrics-from-within-your-app">Exposing metrics from within your app</h2>
|
166
|
+
|
167
|
+
<p>In order to view/collect the health and metrics of your application from the web, you’ll need to add the servlet endpoints.
|
168
|
+
For this example, I’m using <a href="https://github.com/jruby/warbler">Warbler</a> to package
|
169
|
+
the application as a .war</p>
|
170
|
+
|
171
|
+
<p>In config/web.xml, add the following servlet mappings:</p>
|
172
|
+
|
173
|
+
<pre class="code ruby"><code> <span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='gt op'>></span>
|
174
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_MetricsServlet constant id'>MetricsServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-name>
|
175
|
+
<servlet-class>com.yammer.metrics.reporting.MetricsServlet</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_class class kw'>class</span><span class='gt op'>></span>
|
176
|
+
<span class='lt op'><</span><span class='regexp val'>/servlet>
|
177
|
+
<servlet-mapping>
|
178
|
+
<servlet-name>metrics.MetricsServlet</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span>
|
179
|
+
<span class='lt op'><</span><span class='rubyid_url identifier id'>url</span><span class='minus op'>-</span><span class='rubyid_pattern identifier id'>pattern</span><span class='gt op'>></span><span class='regexp val'>/metrics</</span><span class='rubyid_url identifier id'>url</span><span class='minus op'>-</span><span class='rubyid_pattern identifier id'>pattern</span><span class='gt op'>></span>
|
180
|
+
<span class='lt op'><</span><span class='regexp val'>/servlet-mapping>
|
181
|
+
|
182
|
+
<servlet>
|
183
|
+
<servlet-name>metrics.HealthCheckServlet</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span>
|
184
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_class class kw'>class</span><span class='gt op'>></span><span class='rubyid_com identifier id'>com</span><span class='dot token'>.</span><span class='rubyid_yammer identifier id'>yammer</span><span class='dot token'>.</span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_reporting identifier id'>reporting</span><span class='dot token'>.</span><span class='rubyid_HealthCheckServlet constant id'>HealthCheckServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-class>
|
185
|
+
</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='gt op'>></span>
|
186
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_mapping identifier id'>mapping</span><span class='gt op'>></span>
|
187
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_HealthCheckServlet constant id'>HealthCheckServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-name>
|
188
|
+
<url-pattern>/</span><span class='rubyid_healthcheck identifier id'>healthcheck</span><span class='lt op'><</span><span class='regexp val'>/url-pattern>
|
189
|
+
</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_mapping identifier id'>mapping</span><span class='gt op'>></span>
|
190
|
+
|
191
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='gt op'>></span>
|
192
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_ThreadDumpServlet constant id'>ThreadDumpServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-name>
|
193
|
+
<servlet-class>com.yammer.metrics.reporting.ThreadDumpServlet</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_class class kw'>class</span><span class='gt op'>></span>
|
194
|
+
<span class='lt op'><</span><span class='rubyid_url identifier id'>url</span><span class='minus op'>-</span><span class='rubyid_pattern identifier id'>pattern</span><span class='gt op'>></span><span class='regexp val'>/threads</</span><span class='rubyid_url identifier id'>url</span><span class='minus op'>-</span><span class='rubyid_pattern identifier id'>pattern</span><span class='gt op'>></span>
|
195
|
+
<span class='lt op'><</span><span class='regexp val'>/servlet>
|
196
|
+
|
197
|
+
<servlet>
|
198
|
+
<servlet-name>metrics.PingServlet</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span>
|
199
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_class class kw'>class</span><span class='gt op'>></span><span class='rubyid_com identifier id'>com</span><span class='dot token'>.</span><span class='rubyid_yammer identifier id'>yammer</span><span class='dot token'>.</span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_reporting identifier id'>reporting</span><span class='dot token'>.</span><span class='rubyid_PingServlet constant id'>PingServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-class>
|
200
|
+
</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='gt op'>></span>
|
201
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_mapping identifier id'>mapping</span><span class='gt op'>></span>
|
202
|
+
<span class='lt op'><</span><span class='rubyid_servlet identifier id'>servlet</span><span class='minus op'>-</span><span class='rubyid_name identifier id'>name</span><span class='gt op'>></span><span class='rubyid_metrics identifier id'>metrics</span><span class='dot token'>.</span><span class='rubyid_PingServlet constant id'>PingServlet</span><span class='lt op'><</span><span class='regexp val'>/servlet-name>
|
203
|
+
<url-pattern>/</span><span class='rubyid_ping identifier id'>ping</span><span class='lt op'><</span><span class='regexp val'>/url-pattern>
|
204
|
+
</s</span><span class='rubyid_ervlet identifier id'>ervlet</span><span class='minus op'>-</span><span class='rubyid_mapping identifier id'>mapping</span><span class='gt op'>></span>
|
205
|
+
</code></pre>
|
206
|
+
|
207
|
+
<p>Now you can visit your application and get a thread dump, health check or collect metrics using collectd:</p>
|
208
|
+
|
209
|
+
<pre class="code ruby"><code><span class='gt op'>></span> <span class='rubyid_curl identifier id'>curl</span> <span class='rubyid_localhost identifier id'>localhost</span><span class='symbol val'>:9292</span><span class='div op'>/</span><span class='rubyid_threads identifier id'>threads</span>
|
210
|
+
<span class='rubyid_main identifier id'>main</span> <span class='rubyid_id identifier id'>id</span><span class='assign token'>=</span><span class='integer val'>1</span> <span class='rubyid_state identifier id'>state</span><span class='assign token'>=</span><span class='rubyid_WAITING constant id'>WAITING</span>
|
211
|
+
<span class='minus op'>-</span> <span class='rubyid_waiting identifier id'>waiting</span> <span class='rubyid_on identifier id'>on</span> <span class='lt op'><</span><span class='integer val'>0x073772c5</span><span class='gt op'>></span> <span class='lparen token'>(</span><span class='rubyid_a identifier id'>a</span> <span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_lang identifier id'>lang</span><span class='dot token'>.</span><span class='rubyid_Object constant id'>Object</span><span class='rparen token'>)</span>
|
212
|
+
<span class='minus op'>-</span> <span class='rubyid_locked identifier id'>locked</span> <span class='lt op'><</span><span class='integer val'>0x073772c5</span><span class='gt op'>></span> <span class='lparen token'>(</span><span class='rubyid_a identifier id'>a</span> <span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_lang identifier id'>lang</span><span class='dot token'>.</span><span class='rubyid_Object constant id'>Object</span><span class='rparen token'>)</span>
|
213
|
+
<span class='rubyid_at identifier id'>at</span> <span class='rubyid_java identifier id'>java</span><span class='dot token'>.</span><span class='rubyid_lang identifier id'>lang</span><span class='dot token'>.</span><span class='rubyid_Object constant id'>Object</span><span class='dot token'>.</span><span class='rubyid_wait identifier id'>wait</span><span class='lparen token'>(</span><span class='rubyid_Native constant id'>Native</span> <span class='rubyid_Method constant id'>Method</span><span class='rparen token'>)</span>
|
214
|
+
</code></pre>
|
215
|
+
</div></div>
|
216
|
+
|
217
|
+
<div id="footer">
|
218
|
+
Generated on Mon May 13 23:22:15 2013 by
|
219
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
220
|
+
0.8.3 (ruby-1.9.3).
|
221
|
+
</div>
|
222
|
+
|
223
|
+
</body>
|
224
|
+
</html>
|
data/doc/file_list.html
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
|
16
|
+
|
17
|
+
|
18
|
+
<base id="base_target" target="_parent" />
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<script type="text/javascript" charset="utf-8">
|
22
|
+
if (window.top.frames.main) {
|
23
|
+
document.getElementById('base_target').target = 'main';
|
24
|
+
document.body.className = 'frames';
|
25
|
+
}
|
26
|
+
</script>
|
27
|
+
<div id="content">
|
28
|
+
<h1 id="full_list_header">File List</h1>
|
29
|
+
<div id="nav">
|
30
|
+
|
31
|
+
<span><a target="_self" href="class_list.html">
|
32
|
+
Classes
|
33
|
+
</a></span>
|
34
|
+
|
35
|
+
<span><a target="_self" href="method_list.html">
|
36
|
+
Methods
|
37
|
+
</a></span>
|
38
|
+
|
39
|
+
<span><a target="_self" href="file_list.html">
|
40
|
+
Files
|
41
|
+
</a></span>
|
42
|
+
|
43
|
+
</div>
|
44
|
+
<div id="search">Search: <input type="text" /></div>
|
45
|
+
|
46
|
+
<ul id="full_list" class="file">
|
47
|
+
|
48
|
+
|
49
|
+
<li class="r1"><a href="index.html" title="README">README</a></li>
|
50
|
+
|
51
|
+
|
52
|
+
</ul>
|
53
|
+
</div>
|
54
|
+
</body>
|
55
|
+
</html>
|