工作中常常存在对端到端流程的过程梳理或者优化,使用mongodb作为存储的时候,需要梳理出各个集合的大小以及TTL(TTL能不用就不用),以下是快速的统计方案,能够帮助将统计结果输出到csv表格中。需要pymongo和pandas依赖库。收集的信息包括数据库统计信息,集合统计信息[文档数,平均大小,集合大小,存储大小,索引],甚至可以在此基础上进行扩展。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
@time: 2019/1/14 9:43
@desc:
"""
import time
import pandas
import pymongo
class CollectionsStat:
"""
统计核心算法来源于command函数,该函数能够使用的mongo命令可以参考以下网址:\n
https://docs.mongodb.com/manual/reference/command/
"""
MONGODB_URI = "mongodb://ip:port,ip:port,ip:port"
DATABASE__STAT_INDEX_ALL = ["raw", "objects", "avgObjSize", "dataSize", "storageSize", "numExtents", "indexes",
"indexSize", "fileSize", "extentFreeList"]
DATABASE__STAT_INDEX = ["objects", "avgObjSize", "dataSize", "storageSize",