greenhat 0.1.4

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.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +64 -0
  3. data/bin/greenhat +12 -0
  4. data/lib/greenhat.rb +80 -0
  5. data/lib/greenhat/accessors/disk.rb +27 -0
  6. data/lib/greenhat/accessors/logs/production.rb +41 -0
  7. data/lib/greenhat/accessors/logs/sidekiq.rb +41 -0
  8. data/lib/greenhat/accessors/memory.rb +46 -0
  9. data/lib/greenhat/accessors/network.rb +8 -0
  10. data/lib/greenhat/accessors/process.rb +8 -0
  11. data/lib/greenhat/archive.rb +108 -0
  12. data/lib/greenhat/cli.rb +448 -0
  13. data/lib/greenhat/host.rb +182 -0
  14. data/lib/greenhat/logbot.rb +86 -0
  15. data/lib/greenhat/pry_helpers.rb +51 -0
  16. data/lib/greenhat/settings.rb +51 -0
  17. data/lib/greenhat/shell.rb +92 -0
  18. data/lib/greenhat/shell/cat.rb +125 -0
  19. data/lib/greenhat/shell/disk.rb +68 -0
  20. data/lib/greenhat/shell/faststats.rb +195 -0
  21. data/lib/greenhat/shell/gitlab.rb +45 -0
  22. data/lib/greenhat/shell/help.rb +15 -0
  23. data/lib/greenhat/shell/helper.rb +514 -0
  24. data/lib/greenhat/shell/log.rb +344 -0
  25. data/lib/greenhat/shell/memory.rb +31 -0
  26. data/lib/greenhat/shell/network.rb +12 -0
  27. data/lib/greenhat/shell/process.rb +12 -0
  28. data/lib/greenhat/shell/report.rb +319 -0
  29. data/lib/greenhat/thing.rb +121 -0
  30. data/lib/greenhat/thing/file_types.rb +705 -0
  31. data/lib/greenhat/thing/formatters/api_json.rb +34 -0
  32. data/lib/greenhat/thing/formatters/bracket_log.rb +44 -0
  33. data/lib/greenhat/thing/formatters/clean_raw.rb +23 -0
  34. data/lib/greenhat/thing/formatters/colon_split_strip.rb +12 -0
  35. data/lib/greenhat/thing/formatters/dotenv.rb +10 -0
  36. data/lib/greenhat/thing/formatters/format.rb +12 -0
  37. data/lib/greenhat/thing/formatters/free_m.rb +29 -0
  38. data/lib/greenhat/thing/formatters/gitlab_ctl_tail.rb +51 -0
  39. data/lib/greenhat/thing/formatters/gitlab_status.rb +26 -0
  40. data/lib/greenhat/thing/formatters/json.rb +63 -0
  41. data/lib/greenhat/thing/formatters/json_shellwords.rb +44 -0
  42. data/lib/greenhat/thing/formatters/multiline_json.rb +10 -0
  43. data/lib/greenhat/thing/formatters/raw.rb +18 -0
  44. data/lib/greenhat/thing/formatters/shellwords.rb +23 -0
  45. data/lib/greenhat/thing/formatters/table.rb +26 -0
  46. data/lib/greenhat/thing/formatters/time_json.rb +21 -0
  47. data/lib/greenhat/thing/formatters/time_shellwords.rb +28 -0
  48. data/lib/greenhat/thing/formatters/time_space.rb +36 -0
  49. data/lib/greenhat/thing/helpers.rb +71 -0
  50. data/lib/greenhat/thing/history.rb +51 -0
  51. data/lib/greenhat/thing/info_format.rb +193 -0
  52. data/lib/greenhat/thing/kind.rb +97 -0
  53. data/lib/greenhat/thing/spinner.rb +52 -0
  54. data/lib/greenhat/thing/super_log.rb +102 -0
  55. data/lib/greenhat/tty/custom_line.rb +29 -0
  56. data/lib/greenhat/tty/line.rb +326 -0
  57. data/lib/greenhat/tty/reader.rb +110 -0
  58. data/lib/greenhat/version.rb +3 -0
  59. data/lib/greenhat/views/css.slim +126 -0
  60. data/lib/greenhat/views/disk_free.slim +18 -0
  61. data/lib/greenhat/views/index.slim +51 -0
  62. data/lib/greenhat/views/info.slim +39 -0
  63. data/lib/greenhat/views/manifest.slim +22 -0
  64. data/lib/greenhat/views/memory.slim +18 -0
  65. data/lib/greenhat/views/netstat.slim +20 -0
  66. data/lib/greenhat/views/process.slim +21 -0
  67. data/lib/greenhat/views/systemctl.slim +40 -0
  68. data/lib/greenhat/views/ulimit.slim +15 -0
  69. data/lib/greenhat/web.rb +46 -0
  70. metadata +476 -0
