greenhat 0.4.0 → 0.6.1

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/bin/greenhat +1 -2
  3. data/lib/greenhat/accessors/disk.rb +1 -1
  4. data/lib/greenhat/accessors/gitlab.rb +4 -2
  5. data/lib/greenhat/archive.rb +7 -1
  6. data/lib/greenhat/cli.rb +24 -11
  7. data/lib/greenhat/entrypoint.rb +37 -34
  8. data/lib/greenhat/host.rb +1 -1
  9. data/lib/greenhat/logbot.rb +1 -1
  10. data/lib/greenhat/paper/flag_helper.rb +18 -0
  11. data/lib/greenhat/paper/paper_helper.rb +118 -0
  12. data/lib/greenhat/paper.rb +34 -0
  13. data/lib/greenhat/reports/builder.rb +98 -0
  14. data/lib/greenhat/reports/helpers.rb +101 -0
  15. data/lib/greenhat/reports/internal_methods.rb +156 -0
  16. data/lib/greenhat/reports/reports/errors.rb +49 -0
  17. data/lib/greenhat/reports/reports/faststats.rb +42 -0
  18. data/lib/greenhat/reports/reports/full.rb +143 -0
  19. data/lib/greenhat/reports/runner.rb +58 -0
  20. data/lib/greenhat/reports/shared.rb +37 -0
  21. data/lib/greenhat/reports/shell_helper.rb +34 -0
  22. data/lib/greenhat/reports.rb +79 -0
  23. data/lib/greenhat/settings.rb +35 -8
  24. data/lib/greenhat/shell/args.rb +9 -9
  25. data/lib/greenhat/shell/color_string.rb +1 -1
  26. data/lib/greenhat/shell/faststats.rb +24 -5
  27. data/lib/greenhat/shell/field_helper.rb +1 -1
  28. data/lib/greenhat/shell/filter_help.rb +65 -185
  29. data/lib/greenhat/shell/gitlab.rb +1 -0
  30. data/lib/greenhat/shell/log.rb +24 -30
  31. data/lib/greenhat/shell/markdown.rb +355 -352
  32. data/lib/greenhat/shell/process.rb +11 -5
  33. data/lib/greenhat/shell/query.rb +534 -0
  34. data/lib/greenhat/shell/report.rb +415 -410
  35. data/lib/greenhat/shell/reports.rb +41 -0
  36. data/lib/greenhat/shell/shell_helper.rb +95 -387
  37. data/lib/greenhat/shell.rb +22 -3
  38. data/lib/greenhat/thing/file_types.rb +30 -1
  39. data/lib/greenhat/thing/formatters/api_json.rb +4 -2
  40. data/lib/greenhat/thing/formatters/bracket_log.rb +1 -1
  41. data/lib/greenhat/thing/formatters/clean_raw.rb +1 -1
  42. data/lib/greenhat/thing/formatters/colon_split_strip.rb +2 -2
  43. data/lib/greenhat/thing/formatters/dotenv.rb +1 -1
  44. data/lib/greenhat/thing/formatters/format.rb +0 -11
  45. data/lib/greenhat/thing/formatters/free_m.rb +2 -2
  46. data/lib/greenhat/thing/formatters/json.rb +41 -17
  47. data/lib/greenhat/thing/formatters/json_shellwords.rb +3 -2
  48. data/lib/greenhat/thing/formatters/kube_json.rb +3 -2
  49. data/lib/greenhat/thing/formatters/multiline_json.rb +1 -1
  50. data/lib/greenhat/thing/formatters/nginx.rb +5 -1
  51. data/lib/greenhat/thing/formatters/runner_log.rb +70 -0
  52. data/lib/greenhat/thing/formatters/table.rb +17 -3
  53. data/lib/greenhat/thing/formatters/time_json.rb +12 -1
  54. data/lib/greenhat/thing/helpers.rb +0 -11
  55. data/lib/greenhat/thing/info_format.rb +4 -4
  56. data/lib/greenhat/thing/kind.rb +1 -1
  57. data/lib/greenhat/thing.rb +21 -25
  58. data/lib/greenhat/version.rb +1 -1
  59. data/lib/greenhat.rb +6 -8
  60. metadata +32 -4
  61. data/lib/greenhat/pry_helpers.rb +0 -51
  62. data/lib/greenhat/thing/super_log.rb +0 -102
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenhat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davin Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2022-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '2.7'
167
+ - !ruby/object:Gem::Dependency
168
+ name: gitlab_chronic_duration
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.10.6
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 0.10.6
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: hash_dot
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -454,7 +468,19 @@ files:
454
468
  - lib/greenhat/entrypoint.rb
