Class: Datadog::CI::Span
- Inherits:
-
Object
- Object
- Datadog::CI::Span
- Defined in:
- lib/datadog/ci/span.rb,
sig/datadog/ci/span.rbs
Overview
Represents a single part of a test run. Could be a session, suite, test, or any custom span.
Direct Known Subclasses
Constant Summary collapse
- ENVIRONMENT_RUNTIME_TAGS =
{ Ext::Test::TAG_OS_ARCHITECTURE => ::RbConfig::CONFIG["host_cpu"], Ext::Test::TAG_OS_PLATFORM => ::RbConfig::CONFIG["host_os"], Ext::Test::TAG_OS_VERSION => Core::Environment::Platform.kernel_release, Ext::Test::TAG_RUNTIME_NAME => Core::Environment::Ext::LANG_ENGINE, Ext::Test::TAG_RUNTIME_VERSION => Core::Environment::Ext::ENGINE_VERSION }.freeze
Instance Attribute Summary collapse
-
#tracer_span ⇒ Object
readonly
Returns the value of attribute tracer_span.
Instance Method Summary collapse
-
#base_commit_sha ⇒ String?
Returns the base commit SHA for the pull request, if available.
-
#clear_tag(key) ⇒ void
Removes tag by key.
-
#failed!(exception: nil) ⇒ void
Sets the status of the span to "fail".
-
#failed? ⇒ bool
Checks whether span status is FAIL.
-
#finish ⇒ void
Finishes the span.
-
#get_metric(key) ⇒ Numeric
Gets metric value by key.
-
#get_tag(key) ⇒ String
Gets tag value by key.
-
#git_branch ⇒ String
Returns the git branch name extracted from the environment.
-
#git_commit_message ⇒ String
Returns the git commit message extracted from the environment.
-
#git_commit_sha ⇒ String
Returns the latest commit SHA extracted from the environment.
-
#git_repository_url ⇒ String
Returns the git repository URL extracted from the environment.
-
#git_tag ⇒ String?
Returns the git tag extracted from the environment.
-
#id ⇒ Integer
The ID of the span.
-
#initialize(tracer_span) ⇒ Span
constructor
A new instance of Span.
-
#name ⇒ String
The name of the span.
-
#original_git_commit_message ⇒ String
Returns the original last git commit message extracted from the environment.
-
#original_git_commit_sha ⇒ String
Returns the original last git commit SHA extracted from the environment.
-
#os_architecture ⇒ String
Returns the OS architecture extracted from the environment.
-
#os_platform ⇒ String
Returns the OS platform extracted from the environment.
-
#os_version ⇒ String
Returns the OS version extracted from the environment.
-
#passed! ⇒ void
Sets the status of the span to "pass".
-
#passed? ⇒ bool
Checks whether span status is PASS.
-
#runtime_name ⇒ String
Returns the runtime name extracted from the environment.
-
#runtime_version ⇒ String
Returns the runtime version extracted from the environment.
-
#service ⇒ String
The service name of the span.
- #set_default_tags ⇒ void
- #set_environment_runtime_tags ⇒ void
-
#set_metric(key, value) ⇒ void
Sets metric value by key.
- #set_parameters ⇒ void
-
#set_tag(key, value) ⇒ void
Sets tag value by key.
-
#set_tags(tags) ⇒ void
Sets multiple tags at once.
-
#skipped!(exception: nil, reason: nil) ⇒ void
Sets the status of the span to "skip".
-
#skipped? ⇒ bool
Checks whether span status is SKIP.
-
#source_file ⇒ String?
Source file path where the test or test suite defined (relative to git repository root).
-
#status ⇒ String?
Returns the current status of the span.
-
#test_tracing ⇒ Object
provides access to the test tracing component for CI models to deactivate themselves.
- #to_s ⇒ Object
-
#trace_id ⇒ Integer
The trace ID of the trace this span belongs to.
-
#type ⇒ String
The type of the span (for example "test" or type that was provided to [Datadog::CI.trace]).
-
#undefined? ⇒ bool
Checks whether span status is not set yet.
Constructor Details
#initialize(tracer_span) ⇒ Span
Returns a new instance of Span.
30 31 32 |
# File 'lib/datadog/ci/span.rb', line 30 def initialize(tracer_span) @tracer_span = tracer_span end |
Instance Attribute Details
#tracer_span ⇒ Object (readonly)
Returns the value of attribute tracer_span.
28 29 30 |
# File 'lib/datadog/ci/span.rb', line 28 def tracer_span @tracer_span end |
Instance Method Details
#base_commit_sha ⇒ String?
Returns the base commit SHA for the pull request, if available.
214 215 216 |
# File 'lib/datadog/ci/span.rb', line 214 def base_commit_sha tracer_span.get_tag(Ext::Git::TAG_PULL_REQUEST_BASE_BRANCH_SHA) end |
#clear_tag(key) ⇒ void
This method returns an undefined value.
Removes tag by key.
132 133 134 |
# File 'lib/datadog/ci/span.rb', line 132 def clear_tag(key) tracer_span.clear_tag(key) end |
#failed!(exception: nil) ⇒ void
This method returns an undefined value.
Sets the status of the span to "fail".
98 99 100 101 102 |
# File 'lib/datadog/ci/span.rb', line 98 def failed!(exception: nil) tracer_span.status = 1 tracer_span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::FAIL) tracer_span.set_error(exception) unless exception.nil? end |
#failed? ⇒ bool
Checks whether span status is FAIL.
73 74 75 |
# File 'lib/datadog/ci/span.rb', line 73 def failed? tracer_span.get_tag(Ext::Test::TAG_STATUS) == Ext::Test::Status::FAIL end |
#finish ⇒ void
This method returns an undefined value.
Finishes the span.
153 154 155 |
# File 'lib/datadog/ci/span.rb', line 153 def finish tracer_span.finish end |
#get_metric(key) ⇒ Numeric
Gets metric value by key.
139 140 141 |
# File 'lib/datadog/ci/span.rb', line 139 def get_metric(key) tracer_span.get_metric(key) end |
#get_tag(key) ⇒ String
Gets tag value by key.
117 118 119 |
# File 'lib/datadog/ci/span.rb', line 117 def get_tag(key) tracer_span.get_tag(key) end |
#git_branch ⇒ String
Returns the git branch name extracted from the environment.
202 203 204 |
# File 'lib/datadog/ci/span.rb', line 202 def git_branch tracer_span.get_tag(Ext::Git::TAG_BRANCH) end |
#git_commit_message ⇒ String
Returns the git commit message extracted from the environment.
178 179 180 |
# File 'lib/datadog/ci/span.rb', line 178 def get_tag(Ext::Git::TAG_COMMIT_MESSAGE) end |
#git_commit_sha ⇒ String
Returns the latest commit SHA extracted from the environment.
172 173 174 |
# File 'lib/datadog/ci/span.rb', line 172 def git_commit_sha tracer_span.get_tag(Ext::Git::TAG_COMMIT_SHA) end |
#git_repository_url ⇒ String
Returns the git repository URL extracted from the environment.
166 167 168 |
# File 'lib/datadog/ci/span.rb', line 166 def git_repository_url tracer_span.get_tag(Ext::Git::TAG_REPOSITORY_URL) end |
#git_tag ⇒ String?
Returns the git tag extracted from the environment.
208 209 210 |
# File 'lib/datadog/ci/span.rb', line 208 def git_tag tracer_span.get_tag(Ext::Git::TAG_TAG) end |
#id ⇒ Integer
Returns the ID of the span.
35 36 37 |
# File 'lib/datadog/ci/span.rb', line 35 def id tracer_span.id end |
#name ⇒ String
Returns the name of the span.
45 46 47 |
# File 'lib/datadog/ci/span.rb', line 45 def name tracer_span.name end |
#original_git_commit_message ⇒ String
Returns the original last git commit message extracted from the environment. Original here means that it is the last commit that was pushed by the user, not the artifical merge commit created by CI provider
196 197 198 |
# File 'lib/datadog/ci/span.rb', line 196 def get_tag(Ext::Git::TAG_COMMIT_HEAD_MESSAGE) || end |
#original_git_commit_sha ⇒ String
Returns the original last git commit SHA extracted from the environment. Original here means that it is the last commit that was pushed by the user, not the artifical merge commit created by CI provider
187 188 189 |
# File 'lib/datadog/ci/span.rb', line 187 def original_git_commit_sha get_tag(Ext::Git::TAG_COMMIT_HEAD_SHA) || git_commit_sha end |
#os_architecture ⇒ String
Returns the OS architecture extracted from the environment.
220 221 222 |
# File 'lib/datadog/ci/span.rb', line 220 def os_architecture tracer_span.get_tag(Ext::Test::TAG_OS_ARCHITECTURE) end |
#os_platform ⇒ String
Returns the OS platform extracted from the environment.
226 227 228 |
# File 'lib/datadog/ci/span.rb', line 226 def os_platform tracer_span.get_tag(Ext::Test::TAG_OS_PLATFORM) end |
#os_version ⇒ String
Returns the OS version extracted from the environment.
232 233 234 |
# File 'lib/datadog/ci/span.rb', line 232 def os_version tracer_span.get_tag(Ext::Test::TAG_OS_VERSION) end |
#passed! ⇒ void
This method returns an undefined value.
Sets the status of the span to "pass".
91 92 93 |
# File 'lib/datadog/ci/span.rb', line 91 def passed! tracer_span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::PASS) end |
#passed? ⇒ bool
Checks whether span status is PASS.
67 68 69 |
# File 'lib/datadog/ci/span.rb', line 67 def passed? tracer_span.get_tag(Ext::Test::TAG_STATUS) == Ext::Test::Status::PASS end |
#runtime_name ⇒ String
Returns the runtime name extracted from the environment.
238 239 240 |
# File 'lib/datadog/ci/span.rb', line 238 def runtime_name tracer_span.get_tag(Ext::Test::TAG_RUNTIME_NAME) end |
#runtime_version ⇒ String
Returns the runtime version extracted from the environment.
244 245 246 |
# File 'lib/datadog/ci/span.rb', line 244 def runtime_version tracer_span.get_tag(Ext::Test::TAG_RUNTIME_VERSION) end |
#service ⇒ String
Returns the service name of the span.
50 51 52 |
# File 'lib/datadog/ci/span.rb', line 50 def service tracer_span.service end |
#set_default_tags ⇒ void
This method returns an undefined value.
260 261 262 |
# File 'lib/datadog/ci/span.rb', line 260 def tracer_span.set_tag(Ext::Test::TAG_SPAN_KIND, Ext::Test::SPAN_KIND_TEST) end |
#set_environment_runtime_tags ⇒ void
This method returns an undefined value.
255 256 257 258 |
# File 'lib/datadog/ci/span.rb', line 255 def tracer_span.(ENVIRONMENT_RUNTIME_TAGS) tracer_span.set_tag(Ext::Test::TAG_COMMAND, Utils::TestRun.command) end |
#set_metric(key, value) ⇒ void
This method returns an undefined value.
Sets metric value by key.
147 148 149 |
# File 'lib/datadog/ci/span.rb', line 147 def set_metric(key, value) tracer_span.set_metric(key, value) end |
#set_parameters ⇒ void
This method returns an undefined value.
56 |
# File 'sig/datadog/ci/span.rbs', line 56
def set_parameters: (Hash[String, Object] arguments, ?Hash[String, Object] metadata) -> void
|
#set_tag(key, value) ⇒ void
This method returns an undefined value.
Sets tag value by key.
125 126 127 |
# File 'lib/datadog/ci/span.rb', line 125 def set_tag(key, value) tracer_span.set_tag(key, value) end |
#set_tags(tags) ⇒ void
This method returns an undefined value.
Sets multiple tags at once.
160 161 162 |
# File 'lib/datadog/ci/span.rb', line 160 def () tracer_span.() end |
#skipped!(exception: nil, reason: nil) ⇒ void
This method returns an undefined value.
Sets the status of the span to "skip".
108 109 110 111 112 |
# File 'lib/datadog/ci/span.rb', line 108 def skipped!(exception: nil, reason: nil) tracer_span.set_tag(Ext::Test::TAG_STATUS, Ext::Test::Status::SKIP) tracer_span.set_error(exception) unless exception.nil? tracer_span.set_tag(Ext::Test::TAG_SKIP_REASON, reason) unless reason.nil? end |
#skipped? ⇒ bool
Checks whether span status is SKIP.
79 80 81 |
# File 'lib/datadog/ci/span.rb', line 79 def skipped? tracer_span.get_tag(Ext::Test::TAG_STATUS) == Ext::Test::Status::SKIP end |
#source_file ⇒ String?
Source file path where the test or test suite defined (relative to git repository root).
251 252 253 |
# File 'lib/datadog/ci/span.rb', line 251 def source_file get_tag(Ext::Test::TAG_SOURCE_FILE) end |
#status ⇒ String?
Returns the current status of the span.
85 86 87 |
# File 'lib/datadog/ci/span.rb', line 85 def status tracer_span.get_tag(Ext::Test::TAG_STATUS) end |
#test_tracing ⇒ Object
provides access to the test tracing component for CI models to deactivate themselves
271 272 273 |
# File 'lib/datadog/ci/span.rb', line 271 def test_tracing Datadog.send(:components).test_tracing end |
#to_s ⇒ Object
264 265 266 |
# File 'lib/datadog/ci/span.rb', line 264 def to_s "#{self.class}(name:#{name},tracer_span:#{@tracer_span})" end |
#trace_id ⇒ Integer
Returns the trace ID of the trace this span belongs to.
40 41 42 |
# File 'lib/datadog/ci/span.rb', line 40 def trace_id tracer_span.trace_id end |
#type ⇒ String
Returns the type of the span (for example "test" or type that was provided to [Datadog::CI.trace]).
55 56 57 |
# File 'lib/datadog/ci/span.rb', line 55 def type tracer_span.type end |
#undefined? ⇒ bool
Checks whether span status is not set yet.
61 62 63 |
# File 'lib/datadog/ci/span.rb', line 61 def undefined? tracer_span.get_tag(Ext::Test::TAG_STATUS).nil? end |