Skip to content

Commit 7e22b79

Browse files
sitolejakubno
authored andcommitted
Split system memory and linux hugepage memory state enum, added used pages metric as percentage and total number
1 parent 0b981fe commit 7e22b79

File tree

5 files changed

+69
-36
lines changed

5 files changed

+69
-36
lines changed

receiver/hostmetricsreceiver/internal/scraper/memoryscraper/documentation.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Bytes of memory in use.
2424
2525
| Name | Description | Values | Requirement Level |
2626
| ---- | ----------- | ------ | -------- |
27-
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used``, ``reserved``, ``surplus`` | Recommended |
27+
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used`` | Recommended |
2828
2929
## Optional Metrics
3030
@@ -88,7 +88,7 @@ Number of huge pages in use by state.
8888

8989
| Name | Description | Values | Requirement Level |
9090
| ---- | ----------- | ------ | -------- |
91-
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used``, ``reserved``, ``surplus`` | Recommended |
91+
| system.memory.linux.hugepages.state | Breakdown of huge pages usage by state. | Str: ``free``, ``used``, ``reserved``, ``surplus`` | Recommended |
9292

9393
### system.memory.linux.hugepages.utilization
9494

@@ -102,7 +102,7 @@ Percentage of huge pages in use by state.
102102

103103
| Name | Description | Values | Requirement Level |
104104
| ---- | ----------- | ------ | -------- |
105-
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used``, ``reserved``, ``surplus`` | Recommended |
105+
| system.memory.linux.hugepages.state | Breakdown of huge pages usage by state. | Str: ``free``, ``used``, ``reserved``, ``surplus`` | Recommended |
106106

107107
### system.memory.page_size
108108

@@ -124,4 +124,4 @@ Percentage of memory bytes in use.
124124

125125
| Name | Description | Values | Requirement Level |
126126
| ---- | ----------- | ------ | -------- |
127-
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used``, ``reserved``, ``surplus`` | Recommended |
127+
| state | Breakdown of memory usage by type. | Str: ``buffered``, ``cached``, ``inactive``, ``free``, ``slab_reclaimable``, ``slab_unreclaimable``, ``used`` | Recommended |

receiver/hostmetricsreceiver/internal/scraper/memoryscraper/internal/metadata/generated_metrics.go

Lines changed: 42 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

receiver/hostmetricsreceiver/internal/scraper/memoryscraper/internal/metadata/generated_metrics_test.go

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper_linux.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,21 @@ func (s *memoryScraper) recordLinuxHugePagesMetrics(now pcommon.Timestamp, memIn
7070
// Record limit (total huge pages available) in number of pages
7171
s.mb.RecordSystemMemoryLinuxHugepagesLimitDataPoint(now, int64(memInfo.HugePagesTotal))
7272

73+
// Calculate used pages
74+
hugePagesUsed := int64(memInfo.HugePagesTotal - memInfo.HugePagesFree)
75+
7376
// Record usage with state attributes in number of pages
74-
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesFree), metadata.AttributeStateFree)
75-
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesRsvd), metadata.AttributeStateReserved)
76-
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesSurp), metadata.AttributeStateSurplus)
77+
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesFree), metadata.AttributeSystemMemoryLinuxHugepagesStateFree)
78+
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, hugePagesUsed, metadata.AttributeSystemMemoryLinuxHugepagesStateUsed)
79+
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesRsvd), metadata.AttributeSystemMemoryLinuxHugepagesStateReserved)
80+
s.mb.RecordSystemMemoryLinuxHugepagesUsageDataPoint(now, int64(memInfo.HugePagesSurp), metadata.AttributeSystemMemoryLinuxHugepagesStateSurplus)
7781

7882
// Record utilization with state attributes as percentage
7983
if memInfo.HugePagesTotal != 0 {
80-
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesFree)/float64(memInfo.HugePagesTotal), metadata.AttributeStateFree)
81-
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesRsvd)/float64(memInfo.HugePagesTotal), metadata.AttributeStateReserved)
82-
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesSurp)/float64(memInfo.HugePagesTotal), metadata.AttributeStateSurplus)
84+
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesFree)/float64(memInfo.HugePagesTotal), metadata.AttributeSystemMemoryLinuxHugepagesStateFree)
85+
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(hugePagesUsed)/float64(memInfo.HugePagesTotal), metadata.AttributeSystemMemoryLinuxHugepagesStateUsed)
86+
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesRsvd)/float64(memInfo.HugePagesTotal), metadata.AttributeSystemMemoryLinuxHugepagesStateReserved)
87+
s.mb.RecordSystemMemoryLinuxHugepagesUtilizationDataPoint(now, float64(memInfo.HugePagesSurp)/float64(memInfo.HugePagesTotal), metadata.AttributeSystemMemoryLinuxHugepagesStateSurplus)
8388
}
8489
}
8590

receiver/hostmetricsreceiver/internal/scraper/memoryscraper/metadata.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ attributes:
2323
slab_reclaimable,
2424
slab_unreclaimable,
2525
used,
26-
reserved,
27-
surplus,
2826
]
27+
system.memory.linux.hugepages.state:
28+
description: Breakdown of huge pages usage by state.
29+
type: string
30+
enum: [free, used, reserved, surplus]
2931

3032
metrics:
3133
system.linux.memory.available:
@@ -93,7 +95,7 @@ metrics:
9395
value_type: int
9496
aggregation_temporality: cumulative
9597
monotonic: false
96-
attributes: [state]
98+
attributes: [system.memory.linux.hugepages.state]
9799

98100
system.memory.linux.hugepages.utilization:
99101
enabled: false
@@ -103,7 +105,7 @@ metrics:
103105
level: development
104106
gauge:
105107
value_type: double
106-
attributes: [state]
108+
attributes: [system.memory.linux.hugepages.state]
107109

108110
system.memory.page_size:
109111
enabled: false

0 commit comments

Comments
 (0)