mtr_monitor 0.15.0 → 0.16.0
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/.gitignore +2 -0
- data/Gemfile.lock +1 -1
- data/exe/mtr-incident-trace +168 -0
- data/lib/mtr_monitor/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e0a4d3f371a9d89ecdda17a93bc368d0999a0de
|
4
|
+
data.tar.gz: 04b02c94334b6a0ff36aea4f92c0c441a53f2a77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5acc3eb578fc4d02ec5373e0a3c1714a2ec1378d08d18a851faba5640a6c45f9bc1caf5f78e71a5c2780071123c767b9e3f21723dea8361b34d533635e72aa37
|
7
|
+
data.tar.gz: 889d4fb307dea20645ebf8b8fa6c5d013e055b3c63cf8dd26a956dbe9f40afc9bee21edde9e7897572b17a8de16cce61f6bd93368ecd0dc358421fb59614c042
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -0,0 +1,168 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
def request_aws_credentials
|
6
|
+
puts "Enter AWS_ACCESS_KEY_ID: "
|
7
|
+
$aws_access_key_id = gets.chomp
|
8
|
+
|
9
|
+
puts "Enter AWS_SECRET_ACCESS_KEY: "
|
10
|
+
$aws_secret_access_key = gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
def aws
|
14
|
+
if $aws_access_key_id && $aws_secret_access_key
|
15
|
+
"AWS_ACCESS_KEY_ID=#{$aws_access_key_id} AWS_SECRET_ACCESS_KEY=#{$aws_secret_access_key} aws"
|
16
|
+
else
|
17
|
+
"aws"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
if File.exists?(File.expand_path "~/.aws/credentials")
|
22
|
+
puts "✅ Using AWS auth credentials in '~/.aws/credentials'"
|
23
|
+
else
|
24
|
+
request_aws_credentials
|
25
|
+
end
|
26
|
+
|
27
|
+
identity = `#{aws} sts get-caller-identity`
|
28
|
+
if $?.exitstatus == 0
|
29
|
+
puts "✅ Authenticated to AWS with Identity:"
|
30
|
+
puts identity
|
31
|
+
else
|
32
|
+
STDERR.puts "Error: AWS authentication failed"
|
33
|
+
abort
|
34
|
+
end
|
35
|
+
|
36
|
+
if system("#{aws} s3api head-bucket --bucket hetzner-continuous-mtr")
|
37
|
+
puts "✅ Verified hetzner-continuous-mtr bucket"
|
38
|
+
else
|
39
|
+
STDERR.puts "Error: Can't find hetzner-continuous-mtr bucket"
|
40
|
+
abort
|
41
|
+
end
|
42
|
+
|
43
|
+
today = Time.now.strftime("%Y-%m-%d")
|
44
|
+
|
45
|
+
# Germany to US
|
46
|
+
|
47
|
+
# hetzner-to-dockerhub
|
48
|
+
puts "Fetching latest hetzner-to-dockerhub logs for #{today}..."
|
49
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-dockerhub/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
50
|
+
hetzner_to_dockerhub = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
51
|
+
puts "✅ Done"
|
52
|
+
|
53
|
+
# hetzner-to-github
|
54
|
+
puts "Fetching latest hetzner-to-github logs for #{today}..."
|
55
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-github/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
56
|
+
hetzner_to_github = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
57
|
+
puts "✅ Done"
|
58
|
+
|
59
|
+
# hetzner-to-stripe
|
60
|
+
puts "Fetching latest hetzner-to-stripe logs for #{today}..."
|
61
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-stripe/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
62
|
+
hetzner_to_stripe= JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
63
|
+
puts "✅ Done"
|
64
|
+
|
65
|
+
# hetzner-to-semaphoreci
|
66
|
+
puts "Fetching latest hetzner-to-semaphoreci logs for #{today}..."
|
67
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-semaphoreci/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
68
|
+
hetzner_to_semaphoreci= JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
69
|
+
puts "✅ Done"
|
70
|
+
|
71
|
+
# hetzner-to-us-east-1
|
72
|
+
puts "Fetching latest hetzner-to-us-east-1 logs for #{today}..."
|
73
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-us-east-1/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
74
|
+
hetzner_to_us_east_1 = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
75
|
+
puts "✅ Done"
|
76
|
+
|
77
|
+
# hetzner-to-us-west-1
|
78
|
+
puts "Fetching latest hetzner-to-us-west-1 logs for #{today}..."
|
79
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-us-west-1/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
80
|
+
hetzner_to_us_west_1= JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
81
|
+
puts "✅ Done"
|
82
|
+
|
83
|
+
# hetzner-to-us-west-2
|
84
|
+
puts "Fetching latest hetzner-to-us-west-2 logs for #{today}..."
|
85
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix hetzner-to-us-west-2/#{today}/136-243-108-222 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
86
|
+
hetzner_to_us_west_2 = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
87
|
+
puts "✅ Done"
|
88
|
+
|
89
|
+
# US to Germany
|
90
|
+
|
91
|
+
# us-east-1-to-hetzner
|
92
|
+
puts "Fetching latest us-east-1-to-hetzner logs for #{today}..."
|
93
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix us-east-1-to-hetzner/#{today}/54-164-114-223 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
94
|
+
us_east_1_to_hetzner = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
95
|
+
puts "✅ Done"
|
96
|
+
|
97
|
+
# us-west-1-to-hetzner
|
98
|
+
puts "Fetching latest us-west-1-to-hetzner logs for #{today}..."
|
99
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix us-west-1-to-hetzner/#{today}/13-57-249-134 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
100
|
+
us_west_1_to_hetzner = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
101
|
+
puts "✅ Done"
|
102
|
+
|
103
|
+
# us-west-2-to-hetzner
|
104
|
+
puts "Fetching latest us-west-2-to-hetzner logs for #{today}..."
|
105
|
+
result = `#{aws} s3api list-objects --bucket hetzner-continuous-mtr --prefix us-west-2-to-hetzner/#{today}/54-201-153-190 --query 'Contents[].{Key: Key, LastModified: LastModified}'`
|
106
|
+
us_west_2_to_hetzner = JSON.parse(result).last(10).map { |log| "https://s3.eu-central-1.amazonaws.com/hetzner-continuous-mtr/#{log["Key"]}" }
|
107
|
+
puts "✅ Done"
|
108
|
+
|
109
|
+
# Create report
|
110
|
+
|
111
|
+
puts "Creating incident_mtr_report.txt..."
|
112
|
+
File.open("incident_mtr_report.txt", "w") do |f|
|
113
|
+
f.write("1. AWS US East 1 (Virginia)\n")
|
114
|
+
f.write("---------------------\n")
|
115
|
+
f.write("1.1. us-east-1 to Hetzner\n")
|
116
|
+
f.write(us_east_1_to_hetzner.join("\n"))
|
117
|
+
f.write("\n")
|
118
|
+
f.write("\n")
|
119
|
+
f.write("1.2. Hetzner to us-east-1\n")
|
120
|
+
f.write(hetzner_to_us_east_1.join("\n"))
|
121
|
+
f.write("\n")
|
122
|
+
f.write("\n")
|
123
|
+
f.write("2. AWS US West 1 (California)\n")
|
124
|
+
f.write("---------------------\n")
|
125
|
+
f.write("2.1. us-west-1 to Hetzner\n")
|
126
|
+
f.write(us_west_1_to_hetzner.join("\n"))
|
127
|
+
f.write("\n")
|
128
|
+
f.write("\n")
|
129
|
+
f.write("2.2. Hetzner to us-west-1\n")
|
130
|
+
f.write(hetzner_to_us_west_1.join("\n"))
|
131
|
+
f.write("\n")
|
132
|
+
f.write("\n")
|
133
|
+
f.write("3. AWS US West 2 (Oregon)\n")
|
134
|
+
f.write("---------------------\n")
|
135
|
+
f.write("3.1. us-west-2 to Hetzner\n")
|
136
|
+
f.write(us_west_2_to_hetzner.join("\n"))
|
137
|
+
f.write("\n")
|
138
|
+
f.write("\n")
|
139
|
+
f.write("3.2. Hetzner to us-west-2\n")
|
140
|
+
f.write(hetzner_to_us_west_2.join("\n"))
|
141
|
+
f.write("\n")
|
142
|
+
f.write("\n")
|
143
|
+
f.write("4. Github\n")
|
144
|
+
f.write("---------------------\n")
|
145
|
+
f.write("4.1. Hetzner to Github\n")
|
146
|
+
f.write(hetzner_to_github.join("\n"))
|
147
|
+
f.write("\n")
|
148
|
+
f.write("\n")
|
149
|
+
f.write("5. Semaphoreci\n")
|
150
|
+
f.write("---------------------\n")
|
151
|
+
f.write("5.1. Hetzner to Semaphoreci\n")
|
152
|
+
f.write(hetzner_to_semaphoreci.join("\n"))
|
153
|
+
f.write("\n")
|
154
|
+
f.write("\n")
|
155
|
+
f.write("6. Dockerhub\n")
|
156
|
+
f.write("---------------------\n")
|
157
|
+
f.write("6.1. Hetzner to Dockerhub\n")
|
158
|
+
f.write(hetzner_to_dockerhub.join("\n"))
|
159
|
+
f.write("\n")
|
160
|
+
f.write("\n")
|
161
|
+
f.write("7. Stripe\n")
|
162
|
+
f.write("---------------------\n")
|
163
|
+
f.write("7.1. Hetzner to Stripe\n")
|
164
|
+
f.write(hetzner_to_stripe.join("\n"))
|
165
|
+
f.write("\n")
|
166
|
+
f.write("\n")
|
167
|
+
end
|
168
|
+
puts "✅ Done"
|
data/lib/mtr_monitor/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mtr_monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- RenderedText DevOps Team
|
@@ -70,6 +70,7 @@ description:
|
|
70
70
|
email:
|
71
71
|
- devops@renderedtext.com
|
72
72
|
executables:
|
73
|
+
- mtr-incident-trace
|
73
74
|
- mtr_report
|
74
75
|
extensions: []
|
75
76
|
extra_rdoc_files: []
|
@@ -86,6 +87,7 @@ files:
|
|
86
87
|
- bin/console
|
87
88
|
- bin/setup
|
88
89
|
- docker-compose.yml
|
90
|
+
- exe/mtr-incident-trace
|
89
91
|
- exe/mtr_report
|
90
92
|
- lib/mtr_monitor.rb
|
91
93
|
- lib/mtr_monitor/cleaner.rb
|