@@ -22,10 +22,10 @@ function attach(anything, done) {
22
22
23
23
/**
24
24
* get basic index information via `db.collection.indexes()`
25
- * @param {Function } done callback
26
25
* @param {object } results results from async.auto
26
+ * @param {Function } done callback
27
27
*/
28
- function getIndexes ( done , results ) {
28
+ function getIndexes ( results , done ) {
29
29
var client = results . client ;
30
30
var ns = mongodbNS ( results . namespace ) ;
31
31
client
@@ -45,10 +45,10 @@ function getIndexes(done, results) {
45
45
46
46
/**
47
47
* get index statistics via `db.collection.aggregate({$indexStats: {}})`
48
- * @param {Function } done callback
49
48
* @param {object } results results from async.auto
49
+ * @param {Function } done callback
50
50
*/
51
- function getIndexStats ( done , results ) {
51
+ function getIndexStats ( results , done ) {
52
52
var client = results . client ;
53
53
var ns = mongodbNS ( results . namespace ) ;
54
54
var pipeline = [
@@ -62,10 +62,12 @@ function getIndexStats(done, results) {
62
62
}
63
63
}
64
64
] ;
65
+ debug ( 'Getting $indexStats for %s' , results . namespace ) ;
65
66
var collection = client . db ( ns . database ) . collection ( ns . collection ) ;
66
67
collection . aggregate ( pipeline , { cursor : { } } ) . toArray ( function ( err , res ) {
67
68
if ( err ) {
68
69
if ( isNotAuthorizedError ( err ) ) {
70
+ debug ( 'Not authorized to get index stats' , err ) ;
69
71
/**
70
72
* In the 3.2 server, `readWriteAnyDatabase@admin` does not grant sufficient privileges for $indexStats.
71
73
* The `clusterMonitor` role is required to run $indexStats.
@@ -75,7 +77,7 @@ function getIndexStats(done, results) {
75
77
}
76
78
77
79
if ( err . message . match ( / U n r e c o g n i z e d p i p e l i n e s t a g e n a m e / ) ) {
78
- // $indexStats not yet supported, return empty document
80
+ debug ( ' $indexStats not yet supported, return empty document' , err ) ;
79
81
return done ( null , { } ) ;
80
82
}
81
83
done ( err ) ;
@@ -89,13 +91,14 @@ function getIndexStats(done, results) {
89
91
90
92
/**
91
93
* get index sizes via `db.collection.stats()` (`indexSizes` field)
92
- * @param {Function } done callback
93
94
* @param {object } results results from async.auto
95
+ * @param {Function } done callback
94
96
*/
95
97
96
- function getIndexSizes ( done , results ) {
98
+ function getIndexSizes ( results , done ) {
97
99
var client = results . client ;
98
100
var ns = mongodbNS ( results . namespace ) ;
101
+ debug ( 'Getting index sizes for %s' , results . namespace ) ;
99
102
client
100
103
. db ( ns . database )
101
104
. collection ( ns . collection )
@@ -107,22 +110,24 @@ function getIndexSizes(done, results) {
107
110
) ;
108
111
return done ( null , { } ) ;
109
112
}
113
+ debug ( 'Error getting index sizes for %s' , results . namespace , err ) ;
110
114
return done ( err ) ;
111
115
}
112
116
113
117
res = _ . mapValues ( res . indexSizes , function ( size ) {
114
118
return { size : size } ;
115
119
} ) ;
120
+ debug ( 'Got index sizes for %s' , results . namespace , res ) ;
116
121
done ( null , res ) ;
117
122
} ) ;
118
123
}
119
124
120
125
/**
121
126
* merge all information together for each index
122
- * @param {Function } done callback
123
127
* @param {object } results results from async.auto
128
+ * @param {Function } done callback
124
129
*/
125
- function combineStatsAndIndexes ( done , results ) {
130
+ function combineStatsAndIndexes ( results , done ) {
126
131
var indexes = results . getIndexes ;
127
132
var stats = results . getIndexStats ;
128
133
var sizes = results . getIndexSizes ;
@@ -153,12 +158,13 @@ function getIndexDetails(client, namespace, done) {
153
158
combineStatsAndIndexes
154
159
]
155
160
} ;
156
-
161
+ debug ( 'Getting index details for namespace %s' , namespace ) ;
157
162
async . auto ( tasks , function ( err , results ) {
158
163
if ( err ) {
159
- // report error
164
+ debug ( 'Failed to get index details for namespace %s' , namespace , err ) ;
160
165
return done ( err ) ;
161
166
}
167
+ debug ( 'Index details for namespace %s' , namespace , results . indexes ) ;
162
168
// all info was collected in indexes
163
169
return done ( null , results . indexes ) ;
164
170
} ) ;
0 commit comments