Jason Beranek - @jasonberanek
“Transparency refers to the qualities that allow operators, developers, and business sponsors to gain understanding of the system’s historical trends, present conditions, instantaneous state, and future projections. Transparent systems communicate, and in communicating, they train their attendant humans.”
Nygard, Michael T. (2012-11-05). Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) (Kindle Locations 4239-4242). Pragmatic Bookshelf. Kindle Edition.
Transparency and its supporting technologies are necessary to make smart decisions:
- Fuels understanding of system behavior
- Helps makes decisions on the evolution of a system
- Think the data to perform a retrospective of the system
- Black box when something goes wrong
- Historical Trending
- What has the system done in the past, and what does that reveal?
- Ex. performance trends over time, patterns of peak usage
- What has the system done in the past, and what does that reveal?
- Predictive Analysis
- Extrapolating the future based on the historical trends of the past
- Ex. capacity planning, procurement decisions
- Extrapolating the future based on the historical trends of the past
- Present Status
- What is the state of the system right now?
- Ex. dashboards with relevant metrics
- What is the state of the system right now?
- Instantaneous behavior
- What is going on during a given incident?
- Ex. stack traces, thread dumps, log file errors, JMX
- What is going on during a given incident?
- Black box
- Added to system afterwards, possibly by operations
- Ex. Graphite, Ganglia, AppDynamics, Nagios, Splunk, Logstash
- Added to system afterwards, possibly by operations
- White box
- Added within the thing being monitored, as part of the system
- Ex. Logging, Application Metrics
- Added within the thing being monitored, as part of the system