455
469
  - lib/greenhat/host.rb
456
470
  - lib/greenhat/logbot.rb
457
- - lib/greenhat/pry_helpers.rb
471
+ - lib/greenhat/paper.rb
472
+ - lib/greenhat/paper/flag_helper.rb
473
+ - lib/greenhat/paper/paper_helper.rb
474
+ - lib/greenhat/reports.rb
475
+ - lib/greenhat/reports/builder.rb
476
+ - lib/greenhat/reports/helpers.rb
477
+ - lib/greenhat/reports/internal_methods.rb
478
+ - lib/greenhat/reports/reports/errors.rb
479
+ - lib/greenhat/reports/reports/faststats.rb
480
+ - lib/greenhat/reports/reports/full.rb
481
+ - lib/greenhat/reports/runner.rb
482
+ - lib/greenhat/reports/shared.rb
483
+ - lib/greenhat/reports/shell_helper.rb
458
484
  - lib/greenhat/settings.rb
459
485
  - lib/greenhat/shell.rb
460
486
  - lib/greenhat/shell/args.rb
@@ -476,7 +502,9 @@ files:
476
502
  - lib/greenhat/shell/pipe.rb
477
503
  - lib/greenhat/shell/platform.rb
478
504
  - lib/greenhat/shell/process.rb
505
+ - lib/greenhat/shell/query.rb
479
506
  - lib/greenhat/shell/report.rb
507
+ - lib/greenhat/shell/reports.rb
480
508
  - lib/greenhat/shell/shell_helper.rb
481
509
  - lib/greenhat/thing.rb
482
510
  - lib/greenhat/thing/file_types.rb
@@ -498,6 +526,7 @@ files:
498
526
  - lib/greenhat/thing/formatters/nginx.rb
499
527
  - lib/greenhat/thing/formatters/raw.rb
500
528
  - lib/greenhat/thing/formatters/registry.rb
529
+ - lib/greenhat/thing/formatters/runner_log.rb
501
530
  - lib/greenhat/thing/formatters/shellwords.rb
502
531
  - lib/greenhat/thing/formatters/syslog.rb
503
532
  - lib/greenhat/thing/formatters/table.rb
@@ -509,7 +538,6 @@ files:
509
538
  - lib/greenhat/thing/info_format.rb
510
539
  - lib/greenhat/thing/kind.rb
511
540
  - lib/greenhat/thing/spinner.rb
512
- - lib/greenhat/thing/super_log.rb
513
541
  - lib/greenhat/tty/columns.rb
514
542
  - lib/greenhat/tty/custom_line.rb
515
543
  - lib/greenhat/tty/line.rb
