Skip to content

Commit 9971e57

Browse files
committed
suggested changes
1 parent 6799980 commit 9971e57

File tree

7 files changed

+21
-18
lines changed

7 files changed

+21
-18
lines changed

receiver/mongodbatlasreceiver/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ In order to collect access logs, the requesting API key needs the appropriate pe
3434

3535
MongoDB Atlas [Documentation](https://www.mongodb.com/docs/atlas/reference/api/logs/#logs) recommends a polling interval of 5 minutes.
3636

37-
- `base_url` (optional) set the base URL to connect to to Atlas Cloud
37+
- `base_url` (default https://cloud.mongodb.com/) set the base URL to connect to to Atlas Cloud
3838
- `public_key` (required for metrics, logs, or alerts in `poll` mode)
3939
- `private_key` (required for metrics, logs, or alerts in `poll` mode)
4040
- `granularity` (default `PT1M` - See [MongoDB Atlas Documentation](https://docs.atlas.mongodb.com/reference/api/process-measurements/))

receiver/mongodbatlasreceiver/access_logs_test.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,7 @@ func TestAccessLogsRetrieval(t *testing.T) {
278278
t.Run(tc.name, func(t *testing.T) {
279279
logSink := &consumertest.LogsSink{}
280280
rcvr, e := newAccessLogsReceiver(receivertest.NewNopSettings(metadata.Type), tc.config(), logSink)
281-
if e != nil {
282-
t.Fatalf("failed to create receiver: %v", e)
283-
}
281+
require.NoError(t, e)
284282
tc.setup(rcvr)
285283

286284
err := rcvr.Start(context.Background(), componenttest.NewNopHost(), storage.NewNopClient())
@@ -318,9 +316,7 @@ func TestCheckpointing(t *testing.T) {
318316

319317
logSink := &consumertest.LogsSink{}
320318
rcvr, e := newAccessLogsReceiver(receivertest.NewNopSettings(metadata.Type), config, logSink)
321-
if e != nil {
322-
t.Fatalf("failed to create receiver: %v", e)
323-
}
319+
require.NoError(t, e)
324320
rcvr.client = simpleAccessLogClient()
325321

326322
// First cluster checkpoint should be nil

receiver/mongodbatlasreceiver/config.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"errors"
88
"fmt"
99
"net"
10+
"net/url"
1011
"strings"
1112
"time"
1213

@@ -134,6 +135,16 @@ var (
134135

135136
func (c *Config) Validate() error {
136137
var errs error
138+
baseurl := c.BaseURL
139+
if u, err := url.ParseRequestURI(baseurl); err != nil {
140+
errs = multierr.Append(errs, fmt.Errorf("base_url is not valid: %w", err))
141+
if u.Scheme == "" {
142+
errs = multierr.Append(errs, fmt.Errorf("base_url must contain a scheme (http or https)"))
143+
}
144+
if u.Host == "" {
145+
errs = multierr.Append(errs, fmt.Errorf("base_url must contain a host"))
146+
}
147+
}
137148

138149
for _, project := range c.Projects {
139150
if len(project.ExcludeClusters) != 0 && len(project.IncludeClusters) != 0 {

receiver/mongodbatlasreceiver/config_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@ func TestLoadConfig(t *testing.T) {
361361

362362
expected := factory.CreateDefaultConfig().(*Config)
363363
expected.MetricsBuilderConfig = metadata.DefaultMetricsBuilderConfig()
364+
expected.BaseURL = "https://cloud.mongodb.com"
364365
expected.PrivateKey = "my-private-key"
365366
expected.PublicKey = "my-public-key"
366367
expected.Logs = LogConfig{

receiver/mongodbatlasreceiver/events_test.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ func TestStartAndShutdown(t *testing.T) {
5454
t.Run(tc.desc, func(t *testing.T) {
5555
sink := &consumertest.LogsSink{}
5656
r, e := newEventsReceiver(receivertest.NewNopSettings(metadata.Type), tc.getConfig(), sink)
57-
if e != nil {
58-
t.Fatalf("failed to create receiver: %v", e)
59-
}
57+
require.NoError(t, e)
6058
err := r.Start(context.Background(), componenttest.NewNopHost(), storage.NewNopClient())
6159
if tc.expectedStartErr != nil {
6260
require.ErrorContains(t, err, tc.expectedStartErr.Error())
@@ -123,9 +121,7 @@ func TestPoll(t *testing.T) {
123121

124122
sink := &consumertest.LogsSink{}
125123
r, e := newEventsReceiver(receivertest.NewNopSettings(metadata.Type), cfg, sink)
126-
if e != nil {
127-
t.Fatalf("failed to create receiver: %v", e)
128-
}
124+
require.NoError(t, e)
129125
mClient := &mockEventsClient{}
130126
mClient.setupMock(t)
131127
r.client = mClient
@@ -171,9 +167,7 @@ func TestProjectGetFailure(t *testing.T) {
171167

172168
sink := &consumertest.LogsSink{}
173169
r, e := newEventsReceiver(receivertest.NewNopSettings(metadata.Type), cfg, sink)
174-
if e != nil {
175-
t.Fatalf("failed to create receiver: %v", e)
176-
}
170+
require.NoError(t, e)
177171
mClient := &mockEventsClient{}
178172
mClient.On("GetProject", mock.Anything, "fake-project").Return(nil, fmt.Errorf("unable to get project: %d", http.StatusUnauthorized))
179173
mClient.On("GetOrganization", mock.Anything, "fake-org").Return(nil, fmt.Errorf("unable to get org: %d", http.StatusUnauthorized))

receiver/mongodbatlasreceiver/factory.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"fmt"
1010
"time"
1111

12+
"go.mongodb.org/atlas/mongodbatlas"
1213
"go.opentelemetry.io/collector/component"
1314
"go.opentelemetry.io/collector/config/configretry"
1415
"go.opentelemetry.io/collector/consumer"
@@ -106,6 +107,7 @@ func createCombinedLogReceiver(
106107

107108
func createDefaultConfig() component.Config {
108109
c := &Config{
110+
BaseURL: mongodbatlas.CloudURL,
109111
ControllerConfig: scraperhelper.NewDefaultControllerConfig(),
110112
Granularity: defaultGranularity,
111113
BackOffConfig: configretry.NewDefaultBackOffConfig(),

receiver/mongodbatlasreceiver/internal/mongodb_atlas_client.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ func NewMongoDBAtlasClient(
147147

148148
client, err := mongodbatlas.New(tc, mongodbatlas.SetBaseURL(baseURL))
149149
if err != nil {
150-
log.Error("Failed to create client", zap.Error(err))
151-
return nil, fmt.Errorf("failed to create MongoDB Atlas client: %w", err) // Return nil and the error
150+
return nil, fmt.Errorf("failed to create MongoDB Atlas client: %w", err)
152151
}
153152

154153
return &MongoDBAtlasClient{

0 commit comments

Comments
 (0)