@@ -250,118 +250,132 @@ func Test_createLabelSet(t *testing.T) {
250250 externalLabels map [string ]string
251251 extras []string
252252 want []prompb.Label
253+ expectErr bool
253254 }{
254255 {
255- "labels_clean" ,
256- pcommon .NewResource (),
257- lbs1 ,
258- map [string ]string {},
259- []string {label31 , value31 , label32 , value32 },
260- getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 ),
256+ name : "labels_clean" ,
257+ resource : pcommon .NewResource (),
258+ orig : lbs1 ,
259+ externalLabels : map [string ]string {},
260+ extras : []string {label31 , value31 , label32 , value32 },
261+ want : getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 ),
261262 },
262263 {
263- "labels_with_resource" ,
264- func () pcommon.Resource {
264+ name : "labels_with_resource" ,
265+ resource : func () pcommon.Resource {
265266 res := pcommon .NewResource ()
266267 res .Attributes ().PutStr ("service.name" , "prometheus" )
267268 res .Attributes ().PutStr ("service.instance.id" , "127.0.0.1:8080" )
268269 return res
269270 }(),
270- lbs1 ,
271- map [string ]string {},
272- []string {label31 , value31 , label32 , value32 },
273- getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 , "job" , "prometheus" , "instance" , "127.0.0.1:8080" ),
271+ orig : lbs1 ,
272+ externalLabels : map [string ]string {},
273+ extras : []string {label31 , value31 , label32 , value32 },
274+ want : getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 , "job" , "prometheus" , "instance" , "127.0.0.1:8080" ),
274275 },
275276 {
276- "labels_with_nonstring_resource" ,
277- func () pcommon.Resource {
277+ name : "labels_with_nonstring_resource" ,
278+ resource : func () pcommon.Resource {
278279 res := pcommon .NewResource ()
279280 res .Attributes ().PutInt ("service.name" , 12345 )
280281 res .Attributes ().PutBool ("service.instance.id" , true )
281282 return res
282283 }(),
283- lbs1 ,
284- map [string ]string {},
285- []string {label31 , value31 , label32 , value32 },
286- getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 , "job" , "12345" , "instance" , "true" ),
284+ orig : lbs1 ,
285+ externalLabels : map [string ]string {},
286+ extras : []string {label31 , value31 , label32 , value32 },
287+ want : getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 , "job" , "12345" , "instance" , "true" ),
287288 },
288289 {
289- "labels_duplicate_in_extras" ,
290- pcommon .NewResource (),
291- lbs1 ,
292- map [string ]string {},
293- []string {label11 , value31 },
294- getPromLabels (label11 , value31 , label12 , value12 ),
290+ name : "labels_duplicate_in_extras" ,
291+ resource : pcommon .NewResource (),
292+ orig : lbs1 ,
293+ externalLabels : map [string ]string {},
294+ extras : []string {label11 , value31 },
295+ want : getPromLabels (label11 , value31 , label12 , value12 ),
295296 },
296297 {
297- "labels_dirty" ,
298- pcommon .NewResource (),
299- lbs1Dirty ,
300- map [string ]string {},
301- []string {label31 + dirty1 , value31 , label32 , value32 },
302- getPromLabels (label11 + "_" , value11 , "key_" + label12 , value12 , label31 + "_" , value31 , label32 , value32 ),
298+ name : "labels_dirty" ,
299+ resource : pcommon .NewResource (),
300+ orig : lbs1Dirty ,
301+ externalLabels : map [string ]string {},
302+ extras : []string {label31 + dirty1 , value31 , label32 , value32 },
303+ want : getPromLabels (label11 + "_" , value11 , "key_" + label12 , value12 , label31 + "_" , value31 , label32 , value32 ),
303304 },
304305 {
305- "no_original_case" ,
306- pcommon .NewResource (),
307- pcommon .NewMap (),
308- nil ,
309- []string {label31 , value31 , label32 , value32 },
310- getPromLabels (label31 , value31 , label32 , value32 ),
306+ name : "no_original_case" ,
307+ resource : pcommon .NewResource (),
308+ orig : pcommon .NewMap (),
309+ externalLabels : map [ string ] string {} ,
310+ extras : []string {label31 , value31 , label32 , value32 },
311+ want : getPromLabels (label31 , value31 , label32 , value32 ),
311312 },
312313 {
313- "single_left_over_case" ,
314- pcommon .NewResource (),
315- lbs1 ,
316- map [string ]string {},
317- []string {label31 , value31 , label32 },
318- getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 ),
314+ name : "empty_extra_case" ,
315+ resource : pcommon .NewResource (),
316+ orig : lbs1 ,
317+ externalLabels : map [string ]string {},
318+ extras : []string {"" , "" },
319+ want : getPromLabels (label11 , value11 , label12 , value12 , "" , "" ),
320+ expectErr : true ,
319321 },
320322 {
321- "valid_external_labels " ,
322- pcommon .NewResource (),
323- lbs1 ,
324- exlbs1 ,
325- []string {label31 , value31 , label32 , value32 },
326- getPromLabels (label11 , value11 , label12 , value12 , label41 , value41 , label31 , value31 , label32 , value32 ),
323+ name : "single_left_over_case " ,
324+ resource : pcommon .NewResource (),
325+ orig : lbs1 ,
326+ externalLabels : map [ string ] string {} ,
327+ extras : []string {label31 , value31 , label32 },
328+ want : getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 ),
327329 },
328330 {
329- "overwritten_external_labels " ,
330- pcommon .NewResource (),
331- lbs1 ,
332- exlbs2 ,
333- []string {label31 , value31 , label32 , value32 },
334- getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 ),
331+ name : "valid_external_labels " ,
332+ resource : pcommon .NewResource (),
333+ orig : lbs1 ,
334+ externalLabels : exlbs1 ,
335+ extras : []string {label31 , value31 , label32 , value32 },
336+ want : getPromLabels (label11 , value11 , label12 , value12 , label41 , value41 , label31 , value31 , label32 , value32 ),
335337 },
336338 {
337- "colliding attributes " ,
338- pcommon .NewResource (),
339- lbsColliding ,
340- nil ,
341- []string {label31 , value31 , label32 , value32 },
342- getPromLabels (collidingSanitized , value11 + ";" + value12 , label31 , value31 , label32 , value32 ),
339+ name : "overwritten_external_labels " ,
340+ resource : pcommon .NewResource (),
341+ orig : lbs1 ,
342+ externalLabels : exlbs2 ,
343+ extras : []string {label31 , value31 , label32 , value32 },
344+ want : getPromLabels (label11 , value11 , label12 , value12 , label31 , value31 , label32 , value32 ),
343345 },
344346 {
345- "existing_attribute_value_is_the_same_as_the_new_label_value " ,
346- pcommon .NewResource (),
347- lbsCollidingSameValue ,
348- nil ,
349- []string {label31 , value31 , label32 , value32 },
350- getPromLabels (collidingSanitized , value11 , label31 , value31 , label32 , value32 ),
347+ name : "colliding attributes " ,
348+ resource : pcommon .NewResource (),
349+ orig : lbsColliding ,
350+ externalLabels : nil ,
351+ extras : []string {label31 , value31 , label32 , value32 },
352+ want : getPromLabels (collidingSanitized , value11 + ";" + value12 , label31 , value31 , label32 , value32 ),
351353 },
352354 {
353- "sanitize_labels_starts_with_underscore" ,
354- pcommon .NewResource (),
355- lbs3 ,
356- exlbs1 ,
357- []string {label31 , value31 , label32 , value32 },
358- getPromLabels (label11 , value11 , label12 , value12 , "key" + label51 , value51 , label41 , value41 , label31 , value31 , label32 , value32 ),
355+ name : "existing_attribute_value_is_the_same_as_the_new_label_value" ,
356+ resource : pcommon .NewResource (),
357+ orig : lbsCollidingSameValue ,
358+ externalLabels : nil ,
359+ extras : []string {label31 , value31 , label32 , value32 },
360+ want : getPromLabels (collidingSanitized , value11 , label31 , value31 , label32 , value32 ),
361+ },
362+ {
363+ name : "sanitize_labels_starts_with_underscore" ,
364+ resource : pcommon .NewResource (),
365+ orig : lbs3 ,
366+ externalLabels : exlbs1 ,
367+ extras : []string {label31 , value31 , label32 , value32 },
368+ want : getPromLabels (label11 , value11 , label12 , value12 , "key" + label51 , value51 , label41 , value41 , label31 , value31 , label32 , value32 ),
359369 },
360370 }
361371 // run tests
362372 for _ , tt := range tests {
363373 t .Run (tt .name , func (t * testing.T ) {
364374 got , err := createAttributes (tt .resource , tt .orig , tt .externalLabels , nil , true , otlptranslator.LabelNamer {}, tt .extras ... )
375+ if tt .expectErr {
376+ require .Error (t , err )
377+ return
378+ }
365379 require .NoError (t , err )
366380 assert .ElementsMatch (t , tt .want , got )
367381 })
0 commit comments