mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-20 10:55:01 +00:00
Fixed fingerprinter
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
|
||||
"github.com/percona/percona-toolkit/src/go/mongolib/proto"
|
||||
"github.com/percona/percona-toolkit/src/go/mongolib/util"
|
||||
@@ -207,10 +208,27 @@ func getKeys(query interface{}, keyFilters []string, level int) []string {
|
||||
ks := []string{}
|
||||
var q []bson.M
|
||||
switch v := query.(type) {
|
||||
case bson.M:
|
||||
case primitive.M:
|
||||
q = append(q, v)
|
||||
case []bson.M:
|
||||
q = v
|
||||
case primitive.A:
|
||||
for _, intval := range v {
|
||||
ks = append(ks, getKeys(intval, keyFilters, level+1)...)
|
||||
}
|
||||
return ks
|
||||
case proto.BsonD:
|
||||
for _, intval := range v {
|
||||
ks = append(ks, getKeys(intval, keyFilters, level+1)...)
|
||||
}
|
||||
return ks
|
||||
case primitive.E:
|
||||
if matched, _ := regexp.MatchString("^\\$", v.Key); !matched {
|
||||
ks = append(ks, v.Key)
|
||||
}
|
||||
|
||||
ks = append(ks, getKeys(v.Value, keyFilters, level+1)...)
|
||||
return ks
|
||||
default:
|
||||
return ks
|
||||
}
|
||||
@@ -225,7 +243,7 @@ func getKeys(query interface{}, keyFilters []string, level int) []string {
|
||||
ks = append(ks, key)
|
||||
}
|
||||
|
||||
ks = append(ks, getKeys(value, keyFilters, level)...)
|
||||
ks = append(ks, getKeys(value, keyFilters, level+1)...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -32,7 +32,7 @@ const (
|
||||
TOOLNAME = "pt-mongodb-summary"
|
||||
|
||||
DefaultAuthDB = "admin"
|
||||
DefaultHost = "localhost:27017"
|
||||
DefaultHost = "mongodb://localhost:27017"
|
||||
DefaultLogLevel = "warn"
|
||||
DefaultRunningOpsInterval = 1000 // milliseconds
|
||||
DefaultRunningOpsSamples = 5
|
||||
|
Reference in New Issue
Block a user