mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 19:01:08 +00:00
Adjust consensus telemetry (#2198)
* Send high-level consensus telemetry by default * Notify telemetry on finalized * Send used authority set to telemetry * Do not send commit message telemetry by default * Fix typo * Allow for notifications on telemetry connect ...and send the current authority set on each connect. * Send authority set to telemetry on change * Revert "Send used authority set to telemetry" This reverts commit 1deceead52bb7443a02879ac8138afad9a6ca5ff. * Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default' Squashed commit of the following: commit19d77cbc23Author: Xiliang Chen <xlchen1291@gmail.com> Date: Wed Apr 10 20:26:29 2019 +1200 update authers for rest of the node-template cargo.toml files (#2242) commit0afc357a97Author: Bastian Köcher <bkchr@users.noreply.github.com> Date: Tue Apr 9 10:31:18 2019 +0200 Throw a compile error for `on_finalise` and `on_initialise` (#2236) commite57e54ab9cAuthor: Pierre Krieger <pierre.krieger1708@gmail.com> Date: Tue Apr 9 05:30:43 2019 -0300 Add warning when using default protocol ID (#2234) * Add warning when using default protocol ID * Update core/service/src/lib.rs commitcb766e5f5dAuthor: Xiliang Chen <xlchen1291@gmail.com> Date: Tue Apr 9 17:22:20 2019 +1200 update name and authors to placeholder text for node-template (#2222) * update name and authors to placeholder text * revert package name change commita1e15ae55aAuthor: André Silva <andre.beat@gmail.com> Date: Mon Apr 8 12:50:34 2019 +0100 grandpa: Voter persistence and upgrade to finality-grandpa v0.7 (#2139) * core: grandpa: migrate to grandpa 0.7 * core: grandpa: store current round votes and load them on startup * core: grandpa: resend old persisted votes for the current round * core: grandpa: store base and votes for last completed round * core: grandpa: fix latest grandpa 0.7 changes * core: grandpa: update to grandpa 0.7.1 * core: grandpa: persist votes for last two completed rounds * core: grandpa: simplify VoterSetState usage * core: grandpa: use Environment::update_voter_set_state * core: grandpa: fix aux_schema test * core: grandpa: add docs * core: grandpa: add note about environment assumption * core: grandpa: don't update voter set state on ignored votes * core: grandpa: add test for v1 -> v2 aux_schema migration * core: grandpa: add test for voter vote persistence * core: grandpa: use grandpa 0.7.1 from crates.io * core: grandpa: use try_init in test * core: grandpa: add comment about block_import in test * core: grandpa: avoid cloning HasVoted * core: grandpa: add missing docs * core: grandpa: cleanup up can_propose/prevote/precommit commited3ae4ac39Author: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Date: Mon Apr 8 13:17:00 2019 +0200 remove clone bound on specialization in testnet factory (#2157) commit03f3fb1442Author: Andrew Jones <ascjones@gmail.com> Date: Sat Apr 6 12:23:56 2019 +0100 Contract import/export validation (#2203) * Reject validation of contract with unknown exports * Validate imports eagerly * Increment spec version commitdecddaab0fAuthor: Pierre Krieger <pierre.krieger1708@gmail.com> Date: Fri Apr 5 14:07:09 2019 -0300 Fix state inconsistency between handler and behaviour (#2220) * Fix state inconsistency between handler and behaviour * Fix the error! being in the wrong place commitdce0b4ea49Author: Bastian Köcher <bkchr@users.noreply.github.com> Date: Fri Apr 5 18:50:38 2019 +0200 Use `storage_root` of newly calculated header (#2216) Instead of calculating the `storage_root` a second time, we just can take the `storage_root` from the new header. commitb01136c90dAuthor: Marek Kotewicz <marek.kotewicz@gmail.com> Date: Fri Apr 5 14:44:46 2019 +0200 Peerset::discovered accepts many peer ids (#2213) * Peerset::discovered accepts many peer ids * Improve tracing in peerset commit1142bcde97Author: Marek Kotewicz <marek.kotewicz@gmail.com> Date: Thu Apr 4 19:40:40 2019 +0200 simplification of peerset api (#2123) * Introduction of PeersetHandle * integrate PeersetHandle with the rest of the codebase * fix compilation errors * more tests for peerset, fixed overwriting bug in add_reserved_peer * Slots data structure and bugfixes for peerset * bend to pressure * updated lru-cache to 0.1.2 and updated linked-hash-map to 0.5.2 * peerset discovered list is now a LinkedHashMap * fix review suggestions * split back Peerset and PeersetHandle * test for Peerset::discovered * applied review suggestions * fixes to peerset::incoming * peerset disconnects are all instantaneous * instantaneous drop in peerset finished * Peerset::set_reserved_only can also reconnect nodes * Peerset scores cache uses lru-cache * remove redundant function call and comment from Peerset::on_set_reserved_only * add_peer returns SlotState enum * apply review suggestions * is_reserved -> is_connected_and_reserved commit301844dd56Author: Arkadiy Paronyan <arkady.paronyan@gmail.com> Date: Thu Apr 4 18:01:28 2019 +0200 Disconnect on protocol timeout (#2212) commitcb3c912b1aAuthor: André Silva <andre.beat@gmail.com> Date: Thu Apr 4 15:56:49 2019 +0100 core: grandpa: verify commit target in justification (#2201) commit6920b169cdAuthor: Bastian Köcher <bkchr@users.noreply.github.com> Date: Thu Apr 4 16:56:16 2019 +0200 Introduce `original_storage` and `original_storage_hash` (#2211) Both functions will ignore any overlayed changes and access the backend directly. commitcb7a8161f5Author: Xiliang Chen <xlchen1291@gmail.com> Date: Fri Apr 5 03:55:55 2019 +1300 code cleanup (#2206) commitacaf1fe625Author: Arkadiy Paronyan <arkady.paronyan@gmail.com> Date: Wed Apr 3 15:52:46 2019 +0200 Emberic elm testnet (#2197) * Make telemetry onconnect hoook optional * Merge branch 'master' into 'cmichi-send-high-level-consensus-telemetry-by-default' * Introduce GrandpaParams struct to condense parameters * Remove debug statement * Fix tests * Rename parameter * Fix tests * Rename struct * Do not send verbosity level * Combine imports * Implement comments * Run cargo build --all * Remove noisy telemetry * Add docs for public items * Unbox and support Clone trait * Fix merge * Fix merge * Update core/finality-grandpa/src/lib.rs Co-Authored-By: cmichi <mich@elmueller.net>
This commit is contained in:
committed by
Robert Habermeier
parent
beadb4b1bd
commit
87776e63bb
@@ -28,6 +28,8 @@ pub mod chain_ops;
|
||||
use std::io;
|
||||
use std::net::SocketAddr;
|
||||
use std::collections::HashMap;
|
||||
use futures::sync::mpsc;
|
||||
use parking_lot::Mutex;
|
||||
|
||||
use client::BlockchainEvents;
|
||||
use exit_future::Signal;
|
||||
@@ -82,6 +84,7 @@ pub struct Service<Components: components::Components> {
|
||||
_rpc: Box<::std::any::Any + Send + Sync>,
|
||||
_telemetry: Option<Arc<tel::Telemetry>>,
|
||||
_offchain_workers: Option<Arc<offchain::OffchainWorkers<ComponentClient<Components>, ComponentBlock<Components>>>>,
|
||||
_telemetry_on_connect_sinks: Arc<Mutex<Vec<mpsc::UnboundedSender<()>>>>,
|
||||
}
|
||||
|
||||
/// Creates bare client without any networking.
|
||||
@@ -96,7 +99,27 @@ pub fn new_client<Factory: components::ServiceFactory>(config: &FactoryFullConfi
|
||||
Ok(client)
|
||||
}
|
||||
|
||||
/// Stream of events for connection established to a telemetry server.
|
||||
pub type TelemetryOnConnectNotifications = mpsc::UnboundedReceiver<()>;
|
||||
|
||||
/// Used to hook on telemetry connection established events.
|
||||
pub struct TelemetryOnConnect<'a> {
|
||||
/// Handle to a future that will resolve on exit.
|
||||
pub on_exit: Box<Future<Item=(), Error=()> + Send + 'static>,
|
||||
/// Event stream.
|
||||
pub telemetry_connection_sinks: TelemetryOnConnectNotifications,
|
||||
/// Executor to which the hook is spawned.
|
||||
pub executor: &'a TaskExecutor,
|
||||
}
|
||||
|
||||
impl<Components: components::Components> Service<Components> {
|
||||
/// Get event stream for telemetry connection established events.
|
||||
pub fn telemetry_on_connect_stream(&self) -> TelemetryOnConnectNotifications {
|
||||
let (sink, stream) = mpsc::unbounded();
|
||||
self._telemetry_on_connect_sinks.lock().push(sink);
|
||||
stream
|
||||
}
|
||||
|
||||
/// Creates a new service.
|
||||
pub fn new(
|
||||
mut config: FactoryFullConfiguration<Components::Factory>,
|
||||
@@ -304,6 +327,8 @@ impl<Components: components::Components> Service<Components> {
|
||||
config.rpc_ws, config.rpc_cors.clone(), task_executor.clone(), transaction_pool.clone(),
|
||||
)?;
|
||||
|
||||
let telemetry_connection_sinks: Arc<Mutex<Vec<mpsc::UnboundedSender<()>>>> = Default::default();
|
||||
|
||||
// Telemetry
|
||||
let telemetry = config.telemetry_endpoints.clone().map(|endpoints| {
|
||||
let is_authority = config.roles == Roles::AUTHORITY;
|
||||
@@ -313,6 +338,7 @@ impl<Components: components::Components> Service<Components> {
|
||||
let impl_name = config.impl_name.to_owned();
|
||||
let version = version.clone();
|
||||
let chain_name = config.chain_spec.name().to_owned();
|
||||
let telemetry_connection_sinks_ = telemetry_connection_sinks.clone();
|
||||
Arc::new(tel::init_telemetry(tel::TelemetryConfig {
|
||||
endpoints,
|
||||
on_connect: Box::new(move || {
|
||||
@@ -326,6 +352,10 @@ impl<Components: components::Components> Service<Components> {
|
||||
"authority" => is_authority,
|
||||
"network_id" => network_id.clone()
|
||||
);
|
||||
|
||||
telemetry_connection_sinks_.lock().retain(|sink| {
|
||||
sink.unbounded_send(()).is_ok()
|
||||
});
|
||||
}),
|
||||
}))
|
||||
});
|
||||
@@ -342,6 +372,7 @@ impl<Components: components::Components> Service<Components> {
|
||||
_rpc: Box::new(rpc),
|
||||
_telemetry: telemetry,
|
||||
_offchain_workers: offchain_workers,
|
||||
_telemetry_on_connect_sinks: telemetry_connection_sinks.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -358,7 +389,7 @@ impl<Components: components::Components> Service<Components> {
|
||||
}
|
||||
}
|
||||
|
||||
/// return a shared instance of Telemtry (if enabled)
|
||||
/// return a shared instance of Telemetry (if enabled)
|
||||
pub fn telemetry(&self) -> Option<Arc<tel::Telemetry>> {
|
||||
self._telemetry.as_ref().map(|t| t.clone())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user