redis_dashboard 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 10c99b398879bdb03fd9427acad7140b434e55df
4
- data.tar.gz: 97a10ede56139ffadfcd1adad82dd3286c8a2a84
3
+ metadata.gz: 1a4b7fde8d3759d82ba885462c3f6dfeb7e696c4
4
+ data.tar.gz: 81b2ba82809ec5ee6037f0b73df4559cf84248ea
5
5
  SHA512:
6
- metadata.gz: b40c906da815f3d20ade73365fcde0976222a25afa54878534bec222e413fe007e8a1b36b1bb2a9853685d627bd4d3d410383b96902008f2b57dfe3f29cbf653
7
- data.tar.gz: 3bad65fe54a3e55ab2f4454c63fa512585fb72f823fd8ba6c5315d097b458738c8b7f9442cbc85475327af1276c78dda1287a583ceecd32732fa84430f38f3d3
6
+ metadata.gz: 658e9fbafd0a25c487dad985476ddd6215e13becd2b49d9dd56656fb28828f5a8c8e9b9c804994bf99c6e2bd94d0e1f1d8ef729645a754a6e82eb888272359c1
7
+ data.tar.gz: 3c1894461af3c63c2648ab99e0cc74f7824c7ddd6b84765df12e21fd39b03f25495cfc0c4e38861ce4053dfa2e408854dd903336c1087d136003a56e666728bd
data/README.md CHANGED
@@ -1,10 +1,23 @@
1
1
  # Redis Dashboard
2
2
 
3
- It's a Sinatra web app showing monitoring informations about your Redis server.
3
+ A Sinatra web app showing monitoring informations about your Redis servers.
4
4
  You can run it in standalone or inside your Rails app.
5
5
 
