cw-datadog 2.23.0.6 → 2.23.0.7
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/lib/datadog/core/cloudwise/component.rb +9 -30
- data/lib/datadog/core/cloudwise/probe_state.rb +6 -7
- data/lib/datadog/core/cloudwise/time_sync_worker.rb +3 -2
- data/lib/datadog/core/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/cloudwise/propagation.rb +9 -2
- data/lib/datadog/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 767d32bfe21955c161a202aa6f76f7664bb2ac5fb7360a07838772c2bc3cdbc3
|
|
4
|
+
data.tar.gz: b72a9c5a95d19c01d2b94d751e7fec196d0750383e5dca4c4d3985c20f25323d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 40a7be0754bd238dbc77b1817eee6ba0fecac7f896382d23f7cc6e3c0ba79fa90c0cc303a1f0bc538fbf798db16fbff2f24485cd2bf865cf9dd5808a9085b8cd
|
|
7
|
+
data.tar.gz: 5999b9758ab07a66bca413a01c89d842aceed792accbc2934e5cff9c8646a0cb24b579d630e8d0d92f4d1014b295a207065db174fda75231e1afe97ee31d4e76
|
|
@@ -158,7 +158,7 @@ module Datadog
|
|
|
158
158
|
Cloudwise.log_debug { 'Starting Application registration worker (3 min interval)...' }
|
|
159
159
|
@app_registration_worker.start
|
|
160
160
|
|
|
161
|
-
# Start License Worker
|
|
161
|
+
# Start License Worker (only in traditional mode)
|
|
162
162
|
Cloudwise.log_debug { 'Starting License verification worker (5 min interval)...' }
|
|
163
163
|
@license_worker.start
|
|
164
164
|
end
|
|
@@ -193,7 +193,6 @@ module Datadog
|
|
|
193
193
|
@docc_heartbeat_worker&.stop(true)
|
|
194
194
|
@docc_registration_worker&.stop(true)
|
|
195
195
|
@docc_operation_worker&.stop(true)
|
|
196
|
-
@license_worker&.stop(true)
|
|
197
196
|
Cloudwise.log_debug { 'Cloudwise DOCC component stopped' }
|
|
198
197
|
else
|
|
199
198
|
@host_id_worker&.stop(true)
|
|
@@ -233,8 +232,8 @@ module Datadog
|
|
|
233
232
|
can_collect_data: probe_status[:can_collect_data],
|
|
234
233
|
probe_active: probe_state.active?,
|
|
235
234
|
probe_suspended: probe_state.suspended?,
|
|
236
|
-
license_valid: probe_status[:license_valid],
|
|
237
|
-
license_running: license_worker&.running?,
|
|
235
|
+
license_valid: @client.use_integrated_mode? ? true : probe_status[:license_valid],
|
|
236
|
+
license_running: @client.use_integrated_mode? ? false : license_worker&.running?,
|
|
238
237
|
time_sync_enabled: time_sync_status[:enabled],
|
|
239
238
|
time_sync_offset_ms: time_sync_status[:offset_ms],
|
|
240
239
|
time_sync_running: time_sync_worker&.running?
|
|
@@ -329,15 +328,7 @@ module Datadog
|
|
|
329
328
|
probe_state: probe_state
|
|
330
329
|
)
|
|
331
330
|
|
|
332
|
-
# 4.
|
|
333
|
-
@license_worker = LicenseWorker.new(
|
|
334
|
-
client: client,
|
|
335
|
-
logger: logger,
|
|
336
|
-
probe_state: probe_state,
|
|
337
|
-
interval: settings.cloudwise.license_check_interval
|
|
338
|
-
)
|
|
339
|
-
|
|
340
|
-
# 5. Time Sync Worker (3 min interval, depends on License)
|
|
331
|
+
# 4. Time Sync Worker (3 min interval)
|
|
341
332
|
@time_sync_worker = TimeSyncWorker.new(
|
|
342
333
|
client: client,
|
|
343
334
|
logger: logger,
|
|
@@ -421,13 +412,12 @@ module Datadog
|
|
|
421
412
|
end
|
|
422
413
|
|
|
423
414
|
# Start DOCC workers in background
|
|
424
|
-
# DOCC
|
|
415
|
+
# DOCC 模式启动流程(不需要 License 校验):
|
|
425
416
|
# 1. 启动 DOCC 心跳 worker
|
|
426
417
|
# 2. 等待第一次心跳成功
|
|
427
418
|
# 3. 启动 DOCC 注册 worker
|
|
428
|
-
# 4. 启动
|
|
429
|
-
# 5. 启动
|
|
430
|
-
# 6. 启动 DOCC 操作 worker
|
|
419
|
+
# 4. 启动 Time Sync worker (3 min interval)
|
|
420
|
+
# 5. 启动 DOCC 操作 worker
|
|
431
421
|
def start_docc_workers_when_ready
|
|
432
422
|
Thread.new do
|
|
433
423
|
Thread.current.name = 'Cloudwise-DOCC-Initializer'
|
|
@@ -451,24 +441,13 @@ module Datadog
|
|
|
451
441
|
@docc_registration_worker.start
|
|
452
442
|
|
|
453
443
|
# ============================================================
|
|
454
|
-
# STEP 3: Start
|
|
455
|
-
# ============================================================
|
|
456
|
-
Cloudwise.log_debug { 'Cloudwise docc: Starting license worker...' }
|
|
457
|
-
@license_worker.start
|
|
458
|
-
|
|
459
|
-
# Wait for first successful license validation
|
|
460
|
-
until probe_state.license_valid?
|
|
461
|
-
sleep(1)
|
|
462
|
-
end
|
|
463
|
-
|
|
464
|
-
# ============================================================
|
|
465
|
-
# STEP 4: Start Time Sync worker (3 min interval)
|
|
444
|
+
# STEP 3: Start Time Sync worker (3 min interval)
|
|
466
445
|
# ============================================================
|
|
467
446
|
Cloudwise.log_debug { 'Cloudwise docc: Starting Time Sync worker (3 min interval)...' }
|
|
468
447
|
@time_sync_worker.start
|
|
469
448
|
|
|
470
449
|
# ============================================================
|
|
471
|
-
# STEP
|
|
450
|
+
# STEP 4: Start DOCC Operation worker
|
|
472
451
|
# ============================================================
|
|
473
452
|
Cloudwise.log_debug { 'Cloudwise docc: Starting operation worker...' }
|
|
474
453
|
@docc_operation_worker.start
|
|
@@ -13,7 +13,7 @@ module Datadog
|
|
|
13
13
|
# 初始状态:所有条件都未满足,探针不活跃
|
|
14
14
|
@host_id_ready = false # Host ID 是否已生成
|
|
15
15
|
@heartbeat_active = false # 心跳是否正常
|
|
16
|
-
@license_valid = false # License
|
|
16
|
+
@license_valid = false # License 是否校验通过(仅传统模式使用,DOCC 模式忽略)
|
|
17
17
|
@app_registered = false # 应用是否已注册(注册失败不影响采集)
|
|
18
18
|
|
|
19
19
|
# 融合模式状态
|
|
@@ -61,7 +61,7 @@ module Datadog
|
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
# License
|
|
64
|
+
# License 相关(仅传统模式使用,DOCC 模式下不需要 License 校验)
|
|
65
65
|
def mark_license_valid!
|
|
66
66
|
@mutex.synchronize do
|
|
67
67
|
return if @license_valid
|
|
@@ -163,12 +163,12 @@ module Datadog
|
|
|
163
163
|
end
|
|
164
164
|
|
|
165
165
|
# 探针是否可以采集数据
|
|
166
|
-
# 如果使用 DOCC 模式:需要 DOCC 心跳 +
|
|
166
|
+
# 如果使用 DOCC 模式:需要 DOCC 心跳 + Operation 都正常(不需要 License)
|
|
167
167
|
# 如果使用传统模式:需要 Host ID + 心跳 + License 都正常
|
|
168
168
|
def can_collect_data?
|
|
169
169
|
@mutex.synchronize do
|
|
170
170
|
if @use_docc_mode
|
|
171
|
-
@docc_heartbeat_active && @
|
|
171
|
+
@docc_heartbeat_active && @docc_operation_active
|
|
172
172
|
else
|
|
173
173
|
@host_id_ready && @heartbeat_active && @license_valid
|
|
174
174
|
end
|
|
@@ -233,7 +233,7 @@ module Datadog
|
|
|
233
233
|
docc_registered: @docc_registered,
|
|
234
234
|
docc_heartbeat_active: @docc_heartbeat_active,
|
|
235
235
|
docc_operation_active: @docc_operation_active,
|
|
236
|
-
can_collect_data: @docc_heartbeat_active && @
|
|
236
|
+
can_collect_data: @docc_heartbeat_active && @docc_operation_active
|
|
237
237
|
)
|
|
238
238
|
else
|
|
239
239
|
base_status.merge(
|
|
@@ -252,12 +252,11 @@ module Datadog
|
|
|
252
252
|
# 直接读取实例变量,避免递归锁定(不调用 can_collect_data? 方法)
|
|
253
253
|
if @use_docc_mode
|
|
254
254
|
# DOCC 模式状态日志
|
|
255
|
-
if @docc_heartbeat_active && @
|
|
255
|
+
if @docc_heartbeat_active && @docc_operation_active
|
|
256
256
|
Cloudwise.log_debug { 'Cloudwise DOCC: Probe ACTIVE - data collection enabled' }
|
|
257
257
|
else
|
|
258
258
|
reasons = []
|
|
259
259
|
reasons << 'DOCC Heartbeat inactive' unless @docc_heartbeat_active
|
|
260
|
-
reasons << 'License invalid' unless @license_valid
|
|
261
260
|
reasons << 'Agent stopped by operation' unless @docc_operation_active
|
|
262
261
|
|
|
263
262
|
Cloudwise.log_debug { "Cloudwise DOCC: Probe SUSPENDED - data collection disabled (#{reasons.join(", ")})" }
|
|
@@ -128,8 +128,9 @@ module Datadog
|
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
def perform
|
|
131
|
-
#
|
|
132
|
-
|
|
131
|
+
# 传统模式下,只有在 License 校验通过后才执行时间同步
|
|
132
|
+
# DOCC 模式下不需要 License 校验
|
|
133
|
+
unless probe_state.using_docc_mode? || probe_state.license_valid?
|
|
133
134
|
Cloudwise.log_debug { 'Cloudwise: Waiting for license validation before time sync' }
|
|
134
135
|
return true
|
|
135
136
|
end
|
|
@@ -1071,7 +1071,7 @@ module Datadog
|
|
|
1071
1071
|
o.default 30
|
|
1072
1072
|
end
|
|
1073
1073
|
|
|
1074
|
-
# License check interval in seconds (5 minutes)
|
|
1074
|
+
# License check interval in seconds (5 minutes, 仅传统模式使用,DOCC 模式不需要 License 校验)
|
|
1075
1075
|
# @default `DD_CLOUDWISE_LICENSE_CHECK_INTERVAL` environment variable, otherwise `300`
|
|
1076
1076
|
# @return [Integer]
|
|
1077
1077
|
option :license_check_interval do |o|
|
|
@@ -91,8 +91,15 @@ module Datadog
|
|
|
91
91
|
host_id = get_host_id
|
|
92
92
|
app_id = generate_app_id(service_name)
|
|
93
93
|
instance_id = get_instance_id
|
|
94
|
-
#
|
|
95
|
-
|
|
94
|
+
# 如果上游传递了 trace_id_from(例如 Java1 -> Ruby -> Java2),
|
|
95
|
+
# 则使用上游的 trace_id_from 作为透传的 trace_id,保持端到端追踪链路一致
|
|
96
|
+
# 否则使用本服务的低 64 位 trace_id
|
|
97
|
+
upstream_trace_id = trace.get_tag('trace_id_from')
|
|
98
|
+
trace_id = if upstream_trace_id && !upstream_trace_id.empty? && upstream_trace_id != '-1'
|
|
99
|
+
upstream_trace_id
|
|
100
|
+
else
|
|
101
|
+
Tracing::Utils::TraceId.to_low_order(trace.id).to_s
|
|
102
|
+
end
|
|
96
103
|
assumed_app_id = generate_assumed_app_id(target_url)
|
|
97
104
|
span_id = span.id.to_s
|
|
98
105
|
segment_id = get_segment_id(span)
|
data/lib/datadog/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cw-datadog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.23.0.
|
|
4
|
+
version: 2.23.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-04-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -1095,8 +1095,8 @@ licenses:
|
|
|
1095
1095
|
- Apache-2.0
|
|
1096
1096
|
metadata:
|
|
1097
1097
|
allowed_push_host: https://rubygems.org
|
|
1098
|
-
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0.
|
|
1099
|
-
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0.
|
|
1098
|
+
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0.7/CHANGELOG.md
|
|
1099
|
+
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0.7
|
|
1100
1100
|
post_install_message:
|
|
1101
1101
|
rdoc_options: []
|
|
1102
1102
|
require_paths:
|