Simple HTTP/TCP health check for MongoDB

后端 未结 3 412
轻奢々
轻奢々 2021-02-05 11:16

I need to create a Health Check for a MongoDB instance inside a Docker container.

Although I can make a workaround and use the Mongo Ping using the CLI, the best option

3条回答
  •  后悔当初
    2021-02-05 12:00

    I've created a simple health check for mongodb, it uses the mongo client to send a simple query request (eg. db.stats()) to the server.

    $ mongo 192.168.5.51:30000/test
    
    MongoDB shell version: 3.2.3
    connecting to: 192.168.5.51:30000/test
    
    mongos> db.stats()
    {
        "raw" : {
            "set1/192.168.5.52:27000,192.168.5.53:27000" : {
                "db" : "test",
                "collections" : 8,
                "objects" : 50,
                "avgObjSize" : 73.12,
                "dataSize" : 3656,
                "storageSize" : 53248,
                "numExtents" : 8,
                "indexes" : 8,
                "indexSize" : 65408,
                "fileSize" : 469762048,
                "nsSizeMB" : 16,
                "dataFileVersion" : {
                    "major" : 4,
                    "minor" : 6
                },
                "extentFreeList" : {
                    "num" : 28,
                    "totalSize" : 184807424
                },
                "ok" : 1
            }
        },
        "objects" : 50,
        "avgObjSize" : 73,
        "dataSize" : 3656,
        "storageSize" : 53248,
        "numExtents" : 8,
        "indexes" : 8,
        "indexSize" : 65408,
        "fileSize" : 469762048,
        "extentFreeList" : {
            "num" : 28,
            "totalSize" : 184807424
        },
        "ok" : 1
    }
    

    You can also do this in one line:

    $ echo 'db.stats().ok' | mongo 192.168.5.51:30000/test --quiet
    1
    

    Hope it's help.

    UPDATE:

    As @luckydonald said, the ping command is better, so you can do it like:

    $ echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
    1
    

    Thanks for @luckydonald.

提交回复
热议问题