feat: instrument tag_keys
parent
a6a5115384
commit
e25dd1836f
|
@ -418,6 +418,12 @@ where
|
||||||
|
|
||||||
info!(%db_name, ?range, predicate=%predicate.loggable(), "tag_keys");
|
info!(%db_name, ?range, predicate=%predicate.loggable(), "tag_keys");
|
||||||
|
|
||||||
|
let ob = self.metrics.requests.observation();
|
||||||
|
let labels = &[
|
||||||
|
KeyValue::new("operation", "tag_keys"),
|
||||||
|
KeyValue::new("db_name", db_name.to_string()),
|
||||||
|
];
|
||||||
|
|
||||||
let measurement = None;
|
let measurement = None;
|
||||||
|
|
||||||
let response = tag_keys_impl(
|
let response = tag_keys_impl(
|
||||||
|
@ -428,12 +434,20 @@ where
|
||||||
predicate,
|
predicate,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_status());
|
.map_err(|e| {
|
||||||
|
if e.is_internal() {
|
||||||
|
ob.error_with_labels(labels);
|
||||||
|
} else {
|
||||||
|
ob.client_error_with_labels(labels);
|
||||||
|
}
|
||||||
|
e.to_status()
|
||||||
|
});
|
||||||
|
|
||||||
tx.send(response)
|
tx.send(response)
|
||||||
.await
|
.await
|
||||||
.expect("sending tag_keys response to server");
|
.expect("sending tag_keys response to server");
|
||||||
|
|
||||||
|
ob.ok_with_labels(labels);
|
||||||
Ok(tonic::Response::new(ReceiverStream::new(rx)))
|
Ok(tonic::Response::new(ReceiverStream::new(rx)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -619,6 +633,12 @@ where
|
||||||
|
|
||||||
info!(%db_name, ?range, %measurement, predicate=%predicate.loggable(), "measurement_tag_keys");
|
info!(%db_name, ?range, %measurement, predicate=%predicate.loggable(), "measurement_tag_keys");
|
||||||
|
|
||||||
|
let ob = self.metrics.requests.observation();
|
||||||
|
let labels = &[
|
||||||
|
KeyValue::new("operation", "measurement_tag_keys"),
|
||||||
|
KeyValue::new("db_name", db_name.to_string()),
|
||||||
|
];
|
||||||
|
|
||||||
let measurement = Some(measurement);
|
let measurement = Some(measurement);
|
||||||
|
|
||||||
let response = tag_keys_impl(
|
let response = tag_keys_impl(
|
||||||
|
@ -629,12 +649,20 @@ where
|
||||||
predicate,
|
predicate,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.map_err(|e| e.to_status());
|
.map_err(|e| {
|
||||||
|
if e.is_internal() {
|
||||||
|
ob.error_with_labels(labels);
|
||||||
|
} else {
|
||||||
|
ob.client_error_with_labels(labels);
|
||||||
|
}
|
||||||
|
e.to_status()
|
||||||
|
});
|
||||||
|
|
||||||
tx.send(response)
|
tx.send(response)
|
||||||
.await
|
.await
|
||||||
.expect("sending measurement_tag_keys response to server");
|
.expect("sending measurement_tag_keys response to server");
|
||||||
|
|
||||||
|
ob.ok_with_labels(labels);
|
||||||
Ok(tonic::Response::new(ReceiverStream::new(rx)))
|
Ok(tonic::Response::new(ReceiverStream::new(rx)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1266,6 +1294,19 @@ mod tests {
|
||||||
"\nActual: {:?}\nExpected: {:?}",
|
"\nActual: {:?}\nExpected: {:?}",
|
||||||
actual_predicate, expected_predicate
|
actual_predicate, expected_predicate
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fixture
|
||||||
|
.test_storage
|
||||||
|
.metrics_registry
|
||||||
|
.has_metric_family("gRPC_requests_total")
|
||||||
|
.with_labels(&[
|
||||||
|
("operation", "tag_keys"),
|
||||||
|
("db_name", "000000000000007b_00000000000001c8"),
|
||||||
|
("status", "ok"),
|
||||||
|
])
|
||||||
|
.counter()
|
||||||
|
.eq(1.0)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
@ -1303,6 +1344,19 @@ mod tests {
|
||||||
|
|
||||||
let response = fixture.storage_client.tag_keys(request).await;
|
let response = fixture.storage_client.tag_keys(request).await;
|
||||||
assert_contains!(response.unwrap_err().to_string(), "Sugar we are going down");
|
assert_contains!(response.unwrap_err().to_string(), "Sugar we are going down");
|
||||||
|
|
||||||
|
fixture
|
||||||
|
.test_storage
|
||||||
|
.metrics_registry
|
||||||
|
.has_metric_family("gRPC_requests_total")
|
||||||
|
.with_labels(&[
|
||||||
|
("operation", "tag_keys"),
|
||||||
|
("db_name", "000000000000007b_00000000000001c8"),
|
||||||
|
("status", "client_error"),
|
||||||
|
])
|
||||||
|
.counter()
|
||||||
|
.eq(1.0)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// test the plumbing of the RPC layer for measurement_tag_keys--
|
/// test the plumbing of the RPC layer for measurement_tag_keys--
|
||||||
|
@ -1383,6 +1437,19 @@ mod tests {
|
||||||
"\nActual: {:?}\nExpected: {:?}",
|
"\nActual: {:?}\nExpected: {:?}",
|
||||||
actual_predicate, expected_predicate
|
actual_predicate, expected_predicate
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fixture
|
||||||
|
.test_storage
|
||||||
|
.metrics_registry
|
||||||
|
.has_metric_family("gRPC_requests_total")
|
||||||
|
.with_labels(&[
|
||||||
|
("operation", "measurement_tag_keys"),
|
||||||
|
("db_name", "000000000000007b_00000000000001c8"),
|
||||||
|
("status", "ok"),
|
||||||
|
])
|
||||||
|
.counter()
|
||||||
|
.eq(1.0)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
@ -1423,6 +1490,19 @@ mod tests {
|
||||||
|
|
||||||
let response = fixture.storage_client.measurement_tag_keys(request).await;
|
let response = fixture.storage_client.measurement_tag_keys(request).await;
|
||||||
assert_contains!(response.unwrap_err().to_string(), "This is an error");
|
assert_contains!(response.unwrap_err().to_string(), "This is an error");
|
||||||
|
|
||||||
|
fixture
|
||||||
|
.test_storage
|
||||||
|
.metrics_registry
|
||||||
|
.has_metric_family("gRPC_requests_total")
|
||||||
|
.with_labels(&[
|
||||||
|
("operation", "measurement_tag_keys"),
|
||||||
|
("db_name", "000000000000007b_00000000000001c8"),
|
||||||
|
("status", "client_error"),
|
||||||
|
])
|
||||||
|
.counter()
|
||||||
|
.eq(1.0)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// test the plumbing of the RPC layer for tag_keys -- specifically that
|
/// test the plumbing of the RPC layer for tag_keys -- specifically that
|
||||||
|
|
Loading…
Reference in New Issue