Add BigTable query logs and counter (#21394)
* Add LedgerStorage logs * Add storage-bigtable metric
This commit is contained in:
parent
b87ebf9e58
commit
f3f8d2e4f3
|
@ -5823,6 +5823,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_derive",
|
||||
"smpl_jwt",
|
||||
"solana-metrics",
|
||||
"solana-sdk",
|
||||
"solana-storage-proto",
|
||||
"solana-transaction-status",
|
||||
|
|
|
@ -22,6 +22,7 @@ prost-types = "0.9.0"
|
|||
serde = "1.0.130"
|
||||
serde_derive = "1.0.103"
|
||||
smpl_jwt = "0.6.0"
|
||||
solana-metrics = { path = "../metrics", version = "=1.9.0" }
|
||||
solana-sdk = { path = "../sdk", version = "=1.9.0" }
|
||||
solana-storage-proto = { path = "../storage-proto", version = "=1.9.0" }
|
||||
solana-transaction-status = { path = "../transaction-status", version = "=1.9.0" }
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
use {
|
||||
log::*,
|
||||
serde::{Deserialize, Serialize},
|
||||
solana_metrics::inc_new_counter_debug,
|
||||
solana_sdk::{
|
||||
clock::{Slot, UnixTimestamp},
|
||||
deserialize_utils::default_on_eof,
|
||||
|
@ -24,6 +25,9 @@ use {
|
|||
thiserror::Error,
|
||||
};
|
||||
|
||||
#[macro_use]
|
||||
extern crate solana_metrics;
|
||||
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
||||
|
||||
|
@ -349,6 +353,8 @@ impl LedgerStorage {
|
|||
|
||||
/// Return the available slot that contains a block
|
||||
pub async fn get_first_available_block(&self) -> Result<Option<Slot>> {
|
||||
debug!("LedgerStorage::get_first_available_block request received");
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
let blocks = bigtable.get_row_keys("blocks", None, None, 1).await?;
|
||||
if blocks.is_empty() {
|
||||
|
@ -363,6 +369,11 @@ impl LedgerStorage {
|
|||
/// limit: stop after this many slots have been found; if limit==0, all records in the table
|
||||
/// after start_slot will be read
|
||||
pub async fn get_confirmed_blocks(&self, start_slot: Slot, limit: usize) -> Result<Vec<Slot>> {
|
||||
debug!(
|
||||
"LedgerStorage::get_confirmed_blocks request received: {:?} {:?}",
|
||||
start_slot, limit
|
||||
);
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
let blocks = bigtable
|
||||
.get_row_keys(
|
||||
|
@ -377,6 +388,11 @@ impl LedgerStorage {
|
|||
|
||||
/// Fetch the confirmed block from the desired slot
|
||||
pub async fn get_confirmed_block(&self, slot: Slot) -> Result<ConfirmedBlock> {
|
||||
debug!(
|
||||
"LedgerStorage::get_confirmed_block request received: {:?}",
|
||||
slot
|
||||
);
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
let block_cell_data = bigtable
|
||||
.get_protobuf_or_bincode_cell::<StoredConfirmedBlock, generated::ConfirmedBlock>(
|
||||
|
@ -397,6 +413,11 @@ impl LedgerStorage {
|
|||
}
|
||||
|
||||
pub async fn get_signature_status(&self, signature: &Signature) -> Result<TransactionStatus> {
|
||||
debug!(
|
||||
"LedgerStorage::get_signature_status request received: {:?}",
|
||||
signature
|
||||
);
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
let transaction_info = bigtable
|
||||
.get_bincode_cell::<TransactionInfo>("tx", signature.to_string())
|
||||
|
@ -413,6 +434,11 @@ impl LedgerStorage {
|
|||
&self,
|
||||
signature: &Signature,
|
||||
) -> Result<Option<ConfirmedTransaction>> {
|
||||
debug!(
|
||||
"LedgerStorage::get_confirmed_transaction request received: {:?}",
|
||||
signature
|
||||
);
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
|
||||
// Figure out which block the transaction is located in
|
||||
|
@ -468,6 +494,11 @@ impl LedgerStorage {
|
|||
u32, /*slot index*/
|
||||
)>,
|
||||
> {
|
||||
debug!(
|
||||
"LedgerStorage::get_confirmed_signatures_for_address request received: {:?}",
|
||||
address
|
||||
);
|
||||
inc_new_counter_debug!("storage-bigtable-query", 1);
|
||||
let mut bigtable = self.connection.client();
|
||||
let address_prefix = format!("{}/", address);
|
||||
|
||||
|
|
Loading…
Reference in New Issue