NMS
  • Map mode
    • Ping map
    • Uplink map
    • Temperature map
    • Traffic map
    • Comment spotter
    • DISCO
    • Toggle Night Mode
    • Set layer visibility
    • Travel in time
    • Replay TG
    • About TG15 data
    • Map scale
    • Scale:
    • About
    • Debug timers

About the TG15 data

The data you see from The Gathering 2015 will seem "broken up". This is not because we don't have data from the first day, but because the backend was re-written on day 1/2 and this web app only uses the new API.

NMS was set up on March 30th (Monday). Data started pouring in on the same day.

Ping data is available for the entire event with 1 second resolution. We "lost" data from the 30th because we re-inserted the switches (We have the ping data, but not the mapping between switch ID number and actual switch).

DHCP data is available only for the last detected DHCP ack (no history, except extensive text-based logs)

Uplink status is available for most of the event, but not exposed here. We only expose traffic-based uplink state here, which, again, is based on the new API.

Traffic status was temporarily bugged, but is available from late on day 2.

Temperature data is available from day 2.

Plans are being made to ensure that we don't have gaps like these in the future.

It is also worth mentioning that things like switch positions are not logged historically, so you see the final position on the map.

Time travel

Welcome to NMS

Cool stuff:

  • Click a switch for more info
  • Rewind: You can check out state at a specific time or replay from the beginning of the event
  • Night mode, now with blur.
  • Auto-scaling the viewport/canvas
  • Total client speed (up right)
  • Generic(-ish) map handlers: provide a name, init-function and an update-function and the nms lib does the rest as far as integration goes.
  • An about-page that's full of bullet-points!

Todo list front end:

  • Fix scrolling.
  • Polish time travel UI (Allow playing from a given time at a given speed, play/pause buttons, etc)
  • Toggle auto-scale on/off
  • Clean up various global variables
  • Split blur into separate canvas (canvas is there, it's just not used)
  • Add DHCP map
  • Add magic map (combined map of sorts)
  • Adjust updatePorts() frequency based on necessity (1sec updates is overkill for regular operation, but needed for time travel)
  • More info on switches: Port state, possibly link time trends)
  • Moving switches around (like ping.html + edit)
  • Split nms.js into multiple components to unclutter the code
  • Fix up comment-stuff (specially entry). Add "active"/"inactive" state to toggle the relevancy of a comment.
  • More.

Todo for backend:

  • IPv6 support
  • Close SQL injections (IT'S WIDE OPEN BECAUSE WHY NOT THAT'S NEVER A PROBLEM)
  • Split port-state.pl into multiple appropriate pieces. Right it mixes heavy time-critical data with less time-critical and cheap computation.
  • Consider time log of DHCP (right now it just stores the most recent timestamp, making time travel impossible)
  • Fix SNMP-fetcher so it gets ifXTable and at least ifOperStatus from ifTable. Don't request the entire ifXTable if we can avoid it. Possibly other tweaks.
  • Support for adding switches through an API, not just pure SQL.
  • Integrate with FAP
  • Clean up old interfaces
  • Review various agents/tools
  • Improve cache headers
  • Cache invalidation of comments?
  • Re-test the SQL schema. It's been modified and works fine on my laptop, but I need to dump it, commit it and test it.
  • Munin plugin for ports.

Debug timers (e.g.: Break stuff! FAST!)

These are internal timers for the NMS frontend. They are provided mainly to debug the frontend. Setting AJAX-triggering counters to ridiculous numbers is not advised (mainly because it causes server load).

Set layer visibility

Background
Linknets
Blur
Switches
Text
Top