Module: Datadog::Core::Environment::Identity
- Defined in:
- lib/datadog/core/environment/identity.rb
Overview
For runtime identity
Constant Summary collapse
- SEMVER2_RE =
/ ^ # mandatory segments (?<major>\d+) \. (?<minor>\d+) \. (?<patch>\d+) # pre segments start with a value # - containing at least one alpha # - that is not part of our build segments expected values # and stop with a value that is not part of our build segments expected values (?: \. (?<pre> (?!gha) [a-zA-Z0-9]*[a-zA-Z][a-zA-Z0-9]* (?: \. (?!gha) [a-zA-Z0-9]+ )* ) )? # build segments: ours include CI info (`gha`), then git (`g`), then branch name (?: \. (?<build> gha(?<gha_run_id>\d+) \. g(?<git_sha>[a-f0-9]+) \. (?<branch>(?:[a-zA-Z0-9.])+) ) )? $ /xm.freeze
Class Method Summary collapse
-
.id ⇒ Object
Retrieves number of classes from runtime.
- .lang ⇒ Object
- .lang_engine ⇒ Object
- .lang_interpreter ⇒ Object
- .lang_platform ⇒ Object
- .lang_version ⇒ Object
- .pid ⇒ Object
-
.tracer_version ⇒ Object
Returns tracer version, rubygems-style.
-
.tracer_version_semver2 ⇒ Object
Returns tracer version, comforming to https://semver.org/spec/v2.0.0.html.
Class Method Details
.id ⇒ Object
Retrieves number of classes from runtime
19 20 21 22 23 24 25 26 |
# File 'lib/datadog/core/environment/identity.rb', line 19 def id @id ||= ::SecureRandom.uuid.freeze # Check if runtime has changed, e.g. forked. after_fork! { @id = ::SecureRandom.uuid.freeze } @id end |
.lang ⇒ Object
32 33 34 |
# File 'lib/datadog/core/environment/identity.rb', line 32 def lang Core::Environment::Ext::LANG end |
.lang_engine ⇒ Object
36 37 38 |
# File 'lib/datadog/core/environment/identity.rb', line 36 def lang_engine Core::Environment::Ext::LANG_ENGINE end |
.lang_interpreter ⇒ Object
40 41 42 |
# File 'lib/datadog/core/environment/identity.rb', line 40 def lang_interpreter Core::Environment::Ext::LANG_INTERPRETER end |
.lang_platform ⇒ Object
44 45 46 |
# File 'lib/datadog/core/environment/identity.rb', line 44 def lang_platform Core::Environment::Ext::LANG_PLATFORM end |
.lang_version ⇒ Object
48 49 50 |
# File 'lib/datadog/core/environment/identity.rb', line 48 def lang_version Core::Environment::Ext::LANG_VERSION end |
.pid ⇒ Object
28 29 30 |
# File 'lib/datadog/core/environment/identity.rb', line 28 def pid ::Process.pid end |
.tracer_version ⇒ Object
Returns tracer version, rubygems-style
53 54 55 |
# File 'lib/datadog/core/environment/identity.rb', line 53 def tracer_version Core::Environment::Ext::TRACER_VERSION end |
.tracer_version_semver2 ⇒ Object
Returns tracer version, comforming to https://semver.org/spec/v2.0.0.html
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/datadog/core/environment/identity.rb', line 58 def tracer_version_semver2 # from ddtrace/version.rb, we have MAJOR.MINOR.PATCH plus optional .PRE and .BUILD # - transform .PRE to -PRE if present # - transform .BUILD to +BUILD if present # - keep triplet segments before that m = SEMVER2_RE.match(tracer_version) pre = "-#{m[:pre]}" if m[:pre] build = "+gha#{m[:gha_run_id]}.g#{m[:git_sha]}.#{m[:branch].tr('.', '-')}" if m[:build] "#{m[:major]}.#{m[:minor]}.#{m[:patch]}#{pre}#{build}" end |