Skip to content

Commit ee375a6

Browse files
atoulmeXinRanZhAWS
authored andcommitted
[receiver/chrony] generated lifecycle tests (open-telemetry#31524)
**Description:** Add generated tests for chrony receiver; move initialization of the chrony client to the start function **Link to tracking Issue:** Relates to open-telemetry#27849
1 parent 1770c86 commit ee375a6

File tree

6 files changed

+109
-8
lines changed

6 files changed

+109
-8
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: bug_fix
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
7+
component: chronyreceiver
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: move initialization of the chrony client to the start function
11+
12+
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
13+
issues: [27849]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext:
19+
20+
# If your change doesn't affect end users or the exported elements of any package,
21+
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
22+
# Optional: The change log or logs in which this entry should be included.
23+
# e.g. '[user]' or '[user, api]'
24+
# Include 'user' if the change is relevant to end users.
25+
# Include 'api' if there is a change to a library API.
26+
# Default: '[user]'
27+
change_logs: []

receiver/chronyreceiver/factory.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ func newMetricsReceiver(
3434
return nil, fmt.Errorf("wrong config provided: %w", errInvalidValue)
3535
}
3636

37-
chronyc, err := chrony.New(cfg.Endpoint, cfg.Timeout)
38-
if err != nil {
39-
return nil, err
40-
}
37+
s := newScraper(ctx, cfg, set)
4138
scraper, err := scraperhelper.NewScraper(
4239
metadata.Type.String(),
43-
newScraper(ctx, chronyc, cfg, set).scrape,
40+
s.scrape,
41+
scraperhelper.WithStart(func(ctx context.Context, host component.Host) error {
42+
chronyc, err := chrony.New(cfg.Endpoint, cfg.Timeout)
43+
s.client = chronyc
44+
return err
45+
}),
4446
)
4547
if err != nil {
4648
return nil, err

receiver/chronyreceiver/generated_component_test.go

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

receiver/chronyreceiver/metadata.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,7 @@ metrics:
7474
value_type: double
7575
attributes:
7676
- leap.status
77+
78+
tests:
79+
config:
80+
skip_lifecycle: true

receiver/chronyreceiver/scraper.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ type chronyScraper struct {
2020
mb *metadata.MetricsBuilder
2121
}
2222

23-
func newScraper(ctx context.Context, client chrony.Client, cfg *Config, set receiver.CreateSettings) *chronyScraper {
23+
func newScraper(ctx context.Context, cfg *Config, set receiver.CreateSettings) *chronyScraper {
2424
return &chronyScraper{
25-
client: client,
2625
mb: metadata.NewMetricsBuilder(cfg.MetricsBuilderConfig, set,
2726
metadata.WithStartTime(pcommon.NewTimestampFromTime(clock.FromContext(ctx).Now())),
2827
),

receiver/chronyreceiver/scraper_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ func TestChronyScraper(t *testing.T) {
115115
chronym.On("GetTrackingData").Return(tc.mockTracking, tc.mockErr)
116116

117117
ctx := clock.Context(context.Background(), clck)
118-
scraper := newScraper(ctx, chronym, tc.conf, receivertest.NewNopCreateSettings())
118+
scraper := newScraper(ctx, tc.conf, receivertest.NewNopCreateSettings())
119+
scraper.client = chronym
119120

120121
metrics, err := scraper.scrape(ctx)
121122

0 commit comments

Comments
 (0)