gitlab-labkit 0.18.0 → 0.21.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d1b3569e3032ab75917a5fccc48dc4d29a7f8bb7ce25bd94b07552693cde66f
4
- data.tar.gz: 521050774784e77217b6ac86e9faa4c82455802b10d9a33d263849e65c91be62
3
+ metadata.gz: cab702ae904a5944ea08148c125e97e61544eb10d2e3d54d486bcac04df044c7
4
+ data.tar.gz: 5f4cde0cd0de5c85aae05bc925fb21de816176ceb2fb91ea540b45f41ca3918a
5
5
  SHA512:
6
- metadata.gz: c7956a088be110af584ebc8f5e4979e6edd154cf8f13dc587b413afb1247feb9ed5712e5f76625bf48c800d5d36e896f58b62de909d212d4292235d02d57b9d6
7
- data.tar.gz: 9dbc20edb7bf500cc30317c5c4f385de32cf03980907e993802850710f3d797ee05cc086e74948df4110c4a0f63a511e5c8857cb3aeb93288e9fe47acce0011e
6
+ metadata.gz: 88d91253e18d7159a192d5d46763eb8d6cb09f42c87c07a65612dceb0a63db0c4be0249b972a11b301ce1b82d7fbeb8480b57cc126238c3853e916dd80ddf34f
7
+ data.tar.gz: a7e67eadb6da426a7feaf44bc8b0431cc5eb8c99c642c616732b3b77dce3dee1499cbdd3c68fb6736ff9cba47d37812d3ccd6a002e0edaaaa0cf80652511bbf1
data/.gitlab-ci.yml CHANGED
@@ -17,6 +17,11 @@ workflow:
17
17
  - bundle install
18
18
  - bundle exec rake verify build install
19
19
 
20
+ test:3.0:
21
+ image: ruby:3.0
22
+ <<: *test_definition
23
+ allow_failure: true # until we resolve grpc compatibility, see https://gitlab.com/gitlab-org/labkit-ruby/-/merge_requests/81
24
+
20
25
  test:2.7:
21
26
  image: ruby:2.7
22
27
  <<: *test_definition
data/Rakefile CHANGED
@@ -3,10 +3,8 @@
3
3
  require "bundler/gem_tasks"
4
4
  require "rufo"
5
5
 
6
- begin
7
- require "rspec/core/rake_task"
8
- RSpec::Core::RakeTask.new(:spec)
9
- end
6
+ require "rspec/core/rake_task"
7
+ RSpec::Core::RakeTask.new(:spec)
10
8
 
11
9
  require "rubocop/rake_task"
12
10
  RuboCop::RakeTask.new(:rubocop) do |task|
@@ -21,17 +21,17 @@ Gem::Specification.new do |spec|
21
21
  # Please maintain alphabetical order for dependencies
22
22
  spec.add_runtime_dependency "actionpack", ">= 5.0.0", "< 7.0.0"
23
23
  spec.add_runtime_dependency "activesupport", ">= 5.0.0", "< 7.0.0"
24
- spec.add_runtime_dependency "grpc", "~> 1.19" # Be sure to update the "grpc-tools" dev_depenency too
24
+ spec.add_runtime_dependency "grpc", "~> 1.30.2" # Be sure to update the "grpc-tools" dev_dependency too
25
25
  spec.add_runtime_dependency "jaeger-client", "~> 1.1"
26
26
  spec.add_runtime_dependency "opentracing", "~> 0.4"
27
- spec.add_runtime_dependency "gitlab-pg_query", "~> 2.0"
27
+ spec.add_runtime_dependency "pg_query", "~> 2.1"
28
28
  spec.add_runtime_dependency "redis", ">3.0.0", "<5.0.0"
29
29
 
30
30
  # Please maintain alphabetical order for dev dependencies
31
31
  spec.add_development_dependency "excon", "~> 0.78.1"
32
32
  spec.add_development_dependency "faraday", "~> 1.2.0"
33
33
  spec.add_development_dependency "gitlab-styles", "~> 6.2.0"
