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