@@ -0,0 +1,121 @@
1
+ # Top Level what everything is
2
+ class Thing < Teron
3
+ include GreenHat::Formatters
4
+ include GreenHat::ThingHelpers
5
+ include GreenHat::Spinner
6
+ include GreenHat::Kind
7
+ include GreenHat::FileTypes
8
+ include ActionView::Helpers::DateHelper
9
+ include ActionView::Helpers::NumberHelper
10
+
11
+ belongs_to :host
12
+ belongs_to :archive
13
+
14
+ # File
15
+ field :file # Full File Path / File Load
16
+ field :name # Base File Name
17
+ field :path # Symbol Name Helper
18
+ field :size # Total File Size
19
+
20
+ # Classification
21
+ field :kind # File Information
22
+ field :type # Shared Naming Convention (Based off of SOS)
23
+ field :log # Parsable / Include in log formats
24
+
25
+ # Preloader Flags
26
+ field :parsed # Flag for Parsing
27
+ field :result # Processed Data
28
+ field :raw_result # Flag for reading raw data
29
+
30
+ def friendly_name
31
+ "#{archive.friendly_name.colorize(:blue)} #{name.colorize(:green)} #{id.colorize(:black)}"
32
+ end
33
+
34
+ def setup
35
+ self.name = build_path('/')
36
+ self.path = build_path.gsub(/[^\w\s]/, '_')
37
+ self.size = number_to_human_size File.size(file)
38
+
39
+ kind_collect # Set Kind and Type
40
+ kind_setup
41
+
42
+ save!
43
+ end
44
+
45
+ # Processor
46
+ def data
47
+ process unless parsed
48
+
49
+ result
50
+ end
51
+
52
+ def raw
53
+ raw_read if raw_result.nil?
54
+
55
+ raw_result
56
+ end
57
+
58
+ # Filter / Archive Pattern Matching
59
+ def archive?(archive_names)
60
+ archive_names.map(&:to_s).any? { |x| archive.name.include? x }
61
+ end
62
+
63
+ # Helper for empty logs
64
+ def blank?
65
+ data.blank?
66
+ end
67
+
68
+ def raw_read
69
+ spin_start("Read #{name.colorize(:blue)} #{size.colorize(:light_black)}")
70
+ self.raw_result = File.read(file).split("\n")
71
+ rescue StandardError => e
72
+ LogBot.fatal('Raw Read', message: e.message, backtrace: e.backtrace.first)
73
+ self.raw_result = ''
74
+ ensure
75
+ spin_done
76
+ end
77
+
78
+ def output(print_it = true)
79
+ if print_it
80
+ puts raw.join("\n")
81
+ else
82
+ raw
83
+ end
84
+ end
85
+
86
+ # Log Identifier Helper
87
+ def log?
88
+ GreenHat::SuperLog.log? kind
89
+ end
90
+
91
+ # Hashed values searching
92
+ def processed?
93
+ kind != :raw
94
+ end
95
+
96
+ # Helper Formatter Method
97
+ def formatter
98
+ "format_#{kind}".to_sym
99
+ end
100
+
101
+ def process
102
+ # Read First if Needed (Spinner)
103
+ raw_read if raw_result.nil?
104
+
105
+ if methods.include? formatter
106
+ spin_start("Parse #{name.colorize(:blue)} #{kind.to_s.colorize(:light_black)} ")
107
+ begin
108
+ send(formatter)
109
+ rescue StandardError => e
110
+ LogBot.fatal('Process', message: e.message, backtrace: e.backtrace.first)
111
+ end
112
+ spin_done
113
+ else
114
+ LogBot.fatal('Thing', "No Formatter for #{formatter}")
115
+ end
116
+
117
+ self.parsed = true
118
+
119
+ save!
120
+ end
121
+ end
@@ -0,0 +1,705 @@
1
+ module GreenHat
2
+ # Overall Type Parsing
3
+ # rubocop:disable Metrics/MethodLength, Metrics/ModuleLength
4
+ module FileTypes
5
+ def types
6
+ {
7
+ 'cpuinfo' => {
8
+ format: :raw,
9
+ pattern: [
10
+ /cpuinfo/
11
+ ]
12
+ },
13
+ 'df_h' => {
14
+ format: :table,
15
+ pattern: [
16
+ /df_h/
17
+ ]
18
+ },
19
+ 'df_inodes' => {
20
+ format: :table,
21
+ pattern: [
22
+ /df_inodes/
23
+ ]
24
+ },
25
+ 'dmesg' => {
26
+ format: :bracket_log,
27
+ log: true,
28
+ pattern: [
29
+ /dmesg/
30
+ ]
31
+ },
32
+ 'log/syslog' => {
33
+ format: :bracket_log,
34
+ log: true,
35
+ pattern: [
36
+ %r{log/syslog}
37
+ ]
38
+ },
39
+ 'etc/fstab' => {
40
+ format: :clean_raw,
41
+ pattern: [
42
+ %r{etc/fstab}
43
+ ]
44
+ },
45
+ 'etc/os-release' => {
46
+ format: :dotenv,
47
+ pattern: [
48
+ %r{etc/os-release}
49
+ ]
50
+ },
51
+ 'sysctl_a' => {
52
+ format: :dotenv,
53
+ pattern: [
54
+ /sysctl_a/
55
+ ]
56
+ },
57
+ 'free_m' => {
58
+ format: :free_m,
59
+ pattern: [
60
+ /free_m/
61
+ ]
62
+ },
63
+ 'getenforce' => {
64
+ format: :raw,
65
+ pattern: [
66
+ /getenforce/
67
+ ]
68
+ },
69
+ 'gitaly/current' => {
70
+ format: :json_shell,
71
+ log: true,
72
+ pattern: [
73
+ %r{gitaly/current},
74
+ %r{gitaly/@.*}
75
+ ]
76
+ },
77
+ 'consul/current' => {
78
+ format: :time_space,
79
+ log: true,
80
+ pattern: [
81
+ %r{consul/current}
82
+ ]
83
+ },
84
+ 'pgbouncer/current' => {
85
+ format: :time_space,
86
+ log: true,
87
+ pattern: [
88
+ %r{pgbouncer/current}
89
+ ]
90
+ },
91
+ 'mailroom/mail_room_json.log' => {
92
+ format: :json,
93
+ log: true,
94
+ pattern: [
95
+ %r{mailroom/mail_room_json.log}
96
+ ]
97
+ },
98
+ 'gitlab-rails/git_json.log' => {
99
+ format: :json,
100
+ log: true,
101
+ pattern: [
102
+ %r{gitlab-rails/git_json.log}
103
+ ]
104
+ },
105
+ 'gitaly/gitaly_ruby_json.log' => {
106
+ format: :json,
107
+ log: true,
108
+ pattern: [
109
+ %r{gitaly/gitaly_ruby_json.log}
110
+ ]
111
+ },
112
+ 'gitlab_status' => {
113
+ format: :gitlab_status,
114
+ pattern: [
115
+ /gitlab_status/
116
+ ]
117
+ },
118
+ 'postgresql/current' => {
119
+ format: :time_space,
120
+ log: true,
121
+ pattern: [
122
+ %r{postgresql/current},
123
+ %r{postgresql/@.*}
124
+ ]
125
+ },
126
+ 'gitlab-ctl/tail' => {
127
+ format: :gitlab_tail,
128
+ log: true,
129
+ pattern: [
130
+ /gitlab-ctl-tail.log/
131
+ ]
132
+ },
133
+ 'patroni/current' => {
134
+ format: :time_space,
135
+ log: true,
136
+ pattern: [
137
+ %r{patroni/current}
138
+ ]
139
+ },
140
+ 'gitlab-exporter/current' => {
141
+ format: :time_space,
142
+ log: true,
143
+ pattern: [
144
+ %r{gitlab-exporter/current}
145
+ ]
146
+ },
147
+ 'gitlab-monitor/current' => {
148
+ format: :time_space,
149
+ log: true,
150
+ pattern: [
151
+ %r{gitlab-monitor/current}
152
+ ]
153
+ },
154
+ 'logrotate/current' => {
155
+ format: :time_space,
156
+ log: true,
157
+ pattern: [
158
+ %r{logrotate/current}
159
+ ]
160
+ },
161
+ 'gitlab-rails/api_json.log' => {
162
+ format: :api_json,
163
+ log: true,
164
+ pattern: [
165
+ %r{gitlab-rails/api_json.log}
166
+ ]
167
+ },
168
+ 'gitlab-rails/application_json.log' => {
169
+ format: :json,
170
+ log: true,
171
+ pattern: [
172
+ %r{gitlab-rails/application_json.log}
173
+ ]
174
+ },
175
+ 'gitlab-rails/audit_json.log' => {
176
+ format: :json,
177
+ log: true,
178
+ pattern: [
179
+ %r{gitlab-rails/audit_json.log}
180
+ ]
181
+ },
182
+ 'gitlab-rails/auth.log' => {
183
+ format: :json,
184
+ log: true,
185
+ pattern: [
186
+ %r{gitlab-rails/auth.log}
187
+ ]
188
+ },
189
+ 'gitlab-rails/exceptions_json.log' => {
190
+ format: :json,
191
+ log: true,
192
+ pattern: [
193
+ %r{gitlab-rails/exceptions_json.log}
194
+ ]
195
+ },
196
+ 'gitlab-rails/graphql_json.log' => {
197
+ format: :json,
198
+ log: true,
199
+ pattern: [
200
+ %r{gitlab-rails/graphql_json.log}
201
+ ]
202
+ },
203
+ 'gitlab-rails/importer.log' => {
204
+ format: :json,
205
+ log: true,
206
+ pattern: [
207
+ %r{gitlab-rails/importer.log}
208
+ ]
209
+ },
210
+ 'gitlab-rails/integrations_json.log' => {
211
+ format: :json,
212
+ log: true,
213
+ pattern: [
214
+ %r{gitlab-rails/integrations_json.log}
215
+ ]
216
+ },
217
+ 'gitlab-rails/production_json.log' => {
218
+ format: :json,
219
+ log: true,
220
+ pattern: [
221
+ %r{gitlab-rails/production_json.log}
222
+ ]
223
+ },
224
+ 'gitlab-rails/sidekiq_client.log' => {
225
+ format: :json,
226
+ log: true,
227
+ pattern: [
228
+ %r{gitlab-rails/sidekiq_client.log}
229
+ ]
230
+ },
231
+ 'gitlab-shell/gitlab-shell.log' => {
232
+ format: :json,
233
+ log: true,
234
+ pattern: [
235
+ %r{gitlab-shell/gitlab-shell.log}
236
+ ]
237
+ },
238
+ 'gitlab-workhorse/current' => {
239
+ format: :json,
240
+ log: true,
241
+ pattern: [
242
+ %r{gitlab-workhorse/current},
243
+ %r{gitlab-workhorse/@.*}
244
+ ]
245
+ },
246
+ 'gitlab/version-manifest.json' => {
247
+ format: :multiline_json,
248
+ pattern: [
249
+ %r{gitlab/version-manifest.json}
250
+ ]
251
+ },
252
+ 'gitlabsos.log' => {
253
+ format: :bracket_log,
254
+ log: true,
255
+ pattern: [
256
+ /gitlabsos.log/
257
+ ]
258
+ },
259
+ 'hostname' => {
260
+ format: :raw,
261
+ pattern: [
262
+ /hostname/
263
+ ]
264
+ },
265
+ 'lscpu' => {
266
+ format: :colon_split_strip,
267
+ pattern: [
268
+ /lscpu/
269
+ ]
270
+ },
271
+ 'meminfo' => {
272
+ format: :colon_split_strip,
273
+ pattern: [
274
+ /meminfo/
275
+ ]
276
+ },
277
+ 'mount' => {
278
+ format: :raw,
279
+ pattern: [
280
+ /mount/
281
+ ]
282
+ },
283
+ 'nginx/gitlab_pages_access.log' => {
284
+ format: :raw,
285
+ log: true,
286
+ pattern: [
287
+ %r{nginx/gitlab_pages_access.log}
288
+ ]
289
+ },
290
+ 'nginx/gitlab_access.log' => {
291
+ format: :raw,
292
+ log: true,
293
+ pattern: [
294
+ %r{nginx/gitlab_access.log}
295
+ ]
296
+ },
297
+ 'gitlab-rails/sidekiq_exporter.log' => {
298
+ format: :raw,
299
+ log: true,
300
+ pattern: [
301
+ %r{gitlab-rails/sidekiq_exporter.log}
302
+ ]
303
+ },
304
+ 'crond/current' => {
305
+ format: :time_shellwords,
306
+ log: true,
307
+ pattern: [
308
+ %r{crond/current}
309
+ ]
310
+ },
311
+ 'grafana/current' => {
312
+ format: :time_shellwords,
313
+ log: true,
314
+ pattern: [
315
+ %r{grafana/current}
316
+ ]
317
+ },
318
+ 'pgbouncer-exporter/current' => {
319
+ format: :time_shellwords,
320
+ log: true,
321
+ pattern: [
322
+ %r{pgbouncer-exporter/current}
323
+ ]
324
+ },
325
+ 'puma/current' => {
326
+ format: :time_json,
327
+ log: true,
328
+ pattern: [
329
+ %r{puma/current}
330
+ ]
331
+ },
332
+ 'reconfigure.log' => {
333
+ format: :bracket_log,
334
+ log: true,
335
+ pattern: [
336
+ %r{^reconfigure/.*log$}
337
+ ]
338
+ },
339
+ 'node-exporter/current' => {
340
+ format: :time_shellwords,
341
+ log: true,
342
+ pattern: [
343
+ %r{node-exporter/current}
344
+ ]
345
+ },
346
+ 'postgres-exporter/current' => {
347
+ format: :time_shellwords,
348
+ log: true,
349
+ pattern: [
350
+ %r{postgres-exporter/current}
351
+ ]
352
+ },
353
+ 'redis-exporter/current' => {
354
+ format: :time_shellwords,
355
+ log: true,
356
+ pattern: [
357
+ %r{redis-exporter/current},
358
+ %r{redis-exporter/@.*}
359
+ ]
360
+ },
361
+ 'prometheus/current' => {
362
+ format: :time_shellwords,
363
+ log: true,
364
+ pattern: [
365
+ %r{prometheus/current}
366
+ ]
367
+ },
368
+ 'registry/current' => {
369
+ format: :time_shellwords,
370
+ log: true,
371
+ pattern: [
372
+ %r{registry/current},
373
+ %r{registry/@.*}
374
+ ]
375
+ },
376
+ 'alertmanager/current' => {
377
+ format: :time_shellwords,
378
+ log: true,
379
+ pattern: [
380
+ %r{alertmanager/current}
381
+ ]
382
+ },
383
+ 'ps' => {
384
+ format: :table,
385
+ pattern: [
386
+ /^ps/
387
+ ]
388
+ },
389
+ 'puma/puma_stderr.log' => {
390
+ format: :raw,
391
+ log: true,
392
+ pattern: [
393
+ %r{puma/puma_stderr.log}
394
+ ]
395
+ },
396
+ 'puma/puma_stdout.log' => {
397
+ format: :json,
398
+ log: true,
399
+ pattern: [
400
+ %r{puma/puma_stdout.log}
401
+ ]
402
+ },
403
+ 'gitlab-pages/current' => {
404
+ format: :json,
405
+ log: true,
406
+ pattern: [
407
+ %r{gitlab-pages/current}
408
+ ]
409
+ },
410
+
411
+ # General Purpose Raw
412
+ 'raw' => {
413
+ format: :raw,
414
+ pattern: [
415
+ %r{alertmanager/config},
416
+ %r{gitaly/config},
417
+ %r{gitlab-exporter/config},
418
+ %r{gitlab-pages/config},
419
+ %r{gitlab-workhorse/config},
420
+ %r{grafana/config},
421
+ %r{logrotate/config},
422
+ %r{nginx/config},
423
+ %r{node-exporter/config},
424
+ %r{postgres-exporter/config},
425
+ %r{postgresql/config},
426
+ %r{prometheus/config},
427
+ %r{puma/config},
428
+ %r{redis/config},
429
+ %r{redis-exporter/config},
430
+ %r{registry/config},
431
+ %r{sidekiq/config}
432
+ ]
433
+ },
434
+ 'redis/current' => {
435
+ format: :time_space,
436
+ log: true,
437
+ pattern: [
438
+ %r{redis/current},
439
+ %r{redis/@.*}
440
+ ]
441
+ },
442
+
443
+ 'nginx/gitlab_error.log' => {
444
+ format: :time_space,
445
+ log: true,
446
+ pattern: [
447
+ %r{nginx/gitlab_error.log}
448
+ ]
449
+ },
450
+ 'nginx/gitlab_registry_error.log' => {
451
+ format: :time_space,
452
+ log: true,
453
+ pattern: [
454
+ %r{nginx/gitlab_registry_error.log}
455
+ ]
456
+ },
457
+ 'unicorn/current' => {
458
+ format: :time_space,
459
+ log: true,
460
+ pattern: [
461
+ %r{unicorn/current}
462
+ ]
463
+ },
464
+ 'running_swappiness' => {
465
+ format: :raw,
466
+ pattern: [
467
+ /running_swappiness/
468
+ ]
469
+ },
470
+ 'nginx/gitlab_registry_access.log' => {
471
+ format: :raw,
472
+ log: true,
473
+ pattern: [
474
+ %r{nginx/gitlab_registry_access.log}
475
+ ]
476
+ },
477
+ 'security/limits.conf' => {
478
+ format: :clean_raw,
479
+ pattern: [
480
+ %r{security/limits.conf}
481
+ ]
482
+ },
483
+ 'unicorn/unicorn_stderr.log' => {
484
+ format: :raw,
485
+ log: true,
486
+ pattern: [
487
+ %r{unicorn/unicorn_stderr.log}
488
+ ]
489
+ },
490
+ 'selinux/config' => {
491
+ format: :dotenv,
492
+ pattern: [
493
+ %r{selinux/config}
494
+ ]
495
+ },
496
+ 'sidekiq/current' => {
497
+ format: :json,
498
+ log: true,
499
+ pattern: [
500
+ %r{sidekiq/current},
501
+ %r{sidekiq/@.*}
502
+ ]
503
+ },
504
+ 'gitlab-rails/service_measurement.log' => {
505
+ format: :json,
506
+ log: true,
507
+ pattern: [
508
+ %r{gitlab-rails/service_measurement.log}
509
+ ]
510
+ },
511
+ # General Purpose JSON
512
+ 'json' => {
513
+ format: :json,
514
+ log: true,
515
+ pattern: []
516
+ },
517
+
518
+ 'gitlab-rails/elasticsearch.log' => {
519
+ format: :json,
520
+ log: true,
521
+ pattern: [
522
+ %r{gitlab-rails/elasticsearch.log}
523
+ ]
524
+ },
525
+ 'sshd/current' => {
526
+ format: :time_space,
527
+ log: true,
528
+ pattern: [
529
+ %r{sshd/current}
530
+ ]
531
+ },
532
+ 'gitlab-rails/sidekiq.log' => {
533
+ format: :time_space,
534
+ log: true,
535
+ pattern: [
536
+ %r{gitlab-rails/sidekiq.log}
537
+ ]
538
+ },
539
+ 'gitlab-rails/gitlab-rails-db-migrate' => {
540
+ format: :time_space,
541
+ log: true,
542
+ pattern: [
543
+ %r{gitlab-rails/gitlab-rails-db-migrate.*}
544
+ ]
545
+ },
546
+ 'tainted' => {
547
+ format: :raw,
548
+ pattern: [
549
+ /tainted/
550
+ ]
551
+ },
552
+ 'ulimit' => {
553
+ format: :raw,
554
+ pattern: [
555
+ /ulimit/
556
+ ]
557
+ },
558
+ 'uname' => {
559
+ format: :raw,
560
+ pattern: [
561
+ /uname/
562
+ ]
563
+ },
564
+ 'uptime' => {
565
+ format: :raw,
566
+ pattern: [
567
+ /uptime/
568
+ ]
569
+ },
570
+ 'mpstat' => {
571
+ format: :raw,
572
+ pattern: [
573
+ /mpstat/
574
+ ]
575
+ },
576
+ 'isostat' => {
577
+ format: :raw,
578
+ pattern: [
579
+ /isostat/
580
+ ]
581
+ },
582
+ 'netstat' => {
583
+ format: :netstat,
584
+ pattern: [
585
+ /^netstat$/
586
+ ]
587
+ },
588
+ 'netstat_i' => {
589
+ format: :netstat_i,
590
+ pattern: [
591
+ /^netstat_i$/
592
+ ]
593
+ },
594
+ 'iostat' => {
595
+ format: :raw,
596
+ pattern: [/^iostat/]
597
+ },
598
+ 'nfsiostat' => {
599
+ format: :raw,
600
+ pattern: [
601
+ /^nfsiostat/
602
+ ]
603
+ },
604
+ 'nfsstat' => {
605
+ format: :raw,
606
+ pattern: [
607
+ /nfsstat/
608
+ ]
609
+ },
610
+ 'pidstat' => {
611
+ format: :pidstat,
612
+ pattern: [
613
+ /pidstat/
614
+ ]
615
+ },
616
+ 'sar_dev' => {
617
+ format: :sar_dev,
618
+ pattern: [
619
+ /sar_dev/
620
+ ]
621
+ },
622
+ 'sar_tcp' => {
623
+ format: :sar_tcp,
624
+ pattern: [
625
+ /sar_tcp/
626
+ ]
627
+ },
628
+ 'sestatus' => {
629
+ format: :colon_split_strip,
630
+ pattern: [
631
+ /sestatus/
632
+ ]
633
+ },
634
+ 'sockstat' => {
635
+ format: :raw,
636
+ pattern: [
637
+ /sockstat/
638
+ ]
639
+ },
640
+ 'systemctl_unit_files' => {
641
+ format: :table,
642
+ pattern: [
643
+ /systemctl_unit_files/
644
+ ]
645
+ },
646
+ 'timedatectl' => {
647
+ format: :colon_split_strip,
648
+ pattern: [
649
+ /timedatectl/
650
+ ]
651
+ },
652
+ 'log/messages' => {
653
+ format: :raw,
654
+ log: true,
655
+ pattern: [
656
+ %r{log/messages}
657
+ ]
658
+ },
659
+ 'vmstat' => {
660
+ format: :raw,
661
+ pattern: [
662
+ /vmstat/
663
+ ]
664
+ },
665
+ 'iotop' => {
666
+ format: :raw,
667
+ pattern: [
668
+ /iotop/
669
+ ]
670
+ },
671
+ 'ntpq' => {
672
+ format: :raw,
673
+ pattern: [
674
+ /ntpq/
675
+ ]
676
+ },
677
+ 'gitlab-rails/application.log' => {
678
+ format: :raw,
679
+ pattern: [
680
+ %r{gitlab-rails/application.log}
681
+ ]
682
+ },
683
+ 'gitlab-rails/production.log' => {
684
+ format: :raw,
685
+ pattern: [
686
+ %r{gitlab-rails/production.log}
687
+ ]
688
+ },
689
+ 'gitlab/version-manifest.txt' => {
690
+ format: :raw,
691
+ pattern: [
692
+ %r{gitlab/version-manifest.txt}
693
+ ]
694
+ },
695
+ 'ignore' => {
696
+ format: :ignore,
697
+ pattern: [
698
+ %r{sidekiq/perf.data}
699
+ ]
700
+ }
701
+ }
702
+ end
703
+ end
704
+ # rubocop:enable Metrics/MethodLength, Metrics/ModuleLength
705
+ end