Module: Labkit::Tracing
- Defined in:
- lib/labkit/tracing.rb,
lib/labkit/tracing/grpc.rb,
lib/labkit/tracing/rails.rb,
lib/labkit/tracing/factory.rb,
lib/labkit/tracing/sidekiq.rb,
lib/labkit/tracing/tracing_utils.rb,
lib/labkit/tracing/jaeger_factory.rb,
lib/labkit/tracing/rack_middleware.rb,
lib/labkit/tracing/grpc_interceptor.rb,
lib/labkit/tracing/rails/rails_common.rb,
lib/labkit/tracing/sidekiq/sidekiq_common.rb,
lib/labkit/tracing/grpc/client_interceptor.rb,
lib/labkit/tracing/grpc/server_interceptor.rb,
lib/labkit/tracing/sidekiq/client_middleware.rb,
lib/labkit/tracing/sidekiq/server_middleware.rb,
lib/labkit/tracing/rails/action_view_subscriber.rb,
lib/labkit/tracing/rails/active_record_subscriber.rb
Overview
Tracing provides distributed tracing functionality
Defined Under Namespace
Modules: GRPC, Rails, Sidekiq Classes: Factory, JaegerFactory, RackMiddleware, TracingUtils
Constant Summary collapse
- GRPCInterceptor =
GRPCInterceptor is the deprecated name for GRPCClientInterceptor
GRPC::ClientInterceptor
Class Method Summary collapse
- .connection_string ⇒ Object
-
.enabled? ⇒ Boolean
Tracing is only enabled when the ‘GITLAB_TRACING` env var is configured.
-
.tracing_url(service_name) ⇒ Object
This will provide a link into the distributed tracing for the current trace, if it has been captured.
- .tracing_url_enabled? ⇒ Boolean
- .tracing_url_template ⇒ Object
-
.with_tracing(**kwargs, &block) ⇒ Object
This will run a block with a span.
Class Method Details
.connection_string ⇒ Object
22 23 24 |
# File 'lib/labkit/tracing.rb', line 22 def self.connection_string ENV["GITLAB_TRACING"] end |
.enabled? ⇒ Boolean
Tracing is only enabled when the ‘GITLAB_TRACING` env var is configured.
18 19 20 |
# File 'lib/labkit/tracing.rb', line 18 def self.enabled? connection_string.present? end |
.tracing_url(service_name) ⇒ Object
This will provide a link into the distributed tracing for the current trace, if it has been captured.
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/labkit/tracing.rb', line 36 def self.tracing_url(service_name) return unless tracing_url_enabled? correlation_id = Labkit::Correlation::CorrelationId.current_id.to_s # Avoid using `format` since it can throw TypeErrors # which we want to avoid on unsanitised env var input tracing_url_template.to_s .gsub("{{ correlation_id }}", correlation_id) .gsub("{{ service }}", service_name) end |
.tracing_url_enabled? ⇒ Boolean
30 31 32 |
# File 'lib/labkit/tracing.rb', line 30 def self.tracing_url_enabled? enabled? && tracing_url_template.present? end |
.tracing_url_template ⇒ Object
26 27 28 |
# File 'lib/labkit/tracing.rb', line 26 def self.tracing_url_template ENV["GITLAB_TRACING_URL"] end |
.with_tracing(**kwargs, &block) ⇒ Object
This will run a block with a span
54 55 56 |
# File 'lib/labkit/tracing.rb', line 54 def self.with_tracing(**kwargs, &block) TracingUtils.with_tracing(**kwargs, &block) end |