Update state metrics on save state (#2083)

* Update state metrics on save state

* fix tests
This commit is contained in:
Preston Van Loon 2019-03-26 18:29:45 -05:00 committed by GitHub
parent 6012d0a5d1
commit ac7d5a7780
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 7 additions and 42 deletions

View File

@ -491,6 +491,7 @@ func TestLMDGhost_TrivialHeadUpdate(t *testing.T) {
state := &pb.BeaconState{
Slot: 10,
ValidatorBalances: []uint64{params.BeaconConfig().MaxDepositAmount},
ValidatorRegistry: []*pb.Validator{{}},
}
chainService := setupBeaconChain(t, false, beaconDB, true, nil)
@ -548,6 +549,7 @@ func TestLMDGhost_3WayChainSplitsSameHeight(t *testing.T) {
params.BeaconConfig().MaxDepositAmount,
params.BeaconConfig().MaxDepositAmount,
params.BeaconConfig().MaxDepositAmount},
ValidatorRegistry: []*pb.Validator{{}, {}, {}, {}},
}
chainService := setupBeaconChain(t, false, beaconDB, true, nil)
@ -631,6 +633,7 @@ func TestLMDGhost_2WayChainSplitsDiffHeight(t *testing.T) {
params.BeaconConfig().MaxDepositAmount,
params.BeaconConfig().MaxDepositAmount,
params.BeaconConfig().MaxDepositAmount},
ValidatorRegistry: []*pb.Validator{{}, {}, {}, {}},
}
chainService := setupBeaconChain(t, false, beaconDB, true, nil)

View File

@ -3,7 +3,6 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"metrics.go",
"state.go",
"transition.go",
],
@ -20,8 +19,6 @@ go_library(
"//shared/featureconfig:go_default_library",
"//shared/hashutil:go_default_library",
"//shared/params:go_default_library",
"@com_github_prometheus_client_golang//prometheus:go_default_library",
"@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library",
"@io_opencensus_go//trace:go_default_library",
],
@ -30,7 +27,6 @@ go_library(
go_test(
name = "go_default_test",
srcs = [
"metrics_test.go",
"state_test.go",
"transition_test.go",
],
@ -43,6 +39,5 @@ go_test(
"//shared/forkutil:go_default_library",
"//shared/hashutil:go_default_library",
"//shared/params:go_default_library",
"@com_github_prometheus_client_golang//prometheus/testutil:go_default_library",
],
)

View File

@ -1,33 +0,0 @@
package state
import (
"strings"
"testing"
"github.com/prometheus/client_golang/prometheus/testutil"
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
)
func TestReportEpochTransitionMetrics_validatorBalances(t *testing.T) {
state := &pb.BeaconState{
ValidatorBalances: []uint64{1, 15},
ValidatorRegistry: []*pb.Validator{
{Pubkey: []byte{1}},
{Pubkey: []byte{2}},
},
}
reportEpochTransitionMetrics(state)
expectedMetadata := `
# HELP state_validator_balances Balances of validators, updated on epoch transition
# TYPE state_validator_balances gauge
`
expectedValues := `
state_validator_balances{validator="0x01"} 1
state_validator_balances{validator="0x02"} 15
`
expected := expectedMetadata + expectedValues
if err := testutil.CollectAndCompare(validatorBalancesGauge, strings.NewReader(expected)); err != nil {
t.Error(err)
}
}

View File

@ -466,7 +466,5 @@ func ProcessEpoch(ctx context.Context, state *pb.BeaconState, config *Transition
log.Infof("Validator balances: %v", state.ValidatorBalances)
}
// Report interesting metrics.
reportEpochTransitionMetrics(state)
return state, nil
}

View File

@ -13,6 +13,7 @@ go_library(
"schema.go",
"setup_db.go",
"state.go",
"state_metrics.go",
"validator.go",
"verify_contract.go",
],

View File

@ -148,6 +148,7 @@ func (db *BeaconDB) SaveState(beaconState *pb.BeaconState) error {
return err
}
stateBytes.Set(float64(len(beaconStateEnc)))
reportStateMetrics(beaconState)
return chainInfo.Put(stateLookupKey, beaconStateEnc)
})
}

View File

@ -1,4 +1,4 @@
package state
package db
import (
"encoding/hex"
@ -34,7 +34,7 @@ var (
})
)
func reportEpochTransitionMetrics(state *pb.BeaconState) {
func reportStateMetrics(state *pb.BeaconState) {
// Validator balances
for i, bal := range state.ValidatorBalances {
validatorBalancesGauge.WithLabelValues(