Fixed fingerprinter

This commit is contained in:
Carlos Salguero
2019-08-15 17:43:49 -03:00
parent fc93ca3ebc
commit 0f618920c9
2 changed files with 21 additions and 3 deletions

View File

@@ -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)...)
}
}
}

View File

@@ -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