@@ -6,88 +6,59 @@ package factory
66import (
77 "fmt"
88
9- "github.com/ava-labs/avalanchego/api/metrics"
9+ "github.com/prometheus/client_golang/prometheus"
10+
1011 "github.com/ava-labs/avalanchego/database"
1112 "github.com/ava-labs/avalanchego/database/corruptabledb"
1213 "github.com/ava-labs/avalanchego/database/leveldb"
1314 "github.com/ava-labs/avalanchego/database/memdb"
14- "github.com/ava-labs/avalanchego/database/meterdb"
1515 "github.com/ava-labs/avalanchego/database/pebbledb"
1616 "github.com/ava-labs/avalanchego/database/versiondb"
1717 "github.com/ava-labs/avalanchego/utils/logging"
1818)
1919
2020// New creates a new database instance based on the provided configuration.
2121//
22- // It also wraps the database with a corruptable DB and a meter DB .
22+ // It also wraps the database with a corruptable DB.
2323//
2424// dbName is the name of the database, either leveldb, memdb, or pebbledb.
2525// dbPath is the path to the database folder.
2626// readOnly indicates if the database should be read-only.
2727// dbConfig is the database configuration in JSON format.
28- // dbMetricsPrefix is used to create a new metrics registerer for the database.
29- // meterDBRegName is used to create a new metrics registerer for the meter DB.
3028func New (
3129 name string ,
3230 path string ,
3331 readOnly bool ,
3432 config []byte ,
35- gatherer metrics. MultiGatherer ,
33+ reg prometheus. Registerer ,
3634 logger logging.Logger ,
37- metricsPrefix string ,
38- meterDBRegName string ,
3935) (database.Database , error ) {
40- dbRegisterer , err := metrics . MakeAndRegister (
41- gatherer ,
42- metricsPrefix ,
36+ var (
37+ db database. Database
38+ err error
4339 )
44- if err != nil {
45- return nil , err
46- }
47- var db database.Database
48- // start the db
4940 switch name {
5041 case leveldb .Name :
51- db , err = leveldb .New (path , config , logger , dbRegisterer )
52- if err != nil {
53- return nil , fmt .Errorf ("couldn't create %s at %s: %w" , leveldb .Name , path , err )
54- }
42+ db , err = leveldb .New (path , config , logger , reg )
5543 case memdb .Name :
5644 db = memdb .New ()
5745 case pebbledb .Name :
58- db , err = pebbledb .New (path , config , logger , dbRegisterer )
59- if err != nil {
60- return nil , fmt .Errorf ("couldn't create %s at %s: %w" , pebbledb .Name , path , err )
61- }
46+ db , err = pebbledb .New (path , config , logger , reg )
6247 default :
63- return nil , fmt .Errorf (
64- "db-type was %q but should have been one of {%s, %s, %s}" ,
65- name ,
48+ err = fmt .Errorf (
49+ "db-type must be one of {%s, %s, %s}" ,
6650 leveldb .Name ,
6751 memdb .Name ,
6852 pebbledb .Name ,
6953 )
7054 }
55+ if err != nil {
56+ return nil , fmt .Errorf ("couldn't create %q at %q: %w" , name , path , err )
57+ }
7158
72- // Wrap with corruptable DB
7359 db = corruptabledb .New (db , logger )
74-
7560 if readOnly && name != memdb .Name {
7661 db = versiondb .New (db )
7762 }
78-
79- meterDBReg , err := metrics .MakeAndRegister (
80- gatherer ,
81- meterDBRegName ,
82- )
83- if err != nil {
84- return nil , err
85- }
86-
87- db , err = meterdb .New (meterDBReg , db )
88- if err != nil {
89- return nil , fmt .Errorf ("failed to create meterdb: %w" , err )
90- }
91-
9263 return db , nil
9364}
0 commit comments