多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] 该Measurement的结构体定义如下: ``` type sloMeasurement struct { measurements []measurement.Measurement summaries []measurement.Summary } ``` 从这个结构体定义里看不出来,它只定义了两个变量。接下我们来看一下这两个变量是如何赋值的,如下: ``` var sloMeasurementsNames = []string{"DnsLookupLatency", "SchedulingThroughputPrometheus"} func createSLOMeasurements() measurement.Measurement { sloMeasurement := &sloMeasurement{} for _, name := range sloMeasurementsNames { m, err := measurement.CreateMeasurement(name) if err != nil { klog.Fatalf("Cannot create instance of %s: %v", name, err) } sloMeasurement.measurements = append(sloMeasurement.measurements, m) } return sloMeasurement } ``` 可以看出,它实际上就是`DnsLookupLatency`和`SchedulingThroughputPrometheus`这两个Measurement的组合。