GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(go.d/powerstore): decode rolled-up performance and space metrics by ilyam8 · Pull Request #24448 · netdata/netdata

Conversation

@ilyam8

@ilyam8 ilyam8 commented Oct 26, 2026 •
edited by coderabbitai Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member
Summary

Fixes #24447.

PowerStore's Five_Mins and One_Day responses use rolled-up field names, but the collector decoded raw-sample names. This silently produced zero performance values and omitted capacity values while latency continued to work.

  • Decode avg_* IOPS, bandwidth and Ethernet rates, and last_* capacity and efficiency values.
  • Use peak appliance CPU utilization and convert its ratio to a percentage.
  • Decode averaged node logins as floating-point values and preserve fractions in chart output.
  • Replace incorrect fixtures, validate request intervals, and compare actual metric values. Keep the valid unprefixed wear and replication fields.
Test Plan
  • Reproduced the failure with corrected fixtures against the original decoder; the same regression passes with the fix.
  • From src/go: go test -count=1 ./plugin/go.d/collector/powerstore/... and go vet ./plugin/go.d/collector/powerstore/....
  • Coverage includes all affected metric groups, distinct CPU average/maximum values, fractional/integer/zero/null/missing logins, chart schema/coverage, and metadata correspondence.
  • Integration catalog generation, description validation, and 77 description/metadata/health tests passed; inspected the generated PowerStore page in isolation.
  • Six alternating decoder benchmark runs showed unchanged allocation counts. Fixtures are synthetic and checked against Dell's source; no physical-array validation was performed.
Additional Information

Field definitions and CPU scaling evidence are linked in testdata/README.md. Public chart identities, dimensions, labels, units and request intervals are preserved. Chart titles and authoritative metadata.yaml now describe peak CPU, averaged logins and collection intervals.

Configuration/schema, stock configuration and alerts need no changes because options, defaults and alert-facing identities/units are unchanged. Generated integration pages follow the normal post-merge integrations-regen PR; they are not included here.

For users: How does this change affect me?

PowerStore performance, Ethernet and capacity charts display the values returned by the array instead of incorrect zeros or missing measurements. CPU displays the interval peak as a percentage, and average login counts retain fractional values. No configuration change is required.

Summary by CodeRabbit

  • Bug Fixes
    • Updated PowerStore monitoring to report five-minute average performance metrics, interval-peak appliance CPU utilization, and average node logins.
    • Corrected space metrics to reflect the latest interval and adjusted the displayed chart titles.
    • Added support for fractional login values.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
ilyam8 added 2 commits October 26, 2026 19:57
@ilyam8
fix(go.d/powerstore): decode rolled-up performance and space metrics
4743045
@ilyam8
test(go.d/powerstore): assert nonzero Ethernet error rates
fda7c66
@ilyam8
ilyam8 requested a review from Ancairon as a code owner October 26, 2026 18:05
@github-actions github-actions Bot added area/docs area/collectors Everything related to data collection collectors/go.d area/metadata Integrations metadata area/go labels Oct 26, 2026
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 09342059-e794-4baf-93e5-1281433c1bfc
Commits

Reviewing files that changed from the base of the PR and between 29ab618 and fda7c66.

Files selected for processing: 20
  • src/go/plugin/go.d/collector/powerstore/charts.yaml
  • src/go/plugin/go.d/collector/powerstore/client/types.go
  • src/go/plugin/go.d/collector/powerstore/collect_appliance.go
  • src/go/plugin/go.d/collector/powerstore/collect_filesystem.go
  • src/go/plugin/go.d/collector/powerstore/collect_node.go
  • src/go/plugin/go.d/collector/powerstore/collect_ports.go
  • src/go/plugin/go.d/collector/powerstore/collect_volume.go
  • src/go/plugin/go.d/collector/powerstore/collector_test.go
  • src/go/plugin/go.d/collector/powerstore/metadata.yaml
  • src/go/plugin/go.d/collector/powerstore/metrics.go
  • src/go/plugin/go.d/collector/powerstore/testdata/README.md
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_appliance.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_eth_port.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_fc_port.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_filesystem.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_node.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_perf_volume.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_space_appliance.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_space_cluster.json
  • src/go/plugin/go.d/collector/powerstore/testdata/metrics_space_volume.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Walkthrough

PowerStore response decoding and collection now use average performance fields, last-value space fields, peak CPU utilization, and floating-point average logins. Tests and fixtures cover the updated response fields and collected metric values.

Changes: PowerStore rollup metrics

Layer / File(s) Summary
Map rollup fields in response types and fixtures
src/go/plugin/go.d/collector/powerstore/client/types.go, src/go/plugin/go.d/collector/powerstore/testdata/*
Response types and fixtures use avg_ performance fields, last_ space fields, peak CPU utilization, and floating-point average logins.
Collect rollup values and describe metrics
src/go/plugin/go.d/collector/powerstore/collect_*.go, src/go/plugin/go.d/collector/powerstore/metrics.go, src/go/plugin/go.d/collector/powerstore/charts.yaml, src/go/plugin/go.d/collector/powerstore/metadata.yaml
Collectors observe average performance values, scale peak CPU utilization by 100, and emit average logins when present. Chart titles and metric descriptions reflect the updated values and intervals.
Validate decoding and collection
src/go/plugin/go.d/collector/powerstore/collector_test.go
Tests check collected values, login cases, requested intervals, chart metadata, and JSON decoding.

Priority: Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix · Severity of issue fixed: Medium

Possibly related PRs

  • netdata/netdata#24326: It updates PowerStore metadata and generates integration documentation tied to metadata changes.

Suggested labels: area/collectors, collectors/go.d, area/go, area/metadata, area/docs

Suggested reviewers: ktsaou

Merge Risk: Minimal · up to fda7c

No actionable merge-blocking issue is identified. The collector changes are mergeable after normal checks; live-array behavior remains unvalidated.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 8.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 8 files. (12 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely summarizes the main change: updating the PowerStore collector to decode rolled-up performance and space metrics.
Linked Issues check Passed Issue #24447 coding requirements are implemented. client/types.go maps performance and Ethernet fields to avg_*, space fields to last_*, uses max_io_workload_cpu_utilization, and decodes `avg_…
Out of Scope Changes check Passed The changes remain within issue #24447. Fixture updates, request-interval validation, exact metric assertions, login edge-case tests, chart coverage checks, metadata and chart-title updates, and fixtu…
Full details: Linked Issues check

Explanation

Issue #24447 coding requirements are implemented. client/types.go maps performance and Ethernet fields to avg_*, space fields to last_*, uses max_io_workload_cpu_utilization, and decodes avg_current_logins as *float64. Collection code uses the new fields and scales peak CPU by 100. Updated fixtures and tests verify performance, space, Ethernet, CPU, fractional logins, intervals, and preserved wear and replication metrics.

Full details: Out of Scope Changes check

Explanation

The changes remain within issue #24447. Fixture updates, request-interval validation, exact metric assertions, login edge-case tests, chart coverage checks, metadata and chart-title updates, and fixture documentation directly support the decoding correction and its published behavior. No unrelated product or configuration changes are present.

Full details: Docstring Coverage

Explanation

Docstring coverage is 8.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 8 files. (12 skipped: 12 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
  • X
  • Mastodon
  • Reddit
  • LinkedIn

Comment @coderabbitai help to get the list of available commands.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ilyam8 ilyam8 closed this Oct 26, 2026
@ilyam8 ilyam8 reopened this Oct 26, 2026
@sonarqubecloud

sonarqubecloud Bot commented Oct 26, 2026

Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarQube Cloud

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ilyam8
ilyam8 enabled auto-merge (squash) October 26, 2026 18:35
thiagoftsm
thiagoftsm approved these changes Oct 26, 2026
View reviewed changes
@ilyam8
ilyam8 merged commit a4f82c3 into netdata:master Oct 26, 2026
296 of 313 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@ilyam8
ilyam8 deleted the fix/powerstore-rollup-metrics branch October 26, 2026 18:42
stelfrag pushed a commit to stelfrag/netdata that referenced this pull request Oct 27, 2026
@ilyam8 @stelfrag
fix(go.d/powerstore): decode rolled-up performance and space metrics (n…
87e0975
…etdata#24448)

(cherry picked from commit a4f82c3)
@stelfrag stelfrag mentioned this pull request Oct 26, 2026
Patch release 2.12.3 #24442
Merged
Ferroin pushed a commit that referenced this pull request Nov 4, 2026
@ilyam8 @Ferroin
fix(go.d/powerstore): decode rolled-up performance and space metrics (#…
422daef
…24448)

(cherry picked from commit a4f82c3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@thiagoftsm thiagoftsm thiagoftsm approved these changes
@Ancairon Ancairon Awaiting requested review from Ancairon Ancairon is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

area/collectors Everything related to data collection area/docs area/go area/metadata Integrations metadata collectors/go.d

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

[Bug]: go.d/powerstore: most performance and space metrics are always zero

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@ilyam8 @thiagoftsm
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.