mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 14:37:00 +00:00
add labels to perf dataset
This commit is contained in:
parent
f82746e038
commit
58495b5214
@ -78,27 +78,20 @@ func PrintPerfData(p *perftype.PerfData) {
|
|||||||
// Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary.
|
// Notice that this function only cares about memory usage, because cpu usage information will be extracted from NodesCPUSummary.
|
||||||
func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels map[string]string) *perftype.PerfData {
|
func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels map[string]string) *perftype.PerfData {
|
||||||
items := []perftype.DataItem{}
|
items := []perftype.DataItem{}
|
||||||
for node, usages := range usagePerNode {
|
for _, usages := range usagePerNode {
|
||||||
for c, usage := range usages {
|
for c, usage := range usages {
|
||||||
newLabels := map[string]string{
|
|
||||||
"node": node,
|
|
||||||
"container": c,
|
|
||||||
"resource": "memory",
|
|
||||||
}
|
|
||||||
if labels != nil {
|
|
||||||
for k, v := range labels {
|
|
||||||
newLabels[k] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
item := perftype.DataItem{
|
item := perftype.DataItem{
|
||||||
Data: map[string]float64{
|
Data: map[string]float64{
|
||||||
"memory": float64(usage.MemoryUsageInBytes) / (1024 * 1024),
|
"memory": float64(usage.MemoryUsageInBytes) / (1024 * 1024),
|
||||||
"workingset": float64(usage.MemoryWorkingSetInBytes) / (1024 * 1024),
|
"workingset": float64(usage.MemoryWorkingSetInBytes) / (1024 * 1024),
|
||||||
"rss": float64(usage.MemoryRSSInBytes) / (1024 * 1024),
|
"rss": float64(usage.MemoryRSSInBytes) / (1024 * 1024),
|
||||||
},
|
},
|
||||||
Unit: "MB",
|
Unit: "MB",
|
||||||
Labels: newLabels,
|
Labels: map[string]string{
|
||||||
|
"container": c,
|
||||||
|
"datatype": "resource",
|
||||||
|
"resource": "memory",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
items = append(items, item)
|
items = append(items, item)
|
||||||
}
|
}
|
||||||
@ -106,34 +99,28 @@ func ResourceUsageToPerfDataWithLabels(usagePerNode ResourceUsagePerNode, labels
|
|||||||
return &perftype.PerfData{
|
return &perftype.PerfData{
|
||||||
Version: currentKubeletPerfMetricsVersion,
|
Version: currentKubeletPerfMetricsVersion,
|
||||||
DataItems: items,
|
DataItems: items,
|
||||||
|
Labels: labels,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// CPUUsageToPerfDataWithLabels transforms NodesCPUSummary to PerfData with additional labels.
|
// CPUUsageToPerfDataWithLabels transforms NodesCPUSummary to PerfData with additional labels.
|
||||||
func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[string]string) *perftype.PerfData {
|
func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[string]string) *perftype.PerfData {
|
||||||
items := []perftype.DataItem{}
|
items := []perftype.DataItem{}
|
||||||
for node, usages := range usagePerNode {
|
for _, usages := range usagePerNode {
|
||||||
for c, usage := range usages {
|
for c, usage := range usages {
|
||||||
newLabels := map[string]string{
|
|
||||||
"node": node,
|
|
||||||
"container": c,
|
|
||||||
"resource": "cpu",
|
|
||||||
}
|
|
||||||
if labels != nil {
|
|
||||||
for k, v := range labels {
|
|
||||||
newLabels[k] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
data := map[string]float64{}
|
data := map[string]float64{}
|
||||||
for perc, value := range usage {
|
for perc, value := range usage {
|
||||||
data[fmt.Sprintf("Perc%02.0f", perc*100)] = value * 1000
|
data[fmt.Sprintf("Perc%02.0f", perc*100)] = value * 1000
|
||||||
}
|
}
|
||||||
|
|
||||||
item := perftype.DataItem{
|
item := perftype.DataItem{
|
||||||
Data: data,
|
Data: data,
|
||||||
Unit: "mCPU",
|
Unit: "mCPU",
|
||||||
Labels: newLabels,
|
Labels: map[string]string{
|
||||||
|
"container": c,
|
||||||
|
"datatype": "resource",
|
||||||
|
"resource": "cpu",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
items = append(items, item)
|
items = append(items, item)
|
||||||
}
|
}
|
||||||
@ -141,5 +128,6 @@ func CPUUsageToPerfDataWithLabels(usagePerNode NodesCPUSummary, labels map[strin
|
|||||||
return &perftype.PerfData{
|
return &perftype.PerfData{
|
||||||
Version: currentKubeletPerfMetricsVersion,
|
Version: currentKubeletPerfMetricsVersion,
|
||||||
DataItems: items,
|
DataItems: items,
|
||||||
|
Labels: labels,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ type DataItem struct {
|
|||||||
// should have the same unit.
|
// should have the same unit.
|
||||||
Unit string `json:"unit"`
|
Unit string `json:"unit"`
|
||||||
// Labels is the labels of the data item.
|
// Labels is the labels of the data item.
|
||||||
Labels map[string]string `json:"labels"`
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PerfData contains all data items generated in current test.
|
// PerfData contains all data items generated in current test.
|
||||||
@ -40,6 +40,8 @@ type PerfData struct {
|
|||||||
// to detect metrics version change and decide what version to support.
|
// to detect metrics version change and decide what version to support.
|
||||||
Version string `json:"version"`
|
Version string `json:"version"`
|
||||||
DataItems []DataItem `json:"dataItems"`
|
DataItems []DataItem `json:"dataItems"`
|
||||||
|
// Labels is the labels of the dataset.
|
||||||
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PerfResultTag is the prefix of generated perfdata. Analyzing tools can find the perf result
|
// PerfResultTag is the prefix of generated perfdata. Analyzing tools can find the perf result
|
||||||
|
@ -45,9 +45,8 @@ type NodeTimeSeries struct {
|
|||||||
func logDensityTimeSeries(rc *ResourceCollector, create, watch map[string]unversioned.Time, testName string) {
|
func logDensityTimeSeries(rc *ResourceCollector, create, watch map[string]unversioned.Time, testName string) {
|
||||||
timeSeries := &NodeTimeSeries{
|
timeSeries := &NodeTimeSeries{
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
"node": framework.TestContext.NodeName,
|
"node": framework.TestContext.NodeName,
|
||||||
"datatype": "timeseries",
|
"test": testName,
|
||||||
"test": testName,
|
|
||||||
},
|
},
|
||||||
Version: currentTimeSeriesVersion,
|
Version: currentTimeSeriesVersion,
|
||||||
}
|
}
|
||||||
@ -94,10 +93,12 @@ func getLatencyPerfData(latency framework.LatencyMetric, testName string) *perft
|
|||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
"datatype": "latency",
|
"datatype": "latency",
|
||||||
"latencytype": "test-e2e",
|
"latencytype": "test-e2e",
|
||||||
"node": framework.TestContext.NodeName,
|
|
||||||
"test": testName,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Labels: map[string]string{
|
||||||
|
"node": framework.TestContext.NodeName,
|
||||||
|
"test": testName,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -241,7 +241,7 @@ type densityTest struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (dt *densityTest) getTestName() string {
|
func (dt *densityTest) getTestName() string {
|
||||||
return fmt.Sprintf("create_%s_%d_%d_%d", dt.createMethod, dt.podsNr, dt.bgPodsNr, dt.interval.Nanoseconds()/1000000)
|
return fmt.Sprintf("density_create_%s_%d_%d_%d", dt.createMethod, dt.podsNr, dt.bgPodsNr, dt.interval.Nanoseconds()/1000000)
|
||||||
}
|
}
|
||||||
|
|
||||||
// runDensityBatchTest runs the density batch pod creation test
|
// runDensityBatchTest runs the density batch pod creation test
|
||||||
|
@ -194,15 +194,9 @@ func logAndVerifyResource(f *framework.Framework, rc *ResourceCollector, cpuLimi
|
|||||||
|
|
||||||
// Print resource usage
|
// Print resource usage
|
||||||
framework.PrintPerfData(framework.ResourceUsageToPerfDataWithLabels(usagePerNode,
|
framework.PrintPerfData(framework.ResourceUsageToPerfDataWithLabels(usagePerNode,
|
||||||
map[string]string{
|
map[string]string{"test": testName, "node": nodeName}))
|
||||||
"datatype": "resource",
|
|
||||||
"test": testName,
|
|
||||||
}))
|
|
||||||
framework.PrintPerfData(framework.CPUUsageToPerfDataWithLabels(cpuSummaryPerNode,
|
framework.PrintPerfData(framework.CPUUsageToPerfDataWithLabels(cpuSummaryPerNode,
|
||||||
map[string]string{
|
map[string]string{"test": testName, "node": nodeName}))
|
||||||
"datatype": "resource",
|
|
||||||
"test": testName,
|
|
||||||
}))
|
|
||||||
|
|
||||||
// Verify resource usage
|
// Verify resource usage
|
||||||
if isVerify {
|
if isVerify {
|
||||||
|
Loading…
Reference in New Issue
Block a user