mission? Be prepared to wear all of those hats Be prepared to market and lobby What are you enabling? What is your vision? What is the value you are bringing? You will have to continue to sell NO!? • Observability? • Metrics? • Tracing? • Query Language Design? • Storage Backends? • Data Analytics? • Data Visualization? @enbnt
to Nagios. Clusters can now be monitored. Twitter starts work on its own Time Series Database and Query Language. Twitter creates ZipKin and shares it as an OSS project. Twitter starts work on KoalaBird - a monitoring/ alerting system that leverages Cuckoo. It is retired in 2017. 2013 InfluxDB is shared as an OSS project. 2014 Prometheus is shared as an OSS project. Twitter starts work on its Next Gen Monitoring System (Mon 2.0). A presentation is given at Monitorama 2016. A Brief & Incomplete History Nagios Cuckoo ZipKin KoalaBird InfluxDB Prometheus Mon 2.0 @enbnt
Zone Fault Tolerance One place to configure shared alerts and dashboards. One place to view the state of your systems. More resilient to instances going down temporarily. Also has the ability to look back and alert if there was an outage. The system isn’t tied to a specific zone/region/DC. The alerting system can go down completely in a zone and still function. 4 Improved Operability Runs in Mesos/Aurora. Much better tool chain and ease of deployment. Designed to be resilient. 5 Clearer Alert Behavior Removal of custom DSL for defining alerts and clearly defined expectations for execution compared to previous system. The Highlights Monitory Report @enbnt
Please • Have a well defined spec • Document guidance on the direction and intent of the language • Have a direction and intent for the language • Be deliberate about adding new language features • Be aware of the impact your design decisions will have on your end users • Distributed systems problems are lurking behind every corner IF you ignore that warning @enbnt
what language(s) to support? • How do you integrate with your query language? • Are all of your customers coders? • Where is your source of truth? @enbnt
customers use your API’s directly • But all of your workflows are config as code • Most of your customers will want and expect code • Most != ALL • Now you own BOTH @enbnt
truth is config • YOU cannot migrate your customers between configs • Your customers own the configs • Your customers own the migration • Is your customer’s job managing configs? • If you run an API • YOU own the data • YOU own the migration @enbnt
different features • This is especially true if changing query language • Monitoring definitions are a close second • This means you need to be more careful • This means you need customer interaction • This means a slow, Manual Migration @enbnt
system, KoalaBird, was based on a single query being executed for each source • Our next gen alerting system, MonAlert, was based on a single query being executed for all sources @enbnt
want to know if something from each child query has gone wrong? Or are you looking for a more detailed state of a single instance? To further complicate things, some time series don’t have a source - they’re an aggregate You need to be flexible Multiple Time Series Queries @enbnt
Do you want to know if something from each child query has gone wrong? Or are you looking for a more detailed state of a single instance? To further complicate things, some time series don’t have a source - they’re an aggregate You need to be flexible Multiple Time Series Queries @enbnt
even know what your notifications look like until you’ve entered an incident? • Do you know what data you’re given? • What is the added stress to our end users? • The story here is terrible @enbnt
re-write of the Alerting system • AND a ground up re-write of our Front End - Viz • MUCH larger undertaking than expected • The Front End is still not completely replaced • Maybe 100% migrated was a lie @enbnt
As you grow, your systems may not grow with you • How you handle that next step will come with trade-offs • Do you • Write a new system from scratch • Consume/modify an OSS solution • Pay a Vendor @enbnt