gitlab_quality-test_tooling 1.36.0 → 1.37.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/Gemfile.lock +81 -2
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb +6 -6
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/formatter.rb +14 -2
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/log_test_metrics.rb +51 -10
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/support/gcs_tools.rb +36 -0
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/support/influxdb_tools.rb +33 -0
- data/lib/gitlab_quality/test_tooling/version.rb +1 -1
- metadata +24 -3
- data/lib/gitlab_quality/test_tooling/test_metrics_exporter/influxdb_tools.rb +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6cad17948e73dda3f8281aaedb34969d1178904f4951e54034b38438c473baa8
|
|
4
|
+
data.tar.gz: 49d38db27d6617815fcec94ebce2610f6ac47faec14f622cf58f2baaae6add55
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 22e114b48a3260dc61887d5bea9efd7574e4584d0a85fa452574ff89eab73ab26b287c83303997c8696331a11748a80d58e51ade1729fd646aa8a32ff69909b3
|
|
7
|
+
data.tar.gz: 5937ae1ed046b9cc123e5d7c2157cc809bb4edffd35189a89aec90bd95f947bc9026960c806783c9f809918f469fb27961ac938bb46a2a73e94d0341a726986a
|
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gitlab_quality-test_tooling (1.
|
|
4
|
+
gitlab_quality-test_tooling (1.37.0)
|
|
5
5
|
activesupport (>= 7.0, < 7.2)
|
|
6
6
|
amatch (~> 0.4.1)
|
|
7
|
+
fog-google (~> 1.24, >= 1.24.1)
|
|
7
8
|
gitlab (~> 4.19)
|
|
8
9
|
http (~> 5.0)
|
|
9
10
|
influxdb-client (~> 3.1)
|
|
@@ -39,6 +40,7 @@ GEM
|
|
|
39
40
|
bigdecimal (3.1.8)
|
|
40
41
|
binding_of_caller (1.0.0)
|
|
41
42
|
debug_inspector (>= 0.0.1)
|
|
43
|
+
builder (3.3.0)
|
|
42
44
|
byebug (11.1.3)
|
|
43
45
|
claide (1.1.0)
|
|
44
46
|
claide-plugins (0.9.2)
|
|
@@ -71,11 +73,13 @@ GEM
|
|
|
71
73
|
danger
|
|
72
74
|
gitlab (~> 4.2, >= 4.2.0)
|
|
73
75
|
debug_inspector (1.2.0)
|
|
76
|
+
declarative (0.0.20)
|
|
74
77
|
diff-lcs (1.5.0)
|
|
75
78
|
docile (1.4.0)
|
|
76
79
|
domain_name (0.6.20240107)
|
|
77
80
|
drb (2.2.1)
|
|
78
81
|
e2mmap (0.1.0)
|
|
82
|
+
excon (0.111.0)
|
|
79
83
|
faraday (2.9.0)
|
|
80
84
|
faraday-net_http (>= 2.0, < 3.2)
|
|
81
85
|
faraday-http-cache (2.5.1)
|
|
@@ -86,6 +90,30 @@ GEM
|
|
|
86
90
|
ffi-compiler (1.0.1)
|
|
87
91
|
ffi (>= 1.0.0)
|
|
88
92
|
rake
|
|
93
|
+
fog-core (2.4.0)
|
|
94
|
+
builder
|
|
95
|
+
excon (~> 0.71)
|
|
96
|
+
formatador (>= 0.2, < 2.0)
|
|
97
|
+
mime-types
|
|
98
|
+
fog-google (1.24.1)
|
|
99
|
+
addressable (>= 2.7.0)
|
|
100
|
+
fog-core (< 2.5)
|
|
101
|
+
fog-json (~> 1.2)
|
|
102
|
+
fog-xml (~> 0.1.0)
|
|
103
|
+
google-apis-compute_v1 (~> 0.53)
|
|
104
|
+
google-apis-dns_v1 (~> 0.28)
|
|
105
|
+
google-apis-iamcredentials_v1 (~> 0.15)
|
|
106
|
+
google-apis-monitoring_v3 (~> 0.37)
|
|
107
|
+
google-apis-pubsub_v1 (~> 0.30)
|
|
108
|
+
google-apis-sqladmin_v1beta4 (~> 0.38)
|
|
109
|
+
google-apis-storage_v1 (>= 0.19, < 1)
|
|
110
|
+
google-cloud-env (>= 1.2, < 3.0)
|
|
111
|
+
fog-json (1.2.0)
|
|
112
|
+
fog-core
|
|
113
|
+
multi_json (~> 1.10)
|
|
114
|
+
fog-xml (0.1.4)
|
|
115
|
+
fog-core
|
|
116
|
+
nokogiri (>= 1.5.11, < 2.0.0)
|
|
89
117
|
formatador (1.1.0)
|
|
90
118
|
git (1.19.1)
|
|
91
119
|
addressable (~> 2.8)
|
|
@@ -103,6 +131,37 @@ GEM
|
|
|
103
131
|
rubocop-performance (~> 1.15)
|
|
104
132
|
rubocop-rails (~> 2.17)
|
|
105
133
|
rubocop-rspec (~> 2.22)
|
|
134
|
+
google-apis-compute_v1 (0.102.0)
|
|
135
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
136
|
+
google-apis-core (0.15.0)
|
|
137
|
+
addressable (~> 2.5, >= 2.5.1)
|
|
138
|
+
googleauth (~> 1.9)
|
|
139
|
+
httpclient (>= 2.8.1, < 3.a)
|
|
140
|
+
mini_mime (~> 1.0)
|
|
141
|
+
representable (~> 3.0)
|
|
142
|
+
retriable (>= 2.0, < 4.a)
|
|
143
|
+
rexml
|
|
144
|
+
google-apis-dns_v1 (0.44.0)
|
|
145
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
146
|
+
google-apis-iamcredentials_v1 (0.21.0)
|
|
147
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
148
|
+
google-apis-monitoring_v3 (0.65.0)
|
|
149
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
150
|
+
google-apis-pubsub_v1 (0.54.0)
|
|
151
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
152
|
+
google-apis-sqladmin_v1beta4 (0.74.0)
|
|
153
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
154
|
+
google-apis-storage_v1 (0.41.0)
|
|
155
|
+
google-apis-core (>= 0.15.0, < 2.a)
|
|
156
|
+
google-cloud-env (2.1.1)
|
|
157
|
+
faraday (>= 1.0, < 3.a)
|
|
158
|
+
googleauth (1.11.0)
|
|
159
|
+
faraday (>= 1.0, < 3.a)
|
|
160
|
+
google-cloud-env (~> 2.1)
|
|
161
|
+
jwt (>= 1.4, < 3.0)
|
|
162
|
+
multi_json (~> 1.11)
|
|
163
|
+
os (>= 0.9, < 2.0)
|
|
164
|
+
signet (>= 0.16, < 2.a)
|
|
106
165
|
guard (2.18.1)
|
|
107
166
|
formatador (>= 0.2.4)
|
|
108
167
|
listen (>= 2.7, < 4.0)
|
|
@@ -129,11 +188,14 @@ GEM
|
|
|
129
188
|
httparty (0.21.0)
|
|
130
189
|
mini_mime (>= 1.0.0)
|
|
131
190
|
multi_xml (>= 0.5.2)
|
|
191
|
+
httpclient (2.8.3)
|
|
132
192
|
i18n (1.14.5)
|
|
133
193
|
concurrent-ruby (~> 1.0)
|
|
134
194
|
influxdb-client (3.1.0)
|
|
135
195
|
jaro_winkler (1.5.6)
|
|
136
196
|
json (2.7.1)
|
|
197
|
+
jwt (2.8.2)
|
|
198
|
+
base64
|
|
137
199
|
kramdown (2.4.0)
|
|
138
200
|
rexml
|
|
139
201
|
kramdown-parser-gfm (1.1.0)
|
|
@@ -147,11 +209,15 @@ GEM
|
|
|
147
209
|
rake (~> 13.0)
|
|
148
210
|
lumberjack (1.2.10)
|
|
149
211
|
method_source (1.0.0)
|
|
212
|
+
mime-types (3.5.2)
|
|
213
|
+
mime-types-data (~> 3.2015)
|
|
214
|
+
mime-types-data (3.2024.0702)
|
|
150
215
|
mini_mime (1.1.5)
|
|
151
216
|
mini_portile2 (2.8.5)
|
|
152
217
|
minitest (5.23.0)
|
|
153
218
|
mize (0.4.1)
|
|
154
219
|
protocol (~> 2.0)
|
|
220
|
+
multi_json (1.15.0)
|
|
155
221
|
multi_xml (0.6.0)
|
|
156
222
|
mutex_m (0.2.0)
|
|
157
223
|
nap (1.1.0)
|
|
@@ -169,6 +235,7 @@ GEM
|
|
|
169
235
|
faraday (>= 1, < 3)
|
|
170
236
|
sawyer (~> 0.9)
|
|
171
237
|
open4 (1.3.4)
|
|
238
|
+
os (1.1.4)
|
|
172
239
|
parallel (1.24.0)
|
|
173
240
|
parser (3.3.0.5)
|
|
174
241
|
ast (~> 2.4.1)
|
|
@@ -196,6 +263,11 @@ GEM
|
|
|
196
263
|
rbs (2.8.4)
|
|
197
264
|
rchardet (1.8.0)
|
|
198
265
|
regexp_parser (2.9.0)
|
|
266
|
+
representable (3.2.0)
|
|
267
|
+
declarative (< 0.1.0)
|
|
268
|
+
trailblazer-option (>= 0.1.1, < 0.2.0)
|
|
269
|
+
uber (< 0.2.0)
|
|
270
|
+
retriable (3.1.2)
|
|
199
271
|
reverse_markdown (2.1.1)
|
|
200
272
|
nokogiri
|
|
201
273
|
rexml (3.2.6)
|
|
@@ -262,6 +334,11 @@ GEM
|
|
|
262
334
|
faraday (>= 0.17.3, < 3)
|
|
263
335
|
sexp_processor (4.17.1)
|
|
264
336
|
shellany (0.0.1)
|
|
337
|
+
signet (0.19.0)
|
|
338
|
+
addressable (~> 2.8)
|
|
339
|
+
faraday (>= 0.17.5, < 3.a)
|
|
340
|
+
jwt (>= 1.5, < 3.0)
|
|
341
|
+
multi_json (~> 1.10)
|
|
265
342
|
simplecov (0.22.0)
|
|
266
343
|
docile (~> 1.1)
|
|
267
344
|
simplecov-html (~> 0.11)
|
|
@@ -296,8 +373,10 @@ GEM
|
|
|
296
373
|
timecop (0.9.8)
|
|
297
374
|
tins (1.32.1)
|
|
298
375
|
sync
|
|
376
|
+
trailblazer-option (0.1.2)
|
|
299
377
|
tzinfo (2.0.6)
|
|
300
378
|
concurrent-ruby (~> 1.0)
|
|
379
|
+
uber (0.1.0)
|
|
301
380
|
unicode-display_width (2.5.0)
|
|
302
381
|
unparser (0.6.12)
|
|
303
382
|
diff-lcs (~> 1.3)
|
|
@@ -330,4 +409,4 @@ DEPENDENCIES
|
|
|
330
409
|
webmock (= 3.7.0)
|
|
331
410
|
|
|
332
411
|
BUNDLED WITH
|
|
333
|
-
2.5.
|
|
412
|
+
2.5.15
|
|
@@ -21,11 +21,15 @@ module GitlabQuality
|
|
|
21
21
|
attr_accessor :influxdb_url,
|
|
22
22
|
:influxdb_token,
|
|
23
23
|
:influxdb_bucket,
|
|
24
|
+
:gcs_bucket,
|
|
25
|
+
:gcs_project_id,
|
|
26
|
+
:gcs_credentials,
|
|
27
|
+
:gcs_metrics_file_name,
|
|
28
|
+
:test_metric_file_name,
|
|
24
29
|
:run_type
|
|
25
30
|
|
|
26
31
|
attr_writer :custom_keys_tags,
|
|
27
|
-
:custom_keys_fields
|
|
28
|
-
:test_metric_file_name
|
|
32
|
+
:custom_keys_fields
|
|
29
33
|
|
|
30
34
|
def custom_keys_tags
|
|
31
35
|
@custom_keys_tags || []
|
|
@@ -34,10 +38,6 @@ module GitlabQuality
|
|
|
34
38
|
def custom_keys_fields
|
|
35
39
|
@custom_keys_fields || []
|
|
36
40
|
end
|
|
37
|
-
|
|
38
|
-
def test_metric_file_name
|
|
39
|
-
@test_metric_file_name || "test_metrics.json"
|
|
40
|
-
end
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
end
|
|
@@ -29,15 +29,27 @@ module GitlabQuality
|
|
|
29
29
|
Config.configuration
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
# rubocop:disable Metrics/AbcSize
|
|
32
33
|
def setup_test_metrics_exporter(examples)
|
|
33
34
|
@log_test_metrics = LogTestMetrics.new(
|
|
34
35
|
examples: examples,
|
|
36
|
+
run_type: config.run_type
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
@log_test_metrics.configure_influxdb_client(
|
|
35
40
|
influxdb_url: config.influxdb_url,
|
|
36
41
|
influxdb_token: config.influxdb_token,
|
|
37
|
-
influxdb_bucket: config.influxdb_bucket
|
|
38
|
-
|
|
42
|
+
influxdb_bucket: config.influxdb_bucket
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
@log_test_metrics.configure_gcs_client(
|
|
46
|
+
gcs_bucket: config.gcs_bucket,
|
|
47
|
+
gcs_project_id: config.gcs_project_id,
|
|
48
|
+
gcs_credentials: config.gcs_credentials,
|
|
49
|
+
gcs_metrics_file_name: config.gcs_metrics_file_name
|
|
39
50
|
)
|
|
40
51
|
end
|
|
52
|
+
# rubocop:enable Metrics/AbcSize
|
|
41
53
|
end
|
|
42
54
|
end
|
|
43
55
|
end
|
|
@@ -5,19 +5,33 @@ module GitlabQuality
|
|
|
5
5
|
module TestMetricsExporter
|
|
6
6
|
class LogTestMetrics
|
|
7
7
|
include TestMetrics
|
|
8
|
-
include InfluxdbTools
|
|
8
|
+
include Support::InfluxdbTools
|
|
9
|
+
include Support::GcsTools
|
|
9
10
|
|
|
10
11
|
CUSTOM_METRICS_KEY = :custom_test_metrics
|
|
11
12
|
|
|
12
|
-
def initialize(
|
|
13
|
+
def initialize(
|
|
14
|
+
examples:,
|
|
15
|
+
run_type: nil
|
|
16
|
+
)
|
|
13
17
|
@examples = examples
|
|
18
|
+
@run_type = run_type
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def configure_influxdb_client(influxdb_url: nil, influxdb_token: nil, influxdb_bucket: nil)
|
|
14
22
|
@influxdb_url = influxdb_url
|
|
15
23
|
@influxdb_token = influxdb_token
|
|
16
24
|
@influxdb_bucket = influxdb_bucket
|
|
17
|
-
@run_type = run_type
|
|
18
25
|
end
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
def configure_gcs_client(gcs_bucket: nil, gcs_project_id: nil, gcs_credentials: nil, gcs_metrics_file_name: nil)
|
|
28
|
+
@gcs_bucket = gcs_bucket
|
|
29
|
+
@gcs_project_id = gcs_project_id
|
|
30
|
+
@gcs_credentials = gcs_credentials
|
|
31
|
+
@gcs_metrics_file_name = gcs_metrics_file_name
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Push test execution metrics
|
|
21
35
|
#
|
|
22
36
|
# @param [Array<String>] custom_keys_tags
|
|
23
37
|
# @param [Array<String>] custom_keys_fields
|
|
@@ -25,10 +39,8 @@ module GitlabQuality
|
|
|
25
39
|
def push_test_metrics(custom_keys_tags: nil, custom_keys_fields: nil)
|
|
26
40
|
@test_metrics ||= examples.filter_map { |example| parse_test_results(example, custom_keys_tags, custom_keys_fields) }
|
|
27
41
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
rescue StandardError => e
|
|
31
|
-
Runtime::Logger.error("Failed to push test execution metrics to influxdb, error: #{e}")
|
|
42
|
+
push_test_metrics_to_influxdb
|
|
43
|
+
push_test_metrics_to_gcs
|
|
32
44
|
end
|
|
33
45
|
|
|
34
46
|
# Save metrics in json file
|
|
@@ -43,14 +55,43 @@ module GitlabQuality
|
|
|
43
55
|
@test_metrics ||= examples.filter_map { |example| parse_test_results(example, custom_keys_tags, custom_keys_fields) }
|
|
44
56
|
file = "tmp/#{file_name}"
|
|
45
57
|
|
|
46
|
-
File.write(file, test_metrics.to_json) && Runtime::Logger.
|
|
58
|
+
File.write(file, test_metrics.to_json) && Runtime::Logger.info("Saved test metrics to #{file}")
|
|
47
59
|
rescue StandardError => e
|
|
48
60
|
Runtime::Logger.error("Failed to save test execution metrics, error: #{e}")
|
|
49
61
|
end
|
|
50
62
|
|
|
51
63
|
private
|
|
52
64
|
|
|
53
|
-
attr_reader :examples, :test_metrics, :influxdb_url, :influxdb_token, :influxdb_bucket, :run_type
|
|
65
|
+
attr_reader :examples, :test_metrics, :influxdb_url, :influxdb_token, :influxdb_bucket, :run_type, :gcs_bucket,
|
|
66
|
+
:gcs_project_id, :gcs_credentials, :gcs_metrics_file_name
|
|
67
|
+
|
|
68
|
+
# Push test execution metrics to Influxdb
|
|
69
|
+
#
|
|
70
|
+
# @return [nil]
|
|
71
|
+
def push_test_metrics_to_influxdb
|
|
72
|
+
write_api(url: influxdb_url, token: influxdb_token, bucket: influxdb_bucket).write(data: test_metrics)
|
|
73
|
+
Runtime::Logger.info("Pushed #{test_metrics.length} test execution entries to Influxdb")
|
|
74
|
+
rescue StandardError => e
|
|
75
|
+
Runtime::Logger.error("Failed to push test execution metrics to Influxdb, error: #{e}")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Push test execution metrics to GCS
|
|
79
|
+
#
|
|
80
|
+
# @return [nil]
|
|
81
|
+
def push_test_metrics_to_gcs
|
|
82
|
+
gcs_client(project_id: gcs_project_id, credentials: gcs_credentials)
|
|
83
|
+
.put_object(
|
|
84
|
+
gcs_bucket || raise("Missing GCS bucket name"),
|
|
85
|
+
gcs_metrics_file_name,
|
|
86
|
+
test_metrics.to_json,
|
|
87
|
+
force: true,
|
|
88
|
+
content_type: 'application/json'
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
Runtime::Logger.info("Pushed #{test_metrics.length} test execution entries to GCS")
|
|
92
|
+
rescue StandardError => e
|
|
93
|
+
Runtime::Logger.error("Failed to push test execution metrics to GCS, error: #{e}")
|
|
94
|
+
end
|
|
54
95
|
|
|
55
96
|
# Transform example to influxdb compatible metrics data
|
|
56
97
|
# https://github.com/influxdata/influxdb-client-ruby#data-format
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'fog/google'
|
|
4
|
+
|
|
5
|
+
module GitlabQuality
|
|
6
|
+
module TestTooling
|
|
7
|
+
module TestMetricsExporter
|
|
8
|
+
module Support
|
|
9
|
+
module GcsTools
|
|
10
|
+
# GCS Client
|
|
11
|
+
#
|
|
12
|
+
# @param project_id [String]
|
|
13
|
+
# @param credentials [String]
|
|
14
|
+
# @return [Fog::Storage::Google]
|
|
15
|
+
def gcs_client(project_id:, credentials:)
|
|
16
|
+
Fog::Storage::Google.new(
|
|
17
|
+
google_project: project_id || raise("Missing Google project_id"),
|
|
18
|
+
**gcs_creds(credentials)
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# GCS Credentials
|
|
23
|
+
#
|
|
24
|
+
# @param credentials [String]
|
|
25
|
+
# @return [Hash]
|
|
26
|
+
def gcs_creds(credentials)
|
|
27
|
+
json_key = credentials || raise('Missing Google credentials')
|
|
28
|
+
return { google_json_key_location: json_key } if File.exist?(json_key)
|
|
29
|
+
|
|
30
|
+
{ google_json_key_string: json_key }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'influxdb-client'
|
|
4
|
+
|
|
5
|
+
module GitlabQuality
|
|
6
|
+
module TestTooling
|
|
7
|
+
module TestMetricsExporter
|
|
8
|
+
module Support
|
|
9
|
+
module InfluxdbTools
|
|
10
|
+
# InfluxDb client
|
|
11
|
+
#
|
|
12
|
+
# @return [InfluxDB2::Client]
|
|
13
|
+
def influx_client(url:, token:, bucket:)
|
|
14
|
+
@influx_client ||= InfluxDB2::Client.new(
|
|
15
|
+
url || raise('Missing influxdb_url'),
|
|
16
|
+
token || raise('Missing influxdb_token'),
|
|
17
|
+
bucket: bucket || raise('Missing influxdb_bucket'),
|
|
18
|
+
org: "gitlab-qa",
|
|
19
|
+
precision: InfluxDB2::WritePrecision::NANOSECOND
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Write client
|
|
24
|
+
#
|
|
25
|
+
# @return [WriteApi]
|
|
26
|
+
def write_api(url:, token:, bucket:)
|
|
27
|
+
@write_api ||= influx_client(url: url, token: token, bucket: bucket).create_write_api
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitlab_quality-test_tooling
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.37.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-08-
|
|
11
|
+
date: 2024-08-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -268,6 +268,26 @@ dependencies:
|
|
|
268
268
|
- - "~>"
|
|
269
269
|
- !ruby/object:Gem::Version
|
|
270
270
|
version: '3.1'
|
|
271
|
+
- !ruby/object:Gem::Dependency
|
|
272
|
+
name: fog-google
|
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
|
274
|
+
requirements:
|
|
275
|
+
- - "~>"
|
|
276
|
+
- !ruby/object:Gem::Version
|
|
277
|
+
version: '1.24'
|
|
278
|
+
- - ">="
|
|
279
|
+
- !ruby/object:Gem::Version
|
|
280
|
+
version: 1.24.1
|
|
281
|
+
type: :runtime
|
|
282
|
+
prerelease: false
|
|
283
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
284
|
+
requirements:
|
|
285
|
+
- - "~>"
|
|
286
|
+
- !ruby/object:Gem::Version
|
|
287
|
+
version: '1.24'
|
|
288
|
+
- - ">="
|
|
289
|
+
- !ruby/object:Gem::Version
|
|
290
|
+
version: 1.24.1
|
|
271
291
|
- !ruby/object:Gem::Dependency
|
|
272
292
|
name: nokogiri
|
|
273
293
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -479,8 +499,9 @@ files:
|
|
|
479
499
|
- lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
|
|
480
500
|
- lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb
|
|
481
501
|
- lib/gitlab_quality/test_tooling/test_metrics_exporter/formatter.rb
|
|
482
|
-
- lib/gitlab_quality/test_tooling/test_metrics_exporter/influxdb_tools.rb
|
|
483
502
|
- lib/gitlab_quality/test_tooling/test_metrics_exporter/log_test_metrics.rb
|
|
503
|
+
- lib/gitlab_quality/test_tooling/test_metrics_exporter/support/gcs_tools.rb
|
|
504
|
+
- lib/gitlab_quality/test_tooling/test_metrics_exporter/support/influxdb_tools.rb
|
|
484
505
|
- lib/gitlab_quality/test_tooling/test_metrics_exporter/test_metrics.rb
|
|
485
506
|
- lib/gitlab_quality/test_tooling/test_result/base_test_result.rb
|
|
486
507
|
- lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'influxdb-client'
|
|
4
|
-
|
|
5
|
-
module GitlabQuality
|
|
6
|
-
module TestTooling
|
|
7
|
-
module TestMetricsExporter
|
|
8
|
-
module InfluxdbTools
|
|
9
|
-
# InfluxDb client
|
|
10
|
-
#
|
|
11
|
-
# @return [InfluxDB2::Client]
|
|
12
|
-
def influx_client(url:, token:, bucket:)
|
|
13
|
-
@influx_client ||= InfluxDB2::Client.new(
|
|
14
|
-
url || raise('Missing influxdb_url'),
|
|
15
|
-
token || raise('Missing influxdb_token'),
|
|
16
|
-
bucket: bucket || raise('Missing influxdb_bucket'),
|
|
17
|
-
org: "gitlab-qa",
|
|
18
|
-
precision: InfluxDB2::WritePrecision::NANOSECOND
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Write client
|
|
23
|
-
#
|
|
24
|
-
# @return [WriteApi]
|
|
25
|
-
def write_api(url:, token:, bucket:)
|
|
26
|
-
@write_api ||= influx_client(url: url, token: token, bucket: bucket).create_write_api
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|