gitlab-labkit 1.4.0 → 1.5.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/gitlab-labkit.gemspec +5 -1
- data/lib/gitlab-labkit.rb +2 -0
- data/lib/labkit/logging/field_validator.rb +10 -11
- data/lib/labkit/middleware/sidekiq/tracing/client.rb +1 -1
- data/lib/labkit/middleware/sidekiq/tracing/server.rb +1 -1
- data/lib/labkit/tracing/README.md +716 -0
- data/lib/labkit/tracing/abstract_instrumenter.rb +1 -1
- data/lib/labkit/tracing/adapters/base_span.rb +35 -0
- data/lib/labkit/tracing/adapters/base_tracer.rb +39 -0
- data/lib/labkit/tracing/adapters/opentelemetry_span.rb +73 -0
- data/lib/labkit/tracing/adapters/opentelemetry_tracer.rb +102 -0
- data/lib/labkit/tracing/adapters/opentracing_span.rb +70 -0
- data/lib/labkit/tracing/adapters/opentracing_tracer.rb +50 -0
- data/lib/labkit/tracing/auto_initialize.rb +46 -0
- data/lib/labkit/tracing/factory.rb +26 -38
- data/lib/labkit/tracing/grpc/client_interceptor.rb +1 -1
- data/lib/labkit/tracing/grpc/server_interceptor.rb +2 -2
- data/lib/labkit/tracing/jaeger_factory.rb +12 -9
- data/lib/labkit/tracing/open_telemetry_factory.rb +218 -0
- data/lib/labkit/tracing/open_tracing_factory.rb +48 -0
- data/lib/labkit/tracing/rack_middleware.rb +1 -1
- data/lib/labkit/tracing/railtie.rb +15 -0
- data/lib/labkit/tracing/tracing_utils.rb +37 -34
- data/lib/labkit/tracing.rb +108 -5
- data/lib/labkit/user_experience_sli/null.rb +2 -0
- metadata +74 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf6262472d851bcdfeb96b0ed3b7acf25f462b0b968d2ac2f431ea946b68b33a
|
|
4
|
+
data.tar.gz: b04bfc82c7ea63848849af40c7940788796b486a16c41416de824b7440f01992
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7c5a7b9002239cf23e7609fd8c07174bf588c0f2f1f2177616d6f98f4490c8e32f74cb7c8e62c1bf8ae839da24e30023e9bd733f1a6e40bbf75484d614a3d9ad
|
|
7
|
+
data.tar.gz: e699b4a653c268c7333bdad41006a5c52d0fbdaf0aa4c21ca90bbb396695d6519695243e0548e0f5439f9bd11366c6a3359c013766deadaa6996e31bbbfb7c7a
|
data/gitlab-labkit.gemspec
CHANGED
|
@@ -27,8 +27,11 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.add_runtime_dependency "grpc", ">= 1.75" # Be sure to update the "grpc-tools" dev_dependency too
|
|
28
28
|
spec.add_runtime_dependency "google-protobuf", ">= 3.25", "< 5.0"
|
|
29
29
|
spec.add_runtime_dependency "jaeger-client", "~> 1.1.0"
|
|
30
|
-
spec.add_runtime_dependency
|
|
30
|
+
spec.add_runtime_dependency "json_schemer", ">= 2.3.0", "< 3.0"
|
|
31
31
|
spec.add_runtime_dependency "openssl", "~> 3.3.2"
|
|
32
|
+
spec.add_runtime_dependency "opentelemetry-sdk", "~> 1.10"
|
|
33
|
+
spec.add_runtime_dependency "opentelemetry-instrumentation-all", "~> 0.89.1"
|
|
34
|
+
spec.add_runtime_dependency "opentelemetry-exporter-otlp", "~> 0.31.1"
|
|
32
35
|
spec.add_runtime_dependency "opentracing", "~> 0.4"
|
|
33
36
|
spec.add_runtime_dependency "pg_query", ">= 6.1.0", "< 7.0"
|
|
34
37
|
spec.add_runtime_dependency "prometheus-client-mmap", ">= 1.2", "< 2.0"
|
|
@@ -46,6 +49,7 @@ Gem::Specification.new do |spec|
|
|
|
46
49
|
spec.add_development_dependency "pry", "~> 0.12"
|
|
47
50
|
spec.add_development_dependency "pry-byebug", "~> 3.11"
|
|
48
51
|
spec.add_development_dependency "rack", "~> 2.0"
|
|
52
|
+
spec.add_development_dependency "railties", ">= 5.0.0", "< 8.1.0"
|
|
49
53
|
spec.add_development_dependency "rake", "~> 13.2"
|
|
50
54
|
spec.add_development_dependency "rest-client", "~> 2.1.0"
|
|
51
55
|
spec.add_development_dependency "rspec", "~> 3.12.0"
|
data/lib/gitlab-labkit.rb
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require 'yaml'
|
|
3
|
+
require "json"
|
|
4
|
+
require "yaml"
|
|
6
5
|
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
6
|
+
require_relative "field_validator/config"
|
|
7
|
+
require_relative "field_validator/log_interceptor"
|
|
8
|
+
require_relative "field_validator/registry"
|
|
10
9
|
|
|
11
10
|
module Labkit
|
|
12
11
|
module Logging
|
|
@@ -46,14 +45,14 @@ module Labkit
|
|
|
46
45
|
|
|
47
46
|
return if detected_offenses.empty? && new_offenses.empty? && removed_offenses.empty?
|
|
48
47
|
|
|
49
|
-
in_ci = ENV[
|
|
48
|
+
in_ci = ENV["CI"] == "true"
|
|
50
49
|
|
|
51
50
|
output_ndjson(detected_offenses) if in_ci
|
|
52
51
|
|
|
53
52
|
# Auto-remove fixed offenses (not in CI to avoid race conditions)
|
|
54
53
|
handle_removed_offenses(removed_offenses) if removed_offenses.any? && !in_ci
|
|
55
54
|
|
|
56
|
-
if ENV[
|
|
55
|
+
if ENV["LABKIT_LOGGING_TODO_UPDATE"] == "true"
|
|
57
56
|
handle_update(new_offenses)
|
|
58
57
|
elsif new_offenses.any?
|
|
59
58
|
handle_new_offenses(new_offenses)
|
|
@@ -98,7 +97,7 @@ module Labkit
|
|
|
98
97
|
end
|
|
99
98
|
|
|
100
99
|
def handle_new_offenses(new_offenses)
|
|
101
|
-
if ENV[
|
|
100
|
+
if ENV["CI"] == "true" && Config.skip_ci_failure?
|
|
102
101
|
warn baseline_generation_message(new_offenses)
|
|
103
102
|
else
|
|
104
103
|
warn report_new_offenses(new_offenses)
|
|
@@ -120,7 +119,7 @@ module Labkit
|
|
|
120
119
|
"Documentation: https://gitlab.com/gitlab-org/ruby/gems/labkit-ruby/-/blob/master/doc/FIELD_STANDARDIZATION.md",
|
|
121
120
|
"",
|
|
122
121
|
"--- Offenses Summary ---",
|
|
123
|
-
"Total offenses: #{offenses.size} across #{offenses.map { |o| o['callsite'] }.uniq.size} file(s)",
|
|
122
|
+
"Total offenses: #{offenses.size} across #{offenses.map { |o| o['callsite'] }.uniq.size} file(s)", # rubocop:disable Rails/Pluck
|
|
124
123
|
""
|
|
125
124
|
]
|
|
126
125
|
lines.join("\n")
|
|
@@ -157,7 +156,7 @@ module Labkit
|
|
|
157
156
|
|
|
158
157
|
lines << ""
|
|
159
158
|
lines << ("=" * 80)
|
|
160
|
-
lines << "Total: #{new_offenses.size} new offense(s) in #{new_offenses.map { |o| o['callsite'] }.uniq.size} file(s)"
|
|
159
|
+
lines << "Total: #{new_offenses.size} new offense(s) in #{new_offenses.map { |o| o['callsite'] }.uniq.size} file(s)" # rubocop:disable Rails/Pluck
|
|
161
160
|
lines << ""
|
|
162
161
|
lines << "See https://gitlab.com/gitlab-org/ruby/gems/labkit-ruby/-/blob/master/doc/FIELD_STANDARDIZATION.md"
|
|
163
162
|
lines << ("=" * 80)
|
|
@@ -17,7 +17,7 @@ module Labkit
|
|
|
17
17
|
def call(_worker_class, job, _queue, _redis_pool)
|
|
18
18
|
Labkit::Tracing::TracingUtils.with_tracing(operation_name: "sidekiq:#{job_class(job)}", tags: tags_from_job(job, SPAN_KIND)) do |span|
|
|
19
19
|
# Inject the details directly into the job
|
|
20
|
-
Labkit::Tracing::TracingUtils.tracer.
|
|
20
|
+
Labkit::Tracing::TracingUtils.tracer.inject_context(span, job)
|
|
21
21
|
|
|
22
22
|
yield
|
|
23
23
|
end
|
|
@@ -15,7 +15,7 @@ module Labkit
|
|
|
15
15
|
SPAN_KIND = "server"
|
|
16
16
|
|
|
17
17
|
def call(_worker, job, _queue)
|
|
18
|
-
context = Labkit::Tracing::TracingUtils.tracer.
|
|
18
|
+
context = Labkit::Tracing::TracingUtils.tracer.extract_context(job)
|
|
19
19
|
|
|
20
20
|
Labkit::Tracing::TracingUtils.with_tracing(operation_name: "sidekiq:#{job_class(job)}", child_of: context, tags: tags_from_job(job, SPAN_KIND)) { |_span| yield }
|
|
21
21
|
end
|