Always log createIndexes command to capture index definition

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Logging
    • Execution Team 2021-08-23
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Currently we always log entries about index build, but it only includes namespace and name of the index. The details of index definition will only be logged if command exceeds the slowms threshold, which likely won't happen for empty or small collections. 

      Unless the command is no-op, e.g. index already exists, log it unconditionally.

      Example of the entries to be logged:

      {
          "t": {
              "$date": "2020-12-01T16:32:23.066-05:00"
          },
          "s": "I",
          "c": "COMMAND",
          "id": 51803,
          "ctx": "conn5",
          "msg": "Slow query",
          "attr": {
              "type": "command",
              "ns": "test.log",
              "appName": "MongoDB Shell",
              "command": {
                  "createIndexes": "log",
                  "indexes": [
                      {
                          "key": {
                              "lastModifiedDate": 1.0
                          },
                          "name": "lastModifiedDate_1",
                          "expireAfterSeconds": 3600.0
                      }
                  ],
                  "lsid": {
                      "id": {
                          "$uuid": "dc5b96ce-8c46-47b6-82a2-311eab1f3892"
                      }
                  },
                  "$db": "test"
              },
              "numYields": 0,
              "reslen": 114,
              "locks": {
                  "ParallelBatchWriterMode": {
                      "acquireCount": {
                          "r": 3
                      }
                  },
                  "ReplicationStateTransition": {
                      "acquireCount": {
                          "w": 4
                      }
                  },
                  "Global": {
                      "acquireCount": {
                          "r": 2,
                          "w": 2
                      }
                  },
                  "Database": {
                      "acquireCount": {
                          "r": 2,
                          "w": 1
                      }
                  },
                  "Collection": {
                      "acquireCount": {
                          "r": 2,
                          "W": 1
                      }
                  },
                  "Mutex": {
                      "acquireCount": {
                          "r": 3
                      }
                  }
              },
              "flowControl": {
                  "acquireCount": 2,
                  "timeAcquiringMicros": 1
              },
              "storage": {},
              "protocol": "op_msg",
              "durationMillis": 33
          }
      },
      {
          "t": {
              "$date": "2020-12-03T16:47:32.256-05:00"
          },
          "s": "I",
          "c": "COMMAND",
          "id": 51803,
          "ctx": "conn6",
          "msg": "Slow query",
          "attr": {
              "type": "command",
              "ns": "test.geo1",
              "appName": "MongoDB Shell",
              "command": {
                  "createIndexes": "geo1",
                  "indexes": [
                      {
                          "key": {
                              "location": "2dsphere"
                          },
                          "name": "location_2dsphere"
                      }
                  ],
                  "lsid": {
                      "id": {
                          "$uuid": "f8611f64-ad09-4884-a6f6-58860c0809ff"
                      }
                  },
                  "$db": "test"
              },
              "numYields": 0,
              "reslen": 114,
              "locks": {
                  "ParallelBatchWriterMode": {
                      "acquireCount": {
                          "r": 3
                      }
                  },
                  "ReplicationStateTransition": {
                      "acquireCount": {
                          "w": 4
                      }
                  },
                  "Global": {
                      "acquireCount": {
                          "r": 2,
                          "w": 2
                      }
                  },
                  "Database": {
                      "acquireCount": {
                          "r": 2,
                          "w": 1
                      }
                  },
                  "Collection": {
                      "acquireCount": {
                          "r": 2,
                          "W": 1
                      }
                  },
                  "Mutex": {
                      "acquireCount": {
                          "r": 3
                      }
                  }
              },
              "flowControl": {
                  "acquireCount": 2,
                  "timeAcquiringMicros": 2
              },
              "storage": {},
              "protocol": "op_msg",
              "durationMillis": 30
          }
      }

       

            Assignee:
            Dan Larkin-York
            Reporter:
            Katya Kamenieva
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: