| OLD | NEW |
| 1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 package monitor | 5 package monitor |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "fmt" | 8 "fmt" |
| 9 "math" | 9 "math" |
| 10 "testing" | 10 "testing" |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 130 |
| 131 func TestSerializeCell(t *testing.T) { | 131 func TestSerializeCell(t *testing.T) { |
| 132 Convey("Int", t, func() { | 132 Convey("Int", t, func() { |
| 133 ret := SerializeCell(types.Cell{ | 133 ret := SerializeCell(types.Cell{ |
| 134 types.MetricInfo{ | 134 types.MetricInfo{ |
| 135 Name: "foo", | 135 Name: "foo", |
| 136 Description: "bar", | 136 Description: "bar", |
| 137 Fields: []field.Field{}, | 137 Fields: []field.Field{}, |
| 138 ValueType: types.NonCumulativeIntType, | 138 ValueType: types.NonCumulativeIntType, |
| 139 }, | 139 }, |
| 140 types.MetricMetadata{}, |
| 140 types.CellData{ | 141 types.CellData{ |
| 141 FieldVals: []interface{}{}, | 142 FieldVals: []interface{}{}, |
| 142 Target: &target.Task{}, | 143 Target: &target.Task{}, |
| 143 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 144 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 144 Value: int64(42), | 145 Value: int64(42), |
| 145 }, | 146 }, |
| 146 }) | 147 }) |
| 147 So(ret, ShouldResemble, &pb.MetricsData{ | 148 So(ret, ShouldResemble, &pb.MetricsData{ |
| 148 Name: proto.String("foo"), | 149 Name: proto.String("foo"), |
| 149 Description: proto.String("bar"), | 150 Description: proto.String("bar"), |
| 150 MetricNamePrefix: proto.String("/chrome/infra/"), | 151 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 151 Fields: []*pb.MetricsField{}, | 152 Fields: []*pb.MetricsField{}, |
| 152 Task: &pb.Task{}, | 153 Task: &pb.Task{}, |
| 153 Gauge: proto.Int64(42), | 154 Gauge: proto.Int64(42), |
| 154 }) | 155 }) |
| 155 }) | 156 }) |
| 156 | 157 |
| 157 Convey("Counter", t, func() { | 158 Convey("Counter", t, func() { |
| 158 ret := SerializeCell(types.Cell{ | 159 ret := SerializeCell(types.Cell{ |
| 159 types.MetricInfo{ | 160 types.MetricInfo{ |
| 160 Name: "foo", | 161 Name: "foo", |
| 161 Description: "bar", | 162 Description: "bar", |
| 162 Fields: []field.Field{}, | 163 Fields: []field.Field{}, |
| 163 ValueType: types.CumulativeIntType, | 164 ValueType: types.CumulativeIntType, |
| 164 }, | 165 }, |
| 166 types.MetricMetadata{}, |
| 165 types.CellData{ | 167 types.CellData{ |
| 166 FieldVals: []interface{}{}, | 168 FieldVals: []interface{}{}, |
| 167 Target: &target.Task{}, | 169 Target: &target.Task{}, |
| 168 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 170 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 169 Value: int64(42), | 171 Value: int64(42), |
| 170 }, | 172 }, |
| 171 }) | 173 }) |
| 172 So(ret, ShouldResemble, &pb.MetricsData{ | 174 So(ret, ShouldResemble, &pb.MetricsData{ |
| 173 Name: proto.String("foo"), | 175 Name: proto.String("foo"), |
| 174 Description: proto.String("bar"), | 176 Description: proto.String("bar"), |
| 175 MetricNamePrefix: proto.String("/chrome/infra/"), | 177 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 176 Fields: []*pb.MetricsField{}, | 178 Fields: []*pb.MetricsField{}, |
| 177 StartTimestampUs: proto.Uint64(946782245000000), | 179 StartTimestampUs: proto.Uint64(946782245000000), |
| 178 Task: &pb.Task{}, | 180 Task: &pb.Task{}, |
| 179 Counter: proto.Int64(42), | 181 Counter: proto.Int64(42), |
| 180 }) | 182 }) |
| 181 }) | 183 }) |
| 182 | 184 |
| 183 Convey("Float", t, func() { | 185 Convey("Float", t, func() { |
| 184 ret := SerializeCell(types.Cell{ | 186 ret := SerializeCell(types.Cell{ |
| 185 types.MetricInfo{ | 187 types.MetricInfo{ |
| 186 Name: "foo", | 188 Name: "foo", |
| 187 Description: "bar", | 189 Description: "bar", |
| 188 Fields: []field.Field{}, | 190 Fields: []field.Field{}, |
| 189 ValueType: types.NonCumulativeFloatType, | 191 ValueType: types.NonCumulativeFloatType, |
| 190 }, | 192 }, |
| 193 types.MetricMetadata{}, |
| 191 types.CellData{ | 194 types.CellData{ |
| 192 FieldVals: []interface{}{}, | 195 FieldVals: []interface{}{}, |
| 193 Target: &target.Task{}, | 196 Target: &target.Task{}, |
| 194 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 197 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 195 Value: float64(42), | 198 Value: float64(42), |
| 196 }, | 199 }, |
| 197 }) | 200 }) |
| 198 So(ret, ShouldResemble, &pb.MetricsData{ | 201 So(ret, ShouldResemble, &pb.MetricsData{ |
| 199 Name: proto.String("foo"), | 202 Name: proto.String("foo"), |
| 200 Description: proto.String("bar"), | 203 Description: proto.String("bar"), |
| 201 MetricNamePrefix: proto.String("/chrome/infra/"), | 204 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 202 Fields: []*pb.MetricsField{}, | 205 Fields: []*pb.MetricsField{}, |
| 203 Task: &pb.Task{}, | 206 Task: &pb.Task{}, |
| 204 NoncumulativeDoubleValue: proto.Float64(42), | 207 NoncumulativeDoubleValue: proto.Float64(42), |
| 205 }) | 208 }) |
| 206 }) | 209 }) |
| 207 | 210 |
| 208 Convey("FloatCounter", t, func() { | 211 Convey("FloatCounter", t, func() { |
| 209 ret := SerializeCell(types.Cell{ | 212 ret := SerializeCell(types.Cell{ |
| 210 types.MetricInfo{ | 213 types.MetricInfo{ |
| 211 Name: "foo", | 214 Name: "foo", |
| 212 Description: "bar", | 215 Description: "bar", |
| 213 Fields: []field.Field{}, | 216 Fields: []field.Field{}, |
| 214 ValueType: types.CumulativeFloatType, | 217 ValueType: types.CumulativeFloatType, |
| 215 }, | 218 }, |
| 219 types.MetricMetadata{}, |
| 216 types.CellData{ | 220 types.CellData{ |
| 217 FieldVals: []interface{}{}, | 221 FieldVals: []interface{}{}, |
| 218 Target: &target.Task{}, | 222 Target: &target.Task{}, |
| 219 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 223 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 220 Value: float64(42), | 224 Value: float64(42), |
| 221 }, | 225 }, |
| 222 }) | 226 }) |
| 223 So(ret, ShouldResemble, &pb.MetricsData{ | 227 So(ret, ShouldResemble, &pb.MetricsData{ |
| 224 Name: proto.String("foo"), | 228 Name: proto.String("foo"), |
| 225 Description: proto.String("bar"), | 229 Description: proto.String("bar"), |
| 226 MetricNamePrefix: proto.String("/chrome/infra/"), | 230 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 227 Fields: []*pb.MetricsField{}, | 231 Fields: []*pb.MetricsField{}, |
| 228 StartTimestampUs: proto.Uint64(946782245000000), | 232 StartTimestampUs: proto.Uint64(946782245000000), |
| 229 Task: &pb.Task{}, | 233 Task: &pb.Task{}, |
| 230 CumulativeDoubleValue: proto.Float64(42), | 234 CumulativeDoubleValue: proto.Float64(42), |
| 231 }) | 235 }) |
| 232 }) | 236 }) |
| 233 | 237 |
| 234 Convey("String", t, func() { | 238 Convey("String", t, func() { |
| 235 ret := SerializeCell(types.Cell{ | 239 ret := SerializeCell(types.Cell{ |
| 236 types.MetricInfo{ | 240 types.MetricInfo{ |
| 237 Name: "foo", | 241 Name: "foo", |
| 238 Description: "bar", | 242 Description: "bar", |
| 239 Fields: []field.Field{}, | 243 Fields: []field.Field{}, |
| 240 ValueType: types.StringType, | 244 ValueType: types.StringType, |
| 241 }, | 245 }, |
| 246 types.MetricMetadata{}, |
| 242 types.CellData{ | 247 types.CellData{ |
| 243 FieldVals: []interface{}{}, | 248 FieldVals: []interface{}{}, |
| 244 Target: &target.Task{}, | 249 Target: &target.Task{}, |
| 245 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 250 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 246 Value: "hello", | 251 Value: "hello", |
| 247 }, | 252 }, |
| 248 }) | 253 }) |
| 249 So(ret, ShouldResemble, &pb.MetricsData{ | 254 So(ret, ShouldResemble, &pb.MetricsData{ |
| 250 Name: proto.String("foo"), | 255 Name: proto.String("foo"), |
| 251 Description: proto.String("bar"), | 256 Description: proto.String("bar"), |
| 252 MetricNamePrefix: proto.String("/chrome/infra/"), | 257 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 253 Fields: []*pb.MetricsField{}, | 258 Fields: []*pb.MetricsField{}, |
| 254 Task: &pb.Task{}, | 259 Task: &pb.Task{}, |
| 255 StringValue: proto.String("hello"), | 260 StringValue: proto.String("hello"), |
| 256 }) | 261 }) |
| 257 }) | 262 }) |
| 258 | 263 |
| 259 Convey("Boolean", t, func() { | 264 Convey("Boolean", t, func() { |
| 260 ret := SerializeCell(types.Cell{ | 265 ret := SerializeCell(types.Cell{ |
| 261 types.MetricInfo{ | 266 types.MetricInfo{ |
| 262 Name: "foo", | 267 Name: "foo", |
| 263 Description: "bar", | 268 Description: "bar", |
| 264 Fields: []field.Field{}, | 269 Fields: []field.Field{}, |
| 265 ValueType: types.BoolType, | 270 ValueType: types.BoolType, |
| 266 }, | 271 }, |
| 272 types.MetricMetadata{}, |
| 267 types.CellData{ | 273 types.CellData{ |
| 268 FieldVals: []interface{}{}, | 274 FieldVals: []interface{}{}, |
| 269 Target: &target.Task{}, | 275 Target: &target.Task{}, |
| 270 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 276 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 271 Value: true, | 277 Value: true, |
| 272 }, | 278 }, |
| 273 }) | 279 }) |
| 274 So(ret, ShouldResemble, &pb.MetricsData{ | 280 So(ret, ShouldResemble, &pb.MetricsData{ |
| 275 Name: proto.String("foo"), | 281 Name: proto.String("foo"), |
| 276 Description: proto.String("bar"), | 282 Description: proto.String("bar"), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 287 JobName: proto.String("world"), | 293 JobName: proto.String("world"), |
| 288 } | 294 } |
| 289 | 295 |
| 290 ret := SerializeCell(types.Cell{ | 296 ret := SerializeCell(types.Cell{ |
| 291 types.MetricInfo{ | 297 types.MetricInfo{ |
| 292 Name: "foo", | 298 Name: "foo", |
| 293 Description: "bar", | 299 Description: "bar", |
| 294 Fields: []field.Field{}, | 300 Fields: []field.Field{}, |
| 295 ValueType: types.NonCumulativeIntType, | 301 ValueType: types.NonCumulativeIntType, |
| 296 }, | 302 }, |
| 303 types.MetricMetadata{}, |
| 297 types.CellData{ | 304 types.CellData{ |
| 298 FieldVals: []interface{}{}, | 305 FieldVals: []interface{}{}, |
| 299 Target: &target, | 306 Target: &target, |
| 300 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), | 307 ResetTime: time.Date(2000, 1, 2, 3, 4, 5, 6, tim
e.UTC), |
| 301 Value: int64(42), | 308 Value: int64(42), |
| 302 }, | 309 }, |
| 303 }) | 310 }) |
| 304 So(ret, ShouldResemble, &pb.MetricsData{ | 311 So(ret, ShouldResemble, &pb.MetricsData{ |
| 305 Name: proto.String("foo"), | 312 Name: proto.String("foo"), |
| 306 Description: proto.String("bar"), | 313 Description: proto.String("bar"), |
| 307 MetricNamePrefix: proto.String("/chrome/infra/"), | 314 MetricNamePrefix: proto.String("/chrome/infra/"), |
| 308 Fields: []*pb.MetricsField{}, | 315 Fields: []*pb.MetricsField{}, |
| 309 Task: &pb.Task{ | 316 Task: &pb.Task{ |
| 310 ServiceName: proto.String("hello"), | 317 ServiceName: proto.String("hello"), |
| 311 JobName: proto.String("world"), | 318 JobName: proto.String("world"), |
| 312 }, | 319 }, |
| 313 Gauge: proto.Int64(42), | 320 Gauge: proto.Int64(42), |
| 314 }) | 321 }) |
| 315 }) | 322 }) |
| 316 } | 323 } |
| OLD | NEW |