mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-20 02:44:58 +00:00
Fixed fingerprinter
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
"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/proto"
|
||||||
"github.com/percona/percona-toolkit/src/go/mongolib/util"
|
"github.com/percona/percona-toolkit/src/go/mongolib/util"
|
||||||
@@ -207,10 +208,27 @@ func getKeys(query interface{}, keyFilters []string, level int) []string {
|
|||||||
ks := []string{}
|
ks := []string{}
|
||||||
var q []bson.M
|
var q []bson.M
|
||||||
switch v := query.(type) {
|
switch v := query.(type) {
|
||||||
case bson.M:
|
case primitive.M:
|
||||||
q = append(q, v)
|
q = append(q, v)
|
||||||
case []bson.M:
|
case []bson.M:
|
||||||
q = v
|
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:
|
default:
|
||||||
return ks
|
return ks
|
||||||
}
|
}
|
||||||
@@ -225,7 +243,7 @@ func getKeys(query interface{}, keyFilters []string, level int) []string {
|
|||||||
ks = append(ks, key)
|
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"
|
TOOLNAME = "pt-mongodb-summary"
|
||||||
|
|
||||||
DefaultAuthDB = "admin"
|
DefaultAuthDB = "admin"
|
||||||
DefaultHost = "localhost:27017"
|
DefaultHost = "mongodb://localhost:27017"
|
||||||
DefaultLogLevel = "warn"
|
DefaultLogLevel = "warn"
|
||||||
DefaultRunningOpsInterval = 1000 // milliseconds
|
DefaultRunningOpsInterval = 1000 // milliseconds
|
||||||
DefaultRunningOpsSamples = 5
|
DefaultRunningOpsSamples = 5
|
||||||
|
Reference in New Issue
Block a user