From 8464b7703e0f6d2c5c4166112e61babc9f0bfd80 Mon Sep 17 00:00:00 2001 From: skudasov Date: Tue, 9 Sep 2025 13:03:59 -0300 Subject: [PATCH 1/2] add custom on-chain-metrics target for both local and Dockerized version --- framework/observability/compose/conf/prometheus.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/framework/observability/compose/conf/prometheus.yml b/framework/observability/compose/conf/prometheus.yml index 290aefe2b..d2897c4b9 100644 --- a/framework/observability/compose/conf/prometheus.yml +++ b/framework/observability/compose/conf/prometheus.yml @@ -2,6 +2,11 @@ global: scrape_interval: 10s scrape_configs: + - job_name: 'on-chain-metrics' + metrics_path: /on-chain-metrics + scrape_interval: 10s + static_configs: + - targets: [ 'host.docker.internal:9112', 'on-chain-metrics:9112'] - job_name: 'otel-collector' scrape_interval: 10s static_configs: From ad85898e598f5964bcad3be5a9e82cdabcacfd80 Mon Sep 17 00:00:00 2001 From: skudasov Date: Tue, 9 Sep 2025 18:06:27 -0300 Subject: [PATCH 2/2] add custom on-chain-metrics target for both local and Dockerized version, add container name field for blockchains --- framework/.changeset/v0.10.24.md | 2 ++ framework/components/blockchain/blockchain.go | 9 +++++---- framework/components/blockchain/containers.go | 3 +++ framework/observability/compose/conf/prometheus.yml | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 framework/.changeset/v0.10.24.md diff --git a/framework/.changeset/v0.10.24.md b/framework/.changeset/v0.10.24.md new file mode 100644 index 000000000..131f211eb --- /dev/null +++ b/framework/.changeset/v0.10.24.md @@ -0,0 +1,2 @@ +- On chain metrics scrape targets +- Allow to specify custom names for blockchain containers diff --git a/framework/components/blockchain/blockchain.go b/framework/components/blockchain/blockchain.go index 7589c9557..82a4ec17e 100644 --- a/framework/components/blockchain/blockchain.go +++ b/framework/components/blockchain/blockchain.go @@ -34,10 +34,11 @@ const ( // Input is a blockchain network configuration params type Input struct { // Common EVM fields - Type string `toml:"type" validate:"required,oneof=anvil geth besu solana aptos tron sui ton" envconfig:"net_type"` - Image string `toml:"image"` - PullImage bool `toml:"pull_image"` - Port string `toml:"port"` + Type string `toml:"type" validate:"required,oneof=anvil geth besu solana aptos tron sui ton" envconfig:"net_type"` + Image string `toml:"image"` + PullImage bool `toml:"pull_image"` + Port string `toml:"port"` + ContainerName string `toml:"container_name"` // Not applicable to Solana, ws port for Solana is +1 of port WSPort string `toml:"port_ws"` ChainID string `toml:"chain_id"` diff --git a/framework/components/blockchain/containers.go b/framework/components/blockchain/containers.go index 8a7e1ff7f..a44f3bda8 100644 --- a/framework/components/blockchain/containers.go +++ b/framework/components/blockchain/containers.go @@ -24,6 +24,9 @@ const ( func baseRequest(in *Input, useWS ExposeWs) testcontainers.ContainerRequest { containerName := framework.DefaultTCName("blockchain-node") + if in.ContainerName != "" { + containerName = in.ContainerName + } bindPort := fmt.Sprintf("%s/tcp", in.Port) exposedPorts := []string{bindPort} if useWS { diff --git a/framework/observability/compose/conf/prometheus.yml b/framework/observability/compose/conf/prometheus.yml index d2897c4b9..89eb6c9c1 100644 --- a/framework/observability/compose/conf/prometheus.yml +++ b/framework/observability/compose/conf/prometheus.yml @@ -4,9 +4,9 @@ global: scrape_configs: - job_name: 'on-chain-metrics' metrics_path: /on-chain-metrics - scrape_interval: 10s + scrape_interval: 2s static_configs: - - targets: [ 'host.docker.internal:9112', 'on-chain-metrics:9112'] + - targets: [ 'host.docker.internal:9112', '172.17.0.1:9112'] - job_name: 'otel-collector' scrape_interval: 10s static_configs: