Skip to content

Commit a0387a4

Browse files
committed
Revert "18051 FIX esx_vsphere_datastore_io: Discard metrics with negative values"
This reverts commit 5a86525. Change-Id: Ie6365f5c96ad4580da28b9c4c244bb3efb21660b
1 parent 9989dfe commit a0387a4

3 files changed

Lines changed: 21 additions & 72 deletions

File tree

.werks/18051.md

Lines changed: 0 additions & 19 deletions
This file was deleted.

cmk/plugins/vsphere/agent_based/esx_vsphere_datastore_io.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
CheckResult,
1313
DiscoveryResult,
1414
get_value_store,
15-
Result,
1615
RuleSetType,
17-
State,
1816
)
1917
from cmk.plugins.lib.diskstat import (
2018
check_diskstat_dict_legacy,
@@ -137,24 +135,13 @@ def _check_esx_vsphere_datastore_io(
137135
datastores.setdefault(item_name, {})[parser.key] = parser.evaluate(values[0][0])
138136

139137
if item == "SUMMARY":
140-
# Exclude disks with only negative values. This means that no data could be collected by
141-
# the ESX host or vCenter.
142-
# See: https://github.com/vmware/pyvmomi/issues/191#issuecomment-72217028
143-
disk = combine_disks(
144-
disk for disk in datastores.values() if all(x >= 0 for x in disk.values())
145-
)
138+
disk = combine_disks(datastores.values())
146139
else:
147140
try:
148141
disk = datastores[item]
149142
except KeyError:
150143
return
151144

152-
if all(x < 0 for x in disk.values()):
153-
# A "-1" in the raw data indicates that the ESX host or vCenter could not determine a value.
154-
# See: https://github.com/vmware/pyvmomi/issues/191#issuecomment-72217028
155-
yield Result(state=State.UNKNOWN, summary="No valid data from queried host")
156-
return
157-
158145
yield from check_diskstat_dict_legacy(
159146
params=params,
160147
disk=disk,

tests/unit/cmk/plugins/vsphere/agent_based/test_esx_vsphere_datastore_io.py

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import pytest
77

8-
from cmk.agent_based.v2 import CheckResult, Metric, Result, Service, State
8+
from cmk.agent_based.v2 import Metric, Result, Service, State
99
from cmk.plugins.lib.esx_vsphere import SectionCounter
1010
from cmk.plugins.vsphere.agent_based.esx_vsphere_counters import parse_esx_vsphere_counters
1111
from cmk.plugins.vsphere.agent_based.esx_vsphere_datastore_io import (
@@ -20,14 +20,12 @@
2020
["datastore.datastoreReadIops", "5847d774-2bdca236-23df-645106f0c5d0", "0#0", "number"],
2121
["datastore.datastoreReadIops", "79d8b527-45291f84", "0#0", "number"],
2222
["datastore.datastoreReadIops", "fce701f6-867094ae", "0#0", "number"],
23-
["datastore.datastoreReadIops", "e480ac65-cd8bcbd5", "-1#-1#-1", "number"],
2423
["datastore.datastoreWriteIops", "56490e2e-692ac36c", "0#0", "number"],
2524
["datastore.datastoreWriteIops", "576b8c5e-3d1e6844-ed6c-645106f0c5d0", "0#0", "number"],
2625
["datastore.datastoreWriteIops", "57e121ef-2bb2dbaa-ad99-645106f0c5d0", "0#0", "number"],
2726
["datastore.datastoreWriteIops", "5847d774-2bdca236-23df-645106f0c5d0", "0#0", "number"],
2827
["datastore.datastoreWriteIops", "79d8b527-45291f84", "0#0", "number"],
2928
["datastore.datastoreWriteIops", "fce701f6-867094ae", "0#0", "number"],
30-
["datastore.datastoreWriteIops", "e480ac65-cd8bcbd5", "-1#-1#-1", "number"],
3129
["datastore.name", "192.168.99.100:/vmtestnfs1", "NFS_sgrznac1_Test", "string"],
3230
["datastore.name", "192.168.99.101:/vmprodnfs1", "NFS_sgrznac1_Prod", "string"],
3331
[
@@ -112,7 +110,6 @@ def test_discovery_physical(section: SectionCounter) -> None:
112110
[
113111
Service(item="56490e2e-692ac36c"),
114112
Service(item="79d8b527-45291f84"),
115-
Service(item="e480ac65-cd8bcbd5"),
116113
Service(item="SSD_sgrz3par_vmstore1"),
117114
Service(item="SSD_sgrz3par_vmstore2"),
118115
Service(item="fce701f6-867094ae"),
@@ -144,40 +141,24 @@ def test_check_summary(section: SectionCounter) -> None:
144141
]
145142

146143

147-
@pytest.mark.parametrize(
148-
["item", "expected"],
149-
[
150-
pytest.param(
144+
def test_check_item(section: SectionCounter) -> None:
145+
assert list(
146+
_check_esx_vsphere_datastore_io(
151147
"SSD_sgrz3par_vmstore1",
152-
[
153-
Result(state=State.OK, summary="Read: 0.00 B/s"),
154-
Metric("disk_read_throughput", 0.0),
155-
Result(state=State.OK, summary="Write: 2.05 kB/s"),
156-
Metric("disk_write_throughput", 2048.0),
157-
Result(state=State.OK, notice="Read operations: 0.00/s"),
158-
Metric("disk_read_ios", 0.0),
159-
Result(state=State.OK, notice="Write operations: 0.00/s"),
160-
Metric("disk_write_ios", 0.0),
161-
Result(state=State.OK, summary="Latency: 0 seconds"),
162-
Metric("disk_latency", 0.0),
163-
],
164-
),
165-
pytest.param(
166-
"e480ac65-cd8bcbd5",
167-
[Result(state=State.UNKNOWN, summary="No valid data from queried host")],
168-
),
169-
],
170-
)
171-
def test_check_item(section: SectionCounter, item: str, expected: CheckResult) -> None:
172-
assert (
173-
list(
174-
_check_esx_vsphere_datastore_io(
175-
item,
176-
{"summary": False, "physical": {}, "lvm": False, "vxvm": False, "diskless": False},
177-
section,
178-
1659382581,
179-
{},
180-
)
148+
{"summary": False, "physical": {}, "lvm": False, "vxvm": False, "diskless": False},
149+
section,
150+
1659382581,
151+
{},
181152
)
182-
== expected
183-
)
153+
) == [
154+
Result(state=State.OK, summary="Read: 0.00 B/s"),
155+
Metric("disk_read_throughput", 0.0),
156+
Result(state=State.OK, summary="Write: 2.05 kB/s"),
157+
Metric("disk_write_throughput", 2048.0),
158+
Result(state=State.OK, notice="Read operations: 0.00/s"),
159+
Metric("disk_read_ios", 0.0),
160+
Result(state=State.OK, notice="Write operations: 0.00/s"),
161+
Metric("disk_write_ios", 0.0),
162+
Result(state=State.OK, summary="Latency: 0 seconds"),
163+
Metric("disk_latency", 0.0),
164+
]

0 commit comments

Comments
 (0)