Skip to content

Commit

Permalink
add test for removed direction
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Boten committed Jul 5, 2022
1 parent 18471cc commit c7220f8
Showing 1 changed file with 89 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ func TestScrape(t *testing.T) {
if runtime.GOOS == "windows" {
expectedMetrics = 3
}
if test.removeDirectionAttributeFeatureGateEnabled {
// in/out are separated into an additional metric
expectedMetrics++
}

assert.Equal(t, expectedMetrics, md.MetricCount())

startIndex := 0
Expand All @@ -100,7 +105,13 @@ func TestScrape(t *testing.T) {
startIndex++
}

assertPagingOperationsMetricValid(t, metrics.At(startIndex), test.expectedStartTime)
if test.removeDirectionAttributeFeatureGateEnabled {
assertPagingOperationsMetricValid(t, []pmetric.Metric{metrics.At(startIndex), metrics.At(startIndex + 1)}, test.expectedStartTime, test.removeDirectionAttributeFeatureGateEnabled)
startIndex++
} else {
assertPagingOperationsMetricValid(t, []pmetric.Metric{metrics.At(startIndex)}, test.expectedStartTime, test.removeDirectionAttributeFeatureGateEnabled)
}

internal.AssertSameTimeStampForMetrics(t, metrics, 0, metrics.Len()-2)
startIndex++

Expand Down Expand Up @@ -188,42 +199,88 @@ func assertPagingUtilizationMetricValid(t *testing.T, hostPagingUtilizationMetri
}
}

func assertPagingOperationsMetricValid(t *testing.T, pagingMetric pmetric.Metric, startTime pcommon.Timestamp) {
expected := pmetric.NewMetric()
expected.SetName("system.paging.operations")
expected.SetDescription("The number of paging operations.")
expected.SetUnit("{operations}")
expected.SetDataType(pmetric.MetricDataTypeSum)
internal.AssertDescriptorEqual(t, expected, pagingMetric)
func assertPagingOperationsMetricValid(t *testing.T, pagingMetric []pmetric.Metric, startTime pcommon.Timestamp, removeAttribute bool) {

if startTime != 0 {
internal.AssertSumMetricStartTimeEquals(t, pagingMetric, startTime)
type test struct {
name string
description string
unit string
}

// expect an in & out datapoint, for both major and minor paging types (windows does not currently support minor paging data)
expectedDataPoints := 4
if runtime.GOOS == "windows" {
expectedDataPoints = 2
var tests []test

if removeAttribute {
tests = []test{
{
name: "system.paging.operations.page_in",
description: "The number of page_in operations.",
unit: "{operations}",
},
{
name: "system.paging.operations.page_out",
description: "The number of page_out operations.",
unit: "{operations}",
},
}
} else {
tests = []test{
{
name: "system.paging.operations",
description: "The number of paging operations.",
unit: "{operations}",
},
}
}
assert.Equal(t, expectedDataPoints, pagingMetric.Sum().DataPoints().Len())

internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 0, "type",
pcommon.NewValueString(metadata.AttributeTypeMajor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 0, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageIn.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 1, "type",
pcommon.NewValueString(metadata.AttributeTypeMajor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 1, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageOut.String()))
if runtime.GOOS != "windows" {
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 2, "type",
pcommon.NewValueString(metadata.AttributeTypeMinor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 2, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageIn.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 3, "type",
pcommon.NewValueString(metadata.AttributeTypeMinor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric, 3, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageOut.String()))
for idx, tt := range tests {
expected := pmetric.NewMetric()
expected.SetName(tt.name)
expected.SetDescription(tt.description)
expected.SetUnit(tt.unit)
expected.SetDataType(pmetric.MetricDataTypeSum)
internal.AssertDescriptorEqual(t, expected, pagingMetric[idx])

if startTime != 0 {
internal.AssertSumMetricStartTimeEquals(t, pagingMetric[idx], startTime)
}

expectedDataPoints := 4
if runtime.GOOS == "windows" {
expectedDataPoints = 2
}
if removeAttribute {
expectedDataPoints /= 2
}

assert.Equal(t, expectedDataPoints, pagingMetric[idx].Sum().DataPoints().Len())

if removeAttribute {
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 0, "type",
pcommon.NewValueString(metadata.AttributeTypeMajor.String()))
if runtime.GOOS != "windows" {
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 1, "type",
pcommon.NewValueString(metadata.AttributeTypeMinor.String()))
}
} else {
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 0, "type",
pcommon.NewValueString(metadata.AttributeTypeMajor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 0, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageIn.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 1, "type",
pcommon.NewValueString(metadata.AttributeTypeMajor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 1, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageOut.String()))
if runtime.GOOS != "windows" {
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 2, "type",
pcommon.NewValueString(metadata.AttributeTypeMinor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 2, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageIn.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 3, "type",
pcommon.NewValueString(metadata.AttributeTypeMinor.String()))
internal.AssertSumMetricHasAttributeValue(t, pagingMetric[idx], 3, "direction",
pcommon.NewValueString(metadata.AttributeDirectionPageOut.String()))
}
}
}
}

Expand Down

0 comments on commit c7220f8

Please sign in to comment.