Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[receiver/mongodbatlas] Add Events API Support #18237

Merged
merged 21 commits into from
Feb 3, 2023

Conversation

schmikei
Copy link
Contributor

@schmikei schmikei commented Feb 1, 2023

Description: Added support for collecting Events from the MongoDB Atlas API

Sample Configuration

mongodbatlas:
  public_key: "my-public-key"
  private_key: "my-private-key"
  events:
   projects:
      - name: Project 0
    poll_interval: 1m
    types: [ALERT_CONFIG_CHANGED_AUDIT]
    page_size: 100
    max_pages: 25

Link to tracking Issue: Resolves #18061

Testing: Unit Testing

Documentation: Added more information on configuration to the README

@runforesight
Copy link

runforesight bot commented Feb 1, 2023

Foresight Summary

    
Major Impacts

build-and-test-windows duration(3 seconds) has decreased 40 minutes 12 seconds compared to main branch avg(40 minutes 15 seconds).
View More Details

⭕  build-and-test-windows workflow has finished in 3 seconds (40 minutes 12 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
windows-unittest-matrix -     🔗  N/A See Details
windows-unittest -     🔗  N/A See Details

✅  telemetrygen workflow has finished in 51 seconds (1 minute 39 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
build-dev -     🔗  N/A See Details
publish-latest -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details

✅  check-links workflow has finished in 1 minute 20 seconds (34 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
changed files -     🔗  N/A See Details
check-links -     🔗  N/A See Details

✅  changelog workflow has finished in 1 minute 26 seconds (40 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
changelog -     🔗  N/A See Details

✅  prometheus-compliance-tests workflow has finished in 3 minutes 18 seconds (4 minutes 22 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
prometheus-compliance-tests -     🔗  ✅ 21  ❌ 0  ⏭ 0    🔗 See Details

✅  build-and-test workflow has finished in 42 minutes 43 seconds (10 minutes 13 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
unittest-matrix (1.19, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, internal) -     🔗  ✅ 561  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, processor) -     🔗  ✅ 1472  ❌ 0  ⏭ 0    🔗 See Details
correctness-metrics -     🔗  ✅ 2  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, extension) -     🔗  ✅ 546  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, extension) -     🔗  ✅ 546  ❌ 0  ⏭ 0    🔗 See Details
correctness-traces -     🔗  ✅ 17  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, processor) -     🔗  ✅ 1472  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-0) -     🔗  ✅ 2578  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-0) -     🔗  ✅ 2578  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, exporter) -     🔗  ✅ 2438  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, exporter) -     🔗  ✅ 2438  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, receiver-1) -     🔗  ✅ 1958  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, other) -     🔗  ✅ 4668  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.19, receiver-1) -     🔗  ✅ 1958  ❌ 0  ⏭ 0    🔗 See Details
integration-tests -     🔗  ✅ 55  ❌ 0  ⏭ 0    🔗 See Details
unittest-matrix (1.18, other) -     🔗  ✅ 4668  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details
checks -     🔗  N/A See Details
check-codeowners -     🔗  N/A See Details
check-collector-module-version -     🔗  N/A See Details
build-examples -     🔗  N/A See Details
lint-matrix (receiver-0) -     🔗  N/A See Details
lint-matrix (receiver-1) -     🔗  N/A See Details
lint-matrix (processor) -     🔗  N/A See Details
lint-matrix (exporter) -     🔗  N/A See Details
lint-matrix (extension) -     🔗  N/A See Details
lint-matrix (internal) -     🔗  N/A See Details
lint-matrix (other) -     🔗  N/A See Details
lint -     🔗  N/A See Details
unittest (1.19) -     🔗  N/A See Details
unittest (1.18) -     🔗  N/A See Details
cross-compile (darwin, amd64) -     🔗  N/A See Details
cross-compile (darwin, arm64) -     🔗  N/A See Details
cross-compile (linux, 386) -     🔗  N/A See Details
cross-compile (linux, amd64) -     🔗  N/A See Details
cross-compile (linux, arm) -     🔗  N/A See Details
cross-compile (linux, arm64) -     🔗  N/A See Details
cross-compile (linux, ppc64le) -     🔗  N/A See Details
cross-compile (windows, 386) -     🔗  N/A See Details
cross-compile (windows, amd64) -     🔗  N/A See Details
build-package (deb) -     🔗  N/A See Details
build-package (rpm) -     🔗  N/A See Details
windows-msi -     🔗  N/A See Details
publish-check -     🔗  N/A See Details
publish-stable -     🔗  N/A See Details
publish-dev -     🔗  N/A See Details

✅  load-tests workflow has finished in 8 minutes 10 seconds (6 minutes 21 seconds less than main branch avg.) and finished at 3rd Feb, 2023.


Job Failed Steps Tests
loadtest (TestIdleMode) -     🔗  ✅ 1  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceAttributesProcessor) -     🔗  ✅ 3  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetric10kDPS|TestMetricsFromFile) -     🔗  ✅ 6  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceNoBackend10kSPS|TestTrace1kSPSWithAttrs) -     🔗  ✅ 8  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestMetricResourceProcessor|TestTrace10kSPS) -     🔗  ✅ 12  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestTraceBallast1kSPSWithAttrs|TestTraceBallast1kSPSAddAttrs) -     🔗  ✅ 10  ❌ 0  ⏭ 0    🔗 See Details
loadtest (TestBallastMemory|TestLog10kDPS) -     🔗  ✅ 19  ❌ 0  ⏭ 0    🔗 See Details
setup-environment -     🔗  N/A See Details

🔎 See details on Foresight

*You can configure Foresight comments in your organization settings page.

@schmikei schmikei marked this pull request as ready for review February 2, 2023 18:25
@schmikei schmikei requested a review from a team as a code owner February 2, 2023 18:25
@schmikei
Copy link
Contributor Author

schmikei commented Feb 2, 2023

@djaglowski here's my first stab at implementing this based off your guys' feedback in #18237, happy to iterate on the solution as well or add more specific tests!

receiver/mongodbatlasreceiver/testdata/configs/input.yaml Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/README.md Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/README.md Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/README.md Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/events.go Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/events.go Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/events.go Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/events.go Outdated Show resolved Hide resolved
@schmikei schmikei requested review from djaglowski and removed request for zenmoto February 3, 2023 13:09
@github-actions github-actions bot requested a review from zenmoto February 3, 2023 16:31
@schmikei schmikei requested review from djaglowski and removed request for zenmoto February 3, 2023 20:31
Copy link
Member

@djaglowski djaglowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to submit a couple comments. Hopefully easy ones

receiver/mongodbatlasreceiver/events.go Outdated Show resolved Hide resolved
receiver/mongodbatlasreceiver/testdata/configs/input.yaml Outdated Show resolved Hide resolved
}

type eventRecord struct {
sync.Mutex
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't appear to be using this anywhere.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure you actually need the mutex. Each instance of the receiver will have its own instance of NextStartTime. Within each instance of the receiver, you only access NextStartTime synchronously within each poll, and each poll blocks the next.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh you're right I'll remove it 👍 was concerned about the goroutine nature of it but you're right it doesn't need it

@github-actions github-actions bot requested a review from zenmoto February 3, 2023 21:16
…tor-contrib into mongodbatlas-events-support
@djaglowski djaglowski merged commit 61f5b38 into open-telemetry:main Feb 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[receiver/mongodbatlas] Add Events API Support
3 participants