Commit 44a9fcf
authored
configfilesdiscovery: add heartbeats (#53719)
### What does this PR do?
Implements configuration files discovery heartbeats.
When an autodiscovery config is first scheduled, the Agent collects and sends its configuration files. It then retains the collection target and periodically runs the collector again.
Each heartbeat:
- Recollects the configuration files from the target runtime.
- Sends every file returned by the collector.
Repeated autodiscovery `Schedule` calls do not cause collection between heartbeats. Unscheduling removes the corresponding watch and stops future collections.
Heartbeat scheduling uses configurable jitter to distribute intake traffic across Agents. Failed collections and sends are retried using a shorter jittered retry interval.
The following settings are added:
- `config_files_discovery.heartbeat_interval`
- `config_files_discovery.heartbeat_jitter`
### Motivation
DSCVR-463
### Describe how you validated your changes
Unit tests
### Additional Notes
The default configuration is:
```
config_files_discovery:
heartbeat_interval: 1h
heartbeat_jitter: 10m
```
The configured jitter is applied in both directions around the heartbeat interval. Its effective value is clamped to the smaller of:
- 1 hour.
- Half of the configured heartbeat interval.
This prevents jitter from producing excessively short or negative heartbeat delays.
Co-authored-by: guillaume.pagnoux <guillaume.pagnoux@datadoghq.com>1 parent a592bb9 commit 44a9fcf
8 files changed
Lines changed: 1255 additions & 135 deletions
File tree
- comp/core/configfilesdiscovery
- fx
- impl
- pkg/config
- schema/yaml
- setup
- test/new-e2e/tests/discovery
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| 34 | + | |
33 | 35 | | |
34 | 36 | | |
35 | 37 | | |
| |||
73 | 75 | | |
74 | 76 | | |
75 | 77 | | |
| 78 | + | |
76 | 79 | | |
77 | 80 | | |
78 | 81 | | |
| |||
Lines changed: 71 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
19 | 28 | | |
20 | 29 | | |
21 | 30 | | |
22 | 31 | | |
23 | 32 | | |
24 | 33 | | |
25 | 34 | | |
| 35 | + | |
26 | 36 | | |
27 | 37 | | |
28 | 38 | | |
| |||
47 | 57 | | |
48 | 58 | | |
49 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
50 | 70 | | |
51 | 71 | | |
52 | 72 | | |
| |||
57 | 77 | | |
58 | 78 | | |
59 | 79 | | |
60 | | - | |
| 80 | + | |
61 | 81 | | |
62 | 82 | | |
63 | 83 | | |
64 | 84 | | |
65 | 85 | | |
66 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
67 | 92 | | |
68 | 93 | | |
69 | 94 | | |
70 | 95 | | |
| 96 | + | |
71 | 97 | | |
72 | 98 | | |
73 | 99 | | |
74 | 100 | | |
75 | 101 | | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
76 | 145 | | |
77 | 146 | | |
78 | 147 | | |
| |||
0 commit comments