34
- spec.add_development_dependency "grpc-tools", "~> 1.19"
34
+ spec.add_development_dependency "grpc-tools", "~> 1.30.2"
35
35
  spec.add_development_dependency "httparty", "~> 0.17.3"
36
36
  spec.add_development_dependency "httpclient", "~> 2.8.3"
37
37
  spec.add_development_dependency "pry", "~> 0.12"
@@ -42,4 +42,5 @@ Gem::Specification.new do |spec|
42
42
  spec.add_development_dependency "rspec-parameterized", "~> 0.4"
43
43
  spec.add_development_dependency "rufo", "0.9.0"
44
44
  spec.add_development_dependency "sidekiq", "~> 5.2.7"
45
+ spec.add_development_dependency "webrick", "~> 1.7.0"
45
46
  end
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "securerandom"
4
+
3
5
  require "active_support/core_ext/module/delegation"
4
6
  require "active_support/core_ext/string/starts_ends_with"
7
+ require "active_support/core_ext/string/inflections"
5
8
 
6
9
  module Labkit
7
10
  # A context can be used to provide structured information on what resources
@@ -28,6 +28,12 @@ module Labkit
28
28
  ""
29
29
  end
30
30
 
31
+ def self.sql_fingerprint(normalized_sql)
32
+ PgQuery.parse(normalized_sql)&.fingerprint
33
+ rescue PgQuery::ParseError
34
+ ""
35
+ end
36
+
31
37
  # Ensures that URLS are sanitized to hide credentials
32
38
  def self.mask_url(url)
33
39
  url = url.to_s.strip
@@ -14,7 +14,11 @@ module Labkit
14
14
  end
15
15
 
16
16
  def tags(payload)
17
- sql = Labkit::Logging::Sanitizer.sanitize_sql(payload[:sql]) if Labkit::Tracing.sampled? && payload[:sql]
17
+ if Labkit::Tracing.sampled? && payload[:sql]
18
+ sql = Labkit::Logging::Sanitizer.sanitize_sql(payload[:sql])
19
+ fingerprint = Labkit::Logging::Sanitizer.sql_fingerprint(sql)
20
+ end
21
+
18
22
  {
19
23
  "component" => COMPONENT_TAG,
20
24
  "span.kind" => "client",
@@ -22,6 +26,7 @@ module Labkit
22
26
  "db.connection_id" => payload[:connection_id],
23
27
  "db.cached" => payload[:cached] || false,
24
28
  "db.statement" => sql,
29
+ "db.statement_fingerprint" => fingerprint,
25
30
  }
26
31
  end
27
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-labkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.21.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Newdigate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-31 00:00:00.000000000 Z
11
+ date: 2021-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -56,14 +56,14 @@ dependencies:
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '1.19'
59
+ version: 1.30.2
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '1.19'
66
+ version: 1.30.2
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: jaeger-client
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -93,19 +93,19 @@ dependencies:
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0.4'
95
95
  - !ruby/object:Gem::Dependency
96
- name: gitlab-pg_query
96
+ name: pg_query
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
99
  - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: '2.0'
101
+ version: '2.1'
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
106
  - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: '2.0'
108
+ version: '2.1'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: redis
111
111
  requirement: !ruby/object:Gem::Requirement
@@ -174,14 +174,14 @@ dependencies:
174
174
  requirements:
175
175
  - - "~>"
176
176
  - !ruby/object:Gem::Version
177
- version: '1.19'
177
+ version: 1.30.2
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
- version: '1.19'
184
+ version: 1.30.2
185
185
  - !ruby/object:Gem::Dependency
186
186
  name: httparty
187
187
  requirement: !ruby/object:Gem::Requirement
@@ -322,6 +322,20 @@ dependencies:
322
322
  - - "~>"
323
323
  - !ruby/object:Gem::Version
324
324
  version: 5.2.7
325
+ - !ruby/object:Gem::Dependency
326
+ name: webrick
327
+ requirement: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: 1.7.0
332
+ type: :development
333
+ prerelease: false
334
+ version_requirements: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - "~>"
337
+ - !ruby/object:Gem::Version
338
+ version: 1.7.0
325
339
  description:
326
340
  email:
327
341
  - andrew@gitlab.com