Code Monkey home page Code Monkey logo

smoketrace's Introduction

SmokeTrace
==========


Description:

    Traceroute sourced monitoring with graphing and reporting.
    
    SmokeTrace records a path and assosicated statistics (IPs,
    number of hops, delay at each hop etc) to a destination.
    Criteria is then assigned to this path and alerts are generated
    for path changes such as hop or delay increases as defined by
    the alerting criteria.
    
    This is not related to the SmokePing plugin Smoketrace (which
    was removed in SmokePing 2.5.0 as per these release notes
    http://oss.oetiker.ch/smokeping/pub/CHANGES).


Why was it Made:  

    A similar concept to the infamous and brilliant SmokePing 
    (http://smokeping.org/), but with traceroute!
    
    Every time I receive a SmokePing alert the first thing I do is run
    traceroute/mtr/etc to see where in the path the loss is occurring.
    If regular traceroutes where being run I could alert on this instead.
              

What is it used for:

    SmokePing alerts are latency triggered events, SmokeTrace alerts are path
    triggered events.
    
    Future versions could incorporate latency monitoring and MTU monitoring to
    bring this into one tool although I think it's best to keep them separate.
    SmokePing could be extended to include other OWAMPs so the two tools'
    become more specialised in their respective fields and should aim to
    complement each other, not conflict.


Technical details:

    * Written in PHP for Linux (it maybe altered at a later date to support
    other operating systems, unsure as yet)
    * Uses MySQL as back end not RRD files (testing will commence on MariaDB
    soon, unsure of other DB support as yet)
    * Still in alpha, so no public beta code release as yet, Q1-2014!
    * The alpha release looks similar to this, which will hopefully be improved
    upon in time for the beta release: http://goo.gl/K8NjCo
    
    
Development Plan:

    Initial release (Q1/Q2 2014) will be the completed web interface and MySQL 
    DB running "traceroutes" to a given destination using one of a
    possibility of methods (calling the native Linux traceroute binary in either
    UDP or ICMP mode, calling the MTR binary using ICMP, or the tcptraceroute
    binary). The output is formatted for storing the MySQL DB and path changes
    can be alerted on (a basic proof of concept release but at this stage the
    alerting won't be reliable using traceroute alone).
    
    After the initial release the next stage will integrate BGP. SmokeTrace
    will take a BGP feed and then cross-examine route changes from BGP with
    traceroute path changes. We can also factor in latency changes from the
    traceroute output. Together they pose the question:
    Was the path update received "worse" than the previous path?
    We can create alerting criteria then to make the alerting accurate
    (higher latency, longer path, more packet loss etc).
    
    The final step after routing integration is automatic traceroute destination
    generation (take BGP top hosts or NetFlow top hosts for example and
    automatically use them to populate SmokeTrace with new traceroute targets).
    At this point SmokeTrace will be considered out of beta and in version 
    "1.0 stable".


Who made it:

    James Bensley <[email protected]>

smoketrace's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.