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

[libbeat] Introduce Apache Pulsar to beats as an output plugin #37552

Open
wants to merge 28 commits into
base: main
Choose a base branch
from

Conversation

dao-jun
Copy link

@dao-jun dao-jun commented Jan 5, 2024

Proposed commit message

Introduce Apache Pulsar to beats as an output plugin, and users could send data to Pulsar.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Author's Checklist

  • [ ]

How to test this PR locally

Related issues

Use cases

Screenshots

Logs

@dao-jun dao-jun requested review from a team as code owners January 5, 2024 11:59
@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Jan 5, 2024
Copy link

cla-checker-service bot commented Jan 5, 2024

💚 CLA has been signed

@mergify mergify bot assigned dao-jun Jan 5, 2024
Copy link
Contributor

mergify bot commented Jan 5, 2024

This pull request does not have a backport label.
If this is a bug or security fix, could you label this PR @dao-jun? 🙏.
For such, you'll need to label your PR with:

  • The upcoming major version of the Elastic Stack
  • The upcoming minor version of the Elastic Stack (if you're not pushing a breaking change)

To fixup this pull request, you need to add the backport labels for the needed
branches, such as:

  • backport-v8./d.0 is the label to automatically backport to the 8./d branch. /d is the digit

@dao-jun dao-jun changed the title [draft] Add pulsar output. [draft][libbeat] Introduce Apache Pulsar to beats as an output plugin Jan 5, 2024
@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-05T11:59:46.038+0000

  • Duration: 5 min 1 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@pierrehilbert pierrehilbert added the Team:Elastic-Agent Label for the Agent team label Jan 5, 2024
@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Jan 5, 2024
@cmacknz cmacknz requested a review from faec January 5, 2024 19:49
@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-06T10:08:44.631+0000

  • Duration: 6 min 57 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-06T10:22:42.539+0000

  • Duration: 7 min 36 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-06T10:34:47.749+0000

  • Duration: 5 min 25 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-06T12:25:54.670+0000

  • Duration: 7 min 31 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

@elasticmachine
Copy link
Collaborator

❕ Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Start Time: 2024-01-08T10:59:47.610+0000

  • Duration: 5 min 44 sec

Steps errors 2

Expand to view the steps failures

Load a resource file from a library
  • Took 0 min 0 sec . View more details here
  • Description: approval-list/elastic/beats.yml
Error signal
  • Took 0 min 0 sec . View more details here
  • Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/dao-jun return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/dao-jun : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user"}

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

  • /package : Generate the packages and run the E2E tests.

  • /beats-tester : Run the installation tests with beats-tester.

  • run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)

Copy link
Contributor

mergify bot commented Jan 10, 2024

This pull request is now in conflicts. Could you fix it? 🙏
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

git fetch upstream
git checkout -b dev/pulsar_output upstream/dev/pulsar_output
git merge upstream/main
git push upstream dev/pulsar_output

@cmacknz
Copy link
Member

cmacknz commented Jan 11, 2024

/test

@dao-jun
Copy link
Author

dao-jun commented May 16, 2024

@ycombinator Resolved, but there is an error
image
What does it mean?

@ycombinator
Copy link
Contributor

@ycombinator Resolved, but there is an error image What does it mean?

It means the NOTICE.txt file needs to be regenerated. For that, please run make update and the commit the changes. Thanks!

@dao-jun
Copy link
Author

dao-jun commented May 17, 2024

@ycombinator Resolved, but there is an error image What does it mean?

It means the NOTICE.txt file needs to be regenerated. For that, please run make update and the commit the changes. Thanks!

Oh, yes, I remember now, since this PR pending for a long time, I forget I need to update the NOTICE.txt file

@dao-jun
Copy link
Author

dao-jun commented May 17, 2024

@ycombinator It seems the ci checks passed, can we keep going on the PR?

@ycombinator
Copy link
Contributor

buildkite test this

Copy link
Contributor

mergify bot commented May 21, 2024

This pull request is now in conflicts. Could you fix it? 🙏
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

git fetch upstream
git checkout -b dev/pulsar_output upstream/dev/pulsar_output
git merge upstream/main
git push upstream dev/pulsar_output

Copy link
Contributor

mergify bot commented Oct 17, 2024

backport-8.x has been added to help with the transition to the new branch 8.x.
If you don't need it please use backport-skip label and remove the backport-8.x label.

@mergify mergify bot added the backport-8.x Automated backport to the 8.x branch with mergify label Oct 17, 2024
# Conflicts:
#	NOTICE.txt
#	go.mod
#	go.sum
#	libbeat/publisher/includes/includes.go
@dao-jun dao-jun marked this pull request as ready for review December 6, 2024 03:23
@dao-jun
Copy link
Author

dao-jun commented Dec 6, 2024

@ycombinator @pierrehilbert @cmacknz Can you please help trigger the tests and merge the PR?
It has blocked for a loooong time

@cmacknz
Copy link
Member

cmacknz commented Dec 6, 2024

/test

@flexitrev flexitrev self-requested a review February 19, 2025 14:09
Copy link
Contributor

mergify bot commented Feb 19, 2025

This pull request is now in conflicts. Could you fix it? 🙏
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/

git fetch upstream
git checkout -b dev/pulsar_output upstream/dev/pulsar_output
git merge upstream/main
git push upstream dev/pulsar_output

@flexitrev flexitrev removed their request for review February 24, 2025 13:19
@flexitrev
Copy link

@dao-jun thank you for this excellent PR. We actually plan on using Otel exporters for new beat outputs and it looks like you are the maintainer for that code as well https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/pulsarexporter

In future releases of the Elastic Distribution of the Open Telemetry Collector (EDOT) we plan on introducing the ability to run beats as OTel receivers. https://www.elastic.co/guide/en/fleet/current/elastic-agent-cmd-options.html#elastic-agent-otel-command

@dao-jun
Copy link
Author

dao-jun commented Feb 26, 2025

@dao-jun thank you for this excellent PR. We actually plan on using Otel exporters for new beat outputs and it looks like you are the maintainer for that code as well https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/pulsarexporter

In future releases of the Elastic Distribution of the Open Telemetry Collector (EDOT) we plan on introducing the ability to run beats as OTel receivers. https://www.elastic.co/guide/en/fleet/current/elastic-agent-cmd-options.html#elastic-agent-otel-command

Does it mean that we don't need this PR anymore?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-8.x Automated backport to the 8.x branch with mergify Team:Elastic-Agent Label for the Agent team Team:Elastic-Agent-Data-Plane Label for the Agent Data Plane team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants