@@ -123,22 +123,25 @@ fn push<S: BuildHasher>(
123
123
124
124
for mf in mfs {
125
125
// Check for pre-existing grouping labels:
126
- for m in mf. get_metric ( ) {
127
- for lp in m. get_label ( ) {
128
- if lp. get_name ( ) == LABEL_NAME_JOB {
129
- return Err ( Error :: Msg ( format ! (
130
- "pushed metric {} already contains a \
131
- job label",
132
- mf. get_name( )
133
- ) ) ) ;
134
- }
135
- if grouping. contains_key ( lp. get_name ( ) ) {
136
- return Err ( Error :: Msg ( format ! (
137
- "pushed metric {} already contains \
138
- grouping label {}",
139
- mf. get_name( ) ,
140
- lp. get_name( )
141
- ) ) ) ;
126
+ for m in & mf. metric {
127
+ for lp in & m. label {
128
+ if let Some ( name) = & lp. name {
129
+ if name == LABEL_NAME_JOB {
130
+ return Err ( Error :: Msg ( format ! (
131
+ "pushed metric {} already contains a \
132
+ job label",
133
+ mf. name. unwrap_or( "" . into( ) ) ,
134
+ ) ) ) ;
135
+ }
136
+
137
+ if grouping. contains_key ( name. as_str ( ) ) {
138
+ return Err ( Error :: Msg ( format ! (
139
+ "pushed metric {} already contains \
140
+ grouping label {}",
141
+ mf. name. unwrap_or( "" . into( ) ) ,
142
+ name,
143
+ ) ) ) ;
144
+ }
142
145
}
143
146
}
144
147
}
@@ -272,11 +275,11 @@ mod tests {
272
275
] ;
273
276
274
277
for case in table {
275
- let mut l = proto:: LabelPair :: new ( ) ;
278
+ let mut l = proto:: LabelPair :: default ( ) ;
276
279
l. name = Some ( case. 0 . to_owned ( ) ) ;
277
- let mut m = proto:: Metric :: new ( ) ;
280
+ let mut m = proto:: Metric :: default ( ) ;
278
281
m. label = vec ! [ l] ;
279
- let mut mf = proto:: MetricFamily :: new ( ) ;
282
+ let mut mf = proto:: MetricFamily :: default ( ) ;
280
283
mf. metric = vec ! [ m] ;
281
284
let res = push_metrics ( "test" , hostname_grouping_key ( ) , "mockurl" , vec ! [ mf] , None ) ;
282
285
assert ! ( format!( "{}" , res. unwrap_err( ) ) . contains( case. 1 ) ) ;
0 commit comments