Snapshot manifest block added to prometheus (#232)

Co-authored-by: adria0.eth <5526331+adria0@users.noreply.github.com>
This commit is contained in:
rakita 2021-01-21 17:23:15 +01:00 committed by GitHub
parent f3bdc0da3c
commit 59d891edf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 0 deletions

View File

@ -853,6 +853,13 @@ impl SnapshotService for Service {
self.reader.read().as_ref().map(|r| r.manifest().clone()) self.reader.read().as_ref().map(|r| r.manifest().clone())
} }
fn manifest_block(&self) -> Option<(u64, H256)> {
self.reader.read().as_ref().map(|reader| {
let manifest = reader.manifest();
(manifest.block_number, manifest.block_hash)
})
}
fn supported_versions(&self) -> Option<(u64, u64)> { fn supported_versions(&self) -> Option<(u64, u64)> {
self.engine self.engine
.snapshot_components() .snapshot_components()

View File

@ -26,6 +26,9 @@ pub trait SnapshotService: Sync + Send {
/// Query the most recent manifest data. /// Query the most recent manifest data.
fn manifest(&self) -> Option<ManifestData>; fn manifest(&self) -> Option<ManifestData>;
/// Query the most recent snapshoted block number and hash.
fn manifest_block(&self) -> Option<(u64, H256)>;
/// Get the supported range of snapshot version numbers. /// Get the supported range of snapshot version numbers.
/// `None` indicates warp sync isn't supported by the consensus engine. /// `None` indicates warp sync isn't supported by the consensus engine.
fn supported_versions(&self) -> Option<(u64, u64)>; fn supported_versions(&self) -> Option<(u64, u64)>;

View File

@ -406,6 +406,11 @@ impl PrometheusMetrics for EthSync {
let restoration = self.eth_handler.snapshot_service.restoration_status(); let restoration = self.eth_handler.snapshot_service.restoration_status();
let creation = self.eth_handler.snapshot_service.creation_status(); let creation = self.eth_handler.snapshot_service.creation_status();
let (manifest_block_num, _) = self
.eth_handler
.snapshot_service
.manifest_block()
.unwrap_or((0, H256::zero()));
prometheus_gauge( prometheus_gauge(
r, r,
@ -427,6 +432,12 @@ impl PrometheusMetrics for EthSync {
0 0
}, },
); );
prometheus_gauge(
r,
"snapshot_manifest_block",
"First block number of the present snapshot",
manifest_block_num as i64,
);
} }
} }

View File

@ -89,6 +89,12 @@ impl SnapshotService for TestSnapshotService {
self.manifest.as_ref().cloned() self.manifest.as_ref().cloned()
} }
fn manifest_block(&self) -> Option<(u64, H256)> {
self.manifest
.as_ref()
.map(|manifest| (manifest.block_number, manifest.block_hash))
}
fn supported_versions(&self) -> Option<(u64, u64)> { fn supported_versions(&self) -> Option<(u64, u64)> {
Some((1, 2)) Some((1, 2))
} }

View File

@ -44,6 +44,9 @@ impl SnapshotService for TestSnapshotService {
fn manifest(&self) -> Option<ManifestData> { fn manifest(&self) -> Option<ManifestData> {
None None
} }
fn manifest_block(&self) -> Option<(u64, H256)> {
None
}
fn supported_versions(&self) -> Option<(u64, u64)> { fn supported_versions(&self) -> Option<(u64, u64)> {
None None
} }