6
6
  ![Redis dashboard](https://github.com/BaseSecrete/redis_dashboard/blob/master/screenshot.jpg)
7
7
 
8
+ ## Features
9
+
10
+ #### List of your redis servers
11
+ - Connections
12
+ - Memory
13
+ - Commands per second
14
+
15
+ #### Detailed views for each server
16
+ - Redis INFO output
17
+ - Redis CONFIG GET output
18
+ - Redis CLIENT LIST output
19
+ - Redis SLOWLOG GET output
20
+
8
21
  ## Installation inside a Rails app
9
22
 
10
23
  Add this line in your Gemfile:
@@ -3,7 +3,7 @@ require "redis"
3
3
  require "uri"
4
4
 
5
5
  class RedisDashboard::Application < Sinatra::Base
6
- after { client.close }
6
+ after { close_clients }
7
7
 
8
8
  get "/" do
9
9
  erb(:index, locals: {clients: clients})
@@ -30,11 +30,18 @@ class RedisDashboard::Application < Sinatra::Base
30
30
  end
31
31
 
32
32
  def client
33
- @client ||= RedisDashboard::Client.new(RedisDashboard.urls[redis_id])
33
+ @client ||= RedisDashboard::Client.new(RedisDashboard.urls[redis_id.to_i])
34
34
  end
35
35
 
36
36
  def clients
37
- RedisDashboard.urls.map { |url| RedisDashboard::Client.new(url) }
37
+ @clients ||= RedisDashboard.urls.map do |url|
38
+ RedisDashboard::Client.new(url)
39
+ end
40
+ end
41
+
42
+ def close_clients
43
+ @client.close if @client
44
+ @clients.each { |client| client.close } if @clients
38
45
  end
39
46
 
40
47
  helpers do
@@ -47,7 +54,7 @@ class RedisDashboard::Application < Sinatra::Base
47
54
  end
48
55
 
49
56
  def redis_id
50
- params[:id].to_i
57
+ params[:id]
51
58
  end
52
59
 
53
60
  def active_page?(path='')
@@ -1,9 +1,5 @@
1
1
  @import "stylesheets/colors";
2
2
 
3
- @import "stylesheets/normalize";
4
-
5
-
6
-
7
3
  @import "stylesheets/base";
8
4
  @import "stylesheets/typography";
9
5
  @import "stylesheets/link";
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>Redis Dashboard</title>
5
- <link rel="stylesheet" href="application.css">
5
+ <link rel="stylesheet" href="<%= url("application.css") %>">
6
6
  </head>
7
7
 
8
8
  <body>
@@ -10,7 +10,7 @@
10
10
  <% for cmd in commands %>
11
11
  <tr>
12
12
  <td><%= cmd.id %></td>
13
- <td><%= epoch_to_short_date_time cmd.timestamp %></td>
13
+ <td class="date"><%= epoch_to_short_date_time cmd.timestamp %></td>
14
14
  <td><%= cmd.microseconds %></td>
15
15
  <td><%= cmd.command.join(" ") %></td>
16
16
  </tr>
@@ -1,19 +1,17 @@
1
1
  html,
2
2
  body {
3
- box-sizing: border-box;
4
- font-size: 14px;
5
- overflow-x: hidden;
6
- width: 100%;
3
+ box-sizing: border-box;
4
+ font-size: 15px;
5
+ overflow-x: hidden;
6
+ width: 100%;
7
7
  }
8
-
9
8
  body {
10
- color: $color-dark;
11
- font-family: 'Menlo', monospace;
12
- font-size: 15px;
13
- font-weight: 300;
14
- letter-spacing: 0;
15
- line-height: 24px;
16
- padding:0;
17
- margin:0;
18
- background: $color-lighter;
9
+ background: $color-lighter;
10
+ color: $color-dark;
11
+ font-family: 'Menlo', monospace;
12
+ font-weight: 400;
13
+ letter-spacing: 0;
14
+ line-height: 24px;
15
+ padding:0;
16
+ margin:0;
19
17
  }
@@ -1,24 +1,20 @@
1
-
2
- // Link
3
- // ––––––––––––––––––––––––––––––––––––––––––––––––––
4
-
5
1
  a {
6
- color: $color-redis;
7
- text-decoration: none;
2
+ color: $color-redis;
3
+ text-decoration: none;
8
4
  }
9
5
  a:focus,
10
6
  a:hover {
11
- color: $color-redis-dark;
7
+ color: $color-redis-dark;
12
8
  }
13
9
 
14
10
  a svg {
15
- width:15px;
16
- height:15px;
17
- fill: $color-redis;
18
- position:
19
- relative;
20
- top: 3px;
11
+ width:15px;
12
+ height:15px;
13
+ fill: $color-redis;
14
+ position:
15
+ relative;
16
+ top: 3px;
21
17
  }
22
- a svg {
23
- fill: $color-redis-dark;
18
+ a:hover svg {
19
+ fill: $color-redis-dark;
24
20
  }
@@ -4,11 +4,11 @@
4
4
  max-width: 1480px;
5
5
  padding: 0 24px;
6
6
  }
7
+
7
8
  .page-header {
8
9
  display: flex;
9
10
  flex-wrap: wrap;
10
11
  }
11
-
12
12
  .page-header a {
13
13
  font-family: sans-serif;
14
14
  font-size: .694rem;
@@ -18,7 +18,6 @@
18
18
  padding: 0 12px;
19
19
  background: $color-redis;
20
20
  color: $color-white;
21
-
22
21
  border-bottom: 1px solid $color-light;
23
22
  }
24
23
  .page-header a:hover {
@@ -41,7 +40,6 @@
41
40
  margin-right: auto;
42
41
  box-shadow: 0 4px 12px 0px $color-light;
43
42
  }
44
-
45
43
  .page-title span {
46
44
  display: inline-block;
47
45
  background-color: $color-white;
@@ -58,10 +56,10 @@
58
56
  }
59
57
 
60
58
  div.table {
61
- width: 100%;
62
- background: $color-white;
63
- overflow-x: scroll;
64
- margin-bottom: 24px;
59
+ width: 100%;
60
+ background: $color-white;
61
+ overflow-x: scroll;
62
+ margin-bottom: 24px;
65
63
  box-shadow: 0 4px 12px 0px $color-light;
66
64
  }
67
65
 
@@ -3,38 +3,42 @@
3
3
  // ––––––––––––––––––––––––––––––––––––––––––––––––––
4
4
 
5
5
  table {
6
- border-spacing: 0;
7
- width: 100%;
8
- overflow-x: scroll;
6
+ border-spacing: 0;
7
+ width: 100%;
8
+ overflow-x: scroll;
9
9
  }
10
10
 
11
11
  tr:hover {
12
- background: $color-light;
12
+ background: $color-light;
13
13
  }
14
14
  thead tr:hover {
15
- background: $color-white;
15
+ background: $color-white;
16
16
  }
17
17
 
18
18
  td,
19
19
  th {
20
- border-bottom: 1px solid $color-light;
21
- padding: 12px 12px 11px;
22
- text-align: left;
23
- line-height: 24px;
24
- }
20
+ border-bottom: 1px solid $color-light;
21
+ padding: 12px 12px 11px;
22
+ text-align: left;
23
+ line-height: 24px;
24
+ }
25
25
 
