Skip to content

Plugin(storage::exagrid::snmp): added new mode data-protection and rewrote server-usage mode#6307

Open
mzarza-ssibe wants to merge 1 commit into
centreon:developfrom
mzarza-ssibe:develop
Open

Plugin(storage::exagrid::snmp): added new mode data-protection and rewrote server-usage mode#6307
mzarza-ssibe wants to merge 1 commit into
centreon:developfrom
mzarza-ssibe:develop

Conversation

@mzarza-ssibe

Copy link
Copy Markdown

New functionality

Completely rewrote the server-usage mode into a comprehensive monitoring mode with --filter-counters support. Added data-protection mode for monitoring backup health, deduplication, replication, and DR status. Added retention-detail mode for detailed retention space analysis matching the ExaGrid UI. Added support for a broad set of new ExaGrid metrics, including: Server status
Landing space available
Retention usage
Primary and replica retention
Pending purge space
Deduplication ratio
Pending deduplication and replication (size and age) Read, write, and deduplication throughput
Improved storage calculations with byte-level precision using whole and fractional SNMP OIDs. Fixed incorrect landing space calculations by replacing the invalid landing-used metric with the vendor-recommended landing-available metric. Fixed retention usage threshold handling so warning and critical thresholds are evaluated correctly. Prevented negative or invalid retention values caused by SNMP rounding. Corrected performance data units for throughput metrics to MB/s. Added support for all required ExaGrid SNMP OIDs to expose the new metrics. Registered the new data-protection and retention-detail modes in the plugin. Optimized SNMP polling using a single table request for all metrics. Maintained compatibility with older Centreon plugin versions without requiring centreon::plugins::constants.

Community contributors

Description

Please include a short resume of the changes and what is the purpose of this pull request.
Any relevant information should be added to help reviewers to understand what are the stakes
of the pull request.

Fixes # (issue)
If you are fixing a github Issue already existing, mention it here.

Type of change

  • Patch fixing an issue (non-breaking change)
  • [ X ] New functionality (non-breaking change)
  • [ X ] Functionality enhancement or optimization (non-breaking change)
  • Breaking change (patch or feature) that might cause side effects breaking part of the Software

How this pull request can be tested ?

How this pull request can be tested?
Install the modified ExaGrid plugin.
Run the following modes against an ExaGrid appliance:
server-usage
data-protection
retention-detail
Verify that all counters return valid values and that --filter-counters works as expected for server-usage.
Test warning and critical thresholds on retention-usage.
Verify that:
landing-available matches the "Available for Next Backup" value shown in the ExaGrid UI.
Retention values are reported with byte-level precision.
Throughput metrics are reported in MB/s.
No negative landing or retention values are produced.
Confirm that the plugin works with both recent and older Centreon plugin installations.

Available test data:

ExaGrid SNMP walk of the enterprise branch (.1.3.6.1.4.1.14941).
CLI outputs for all three modes.
ExaGrid MIB used during development.

This is probably enough for a Centreon PR unless they specifically ask you for additional automated tests or sample SNMP walks.

Any relevant details of the configuration to perform the test should be added.
To integrate this pull request into our core we need to add some automated tests to check the proper
functioning of this PR. Ideally we need the following informations:

  • SNMP: MIB files and full snmpwalk of enterprise branch (snmpwalk -ObentU -v 2c -c public address .1.3.6.1.4.1 > equipment.snmpwalk) or SNMP collections.
  • HTTP API (SOAP, Rest/Json, XML-RPC): the documentation and some curl examples (command with -v + output) or HTTP collections.
  • CLI: command line examples (command + result).
  • SQL: queries + results + column types or SQL collections.
  • JMX: mbean names and attributes.

If some information is confidential, such as logins or IP addresses, obfuscate them in what is sent
publicly and we'll get in touch with you by private message if this information is needed.

Checklist

  • I have followed the coding style guidelines provided by Centreon
  • I have commented my code, especially hard-to-understand areas of the PR.
  • I have rebased my development branch on the base branch (develop).
  • I have provide data or shown output displaying the result of this code in the plugin area concerned.

Centreon team (internal PR)

Description

PLEASE MAKE SURE THAT THE BRANCH PR INCLUDES JIRA TICKET ID

Please include a short resume of the changes and what is the purpose of this pull request.
Any relevant information should be added to help reviewers to understand what are the stakes
of the pull request.

Fixes # (issue)
If you are fixing a github Issue already existing, mention it here.
If you are fixing one or more JIRA ticket, mention it here too.

Type of change

  • Patch fixing an issue (non-breaking change)
  • New functionality (non-breaking change)
  • Functionality enhancement or optimization (non-breaking change)
  • Breaking change (patch or feature) that might cause side effects breaking part of the Software

How this pull request can be tested ?

Please describe the procedure to verify that the goal of the PR is matched.
Provide clear instructions so that it can be correctly tested.
Mention the automated tests included in this FOR (what they test like mode/option combinations).

Checklist

  • I have followed the coding style guidelines provided by Centreon
  • I have commented my code, especially hard-to-understand areas of the PR.
  • I have rebased my development branch on the base branch (develop).
  • In case of a new plugin, I have created the new packaging directory accordingly.
  • I have implemented automated tests related to my commits.
    • Data used for automated tests are anonymized.
  • I have reviewed all the help messages in all the .pm files I have modified.
    • All sentences begin with a capital letter.
    • All sentences end with a period.
    • I am able to understand all the help messages, if not, exchange with the PO or TW to rewrite them.
  • After having created the PR, I will make sure that all the tests provided in this PR have run and passed.

New functionality

Completely rewrote the server-usage mode into a comprehensive monitoring mode with --filter-counters support.
Added data-protection mode for monitoring backup health, deduplication, replication, and DR status.
Added retention-detail mode for detailed retention space analysis matching the ExaGrid UI.
Added support for a broad set of new ExaGrid metrics, including:
Server status
Landing space available
Retention usage
Primary and replica retention
Pending purge space
Deduplication ratio
Pending deduplication and replication (size and age)
Read, write, and deduplication throughput
Improved storage calculations with byte-level precision using whole and fractional SNMP OIDs.
Fixed incorrect landing space calculations by replacing the invalid landing-used metric with the vendor-recommended landing-available metric.
Fixed retention usage threshold handling so warning and critical thresholds are evaluated correctly.
Prevented negative or invalid retention values caused by SNMP rounding.
Corrected performance data units for throughput metrics to MB/s.
Added support for all required ExaGrid SNMP OIDs to expose the new metrics.
Registered the new data-protection and retention-detail modes in the plugin.
Optimized SNMP polling using a single table request for all metrics.
Maintained compatibility with older Centreon plugin versions without requiring centreon::plugins::constants.
@mzarza-ssibe mzarza-ssibe requested review from a team as code owners July 14, 2026 14:23
@mzarza-ssibe mzarza-ssibe requested review from lucie-tirand and removed request for a team July 14, 2026 14:23
@lucie-tirand lucie-tirand changed the title Additional checks Plugin(storage::exagrid::snmp): added new mode data-protection and rewrote server-usage mode Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant