I like metrics. I've been working lately to convert some aging parts of my monitoring and alerting infrastructure over to something slightly more modern (in this case Grafana, InfluxDB, Telegraf and collectd). As part of this project I'm looking broadly at my environment and trying to decide what else to monitor (and what I don't need to monitor anymore). One of the things that came up was website performance.
If you have read my previous post about monitoring my ADS-B
receiver it probably won't come as a surprise that the impetus for this
whole project has been to deprecate MRTG from my environment. MRTG was
a fine enough tool when it was basically all we had (though I had rolled
a few iterations of a replacement for personal projects over the years)
but these days it is woefully dated. The biggest issues lie in the
data gathering engine. Even a moderately sized environment is asking for
trouble, dropped polls, and stuck perl processes. MRTG also fails to
provide any information beyond the aggregated traffic statistics.
I have been running a FlightAware /
FlightRadar24 ADS-B feeder for almost 4
years now. It is an older Raspberry Pi B with a RTL-SDR stick running
dump1090 at its core. These
days it is mounted in my garage with the antenna on the roof. When I
built it I stuffed a
Honeywell HIH6130 temperature
and humidity sensor in the enclosure. At the time it was mounted on a
fence in my back yard so it would be in full sun for much of the day so
I hooked it up to Icinga to alert me if it ever got too hot or too wet
inside.
I mentioned offhandedly at the end of my post on how Docker and Flask are helping me sleep at night a potential use case for an iOS share extension. I finally started working on that idea.
The Background
Right out of the gate I'll admit that my implementation is a bit naive, but it is if nothing else an example of what can be accomplished with a little bit of work. In general my microcontroller development workflow has been tied to a particular system largely using the vendor supplied tools like MPLAB X or Atmel Studio. This is usually OK as I need to have physical access to either the prototype or production hardware for testing and verification. From a high level it generally looks like this:
I don't want to start out by bitching about yet another crappy
Internet thing, but I think I have to.
YouTube Red is this
play from YouTube to try to get into the paid streaming
business and one of the 'features' they tout is the ability to play
videos in the background on mobile devices... something that totally
worked before JUST FINE before.
I don't remember where I ran across oldweb.today
but I thought it was a pretty rad idea. I was able to find an old
version of my website there and enjoy it in a browser similar to what
I would have been running back then...
Edited: October 18, 2017 @14:03
I have been meaning to play around with containers for a while but for the life of me have not found a real reason to. I feel like without a real use case, any attempt I'd make to learn anything useful would be a huge waste of time. There are a bunch of neat toys out there, from running random ASCII art commands to a crazy script that 'emulates' some of the insane Hollywood style computer screens, as well as base images for all manner of application stacks and frameworks, but all of those are easily installable using your favorite package manager.