26
26
  th {
27
- font-weight: 400;
28
- font-family: sans-serif;
29
- font-size: .694rem;
30
- letter-spacing: 2px;
31
- text-transform: uppercase;
27
+ font-weight: 400;
28
+ font-family: sans-serif;
29
+ font-size: .694rem;
30
+ letter-spacing: 2px;
31
+ text-transform: uppercase;
32
32
  }
33
33
 
34
34
  td.key {
35
- text-transform: uppercase;
36
- font-family: sans-serif;
37
- font-weight: 400;
38
- font-size: .694rem;
39
- letter-spacing: 2px;
35
+ text-transform: uppercase;
36
+ font-family: sans-serif;
37
+ font-weight: 400;
38
+ font-size: .694rem;
39
+ letter-spacing: 2px;
40
+ }
41
+
42
+ td.date {
43
+ white-space: nowrap;
40
44
  }
@@ -1,25 +1,21 @@
1
-
2
- // Typography
3
- // ––––––––––––––––––––––––––––––––––––––––––––––––––
4
-
5
1
  b,
6
2
  strong {
7
- font-weight: bold;
3
+ font-weight: bold;
8
4
  }
9
5
 
10
6
  p {
11
- margin-top: 0;
7
+ margin-top: 0;
12
8
  }
13
9
 
14
10
  h1,
15
11
  h2 {
16
- font-weight: 300;
17
- letter-spacing: 0;
18
- margin-bottom: 2.0rem;
19
- margin-top: 0;
12
+ font-weight: 300;
13
+ letter-spacing: 0;
14
+ margin-bottom: 2.0rem;
15
+ margin-top: 0;
20
16
  }
21
17
  h2 {
22
- font-size: 1.728rem;
23
- font-weight: 700;
24
- line-height: 2;
18
+ font-size: 1.728rem;
19
+ font-weight: 700;
20
+ line-height: 2;
25
21
  }
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "redis_dashboard"
6
- spec.version = "0.1.1"
6
+ spec.version = "0.1.2"
7
7
  spec.authors = ["Alexis Bernard"]
8
8
  spec.email = ["alexis@bernard.io"]
9
9
  spec.summary = "Sinatra app to monitor Redis servers."
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis_dashboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexis Bernard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-07 00:00:00.000000000 Z
11
+ date: 2018-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -50,7 +50,6 @@ files:
50
50
  - lib/redis_dashboard/views/stylesheets/base.scss
51
51
  - lib/redis_dashboard/views/stylesheets/colors.scss
52
52
  - lib/redis_dashboard/views/stylesheets/link.scss
53
- - lib/redis_dashboard/views/stylesheets/normalize.scss
54
53
  - lib/redis_dashboard/views/stylesheets/page.scss
