Skip to content

Enhance RabbitMQ receiver to support full set of node-level metrics from /api/nodes #38997

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

Closed
VenuEmmadi opened this issue Mar 26, 2025 · 1 comment · Fixed by #38998
Closed
Labels
enhancement New feature or request needs triage New item requiring triage receiver/rabbitmq

Comments

@VenuEmmadi
Copy link
Member

Component(s)

receiver/rabbitmq

Is your feature request related to a problem? Please describe.

The current rabbitmqreceiver implementation supports only a limited set of RabbitMQ node metrics. To improve observability, we propose extending the receiver to parse and emit all available metrics from the /api/nodes endpoint. This includes:

  • Memory metrics (e.g., mem_used, mem_limit, mem_alarm)
  • Disk metrics (e.g., disk_free, disk_free_limit, disk_free_alarm)
  • File descriptors (fd_used, fd_total, rates)
  • Socket metrics (sockets_used, sockets_total, rates)
  • Process usage (proc_used, proc_total, rates)
  • Garbage collection stats (gc_num, gc_bytes_reclaimed)
  • I/O stats (io_read_avg_time, io_write_avg_time, io_read_count, etc.)
  • Context switches
  • Runtime environment info (processors, uptime, run_queue, etc.)
  • Cluster & node metadata (node_type, enabled_plugins, applications, partitions, etc.)

This enhancement will ensure more complete observability for RabbitMQ clusters when using OpenTelemetry.

Describe the solution you'd like

  • Update the receiver to parse additional fields from the /api/nodes response.
  • Emit new metrics with appropriate semantic conventions (name, unit, type, attributes).
  • Group metrics logically under appropriate metric categories.
  • Update documentation and add unit tests.

Describe alternatives you've considered

No response

Additional context

No response

@VenuEmmadi VenuEmmadi added enhancement New feature or request needs triage New item requiring triage labels Mar 26, 2025
Copy link
Contributor

Pinging code owners:

See Adding Labels via Comments if you do not have permissions to add labels yourself.

atoulme pushed a commit that referenced this issue Mar 27, 2025
…ode-level metrics from /api/nodes (#38998)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
### **Description**

This change enhances the rabbitmqreceiver to collect a comprehensive set
of 74 node-level metrics from the /api/nodes endpoint.
Metrics span multiple categories, including:

- Memory usage
- Disk space and alarms
- File descriptors (usage, limits, rates)
- Socket usage and rates
- Process count and rates
- Garbage collection stats
- I/O statistics
- Context switches
- Cluster info and runtime metadata
- Plugin/configuration metadata

This provides richer observability into RabbitMQ node performance,
capacity, and system health.

<!-- Issue number (e.g. #1234) or full URL to issue, if applicable. -->
### **Link to tracking issue**
Fixes #38997

<!--Describe what testing was performed and which tests were added.-->
### **Testing**

- Added unit tests to verify parsing of new metrics fields.
- Manually tested against a local RabbitMQ instance with the management
plugin enabled.
- Validated metric names, types, units, and attributes emitted by the
receiver.

<!--Describe the documentation added.-->
### **Documentation**
Updated README with a reference to newly supported node metrics and
metric categories.

<!--Please delete paragraphs that you did not use before submitting.-->
Fiery-Fenix pushed a commit to Fiery-Fenix/opentelemetry-collector-contrib that referenced this issue Apr 24, 2025
…ode-level metrics from /api/nodes (open-telemetry#38998)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
### **Description**

This change enhances the rabbitmqreceiver to collect a comprehensive set
of 74 node-level metrics from the /api/nodes endpoint.
Metrics span multiple categories, including:

- Memory usage
- Disk space and alarms
- File descriptors (usage, limits, rates)
- Socket usage and rates
- Process count and rates
- Garbage collection stats
- I/O statistics
- Context switches
- Cluster info and runtime metadata
- Plugin/configuration metadata

This provides richer observability into RabbitMQ node performance,
capacity, and system health.

<!-- Issue number (e.g. open-telemetry#1234) or full URL to issue, if applicable. -->
### **Link to tracking issue**
Fixes open-telemetry#38997

<!--Describe what testing was performed and which tests were added.-->
### **Testing**

- Added unit tests to verify parsing of new metrics fields.
- Manually tested against a local RabbitMQ instance with the management
plugin enabled.
- Validated metric names, types, units, and attributes emitted by the
receiver.

<!--Describe the documentation added.-->
### **Documentation**
Updated README with a reference to newly supported node metrics and
metric categories.

<!--Please delete paragraphs that you did not use before submitting.-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs triage New item requiring triage receiver/rabbitmq
Projects
None yet
1 participant