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

Add unique per beat monitoring namespace #41939

Merged

Conversation

leehinman
Copy link
Contributor

Proposed commit message

Add a unique per beat monitoring namespace. If this is nil then the current default namespace is used. This is necessary so a Beat receiver can be instantiated multiple times without having panics due to registering the same variable twice.

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.

Disruptive User Impact

None, behavior is unchanged for normal beats usage.

Author's Checklist

  • [ ]

How to test this PR locally

Unit tests

Run the unit test suites to make sure no behavior changes for normal beats usage

By hand

  1. Build elastic-agent using this PR to satisfy the beat dependency
  2. Run `elastic-agent otel -c otel.yml with the following config
receivers:
  filebeatreceiver/1:
    filebeat:
      inputs:
        - type: benchmark
          enabled: true
          message: "test"
          eps: 1
    output:
      otelconsumer:
    logging:
      level: debug
      selectors:
        - '*'
    processors:
      - add_fields:
          target: project
          fields:
            name: filebeatreceiver1
  filebeatreceiver/2:
    filebeat:
      inputs:
        - type: benchmark
          enabled: true
          message: "test"
          eps: 1
    output:
      otelconsumer:
    logging:
      level: debug
      selectors:
        - '*'
    processors:
      - add_fields:
          target: project
          fields:
            name: filebeatreceiver2
  metricbeatreceiver/1:
    metricbeat:
      modules:
        - module: system
          metricsets:
            - cpu
          count: 1
          enabled: true
          period: 1s
    output:
      otelconsumer:
    logging:
      level: debug
      selectors:
        - '*'
    processors:
      - add_fields:
          target: project
          fields:
            name: metricbeatreceiver1
  metricbeatreceiver/2:
    metricbeat:
      modules:
        - module: system
          metricsets:
            - cpu
          count: 1
          enabled: true
          period: 1s
    output:
      otelconsumer:
    logging:
      level: debug
      selectors:
        - '*'
    processors:
      - add_fields:
          target: project
          fields:
            name: metricbeatreceiver2
exporters:
  file/1:
    path: /path/to/log1.txt
  file/2:
    path: /path/to/log2.txt

service:
  pipelines:
    logs/1:
      receivers:
        - filebeatreceiver/1
        - metricbeatreceiver/1
      exporters:
        - file/1
    logs/2:
      receivers:
        - filebeatreceiver/2
        - metricbeatreceiver/2
      exporters:
        - file/2

All 4 receivers should be running, with events going to separate log files.

Related issues

Use cases

Screenshots

Logs

@leehinman leehinman requested a review from a team as a code owner December 6, 2024 17:37
@leehinman leehinman requested review from rdner and faec December 6, 2024 17:37
@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Dec 6, 2024
@leehinman leehinman added Team:Elastic-Agent-Data-Plane Label for the Agent Data Plane team backport-8.x Automated backport to the 8.x branch with mergify labels Dec 6, 2024
@elasticmachine
Copy link
Collaborator

Pinging @elastic/elastic-agent-data-plane (Team:Elastic-Agent-Data-Plane)

@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Dec 6, 2024
@leehinman leehinman force-pushed the 41743_monitoring_per_beat_receiver branch from 380ae3d to 5c159ec Compare December 6, 2024 18:24
@leehinman leehinman requested a review from a team as a code owner December 6, 2024 18:24
@leehinman leehinman force-pushed the 41743_monitoring_per_beat_receiver branch from 5c159ec to fce4115 Compare December 6, 2024 18:51
@leehinman leehinman force-pushed the 41743_monitoring_per_beat_receiver branch from fce4115 to 3024bc1 Compare December 6, 2024 19:05
@leehinman leehinman merged commit da6822b into elastic:main Dec 9, 2024
141 checks passed
mergify bot pushed a commit that referenced this pull request Dec 9, 2024
leehinman added a commit that referenced this pull request Dec 9, 2024
(cherry picked from commit da6822b)

Co-authored-by: Lee E Hinman <[email protected]>
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-Data-Plane Label for the Agent Data Plane team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RegisterHostname causes panic if 2 filebeat receivers are configured
5 participants