55
54
  - lib/redis_dashboard/views/stylesheets/server-card.scss
56
55
  - lib/redis_dashboard/views/stylesheets/table.scss
@@ -1,461 +0,0 @@
1
- /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
2
-
3
- /**
4
- * 1. Change the default font family in all browsers (opinionated).
5
- * 2. Correct the line height in all browsers.
6
- * 3. Prevent adjustments of font size after orientation changes in
7
- * IE on Windows Phone and in iOS.
8
- */
9
-
10
- /* Document
11
- ========================================================================== */
12
-
13
- html {
14
- font-family: sans-serif; /* 1 */
15
- line-height: 1.15; /* 2 */
16
- -ms-text-size-adjust: 100%; /* 3 */
17
- -webkit-text-size-adjust: 100%; /* 3 */
18
- }
19
-
20
- /* Sections
21
- ========================================================================== */
22
-
23
- /**
24
- * Remove the margin in all browsers (opinionated).
25
- */
26
-
27
- body {
28
- margin: 0;
29
- }
30
-
31
- /**
32
- * Add the correct display in IE 9-.
33
- */
34
-
35
- article,
36
- aside,
37
- footer,
38
- header,
39
- nav,
40
- section {
41
- display: block;
42
- }
43
-
44
- /**
45
- * Correct the font size and margin on `h1` elements within `section` and
46
- * `article` contexts in Chrome, Firefox, and Safari.
47
- */
48
-
49
- h1 {
50
- font-size: 2em;
51
- margin: 0.67em 0;
52
- }
53
-
54
- /* Grouping content
55
- ========================================================================== */
56
-
57
- /**
58
- * Add the correct display in IE 9-.
59
- * 1. Add the correct display in IE.
60
- */
61
-
62
- figcaption,
63
- figure,
64
- main { /* 1 */
65
- display: block;
66
- }
67
-
68
- /**
69
- * Add the correct margin in IE 8.
70
- */
71
-
72
- figure {
73
- margin: 1em 40px;
74
- }
75
-
76
- /**
77
- * 1. Add the correct box sizing in Firefox.
78
- * 2. Show the overflow in Edge and IE.
79
- */
80
-
81
- hr {
82
- box-sizing: content-box; /* 1 */
83
- height: 0; /* 1 */
84
- overflow: visible; /* 2 */
85
- }
86
-
87
- /**
88
- * 1. Correct the inheritance and scaling of font size in all browsers.
89
- * 2. Correct the odd `em` font sizing in all browsers.
90
- */
91
-
92
- pre {
93
- font-family: monospace, monospace; /* 1 */
94
- font-size: 1em; /* 2 */
95
- }
96
-
97
- /* Text-level semantics
98
- ========================================================================== */
99
-
100
- /**
101
- * 1. Remove the gray background on active links in IE 10.
102
- * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
103
- */
104
-
105
- a {
106
- background-color: transparent; /* 1 */
107
- -webkit-text-decoration-skip: objects; /* 2 */
108
- }
109
-
110
- /**
111
- * Remove the outline on focused links when they are also active or hovered
112
- * in all browsers (opinionated).
113
- */
114
-
115
- a:active,
116
- a:hover {
117
- outline-width: 0;
118
- }
119
-
120
- /**
121
- * 1. Remove the bottom border in Firefox 39-.
122
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
123
- */
124
-
125
- abbr[title] {
126
- border-bottom: none; /* 1 */
127
- text-decoration: underline; /* 2 */
128
- text-decoration: underline dotted; /* 2 */
129
- }
130
-
131
- /**
132
- * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
133
- */
134
-
135
- b,
136
- strong {
137
- font-weight: inherit;
138
- }
139
-
140
- /**
141
- * Add the correct font weight in Chrome, Edge, and Safari.
142
- */
143
-
144
- b,
145
- strong {
146
- font-weight: bolder;
147
- }
148
-
149
- /**
150
- * 1. Correct the inheritance and scaling of font size in all browsers.
151
- * 2. Correct the odd `em` font sizing in all browsers.
152
- */
153
-
154
- code,
155
- kbd,
156
- samp {
157
- font-family: monospace, monospace; /* 1 */
158
- font-size: 1em; /* 2 */
159
- }
160
-
161
- /**
162
- * Add the correct font style in Android 4.3-.
163
- */
164
-
165
- dfn {
166
- font-style: italic;
167
- }
168
-
169
- /**
170
- * Add the correct background and color in IE 9-.
171
- */
172
-
173
- mark {
174
- background-color: #ff0;
175
- color: #000;
176
- }
177
-
178
- /**
179
- * Add the correct font size in all browsers.
180
- */
181
-
182
- small {
183
- font-size: 80%;
184
- }
185
-
186
- /**
187
- * Prevent `sub` and `sup` elements from affecting the line height in
188
- * all browsers.
189
- */
190
-
191
- sub,
192
- sup {
193
- font-size: 75%;
194
- line-height: 0;
195
- position: relative;
196
- vertical-align: baseline;
197
- }
198
-
199
- sub {
200
- bottom: -0.25em;
201
- }
202
-
203
- sup {
204
- top: -0.5em;
205
- }
206
-
207
- /* Embedded content
208
- ========================================================================== */
209
-
210
- /**
211
- * Add the correct display in IE 9-.
212
- */
213
-
214
- audio,
215
- video {
216
- display: inline-block;
217
- }
218
-
219
- /**
220
- * Add the correct display in iOS 4-7.
221
- */
222
-
223
- audio:not([controls]) {
224
- display: none;
225
- height: 0;
226
- }
227
-
228
- /**
229
- * Remove the border on images inside links in IE 10-.
230
- */
231
-
232
- img {
233
- border-style: none;
234
- }
235
-
236
- /**
237
- * Hide the overflow in IE.
238
- */
239
-
240
- svg:not(:root) {
241
- overflow: hidden;
242
- }
243
-
244
- /* Forms
245
- ========================================================================== */
246
-
247
- /**
248
- * 1. Change the font styles in all browsers (opinionated).
249
- * 2. Remove the margin in Firefox and Safari.
250
- */
251
-
252
- button,
253
- input,
254
- optgroup,
255
- select,
256
- textarea {
257
- font-family: sans-serif; /* 1 */
258
- font-size: 100%; /* 1 */
259
- line-height: 1.15; /* 1 */
260
- margin: 0; /* 2 */
261
- }
262
-
263
- /**
264
- * Show the overflow in IE.
265
- * 1. Show the overflow in Edge.
266
- */
267
-
268
- button,
269
- input { /* 1 */
270
- overflow: visible;
271
- }
272
-
273
- /**
274
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
275
- * 1. Remove the inheritance of text transform in Firefox.
276
- */
277
-
278
- button,
279
- select { /* 1 */
280
- text-transform: none;
281
- }
282
-
283
- /**
284
- * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
285
- * controls in Android 4.
286
- * 2. Correct the inability to style clickable types in iOS and Safari.
287
- */
288
-
289
- button,
290
- html [type="button"], /* 1 */
291
- [type="reset"],
292
- [type="submit"] {
293
- -webkit-appearance: button; /* 2 */
294
- }
295
-
296
- /**
297
- * Remove the inner border and padding in Firefox.
298
- */
299
-
300
- button::-moz-focus-inner,
301
- [type="button"]::-moz-focus-inner,
302
- [type="reset"]::-moz-focus-inner,
303
- [type="submit"]::-moz-focus-inner {
304
- border-style: none;
305
- padding: 0;
306
- }
307
-
308
- /**
309
- * Restore the focus styles unset by the previous rule.
310
- */
311
-
312
- button:-moz-focusring,
313
- [type="button"]:-moz-focusring,
314
- [type="reset"]:-moz-focusring,
315
- [type="submit"]:-moz-focusring {
316
- outline: 1px dotted ButtonText;
317
- }
318
-
319
- /**
320
- * Change the border, margin, and padding in all browsers (opinionated).
321
- */
322
-
323
- fieldset {
324
- border: 1px solid #c0c0c0;
325
- margin: 0 2px;
326
- padding: 0.35em 0.625em 0.75em;
327
- }
328
-
329
- /**
330
- * 1. Correct the text wrapping in Edge and IE.
331
- * 2. Correct the color inheritance from `fieldset` elements in IE.
332
- * 3. Remove the padding so developers are not caught out when they zero out
333
- * `fieldset` elements in all browsers.
334
- */
335
-
336
- legend {
337
- box-sizing: border-box; /* 1 */
338
- color: inherit; /* 2 */
339
- display: table; /* 1 */
340
- max-width: 100%; /* 1 */
341
- padding: 0; /* 3 */
342
- white-space: normal; /* 1 */
343
- }
344
-
345
- /**
346
- * 1. Add the correct display in IE 9-.
347
- * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
348
- */
349
-
350
- progress {
351
- display: inline-block; /* 1 */
352
- vertical-align: baseline; /* 2 */
353
- }
354
-
355
- /**
356
- * Remove the default vertical scrollbar in IE.
357
- */
358
-
359
- textarea {
360
- overflow: auto;
361
- }
362
-
363
- /**
364
- * 1. Add the correct box sizing in IE 10-.
365
- * 2. Remove the padding in IE 10-.
366
- */
367
-
368
- [type="checkbox"],
369
- [type="radio"] {
370
- box-sizing: border-box; /* 1 */
371
- padding: 0; /* 2 */
372
- }
373
-
374
- /**
375
- * Correct the cursor style of increment and decrement buttons in Chrome.
376
- */
377
-
378
- [type="number"]::-webkit-inner-spin-button,
379
- [type="number"]::-webkit-outer-spin-button {
380
- height: auto;
381
- }
382
-
383
- /**
384
- * 1. Correct the odd appearance in Chrome and Safari.
385
- * 2. Correct the outline style in Safari.
386
- */
387
-
388
- [type="search"] {
389
- -webkit-appearance: textfield; /* 1 */
390
- outline-offset: -2px; /* 2 */
391
- }
392
-
393
- /**
394
- * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
395
- */
396
-
397
- [type="search"]::-webkit-search-cancel-button,
398
- [type="search"]::-webkit-search-decoration {
399
- -webkit-appearance: none;
400
- }
401
-
402
- /**
403
- * 1. Correct the inability to style clickable types in iOS and Safari.
404
- * 2. Change font properties to `inherit` in Safari.
405
- */
406
-
407
- ::-webkit-file-upload-button {
408
- -webkit-appearance: button; /* 1 */
409
- font: inherit; /* 2 */
410
- }
411
-
412
- /* Interactive
413
- ========================================================================== */
414
-
415
- /*
416
- * Add the correct display in IE 9-.
417
- * 1. Add the correct display in Edge, IE, and Firefox.
418
- */
419
-
420
- details, /* 1 */
421
- menu {
422
- display: block;
423
- }
424
-
425
- /*
426
- * Add the correct display in all browsers.
427
- */
428
-
429
- summary {
430
- display: list-item;
431
- }
432
-
433
- /* Scripting
434
- ========================================================================== */
435
-
436
- /**
437
- * Add the correct display in IE 9-.
438
- */
439
-
440
- canvas {
441
- display: inline-block;
442
- }
443
-
444
- /**
445
- * Add the correct display in IE.
446
- */
447
-
448
- template {
449
- display: none;
450
- }
451
-
452
- /* Hidden
453
- ========================================================================== */
454
-
455
- /**
456
- * Add the correct display in IE 10-.
457
- */
458
-
459
- [hidden] {
460
- display: none;
461
- }