@@ -1,51 +0,0 @@
1
- def show(data)
2
- pastel = Pastel.new
3
- TTY::Pager.page do |pager|
4
- data.each do |e|
5
- table = TTY::Table.new(header: e.keys, rows: [e], orientation: :vertical)
6
- # do some work with the line
7
-
8
- output = table.render(:unicode, multiline: false) do |renderer|
9
- renderer.border.style = :cyan
10
- # renderer.filter = ->(val, row_index, col_index) do
11
- # val.ai
12
- # end
13
-
14
- renderer.filter = lambda { |val, _row_index, col_index|
15
- puts val.class unless val.instance_of? String
16
- if col_index == 1
17
- if val.numeric?
18
- pastel.red.blue(val)
19
- else
20
- val
21
- end
22
- else
23
- val
24
- end
25
- # .ai(raw: true).gsub('"','')
26
- }
27
- end
28
-
29
- pager.write("\n#{output}") # write line to the pager
30
- end
31
- end
32
- end
33
-
34
- def filter(data, params = {})
35
- result = data.clone
36
- params.each do |k, v|
37
- result.select! do |row|
38
- if row.key? k.to_sym
39
- row[k.to_sym].include? v
40
- else
41
- false
42
- end
43
- end
44
- end
45
-
46
- result
47
- end
48
-
49
- def version
50
- Thing.find_by(name: 'gitlab_version_manifest_json').data.build_version
51
- end
@@ -1,102 +0,0 @@
1
- # TODO: Deprecate, was used specifically for Elk
2
- # rubocop:disable /AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity, Metrics/
3
- module GreenHat
4
- # Log Identifier
5
- module SuperLog
6
- def self.log?(kind)
7
- [
8
- 'gitaly/current',
9
- 'gitaly/gitaly_ruby_json.log',
10
- 'gitlab-rails/api_json.log',
11
- 'gitlab-rails/application_json.log',
12
- 'gitlab-rails/audit_json.log',
13
- 'gitlab-rails/graphql_json.log',
14
- 'gitlab-rails/integrations_json.log',
15
- 'gitlab-rails/production_json.log',
16
- 'gitlab-rails/sidekiq_client.log',
17
- 'gitlab-shell/gitlab-shell.log',
18
- 'gitlab-workhorse/current',
19
- 'puma/puma_stdout.log',
20
- 'sidekiq/current',
21
- 'gitlab-rails/importer.log',
22
- 'gitlabsos.log',
23
- 'nginx/gitlab_access.log',
24
- 'patroni/current'
25
- ].any? { |x| x.include? kind.to_s }
26
-
27
- true
28
- end
29
-
30
- # ==========================================================================
31
- # File Pattern Matching
32
- # ==========================================================================
33
- def self.api_json_format?(path)
34
- ['rails_api_json_log'].any? { |x| path.include? x }
35
- end
36
-
37
- def self.unicorn_stderr_format?(path)
38
- %w[
39
- unicorn_stderr
40
- ].any? { |x| path.include? x }
41
- end
42
-
43
- def self.reconfigure_format?(path)
44
- %w[
45
- reconfigure
46
- ].any? { |x| path.include? x }
47
- end
48
-
49
- def self.shellwords?(path)
50
- %w[
51
- gitlab_pages_current
52
- alertmanager_current
53
- registry_current
54
- prometheus_current
55
-
56
- ].any? { |x| path.include? x }
57
- end
58
-
59
- def self.time_space?(path)
60
- %w[
61
- postgresql_current
62
- redis_current
63
- unicorn_current
64
- gitlab_monitor_current
65
- sidekiq_exporter_log
66
- ].any? { |x| path.include? x }
67
- end
68
-
69
- def self.json_format?(path)
70
- %w[
71
- production_json_log
72
- gitaly_current
73
- geo_log
74
- sidekiq_current
75
- sidekiq_log
76
- gitlab_shell_gitlab_shell_log
77
- gitlab_rails_audit_json_log
78
- gitlab_rails_application_json_log
79
- ].any? { |x| path.include? x }
80
- end
81
-
82
- def self.dmesg_format?(path)
83
- %w[
84
- dmesg
85
- ].any? { |x| path.include? x }
86
- end
87
- # ==========================================================================
88
-
89
- # Identify Formatter
90
- def self.type?(path)
91
- return :api_json_format if api_json_format?(path)
92
- return :unicorn_stderr_format if unicorn_stderr_format?(path)
93
- return :reconfigure_format if reconfigure_format?(path)
94
- return :shellwords if shellwords?(path)
95
- return :time_space if time_space?(path)
96
- return :json_format if json_format?(path)
97
- return :dmesg_format if dmesg_format?(path)
98
-
99
- nil
100
- end
101
- end
102
- end