Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,180 changes: 657 additions & 523 deletions poetry.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ license = "GPL 3.0"

[tool.poetry.dependencies]
python = "^3.12"
prometheus-client = "^0.16.0"
prometheus-client = "0.21.1"
timeout-decorator = "^0.5.0"
pytest = "^7.2.1"
pytest-xdist = "^3.2.1"
more-itertools = "^10.1.0"
web3 = "^7.8.0"
web3-multi-provider = "^2.0.0"
web3-multi-provider = { version = "^2.2.0", extras = ["metrics"] }
json-stream = "^2.3.2"
oz-merkle-tree = { git = "https://github.com/lidofinance/oz-merkle-tree" }
py-multiformats-cid = "^0.4.4"
Expand Down
19 changes: 9 additions & 10 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

from packaging.version import Version
from prometheus_client import start_http_server
from web3_multi_provider.metrics import init_metrics

from src import constants
from src import variables
from src import constants, variables
from src.metrics.healthcheck_server import start_pulse_server
from src.metrics.logging import logging
from src.metrics.prometheus.basic import ENV_VARIABLES_INFO, BUILD_INFO
from src.metrics.prometheus.basic import BUILD_INFO, ENV_VARIABLES_INFO
from src.modules.accounting.accounting import Accounting
from src.modules.checks.checks_module import ChecksModule
from src.modules.csm.csm import CSOracle
Expand All @@ -19,15 +19,14 @@
from src.utils.exception import IncompatibleException
from src.web3py.contract_tweak import tweak_w3_contracts
from src.web3py.extensions import (
LidoContracts,
TransactionUtils,
ConsensusClientModule,
KeysAPIClientModule,
LidoValidatorsProvider,
FallbackProviderModule,
KeysAPIClientModule,
LazyCSM,
LidoContracts,
LidoValidatorsProvider,
TransactionUtils,
)
from src.web3py.middleware import add_requests_metric_middleware
from src.web3py.types import Web3

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -90,8 +89,8 @@ def main(module_name: OracleModule):
'ipfs': lambda: ipfs, # type: ignore[dict-item]
})

logger.info({'msg': 'Add metrics middleware for ETH1 requests.'})
add_requests_metric_middleware(web3)
logger.info({'msg': 'Initialize prometheus metrics.'})
init_metrics()

logger.info({'msg': 'Sanity checks.'})

Expand Down
10 changes: 1 addition & 9 deletions src/metrics/prometheus/basic.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from enum import Enum

from prometheus_client import Gauge, Histogram, Counter, Info
from prometheus_client import Counter, Gauge, Histogram, Info
from prometheus_client.utils import INF

from src.variables import PROMETHEUS_PREFIX
Expand Down Expand Up @@ -60,14 +60,6 @@ class Status(Enum):

requests_buckets = (.01, .05, .1, .25, .5, .75, 1.0, 2.5, 5.0, 7.5, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 120.0, INF)

EL_REQUESTS_DURATION = Histogram(
'el_requests_duration',
'Duration of requests to EL RPC',
['endpoint', 'call_method', 'call_to', 'code', 'domain'],
namespace=PROMETHEUS_PREFIX,
buckets=requests_buckets,
)

CL_REQUESTS_DURATION = Histogram(
'cl_requests_duration',
'Duration of requests to CL API',
Expand Down
98 changes: 0 additions & 98 deletions src/web3py/middleware.py

This file was deleted.

7 changes: 5 additions & 2 deletions tests/modules/submodules/test_oracle_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
from web3_multi_provider.multi_http_provider import NoActiveProviderError

from src import variables
from src.modules.submodules.exceptions import IncompatibleOracleVersion, IsNotMemberException
from src.modules.submodules.exceptions import (
IncompatibleOracleVersion,
IsNotMemberException,
)
from src.modules.submodules.oracle_module import BaseModule, ModuleExecuteDelay
from src.providers.http_provider import NotOkResponse
from src.providers.keys.client import KeysOutdatedException
Expand Down Expand Up @@ -103,7 +106,7 @@ def _throw_on_third_call():
"ex",
[
DecoratorTimeoutError("Fake exception"),
NoActiveProviderError("Fake exception"),
NoActiveProviderError.from_exceptions(message="Fake exception", exceptions=[RuntimeError('provider 1 error')]),
RequestsConnectionError("Fake exception"),
NotOkResponse(status=500, text="Fake exception"),
NoSlotsAvailable("Fake exception"),
Expand Down
Loading
Loading