Fix 298 by reusing the label instead of taking it from the json of sm… #322
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.
This pull request addresses the issue described in #298, where using multiple devices specified like:
results in the following error on the metrics endpoint:
was collected before with the same name and label valuesIn #274, an solution has been implemented adressing this issue. This PR provides an alternative fix by reusing the device labels already created in main.go, instead of reconstructing the label from the smartctl JSON response. Rebuilding the label from the JSON leads to duplicate or incorrect label values.
For the example above, main.go produces the following correct and unique device labels:
However, in smartctl.go, both devices receive the same label (sda) because the smartctl JSON response contains only:
This mismatch results in non-unique labels and ultimately in metric collisions.
By reusing the pre-computed labels from main.go, the collision ist avoided.