From cf12fd8afe478591afe2ebfd1fde9d7c3ada90ae Mon Sep 17 00:00:00 2001 From: Florent Tapponnier Date: Sun, 26 Jul 2026 06:08:06 +0200 Subject: [PATCH] xchain coverage parity: add all Wormhole-tracked chains to CCIP/LZ/Hyperlane/Axelar specs where supported (46 new providers total) --- benchmarks/axelar-gmp-latency.yml | 100 ++++++++++++++- benchmarks/chainlink-ccip-latency.yml | 132 +++++++++++++++++++ benchmarks/hyperlane-message-latency.yml | 154 +++++++++++++++++++++++ benchmarks/layerzero-message-latency.yml | 121 ++++++++++++++++++ 4 files changed, 506 insertions(+), 1 deletion(-) diff --git a/benchmarks/axelar-gmp-latency.yml b/benchmarks/axelar-gmp-latency.yml index 84330f28..7580a605 100644 --- a/benchmarks/axelar-gmp-latency.yml +++ b/benchmarks/axelar-gmp-latency.yml @@ -145,4 +145,102 @@ providers: mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="osmosis"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="osmosis"}[24h])) sample_size: sum(increase(axelar_gmp_seen_total{source_chain="osmosis"}[24h])) series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="osmosis"}[1h]))) - + - slug: arbitrum + name: Arbitrum + tag: Arbitrum One → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Arbitrum." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="arbitrum"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="arbitrum"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="arbitrum"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="arbitrum"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="arbitrum"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="arbitrum"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="arbitrum"}[1h]))) + - slug: avalanche + name: Avalanche + tag: Avalanche C-Chain → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Avalanche." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="avalanche"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="avalanche"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="avalanche"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="avalanche"}[1h]))) + - slug: bnb + name: BNB Chain + tag: BNB Chain → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from BNB Chain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="bnb"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="bnb"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="bnb"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="bnb"}[1h]))) + - slug: celo + name: Celo + tag: Celo → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Celo." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="celo"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="celo"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="celo"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="celo"}[1h]))) + - slug: injective + name: Injective + tag: Injective (Cosmos) → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Injective." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="injective"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="injective"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="injective"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="injective"}[1h]))) + - slug: linea + name: Linea + tag: Linea → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Linea." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="linea"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="linea"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="linea"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="linea"}[1h]))) + - slug: mantle + name: Mantle + tag: Mantle → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Mantle." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="mantle"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="mantle"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="mantle"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="mantle"}[1h]))) + - slug: optimism + name: Optimism + tag: Optimism → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Optimism." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="optimism"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="optimism"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="optimism"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="optimism"}[1h]))) + - slug: scroll + name: Scroll + tag: Scroll → any chain + formula: "50th percentile over 24h of Axelar end-to-end delivery latency for messages sourced from Scroll." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + mean: sum(rate(axelar_gmp_e2e_latency_milliseconds_sum{source_chain="scroll"}[24h])) / sum(rate(axelar_gmp_e2e_latency_milliseconds_count{source_chain="scroll"}[24h])) + sample_size: sum(increase(axelar_gmp_seen_total{source_chain="scroll"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(axelar_gmp_e2e_latency_milliseconds_bucket{source_chain="scroll"}[1h]))) diff --git a/benchmarks/chainlink-ccip-latency.yml b/benchmarks/chainlink-ccip-latency.yml index e566faa6..4d017690 100644 --- a/benchmarks/chainlink-ccip-latency.yml +++ b/benchmarks/chainlink-ccip-latency.yml @@ -167,3 +167,135 @@ providers: mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="robinhood"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="robinhood"}[24h])) sample_size: sum(increase(ccip_message_seen_total{source_chain="robinhood"}[24h])) series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="robinhood"}[1h]))) + - slug: berachain + name: Berachain + tag: Berachain → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Berachain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="berachain"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="berachain"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="berachain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="berachain"}[1h]))) + - slug: celo + name: Celo + tag: Celo → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Celo." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="celo"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="celo"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="celo"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="celo"}[1h]))) + - slug: ink + name: Ink + tag: Ink L2 → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Ink." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="ink"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="ink"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="ink"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="ink"}[1h]))) + - slug: linea + name: Linea + tag: Linea → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Linea." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="linea"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="linea"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="linea"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="linea"}[1h]))) + - slug: mantle + name: Mantle + tag: Mantle → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Mantle." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="mantle"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="mantle"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="mantle"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="mantle"}[1h]))) + - slug: monad + name: Monad + tag: Monad → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Monad." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="monad"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="monad"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="monad"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="monad"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="monad"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="monad"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="monad"}[1h]))) + - slug: moonbeam + name: Moonbeam + tag: Moonbeam parachain → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Moonbeam." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="moonbeam"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="moonbeam"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="moonbeam"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="moonbeam"}[1h]))) + - slug: optimism + name: Optimism + tag: Optimism → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Optimism." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="optimism"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="optimism"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="optimism"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="optimism"}[1h]))) + - slug: scroll + name: Scroll + tag: Scroll → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Scroll." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="scroll"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="scroll"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="scroll"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="scroll"}[1h]))) + - slug: solana + name: Solana + tag: Solana → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Solana." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="solana"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="solana"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="solana"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="solana"}[1h]))) + - slug: unichain + name: Unichain + tag: Unichain → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from Unichain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="unichain"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="unichain"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="unichain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="unichain"}[1h]))) + - slug: world-chain + name: World Chain + tag: World Chain → any chain + formula: "50th percentile over 24h of Chainlink CCIP end-to-end delivery latency for messages sourced from World Chain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + mean: sum(rate(ccip_message_latency_milliseconds_sum{source_chain="world-chain"}[24h])) / sum(rate(ccip_message_latency_milliseconds_count{source_chain="world-chain"}[24h])) + sample_size: sum(increase(ccip_message_seen_total{source_chain="world-chain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(ccip_message_latency_milliseconds_bucket{source_chain="world-chain"}[1h]))) diff --git a/benchmarks/hyperlane-message-latency.yml b/benchmarks/hyperlane-message-latency.yml index 3e132756..3bb70b0d 100644 --- a/benchmarks/hyperlane-message-latency.yml +++ b/benchmarks/hyperlane-message-latency.yml @@ -143,3 +143,157 @@ providers: mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="sonic"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="sonic"}[24h])) sample_size: sum(increase(hyperlane_message_seen_total{source_chain="sonic"}[24h])) series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="sonic"}[1h]))) + - slug: avalanche + name: Avalanche + tag: Avalanche C-Chain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Avalanche." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="avalanche"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="avalanche"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="avalanche"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="avalanche"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="avalanche"}[1h]))) + - slug: berachain + name: Berachain + tag: Berachain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Berachain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="berachain"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="berachain"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="berachain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="berachain"}[1h]))) + - slug: bnb + name: BNB Chain + tag: BNB Chain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from BNB Chain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="bnb"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="bnb"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="bnb"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="bnb"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="bnb"}[1h]))) + - slug: celo + name: Celo + tag: Celo → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Celo." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="celo"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="celo"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="celo"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="celo"}[1h]))) + - slug: injective + name: Injective + tag: Injective (Cosmos) → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Injective." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="injective"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="injective"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="injective"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="injective"}[1h]))) + - slug: ink + name: Ink + tag: Ink L2 → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Ink." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="ink"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="ink"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="ink"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="ink"}[1h]))) + - slug: linea + name: Linea + tag: Linea → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Linea." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="linea"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="linea"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="linea"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="linea"}[1h]))) + - slug: mantle + name: Mantle + tag: Mantle → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Mantle." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="mantle"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="mantle"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="mantle"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="mantle"}[1h]))) + - slug: moonbeam + name: Moonbeam + tag: Moonbeam parachain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Moonbeam." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="moonbeam"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="moonbeam"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="moonbeam"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="moonbeam"}[1h]))) + - slug: optimism + name: Optimism + tag: Optimism → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Optimism." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="optimism"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="optimism"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="optimism"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="optimism"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="optimism"}[1h]))) + - slug: scroll + name: Scroll + tag: Scroll → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Scroll." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="scroll"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="scroll"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="scroll"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="scroll"}[1h]))) + - slug: solana + name: Solana + tag: Solana → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Solana." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="solana"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="solana"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="solana"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="solana"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="solana"}[1h]))) + - slug: unichain + name: Unichain + tag: Unichain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from Unichain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="unichain"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="unichain"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="unichain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="unichain"}[1h]))) + - slug: world-chain + name: World Chain + tag: World Chain → any chain + formula: "50th percentile over 24h of Hyperlane end-to-end delivery latency for messages sourced from World Chain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + mean: sum(rate(hyperlane_message_latency_milliseconds_sum{source_chain="world-chain"}[24h])) / sum(rate(hyperlane_message_latency_milliseconds_count{source_chain="world-chain"}[24h])) + sample_size: sum(increase(hyperlane_message_seen_total{source_chain="world-chain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(hyperlane_message_latency_milliseconds_bucket{source_chain="world-chain"}[1h]))) diff --git a/benchmarks/layerzero-message-latency.yml b/benchmarks/layerzero-message-latency.yml index 5d5f9fa0..dc2750ab 100644 --- a/benchmarks/layerzero-message-latency.yml +++ b/benchmarks/layerzero-message-latency.yml @@ -201,3 +201,124 @@ providers: mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="monad"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="monad"}[24h])) sample_size: sum(increase(lz_message_seen_total{source_chain="monad"}[24h])) series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="monad"}[1h]))) + - slug: berachain + name: Berachain + tag: Berachain → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Berachain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="berachain"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="berachain"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="berachain"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="berachain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="berachain"}[1h]))) + - slug: celo + name: Celo + tag: Celo → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Celo." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="celo"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="celo"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="celo"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="celo"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="celo"}[1h]))) + - slug: injective + name: Injective + tag: Injective (Cosmos) → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Injective." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="injective"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="injective"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="injective"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="injective"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="injective"}[1h]))) + - slug: ink + name: Ink + tag: Ink L2 → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Ink." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="ink"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="ink"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="ink"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="ink"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="ink"}[1h]))) + - slug: linea + name: Linea + tag: Linea → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Linea." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="linea"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="linea"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="linea"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="linea"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="linea"}[1h]))) + - slug: mantle + name: Mantle + tag: Mantle → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Mantle." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="mantle"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="mantle"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="mantle"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="mantle"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="mantle"}[1h]))) + - slug: moonbeam + name: Moonbeam + tag: Moonbeam parachain → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Moonbeam." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="moonbeam"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="moonbeam"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="moonbeam"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="moonbeam"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="moonbeam"}[1h]))) + - slug: scroll + name: Scroll + tag: Scroll → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Scroll." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="scroll"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="scroll"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="scroll"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="scroll"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="scroll"}[1h]))) + - slug: sui + name: Sui + tag: Sui → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Sui." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="sui"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="sui"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="sui"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="sui"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="sui"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="sui"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="sui"}[1h]))) + - slug: unichain + name: Unichain + tag: Unichain → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from Unichain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="unichain"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="unichain"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="unichain"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="unichain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="unichain"}[1h]))) + - slug: world-chain + name: World Chain + tag: World Chain → any chain + formula: "50th percentile over 24h of LayerZero end-to-end delivery latency for messages sourced from World Chain." + queries: + p50: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p90: histogram_quantile(0.90, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + p99: histogram_quantile(0.99, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="world-chain"}[24h]))) + mean: sum(rate(lz_message_latency_milliseconds_sum{source_chain="world-chain"}[24h])) / sum(rate(lz_message_latency_milliseconds_count{source_chain="world-chain"}[24h])) + sample_size: sum(increase(lz_message_seen_total{source_chain="world-chain"}[24h])) + series: histogram_quantile(0.50, sum by(le) (rate(lz_message_latency_milliseconds_bucket{source_chain="world-chain"}[1h])))