cw-datadog 2.23.0.7 → 2.23.0.8
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad65aab58434d4c3d2ccf8a00d2c728231eaca2369aab6d8fac4293d146d7641
|
|
4
|
+
data.tar.gz: 7e4d9d0fc890f0d6ea2cb11014879f6a86af57f8eb89882fa3cdfc0db1acd3c5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4ed84231230329b12381aeccf6d3fdaf3b2e24ec250ed86ba9ee6972d254f28ff0db07618807869c468f4409641557515f7e5e8df8e9a776c75e0ae5402ca332
|
|
7
|
+
data.tar.gz: 17566d9b7b129d408dbbf78904c59ce53931070d91ef6528f3b46402de4aa660f2b91ec263cb67293a9d0bb292668ef82597b97c2823792b3b534578fe58817e
|
|
@@ -245,6 +245,38 @@ module Datadog
|
|
|
245
245
|
})
|
|
246
246
|
end
|
|
247
247
|
|
|
248
|
+
# DOCC 模式下的应用注册接口(使用 doop-agent-api 前缀)
|
|
249
|
+
# 在 DOCC 模式下也需要调用 DOOP 模式的应用注册逻辑
|
|
250
|
+
# 接口路径: /doop-agent-api/v2/app/create
|
|
251
|
+
# 调用频率: 每3分钟一次
|
|
252
|
+
def docc_register_application
|
|
253
|
+
host_ip = get_local_ip
|
|
254
|
+
|
|
255
|
+
post('/doop-agent-api/v2/app/create', {
|
|
256
|
+
serviceType: 'RUBY',
|
|
257
|
+
accountId: @token_account_id.to_i,
|
|
258
|
+
hostId: 0,
|
|
259
|
+
agentId: generate_agent_id(host_ip).to_i,
|
|
260
|
+
appId: generate_app_id(server_name).to_i,
|
|
261
|
+
sn: host_ip,
|
|
262
|
+
sport: get_server_port,
|
|
263
|
+
appName: server_name,
|
|
264
|
+
userDirRaw: server_name,
|
|
265
|
+
codeType: 1012,
|
|
266
|
+
app_type: 1,
|
|
267
|
+
vpc: '',
|
|
268
|
+
env_tag: 'default',
|
|
269
|
+
service_tag: 'default',
|
|
270
|
+
version_tag: 'default',
|
|
271
|
+
business_tag: '',
|
|
272
|
+
sys: '',
|
|
273
|
+
host_tag: '{}',
|
|
274
|
+
tags: {},
|
|
275
|
+
service_instance_id: generate_service_instance_id(host_ip).to_i,
|
|
276
|
+
system_uuid: ''
|
|
277
|
+
})
|
|
278
|
+
end
|
|
279
|
+
|
|
248
280
|
# Check if should use integrated mode (DOCC interfaces)
|
|
249
281
|
# 判断是否需要使用融合模式
|
|
250
282
|
# token不为空且integrated_mode=true时启用
|
|
@@ -7,6 +7,7 @@ require_relative 'heartbeat_worker'
|
|
|
7
7
|
require_relative 'license_worker'
|
|
8
8
|
require_relative 'app_registration_worker'
|
|
9
9
|
require_relative 'docc_registration_worker'
|
|
10
|
+
require_relative 'docc_app_registration_worker'
|
|
10
11
|
require_relative 'docc_heartbeat_worker'
|
|
11
12
|
require_relative 'docc_operation_worker'
|
|
12
13
|
require_relative 'time_sync_worker'
|
|
@@ -49,7 +50,8 @@ module Datadog
|
|
|
49
50
|
class Component
|
|
50
51
|
attr_reader :client, :probe_state, :host_id_worker, :heartbeat_worker,
|
|
51
52
|
:license_worker, :app_registration_worker, :logger,
|
|
52
|
-
:docc_registration_worker, :
|
|
53
|
+
:docc_registration_worker, :docc_app_registration_worker,
|
|
54
|
+
:docc_heartbeat_worker, :docc_operation_worker,
|
|
53
55
|
:time_sync_worker
|
|
54
56
|
|
|
55
57
|
# 类级别的单例锁,确保全局只初始化一次
|
|
@@ -192,6 +194,7 @@ module Datadog
|
|
|
192
194
|
if @client.use_integrated_mode?
|
|
193
195
|
@docc_heartbeat_worker&.stop(true)
|
|
194
196
|
@docc_registration_worker&.stop(true)
|
|
197
|
+
@docc_app_registration_worker&.stop(true)
|
|
195
198
|
@docc_operation_worker&.stop(true)
|
|
196
199
|
Cloudwise.log_debug { 'Cloudwise DOCC component stopped' }
|
|
197
200
|
else
|
|
@@ -246,6 +249,8 @@ module Datadog
|
|
|
246
249
|
docc_operation_active: probe_status[:docc_operation_active],
|
|
247
250
|
docc_heartbeat_running: docc_heartbeat_worker&.running?,
|
|
248
251
|
docc_registration_running: docc_registration_worker&.running?,
|
|
252
|
+
docc_app_registered: probe_status[:app_registered],
|
|
253
|
+
docc_app_registration_running: docc_app_registration_worker&.running?,
|
|
249
254
|
docc_operation_running: docc_operation_worker&.running?
|
|
250
255
|
)
|
|
251
256
|
else
|
|
@@ -321,14 +326,22 @@ module Datadog
|
|
|
321
326
|
interval: settings.cloudwise.heartbeat_interval
|
|
322
327
|
)
|
|
323
328
|
|
|
324
|
-
# 3. DOCC
|
|
329
|
+
# 3. DOCC App Registration Worker (3 min interval, DOOP prefix)
|
|
330
|
+
@docc_app_registration_worker = DOCCAppRegistrationWorker.new(
|
|
331
|
+
client: client,
|
|
332
|
+
logger: logger,
|
|
333
|
+
probe_state: probe_state,
|
|
334
|
+
interval: settings.cloudwise.app_registration_interval
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
# 4. DOCC Operation Worker (30s interval)
|
|
325
338
|
@docc_operation_worker = DOCCOperationWorker.new(
|
|
326
339
|
client: client,
|
|
327
340
|
logger: logger,
|
|
328
341
|
probe_state: probe_state
|
|
329
342
|
)
|
|
330
343
|
|
|
331
|
-
#
|
|
344
|
+
# 5. Time Sync Worker (3 min interval)
|
|
332
345
|
@time_sync_worker = TimeSyncWorker.new(
|
|
333
346
|
client: client,
|
|
334
347
|
logger: logger,
|
|
@@ -416,8 +429,9 @@ module Datadog
|
|
|
416
429
|
# 1. 启动 DOCC 心跳 worker
|
|
417
430
|
# 2. 等待第一次心跳成功
|
|
418
431
|
# 3. 启动 DOCC 注册 worker
|
|
419
|
-
# 4. 启动
|
|
420
|
-
# 5. 启动
|
|
432
|
+
# 4. 启动 App Registration worker (DOOP prefix, 3 min interval)
|
|
433
|
+
# 5. 启动 Time Sync worker (3 min interval)
|
|
434
|
+
# 6. 启动 DOCC 操作 worker
|
|
421
435
|
def start_docc_workers_when_ready
|
|
422
436
|
Thread.new do
|
|
423
437
|
Thread.current.name = 'Cloudwise-DOCC-Initializer'
|
|
@@ -441,13 +455,19 @@ module Datadog
|
|
|
441
455
|
@docc_registration_worker.start
|
|
442
456
|
|
|
443
457
|
# ============================================================
|
|
444
|
-
# STEP 3: Start
|
|
458
|
+
# STEP 3: Start App Registration worker (DOOP prefix)
|
|
459
|
+
# ============================================================
|
|
460
|
+
Cloudwise.log_debug { 'Cloudwise docc: Starting application registration worker (DOOP prefix)...' }
|
|
461
|
+
@docc_app_registration_worker.start
|
|
462
|
+
|
|
463
|
+
# ============================================================
|
|
464
|
+
# STEP 4: Start Time Sync worker (3 min interval)
|
|
445
465
|
# ============================================================
|
|
446
466
|
Cloudwise.log_debug { 'Cloudwise docc: Starting Time Sync worker (3 min interval)...' }
|
|
447
467
|
@time_sync_worker.start
|
|
448
468
|
|
|
449
469
|
# ============================================================
|
|
450
|
-
# STEP
|
|
470
|
+
# STEP 5: Start DOCC Operation worker
|
|
451
471
|
# ============================================================
|
|
452
472
|
Cloudwise.log_debug { 'Cloudwise docc: Starting operation worker...' }
|
|
453
473
|
@docc_operation_worker.start
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../worker'
|
|
4
|
+
require_relative '../workers/async'
|
|
5
|
+
require_relative '../workers/polling'
|
|
6
|
+
|
|
7
|
+
module Datadog
|
|
8
|
+
module Core
|
|
9
|
+
module Cloudwise
|
|
10
|
+
# Worker that registers application in DOCC mode using DOOP prefix
|
|
11
|
+
# DOCC 模式下调用 DOOP 的应用注册逻辑
|
|
12
|
+
# 接口路径: /doop-agent-api/v2/app/create
|
|
13
|
+
# 应用注册失败不影响数据采集
|
|
14
|
+
class DOCCAppRegistrationWorker < Worker
|
|
15
|
+
include Workers::Polling
|
|
16
|
+
|
|
17
|
+
# 3 minutes interval
|
|
18
|
+
DEFAULT_INTERVAL = 180
|
|
19
|
+
# 成功的状态码
|
|
20
|
+
CODE_SUCCESS = 1000
|
|
21
|
+
|
|
22
|
+
attr_reader :client
|
|
23
|
+
|
|
24
|
+
def initialize(client:, logger:, probe_state:, **options)
|
|
25
|
+
@client = client
|
|
26
|
+
@logger = logger
|
|
27
|
+
@probe_state = probe_state
|
|
28
|
+
@registration_successful = false
|
|
29
|
+
|
|
30
|
+
# Workers::Async::Thread settings
|
|
31
|
+
self.fork_policy = options.fetch(:fork_policy, Workers::Async::Thread::FORK_POLICY_STOP)
|
|
32
|
+
|
|
33
|
+
# Workers::IntervalLoop settings
|
|
34
|
+
self.loop_base_interval = options.fetch(:interval, DEFAULT_INTERVAL)
|
|
35
|
+
|
|
36
|
+
self.enabled = options.fetch(:enabled, true)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def perform
|
|
40
|
+
Cloudwise.log_debug { 'Cloudwise DOCC: Registering application (DOOP prefix)' }
|
|
41
|
+
|
|
42
|
+
result = client.docc_register_application
|
|
43
|
+
|
|
44
|
+
process_registration_result(result)
|
|
45
|
+
|
|
46
|
+
true
|
|
47
|
+
rescue => e
|
|
48
|
+
Cloudwise.log_error { "Cloudwise DOCC: Application registration worker error: #{e.class.name} #{e.message}" }
|
|
49
|
+
@probe_state.mark_app_unregistered!
|
|
50
|
+
true # Continue running
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def registered?
|
|
54
|
+
@registration_successful
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Public method to start the worker
|
|
58
|
+
def start
|
|
59
|
+
return false if !enabled? || started?
|
|
60
|
+
|
|
61
|
+
# Start the async worker thread
|
|
62
|
+
perform
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
private
|
|
66
|
+
|
|
67
|
+
attr_reader :logger, :probe_state
|
|
68
|
+
|
|
69
|
+
def process_registration_result(result)
|
|
70
|
+
# 接口请求成功且 code == 1000
|
|
71
|
+
if result[:success] && result[:code] == CODE_SUCCESS
|
|
72
|
+
@registration_successful = true
|
|
73
|
+
Cloudwise.log_debug { 'Cloudwise DOCC: Application registration successful (DOOP prefix)' }
|
|
74
|
+
probe_state.mark_app_registered!
|
|
75
|
+
else
|
|
76
|
+
@registration_successful = false
|
|
77
|
+
error_msg = result[:error] || "code=#{result[:code]}"
|
|
78
|
+
Cloudwise.log_warn { "Cloudwise DOCC: Application registration failed: #{error_msg}, will retry in #{DEFAULT_INTERVAL}s" }
|
|
79
|
+
Cloudwise.log_warn { 'Cloudwise DOCC: Note - Registration failure does NOT affect data collection' }
|
|
80
|
+
probe_state.mark_app_unregistered!
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
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.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -303,6 +303,7 @@ files:
|
|
|
303
303
|
- lib/datadog/core/cloudwise/app_registration_worker.rb
|
|
304
304
|
- lib/datadog/core/cloudwise/client.rb
|
|
305
305
|
- lib/datadog/core/cloudwise/component.rb
|
|
306
|
+
- lib/datadog/core/cloudwise/docc_app_registration_worker.rb
|
|
306
307
|
- lib/datadog/core/cloudwise/docc_heartbeat_worker.rb
|
|
307
308
|
- lib/datadog/core/cloudwise/docc_operation_worker.rb
|
|
308
309
|
- lib/datadog/core/cloudwise/docc_registration_worker.rb
|
|
@@ -1095,8 +1096,8 @@ licenses:
|
|
|
1095
1096
|
- Apache-2.0
|
|
1096
1097
|
metadata:
|
|
1097
1098
|
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.
|
|
1099
|
+
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0.8/CHANGELOG.md
|
|
1100
|
+
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0.8
|
|
1100
1101
|
post_install_message:
|
|
1101
1102
|
rdoc_options: []
|
|
1102
1103
|
require_paths:
|