mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 05:51:02 +00:00
Prometheus metrics for RPC calls (#7088)
* WS and HTTP middlewares added * Prometheus endpoint added * Counters renamed * Proper style for inc * Metrics initialization re-written * Rework to handler middleware * Introduce transport prefix for metrics * String shortened * Commented code removed, new line inserted * One more string shortened * Wasm build fixed * Wasm build fixed once again * Rework to shared metrics * Added collectors label * Tilde removed from cargo * Switch to owned metrics in parameters
This commit is contained in:
@@ -20,8 +20,10 @@
|
||||
|
||||
#![warn(missing_docs)]
|
||||
|
||||
mod middleware;
|
||||
|
||||
use std::io;
|
||||
use jsonrpc_core::IoHandlerExtension;
|
||||
use jsonrpc_core::{IoHandlerExtension, MetaIoHandler};
|
||||
use log::error;
|
||||
use pubsub::PubSubMetadata;
|
||||
|
||||
@@ -32,15 +34,18 @@ const MAX_PAYLOAD: usize = 15 * 1024 * 1024;
|
||||
const WS_MAX_CONNECTIONS: usize = 100;
|
||||
|
||||
/// The RPC IoHandler containing all requested APIs.
|
||||
pub type RpcHandler<T> = pubsub::PubSubHandler<T>;
|
||||
pub type RpcHandler<T> = pubsub::PubSubHandler<T, RpcMiddleware>;
|
||||
|
||||
pub use self::inner::*;
|
||||
pub use middleware::{RpcMiddleware, RpcMetrics};
|
||||
|
||||
/// Construct rpc `IoHandler`
|
||||
pub fn rpc_handler<M: PubSubMetadata>(
|
||||
extension: impl IoHandlerExtension<M>
|
||||
extension: impl IoHandlerExtension<M>,
|
||||
rpc_middleware: RpcMiddleware,
|
||||
) -> RpcHandler<M> {
|
||||
let mut io = pubsub::PubSubHandler::default();
|
||||
let io_handler = MetaIoHandler::with_middleware(rpc_middleware);
|
||||
let mut io = pubsub::PubSubHandler::new(io_handler);
|
||||
extension.augment(&mut io);
|
||||
|
||||
// add an endpoint to list all available methods.
|
||||
|
||||
Reference in New Issue
Block a user