Have ideas to improve npm?Join in the discussion! ¬Ľ

    mongo-slow-log-parse

    0.1.1¬†‚Äʬ†Public¬†‚Äʬ†Published

    mongo-slow-log-parse

    ūüďÉ Mongodb Slow Log line parser

    const parse = require('mongo-slow-log-parse');
     
    const payload = new Buffer(event.data, 'base64');
    const logs = JSON.parse(zlib.gunzipSync(payload).toString('ascii'));
     
    const events = logs.map(parse); // <= ✨ Money time

    Example

    Record

    {"line":"2019-09-24T11:20:44.503+0000 I COMMAND  [conn47945] command db_name.db_collection command: find { find: \"db_collection\", filter: { user_id: 1199599, full_name: { $nin: [ \"\", null ] } }, sort: { _id: 1 }, limit: 1, singleBatch: true, $db: \"db_name\", $clusterTime: { clusterTime: Timestamp(1569324043, 85), signature: { hash: BinData(0, WIERD_HASH123123123AASDA, keyId: 123455677 } }, lsid: { id: UUID(\"1111111-222222-333333-444444-555555\") } } planSummary: IXSCAN { user_id: 1 } keysExamined:125530 docsExamined:125530 hasSortStage:1 cursorExhausted:1 numYields:990 nreturned:0 reslen:225 locks:{ Global: { acquireCount: { r: 1982 } }, Database: { acquireCount: { r: 991 } }, Collection: { acquireCount: { r: 991 } } } protocol:op_msg 545ms","namespace":"db_name.db_collection"},
    

    Result

    {
        timestamp: Date.parse('2019-09-24T11:20:44.503+0000'),
        severity: 'I',
        operation: 'COMMAND',
        connection_id: 'conn47945',
        db_name: 'db_name',
        collection_name: 'db_collection',
        general_command: 'find',
        mongo_command: '{ find: \"db_collection\", filter: { user_id: 1199599, full_name: { $nin: [ \"\", null ] } }, sort: { _id: 1 }, limit: 1, singleBatch: true, $db: \"db_name\", $clusterTime: { clusterTime: Timestamp(1569324043, 85), signature: { hash: BinData(0, WIERD_HASH123123123AASDA), keyId: 123455677 } }, lsid: { id: UUID(\"1111111-222222-333333-444444-555555\") } } planSummary: IXSCAN { user_id: 1 } keysExamined:125530 docsExamined:125530 hasSortStage:1 cursorExhausted:1 numYields:990 nreturned:0 reslen:225 locks:{ Global: { acquireCount: { r: 1982 } }, Database: { acquireCount: { r: 991 } }, Collection: { acquireCount: { r: 991 } } }',
        took_millis: 545,
        num_returned: 0,
        num_yields: 990,
        result_length: 225,
        keys_examined: 125530,
        docs_examined: 125530,
        protocol: 'op_msg'
    }

    Related projects:

    Install

    npm i mongo-slow-log-parse

    DownloadsWeekly Downloads

    0

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    5.45 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar