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.
- checksums.yaml +4 -4
- data/bin/greenhat +1 -2
- data/lib/greenhat/accessors/disk.rb +1 -1
- data/lib/greenhat/accessors/gitlab.rb +4 -2
- data/lib/greenhat/archive.rb +7 -1
- data/lib/greenhat/cli.rb +24 -11
- data/lib/greenhat/entrypoint.rb +37 -34
- data/lib/greenhat/host.rb +1 -1
- data/lib/greenhat/logbot.rb +1 -1
- data/lib/greenhat/paper/flag_helper.rb +18 -0
- data/lib/greenhat/paper/paper_helper.rb +118 -0
- data/lib/greenhat/paper.rb +34 -0
- data/lib/greenhat/reports/builder.rb +98 -0
- data/lib/greenhat/reports/helpers.rb +101 -0
- data/lib/greenhat/reports/internal_methods.rb +156 -0
- data/lib/greenhat/reports/reports/errors.rb +49 -0
- data/lib/greenhat/reports/reports/faststats.rb +42 -0
- data/lib/greenhat/reports/reports/full.rb +143 -0
- data/lib/greenhat/reports/runner.rb +58 -0
- data/lib/greenhat/reports/shared.rb +37 -0
- data/lib/greenhat/reports/shell_helper.rb +34 -0
- data/lib/greenhat/reports.rb +79 -0
- data/lib/greenhat/settings.rb +35 -8
- data/lib/greenhat/shell/args.rb +9 -9
- data/lib/greenhat/shell/color_string.rb +1 -1
- data/lib/greenhat/shell/faststats.rb +24 -5
- data/lib/greenhat/shell/field_helper.rb +1 -1
- data/lib/greenhat/shell/filter_help.rb +65 -185
- data/lib/greenhat/shell/gitlab.rb +1 -0
- data/lib/greenhat/shell/log.rb +24 -30
- data/lib/greenhat/shell/markdown.rb +355 -352
- data/lib/greenhat/shell/process.rb +11 -5
- data/lib/greenhat/shell/query.rb +534 -0
- data/lib/greenhat/shell/report.rb +415 -410
- data/lib/greenhat/shell/reports.rb +41 -0
- data/lib/greenhat/shell/shell_helper.rb +95 -387
- data/lib/greenhat/shell.rb +22 -3
- data/lib/greenhat/thing/file_types.rb +30 -1
- data/lib/greenhat/thing/formatters/api_json.rb +4 -2
- data/lib/greenhat/thing/formatters/bracket_log.rb +1 -1
- data/lib/greenhat/thing/formatters/clean_raw.rb +1 -1
- data/lib/greenhat/thing/formatters/colon_split_strip.rb +2 -2
- data/lib/greenhat/thing/formatters/dotenv.rb +1 -1
- data/lib/greenhat/thing/formatters/format.rb +0 -11
- data/lib/greenhat/thing/formatters/free_m.rb +2 -2
- data/lib/greenhat/thing/formatters/json.rb +41 -17
- data/lib/greenhat/thing/formatters/json_shellwords.rb +3 -2
- data/lib/greenhat/thing/formatters/kube_json.rb +3 -2
- data/lib/greenhat/thing/formatters/multiline_json.rb +1 -1
- data/lib/greenhat/thing/formatters/nginx.rb +5 -1
- data/lib/greenhat/thing/formatters/runner_log.rb +70 -0
- data/lib/greenhat/thing/formatters/table.rb +17 -3
- data/lib/greenhat/thing/formatters/time_json.rb +12 -1
- data/lib/greenhat/thing/helpers.rb +0 -11
- data/lib/greenhat/thing/info_format.rb +4 -4
- data/lib/greenhat/thing/kind.rb +1 -1
- data/lib/greenhat/thing.rb +21 -25
- data/lib/greenhat/version.rb +1 -1
- data/lib/greenhat.rb +6 -8
- metadata +32 -4
- data/lib/greenhat/pry_helpers.rb +0 -51
- 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
|
+
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:
|
|
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/
|
|
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
|
data/lib/greenhat/pry_helpers.rb
DELETED
|
@@ -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
|