Because the sharding system does not track the lifetime of databases, collections and indexes, mongos does not know when a database, collection or index is about to be created. As a result, it cannot place an entry into its local audit log about those events. However, it does know the identity of end users requesting operations. The mongod nodes involved do know about lifetime of these objects, but in a sharded system they do not know on behalf of which end user the event was triggered. We need some solution that ties these two pieces of information together.
The original auditing proposal was to attach operation ids to all operations, and have mongos report to mongod the id of each source operation that it delegated to mongod. Something like this is one possible solution. Another is to introduce a notion of end-user session, and have mongos inform mongod of the end-user session it is implementing by delegation to mongod. There may be other reasonable solutions, as well.