From 2b0af7dae3cde4d40aaff3dd14ae6f16486c510f Mon Sep 17 00:00:00 2001 From: Nikhil Vasan <97126437+nivasan1@users.noreply.github.com> Date: Mon, 22 Jan 2024 20:10:23 -0500 Subject: [PATCH] feat: Add `ABCIMethodLatency` histogram [BLO-791] (#26) * Add ABCIMethodLatency Histogram * instrument Prepare/ProcessProposal * testing * integration tests * fix docker-build * report latencies in all cases * extra tests --- .dockerignore | 1 - README.md | 11 ++ abci/proposals/proposals.go | 68 +++++++----- abci/proposals/proposals_test.go | 153 ++++++++++++++++++++++++++ abci/ve/vote_extension.go | 4 +- contrib/images/slinky.e2e.Dockerfile | 2 +- contrib/prometheus/prometheus.yml | 2 +- service/metrics/README.md | 22 ++++ service/metrics/metrics.go | 88 ++++++++------- service/metrics/mocks/mock_metrics.go | 24 ++-- tests/integration/go.mod | 2 +- tests/integration/go.sum | 62 ++++------- tests/integration/slinky_suite.go | 2 +- 13 files changed, 316 insertions(+), 125 deletions(-) create mode 100644 service/metrics/README.md diff --git a/.dockerignore b/.dockerignore index 5d9cc7add..ff86dbb06 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1 @@ go.work* -go.sum \ No newline at end of file diff --git a/README.md b/README.md index 9c065cdd3..fc6cac80d 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,17 @@ To see all network metrics, open a new terminal and run the following command an $ make run-prom-client ``` +## Metrics + +### Oracle Service Metrics + +* metrics relevant to the oracle service's health + operation are [here](./oracle/metrics/README.md) +* metrics relevant to the operation / health of the oracle's providers are [here](./providers/base/metrics/README.md) + +### Oracle Application / Network Metrics + +* metrics relevant to the network's (that is running the instance slinky) performance are [here](./service/metrics/README.md) + ## Future Work The oracle side car is a combination of the oracle and provider packages. This is being moved to a [separate repository](https://github.com/skip-mev/slinky-sidecar). diff --git a/abci/proposals/proposals.go b/abci/proposals/proposals.go index a55ebc281..5a461cf9d 100644 --- a/abci/proposals/proposals.go +++ b/abci/proposals/proposals.go @@ -3,8 +3,7 @@ package proposals import ( "bytes" "fmt" - - "github.com/cometbft/cometbft/types/time" + "time" servicemetrics "github.com/skip-mev/slinky/service/metrics" @@ -93,11 +92,24 @@ func NewProposalHandler( // enabled, the handler will inject the extended commit info into the proposal. func (h *ProposalHandler) PrepareProposalHandler() sdk.PrepareProposalHandler { return func(ctx sdk.Context, req *cometabci.RequestPrepareProposal) (*cometabci.ResponsePrepareProposal, error) { - startTime := time.Now() var ( - extInfoBz []byte - err error + extInfoBz []byte + err error + wrappedPrepareProposalLatency time.Duration ) + startTime := time.Now() + + // report the slinky specific PrepareProposal latency + defer func() { + totalLatency := time.Since(startTime) + h.logger.Info( + "recording handle time metrics of prepare-proposal (seconds)", + "total latency", totalLatency.Seconds(), + "wrapped prepare proposal latency", wrappedPrepareProposalLatency.Seconds(), + "slinky prepare proposal latency", (totalLatency - wrappedPrepareProposalLatency).Seconds(), + ) + h.metrics.ObserveABCIMethodLatency(servicemetrics.PrepareProposal, totalLatency-wrappedPrepareProposalLatency) + }() if req == nil { h.logger.Error("PrepareProposalHandler received a nil request") @@ -154,29 +166,19 @@ func (h *ProposalHandler) PrepareProposalHandler() sdk.PrepareProposalHandler { } } - prepareBlockStart := time.Now() - // Build the proposal. + // Build the proposal. Get the duration that the wrapped prepare proposal handler executed for. + wrappedPrepareProposalStartTime := time.Now() resp, err := h.prepareProposalHandler(ctx, req) + wrappedPrepareProposalLatency = time.Since(wrappedPrepareProposalStartTime) if err != nil { h.logger.Error("failed to prepare proposal", "err", err) return &cometabci.ResponsePrepareProposal{Txs: make([][]byte, 0)}, err } - prepareBlockEnd := time.Now() h.logger.Info("wrapped prepareProposalHandler produced response ", "txs", len(resp.Txs)) // Inject our VE Tx ( if extInfoBz is non-empty), and resize our response Txs to respect req.MaxTxBytes resp.Txs = h.injectAndResize(resp.Txs, extInfoBz, req.MaxTxBytes+int64(len(extInfoBz))) - // Record total time--not including h.prepareProposalHandler - preHandleTime := prepareBlockStart.Sub(startTime) - postHandleTime := time.Now().Sub(prepareBlockEnd) - h.logger.Info( - "recording handle time metrics", - "pre_handle_time", preHandleTime, - "post_handle_time", postHandleTime, - "total_time", preHandleTime+postHandleTime, - ) - h.metrics.ObservePrepareProposalTime(preHandleTime + postHandleTime) h.logger.Info( "prepared proposal", "txs", len(resp.Txs), @@ -223,18 +225,26 @@ func (h *ProposalHandler) injectAndResize(appTxs [][]byte, injectTx []byte, maxS func (h *ProposalHandler) ProcessProposalHandler() sdk.ProcessProposalHandler { return func(ctx sdk.Context, req *cometabci.RequestProcessProposal) (*cometabci.ResponseProcessProposal, error) { start := time.Now() - if req == nil { - h.logger.Error("ProcessProposalHandler received a nil request") - return nil, fmt.Errorf("received a nil request") - } + var wrappedProcessProposalLatency time.Duration + + // Defer a function to record the total time it took to process the proposal. defer func() { - processDuration := time.Now().Sub(start) + totalLatency := time.Since(start) h.logger.Info( - "recording process proposal time", - "duration", processDuration, + "recording handle time metrics of process-proposal (seconds)", + "total latency", totalLatency.Seconds(), + "wrapped prepare proposal latency", wrappedProcessProposalLatency.Seconds(), + "slinky prepare proposal latency", (totalLatency - wrappedProcessProposalLatency).Seconds(), ) - h.metrics.ObserveProcessProposalTime(processDuration) + h.metrics.ObserveABCIMethodLatency(servicemetrics.ProcessProposal, totalLatency-wrappedProcessProposalLatency) }() + + // this should never happen, but just in case + if req == nil { + h.logger.Error("ProcessProposalHandler received a nil request") + return nil, fmt.Errorf("received a nil request") + } + voteExtensionsEnabled := ve.VoteExtensionsEnabled(ctx) h.logger.Info( @@ -276,6 +286,10 @@ func (h *ProposalHandler) ProcessProposalHandler() sdk.ProcessProposalHandler { req.Txs = req.Txs[NumInjectedTxs:] } - return h.processProposalHandler(ctx, req) + // call the wrapped process-proposal + wrappedProcessProposalStartTime := time.Now() + resp, err := h.processProposalHandler(ctx, req) + wrappedProcessProposalLatency = time.Since(wrappedProcessProposalStartTime) + return resp, err } } diff --git a/abci/proposals/proposals_test.go b/abci/proposals/proposals_test.go index 88342434e..cbc035098 100644 --- a/abci/proposals/proposals_test.go +++ b/abci/proposals/proposals_test.go @@ -4,6 +4,7 @@ import ( "fmt" "math/big" "testing" + "time" servicemetrics "github.com/skip-mev/slinky/service/metrics" @@ -23,6 +24,7 @@ import ( currencypairmocks "github.com/skip-mev/slinky/abci/strategies/currencypair/mocks" "github.com/skip-mev/slinky/abci/testutils" "github.com/skip-mev/slinky/abci/ve" + servicemetricsmocks "github.com/skip-mev/slinky/service/metrics/mocks" oracletypes "github.com/skip-mev/slinky/x/oracle/types" ) @@ -854,6 +856,157 @@ func (s *ProposalsTestSuite) TestProcessProposal() { } } +func (s *ProposalsTestSuite) TestProposalLatency() { + // check that no latency is reported for a failed PrepareProposal + metricsmocks := servicemetricsmocks.NewMetrics(s.T()) + + // check that latency reported in upstream logic is ignored + s.Run("wrapped prepare proposal latency is ignored", func() { + propHandler := proposals.NewProposalHandler( + log.NewTestLogger(s.T()), + func(ctx sdk.Context, rpp *cometabci.RequestPrepareProposal) (*cometabci.ResponsePrepareProposal, error) { + // simulate a long-running prepare proposal + time.Sleep(200 * time.Millisecond) + return &cometabci.ResponsePrepareProposal{ + Txs: nil, + }, nil + }, + nil, + func(ctx sdk.Context, height int64, extInfo cometabci.ExtendedCommitInfo) error { + time.Sleep(100 * time.Millisecond) + return nil + }, + codec.NewDefaultVoteExtensionCodec(), + codec.NewDefaultExtendedCommitCodec(), + currencypairmocks.NewCurrencyPairStrategy(s.T()), + metricsmocks, + ) + + req := s.createRequestPrepareProposal( // the votes here are invalid, but that's fine + cometabci.ExtendedCommitInfo{ + Round: 1, + Votes: nil, + }, + nil, + 4, // vote extensions will be enabled + ) + + s.ctx = s.ctx.WithBlockHeight(4) + metricsmocks.On("ObserveABCIMethodLatency", servicemetrics.PrepareProposal, mock.Anything).Return().Run(func(args mock.Arguments) { + // the second arg shld be a duration + latency := args.Get(1).(time.Duration) + s.Require().True(latency >= 100*time.Millisecond) // shld have included latency from validate vote extensions + s.Require().True(latency < 300*time.Millisecond) // shld have ignored wrapped prepare-proposal latency + }).Once() + + _, err := propHandler.PrepareProposalHandler()(s.ctx, req) + s.Require().NoError(err) + }) + + s.Run("prepare proposal latency is reported in the case of failures", func() { + propHandler := proposals.NewProposalHandler( + log.NewTestLogger(s.T()), + nil, + nil, + func(ctx sdk.Context, height int64, extInfo cometabci.ExtendedCommitInfo) error { + time.Sleep(100 * time.Millisecond) + return fmt.Errorf("error in validate vote extensions") + }, + codec.NewDefaultVoteExtensionCodec(), + codec.NewDefaultExtendedCommitCodec(), + currencypairmocks.NewCurrencyPairStrategy(s.T()), + metricsmocks, + ) + + req := s.createRequestPrepareProposal( // the votes here are invalid, but that's fine + cometabci.ExtendedCommitInfo{ + Round: 1, + Votes: nil, + }, + nil, + 4, // vote extensions will be enabled + ) + metricsmocks.On("ObserveABCIMethodLatency", servicemetrics.PrepareProposal, mock.Anything).Return().Run(func(args mock.Arguments) { + // the second arg shld be a duration + latency := args.Get(1).(time.Duration) + s.Require().True(latency >= 100*time.Millisecond) // shld have included latency from validate vote extensions + }).Once() + + _, err := propHandler.PrepareProposalHandler()(s.ctx, req) + s.Require().Error(err, "error in validate vote extensions") + }) + + s.Run("wrapped process proposal latency is ignored", func() { + propHandler := proposals.NewProposalHandler( + log.NewTestLogger(s.T()), + baseapp.NoOpPrepareProposal(), + func(ctx sdk.Context, req *cometabci.RequestProcessProposal) (*cometabci.ResponseProcessProposal, error) { + // simulate a long-running process proposal + time.Sleep(200 * time.Millisecond) + return &cometabci.ResponseProcessProposal{}, nil + }, + func(ctx sdk.Context, height int64, extInfo cometabci.ExtendedCommitInfo) error { + // simulate a long-running validate vote extensions + time.Sleep(100 * time.Millisecond) + return nil + }, + codec.NewDefaultVoteExtensionCodec(), + codec.NewDefaultExtendedCommitCodec(), + currencypairmocks.NewCurrencyPairStrategy(s.T()), + metricsmocks, + ) + + _, extInfoBz, err := testutils.CreateExtendedCommitInfo( + []cometabci.ExtendedVoteInfo{}, + codec.NewDefaultExtendedCommitCodec(), + ) + s.Require().NoError(err) + + req := s.createRequestProcessProposal([][]byte{extInfoBz}, 4) + metricsmocks.On("ObserveABCIMethodLatency", servicemetrics.ProcessProposal, mock.Anything).Return().Run(func(args mock.Arguments) { + // the second arg shld be a duration + latency := args.Get(1).(time.Duration) + s.Require().True(latency >= 100*time.Millisecond) // shld have included validate vote extensions latency + s.Require().True(latency < 300*time.Millisecond) // shld have ignored the wrapped processProposal latency + }).Once() + + _, err = propHandler.ProcessProposalHandler()(s.ctx, req) + s.Require().NoError(err) + }) + + s.Run("process proposal latency is reported in the case of failures", func() { + propHandler := proposals.NewProposalHandler( + log.NewTestLogger(s.T()), + nil, + nil, + func(ctx sdk.Context, height int64, extInfo cometabci.ExtendedCommitInfo) error { + time.Sleep(100 * time.Millisecond) + return fmt.Errorf("error in validate vote extensions") + }, + codec.NewDefaultVoteExtensionCodec(), + codec.NewDefaultExtendedCommitCodec(), + currencypairmocks.NewCurrencyPairStrategy(s.T()), + metricsmocks, + ) + + _, extInfoBz, err := testutils.CreateExtendedCommitInfo( + []cometabci.ExtendedVoteInfo{}, + codec.NewDefaultExtendedCommitCodec(), + ) + s.Require().NoError(err) + + req := s.createRequestProcessProposal([][]byte{extInfoBz}, 4) + metricsmocks.On("ObserveABCIMethodLatency", servicemetrics.ProcessProposal, mock.Anything).Return().Run(func(args mock.Arguments) { + // the second arg shld be a duration + latency := args.Get(1).(time.Duration) + s.Require().True(latency >= 100*time.Millisecond) // shld have included validate vote extensions latency + }).Once() + + _, err = propHandler.ProcessProposalHandler()(s.ctx, req) + s.Require().Error(err, "error in validate vote extensions") + }) +} + func (s *ProposalsTestSuite) createRequestPrepareProposal( extendedCommitInfo cometabci.ExtendedCommitInfo, txs [][]byte, diff --git a/abci/ve/vote_extension.go b/abci/ve/vote_extension.go index f2b51b785..d678b5b7c 100644 --- a/abci/ve/vote_extension.go +++ b/abci/ve/vote_extension.go @@ -40,7 +40,7 @@ type VoteExtensionHandler struct { // voteExtensionCodec is an interface to handle the marshalling / unmarshalling of vote-extensions voteExtensionCodec compression.VoteExtensionCodec - // preBlocker is utilzed to update and retrieve the latest on-chain price information. + // preBlocker is utilized to update and retrieve the latest on-chain price information. preBlocker sdk.PreBlocker } @@ -106,7 +106,7 @@ func (h *VoteExtensionHandler) ExtendVoteHandler() sdk.ExtendVoteHandler { reqCtx, cancel := context.WithTimeout(ctx.Context(), h.timeout) defer cancel() - // To ensure liveliness, we return a vote even if the oracle is not running + // To ensure liveness, we return a vote even if the oracle is not running // or if the oracle returns a bad response. oracleResp, err := h.oracleClient.Prices(reqCtx, &service.QueryPricesRequest{}) if err != nil { diff --git a/contrib/images/slinky.e2e.Dockerfile b/contrib/images/slinky.e2e.Dockerfile index f129f5c90..772e64ec0 100644 --- a/contrib/images/slinky.e2e.Dockerfile +++ b/contrib/images/slinky.e2e.Dockerfile @@ -15,7 +15,7 @@ RUN make build-test-app ## This will expose the tendermint and cosmos ports alongside ## starting up the sim app and the slinky daemon FROM ubuntu:rolling -EXPOSE 26656 26657 1317 9090 7171 26655 +EXPOSE 26656 26657 1317 9090 7171 26655 8081 ENTRYPOINT ["slinkyd", "start"] COPY --from=builder /src/slinky/build/* /usr/local/bin/ diff --git a/contrib/prometheus/prometheus.yml b/contrib/prometheus/prometheus.yml index 5f170fbd7..827b61fda 100644 --- a/contrib/prometheus/prometheus.yml +++ b/contrib/prometheus/prometheus.yml @@ -12,4 +12,4 @@ scrape_configs: # scheme defaults to 'http'. static_configs: - - targets: ["host.docker.internal:8000"] \ No newline at end of file + - targets: ["host.docker.internal:8000"] diff --git a/service/metrics/README.md b/service/metrics/README.md new file mode 100644 index 000000000..16a456974 --- /dev/null +++ b/service/metrics/README.md @@ -0,0 +1,22 @@ +# Oracle Application / Service Metrics + +## `oracle_response_latency` + +* **purpose** + * This prometheus histogram measures the RTT time taken (per request) from the `metrics_client`'s request to the oracle's server's response. + * Observations from this histogram are measured in nano-seconds + +## `oracle_responses` + +* **purpose** + * This prometheus counter measures the the # of oracle responses that a `metrics_client` has received +* **labels** + * `status` := (failure, success) + +## `oracle_ABCI_method_latency` + +* **purpose** + * This prometheus histogram measures the latency (per request) in seconds of ABCI method calls + * The latency is measured over all of the slinky-specific code, and ignores any down-stream dependencies +* **labels** + * `method`: one of (ExtendVote, PrepareProposal, ProcessProposal, VerifyVoteExtension, FinalizeBlock), this is the ABCI method that this latency report resulted from diff --git a/service/metrics/metrics.go b/service/metrics/metrics.go index 0c9e4c8b4..23711bd3a 100644 --- a/service/metrics/metrics.go +++ b/service/metrics/metrics.go @@ -11,11 +11,12 @@ import ( ) const ( - TickerLabel = "ticker" - InclusionLabel = "included" - AppNamespace = "app" - ProviderLabel = "provider" - StatusLabel = "status" + TickerLabel = "ticker" + InclusionLabel = "included" + AppNamespace = "app" + ProviderLabel = "provider" + StatusLabel = "status" + ABCIMethodLabel = "abci_method" ) type Status int @@ -43,6 +44,33 @@ func StatusFromError(err error) Status { return StatusFailure } +type ABCIMethod int + +const ( + PrepareProposal ABCIMethod = iota + ProcessProposal + ExtendVote + VerifyVoteExtension + FinalizeBlock +) + +func (a ABCIMethod) String() string { + switch a { + case PrepareProposal: + return "prepare_proposal" + case ProcessProposal: + return "process_proposal" + case ExtendVote: + return "extend_vote" + case VerifyVoteExtension: + return "verify_vote_extension" + case FinalizeBlock: + return "finalize_block" + default: + return "not_implemented" + } +} + //go:generate mockery --name Metrics --filename mock_metrics.go type Metrics interface { // ObserveOracleResponseLatency records the time it took for the oracle to respond (this is a histogram) @@ -57,11 +85,8 @@ type Metrics interface { // AddTickerInclusionStatus increments the counter representing the number of times a ticker was included (or not included) in the last commit. AddTickerInclusionStatus(ticker string, included bool) - // ObserveProcessProposalTime records the time it took for the oracle-specific parts of process proposal - ObserveProcessProposalTime(duration time.Duration) - - // ObservePrepareProposalTime records the time it took for the oracle-specific parts of prepare proposal - ObservePrepareProposalTime(duration time.Duration) + // ObserveABCIMethodLatency reports the given latency (as a duration), for the given ABCIMethod, and updates the ABCIMethodLatency histogram w/ that value. + ObserveABCIMethodLatency(method ABCIMethod, duration time.Duration) } type nopMetricsImpl struct{} @@ -71,12 +96,11 @@ func NewNopMetrics() Metrics { return &nopMetricsImpl{} } -func (m *nopMetricsImpl) ObserveOracleResponseLatency(_ time.Duration) {} -func (m *nopMetricsImpl) AddOracleResponse(_ Status) {} -func (m *nopMetricsImpl) AddVoteIncludedInLastCommit(_ bool) {} -func (m *nopMetricsImpl) AddTickerInclusionStatus(_ string, _ bool) {} -func (m *nopMetricsImpl) ObservePrepareProposalTime(_ time.Duration) {} -func (m *nopMetricsImpl) ObserveProcessProposalTime(_ time.Duration) {} +func (m *nopMetricsImpl) ObserveOracleResponseLatency(_ time.Duration) {} +func (m *nopMetricsImpl) AddOracleResponse(_ Status) {} +func (m *nopMetricsImpl) AddVoteIncludedInLastCommit(_ bool) {} +func (m *nopMetricsImpl) AddTickerInclusionStatus(_ string, _ bool) {} +func (m *nopMetricsImpl) ObserveABCIMethodLatency(_ ABCIMethod, _ time.Duration) {} func NewMetrics() Metrics { m := &metricsImpl{ @@ -101,18 +125,12 @@ func NewMetrics() Metrics { Name: "ticker_inclusion_status", Help: "The number of times a ticker was included (or not included) in this validator's vote", }, []string{TickerLabel, InclusionLabel}), - prepareProposalTime: prometheus.NewHistogram(prometheus.HistogramOpts{ - Namespace: AppNamespace, - Name: "oracle_prepare_proposal_time", - Help: "The time it took for the oracle-specific parts of prepare proposal", - Buckets: prometheus.ExponentialBuckets(1, 2, 10), - }), - processProposalTime: prometheus.NewHistogram(prometheus.HistogramOpts{ + abciMethodLatency: prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: AppNamespace, - Name: "oracle_process_proposal_time", - Help: "The time it took for the oracle-specific parts of process proposal", - Buckets: prometheus.ExponentialBuckets(1, 2, 10), - }), + Name: "abci_method_latency", + Help: "The time it took for an ABCI method to execute slinky specific logic (in seconds)", + Buckets: []float64{.0001, .0004, .002, .009, .02, .1, .65, 2, 6, 25}, + }, []string{ABCIMethodLabel}), } // register the above metrics @@ -120,8 +138,7 @@ func NewMetrics() Metrics { prometheus.MustRegister(m.oracleResponseCounter) prometheus.MustRegister(m.voteIncludedInLastCommit) prometheus.MustRegister(m.tickerInclusionStatus) - prometheus.MustRegister(m.prepareProposalTime) - prometheus.MustRegister(m.processProposalTime) + prometheus.MustRegister(m.abciMethodLatency) return m } @@ -131,16 +148,13 @@ type metricsImpl struct { oracleResponseCounter *prometheus.CounterVec voteIncludedInLastCommit *prometheus.CounterVec tickerInclusionStatus *prometheus.CounterVec - prepareProposalTime prometheus.Histogram - processProposalTime prometheus.Histogram -} - -func (m *metricsImpl) ObserveProcessProposalTime(duration time.Duration) { - m.processProposalTime.Observe(float64(duration.Milliseconds())) + abciMethodLatency *prometheus.HistogramVec } -func (m *metricsImpl) ObservePrepareProposalTime(duration time.Duration) { - m.prepareProposalTime.Observe(float64(duration.Milliseconds())) +func (m *metricsImpl) ObserveABCIMethodLatency(method ABCIMethod, duration time.Duration) { + m.abciMethodLatency.With(prometheus.Labels{ + ABCIMethodLabel: method.String(), + }).Observe(duration.Seconds()) } func (m *metricsImpl) ObserveOracleResponseLatency(duration time.Duration) { diff --git a/service/metrics/mocks/mock_metrics.go b/service/metrics/mocks/mock_metrics.go index f081a8420..525a3f9cd 100644 --- a/service/metrics/mocks/mock_metrics.go +++ b/service/metrics/mocks/mock_metrics.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.40.1. DO NOT EDIT. +// Code generated by mockery v2.21.1. DO NOT EDIT. package mocks @@ -29,27 +29,23 @@ func (_m *Metrics) AddVoteIncludedInLastCommit(included bool) { _m.Called(included) } -// ObserveOracleResponseLatency provides a mock function with given fields: duration -func (_m *Metrics) ObserveOracleResponseLatency(duration time.Duration) { - _m.Called(duration) +// ObserveABCIMethodLatency provides a mock function with given fields: method, duration +func (_m *Metrics) ObserveABCIMethodLatency(method metrics.ABCIMethod, duration time.Duration) { + _m.Called(method, duration) } -// ObservePrepareProposalTime provides a mock function with given fields: duration -func (_m *Metrics) ObservePrepareProposalTime(duration time.Duration) { +// ObserveOracleResponseLatency provides a mock function with given fields: duration +func (_m *Metrics) ObserveOracleResponseLatency(duration time.Duration) { _m.Called(duration) } -// ObserveProcessProposalTime provides a mock function with given fields: duration -func (_m *Metrics) ObserveProcessProposalTime(duration time.Duration) { - _m.Called(duration) +type mockConstructorTestingTNewMetrics interface { + mock.TestingT + Cleanup(func()) } // NewMetrics creates a new instance of Metrics. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMetrics(t interface { - mock.TestingT - Cleanup(func()) -}) *Metrics { +func NewMetrics(t mockConstructorTestingTNewMetrics) *Metrics { mock := &Metrics{} mock.Mock.Test(t) diff --git a/tests/integration/go.mod b/tests/integration/go.mod index 174d173c1..d5cd4c9d2 100644 --- a/tests/integration/go.mod +++ b/tests/integration/go.mod @@ -192,7 +192,7 @@ require ( golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.20.0 // indirect golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.5.0 // indirect + golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/tests/integration/go.sum b/tests/integration/go.sum index 465ddfb36..3275dfc32 100644 --- a/tests/integration/go.sum +++ b/tests/integration/go.sum @@ -194,16 +194,13 @@ cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= -cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= -cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= -cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= +cosmossdk.io/log v1.3.0 h1:L0Z0XstClo2kOU4h3V1iDoE5Ji64sg5HLOogzGg67Oo= cosmossdk.io/log v1.3.0/go.mod h1:HIDyvWLqZe2ovlWabsDN4aPMpY/nUEquAhgfTf2ZzB8= cosmossdk.io/math v1.2.0 h1:8gudhTkkD3NxOP2YyyJIYYmt6dQ55ZfJkDOaxXpy7Ig= cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= -cosmossdk.io/store v1.0.1 h1:XBDhCqlL+2MUgE8CHWwndKVJ4beX+TyaPIjB5SV62dM= -cosmossdk.io/store v1.0.1/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= @@ -211,11 +208,9 @@ cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.12.0 h1:Ry2btjQdrfrje9qZ3iZeZSmDArjgxUJMMcLMrX4wj5U= -cosmossdk.io/x/tx v0.12.0/go.mod h1:qTth2coAGkwCwOCjqQ8EAQg+9udXNRzcnSbMgGKGEI0= +cosmossdk.io/x/tx v0.13.0 h1:8lzyOh3zONPpZv2uTcUmsv0WTXy6T1/aCVDCqShmpzU= cosmossdk.io/x/tx v0.13.0/go.mod h1:CpNQtmoqbXa33/DVxWQNx5Dcnbkv2xGUhL7tYQ5wUsY= -cosmossdk.io/x/upgrade v0.1.0 h1:z1ZZG4UL9ICTNbJDYZ6jOnF9GdEK9wyoEFi4BUScHXE= -cosmossdk.io/x/upgrade v0.1.0/go.mod h1:/6jjNGbiPCNtmA1N+rBtP601sr0g4ZXuj3yC6ClPCGY= +cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= @@ -248,8 +243,8 @@ github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/ github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/adlio/schema v1.3.3/go.mod h1:1EsRssiv9/Ce2CMzq5DoL7RiMshhuigQxrR4DMV9fHg= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/assert/v2 v2.4.1 h1:mwPZod/d35nlaCppr6sFP0rbCL05WH9fIo7lvsf47zo= -github.com/alecthomas/assert/v2 v2.4.1/go.mod h1:fw5suVxB+wfYJ3291t0hRTqtGzFYdSwstnRQdaQx2DM= +github.com/alecthomas/assert/v2 v2.5.0 h1:OJKYg53BQx06/bMRBSPDCO49CbCDNiUQXwdoNrt6x5w= +github.com/alecthomas/assert/v2 v2.5.0/go.mod h1:fw5suVxB+wfYJ3291t0hRTqtGzFYdSwstnRQdaQx2DM= github.com/alecthomas/repr v0.3.0 h1:NeYzUPfjjlqHY4KtzgKJiWd6sVq2eNUPTi34PiFGjY8= github.com/alecthomas/repr v0.3.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -283,8 +278,7 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bits-and-blooms/bitset v1.12.0 h1:U/q1fAF7xXRhFCrhROzIfffYnu+dlS38vCZtmFVPHmA= -github.com/bits-and-blooms/bitset v1.12.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE= github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= @@ -363,8 +357,7 @@ github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0 github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.50.2 h1:u52xPZXLfeuR1HbGPCyOsMQvAbCtvoJbpfH5diBPVuc= -github.com/cosmos/cosmos-sdk v0.50.2/go.mod h1:n/WQqDh73qdtBmY9Op3sYgiBgTujSfGSd6CNh6GfqvQ= +github.com/cosmos/cosmos-sdk v0.50.3 h1:zP0AXm54ws2t2qVWvcQhEYVafhOAREU2QL0gnbwjvXw= github.com/cosmos/cosmos-sdk v0.50.3/go.mod h1:tlrkY1sntOt1q0OX/rqF0zRJtmXNoffAS6VFTcky+w8= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -473,8 +466,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= -github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/kit v0.13.0 h1:OoneCcHKHQ03LfBpoQCUfCluwd2Vt3ohz+kvbJneZAU= github.com/go-kit/kit v0.13.0/go.mod h1:phqEHMMUbyrCFCTgH48JueqrM3md2HcAZ8N3XE4FKDg= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= @@ -645,8 +637,7 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= @@ -665,16 +656,14 @@ github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= -github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U= -github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-metrics v0.5.2 h1:ErEYO2f//CjKsUDw4SmLzelsK6L3ZmOAR/4P9iS7ruY= github.com/hashicorp/go-metrics v0.5.2/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= @@ -924,8 +913,7 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -1117,8 +1105,7 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1220,8 +1207,7 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1264,8 +1250,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1363,14 +1349,12 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1635,8 +1619,7 @@ google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 h1:1hfbdAfFbkmpg41 google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 h1:s1w3X6gQxwrLEpxnLd/qXTVLgQE2yXwaOaoa6IlY/+o= google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 h1:kzJAXnzZoFbe5bhZd4zjUuHos/I31yH4thfMb/13oVY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3/go.mod h1:eJVxU6o+4G1PSczBr85xmyvSNYAKvAYgkub40YGomFM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0 h1:/jFB8jK5R3Sq3i/lmeZO0cATSzFfZaJq1J2Euan3XKU= google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1697,8 +1680,7 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/tests/integration/slinky_suite.go b/tests/integration/slinky_suite.go index f8639c400..cfa9dfbd5 100644 --- a/tests/integration/slinky_suite.go +++ b/tests/integration/slinky_suite.go @@ -77,7 +77,7 @@ func DefaultOracleConfig(node *cosmos.ChainNode) ( // Create the metrics config metricsConfig := oracleconfig.MetricsConfig{ - PrometheusServerAddress: fmt.Sprintf("%s:%s", oracle.HostName(), "8081"), + PrometheusServerAddress: fmt.Sprintf("%s:%s", "0.0.0.0", "8081"), OracleMetrics: oracleconfig.OracleMetricsConfig{ Enabled: true, },