Notable Pottery Manufacturer
    Wondering what’s next for npm?Check out our public roadmap! »

    logstash-tcp-winston-transport

    1.1.1 • Public • Published

    Logstash TCP Wins

    Inspired by the winston-logstash module but as that isn't actively maintained and doesn't support 3.0.0 of Winston, I decided to create my own

    A Transport for Winston that allows for the sending of data to the Logstash TCP input plugin

    Install

    npm i logstash-tcp-wins
    

    Initialise the log transport like so:

    const logger = createLogger({
        format: combine (
            label({ label: 'right meow!' }),
            timestamp(),
            prettyPrint(),
            json()
        ),
        transports: [
            new logstashTcpWins({
                level: "debug",
                port: 5000,
                json: true,
                host: "localhost",
                retryInterval: 2000,
                maxRetries: 1000,
                label: "test",
            })
        ],
        exitOnError: false
    })
    

    Set up your logstash pipeline like this:

    input {
        tcp {
            codec => json
            port => 5000
        }
    }
    
    
    output {
        stdout { codec => rubydebug } 
        elasticsearch {
            hosts => "elasticsearch:9200"
        }
    }
    

    See the app.js file in Github for requires.

    Still to-do

    At the moment, the recovery from a Logstash outage relies on 60s passing after the socket has reported it's connected which is pretty poor. Working on finding a way to be able to determine and rely on the socket being properly writeable to Logstash without resorting to time period. If you've got a way, please do create a PR.

    Install

    npm i logstash-tcp-winston-transport

    DownloadsWeekly Downloads

    4

    Version

    1.1.1

    License

    ISC

    Unpacked Size

    17.3 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar