github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
53 {
54 Target: "movingAverage(metric1,10)",
55 M: map[parser.MetricRequest][]*types.MetricData{
56 {"metric1", 20, 25}: {types.MakeMetricData("metric1", th.GenerateValues(10, 25, 1), 1, 20).SetPathExpression("metric1")},57 },
58 Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,10)`,
59 []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 20).SetTag("movingAverage", "10").SetNameTag(`movingAverage(metric1,10)`)},
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
41 {
42 Target: "movingAverage(metric*,10)",
43 M: map[parser.MetricRequest][]*types.MetricData{
44 {"metric*", 20, 25}: {types.MakeMetricData("metric1", th.GenerateValues(10, 25, 1), 1, 20).SetPathExpression("metric*")},45 },
46 Want: []*types.MetricData{types.MakeMetricData(`movingAverage(metric1,10)`,
47 []float64{3, 3, 4, 4, math.NaN()}, 1, 20).SetTag("movingAverage", "10").
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
23 types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), 2, math.NaN(), 4, math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 10).
24 SetNameTag(`movingAverage(metric1,10)`).SetPathExpression("metric*"),
25 },
26 {"metric1", 10, 25}: {27 types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 10).
28 SetNameTag(`movingAverage(metric1,10)`).SetPathExpression("metric1"),
29 },
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
19
20 M = map[parser.MetricRequest][]*types.MetricData{
21 // for refetch
22 {"metric*", 10, 25}: {23 types.MakeMetricData("metric1", []float64{math.NaN(), math.NaN(), 2, math.NaN(), 4, math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN(), math.NaN()}, 1, 10).
24 SetNameTag(`movingAverage(metric1,10)`).SetPathExpression("metric*"),
25 },
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
35 {
36 `groupByTags(metric1.foo.*, "avg", "dc")`,
37 map[parser.MetricRequest][]*types.MetricData{
38 {"metric1.foo.*", 0, 1}: { 39 types.MakeMetricData("metric1.foo;cpu=cpu1;dc=dc1", []float64{1, math.NaN(), 3, 4, math.NaN()}, 1, now32),
40 types.MakeMetricData("metric1.foo;cpu=cpu2;dc=dc1", []float64{6, 7, 8, 9, math.NaN()}, 1, now32),
41 types.MakeMetricData("metric1.foo;cpu=cpu3;dc=dc1", []float64{11, 12, 13, 14, math.NaN()}, 1, now32),
github.com/go-graphite/carbonapi/tests.MultiReturnEvalTestItem struct literal uses unkeyed fields
32 now32 := int64(time.Now().Unix())
33
34 tests := []th.MultiReturnEvalTestItem{
35 { 36 `groupByTags(metric1.foo.*, "avg", "dc")`,
37 map[parser.MetricRequest][]*types.MetricData{
38 {"metric1.foo.*", 0, 1}: {
Description
Composite literals of struct types imported from another package that do not use the field-keyed syntax are fragile because the addition of a new field (even if unexported) to the struct will cause compilation to fail.
For example,
type S struct {
A int
B int
}
func f() {
s := S{1, 2}
}
will cause errors later on, while
type S struct {
A int
B int
}
func f() {
s := S{A: 1, B: 2}
}
will not.