SlideShare a Scribd company logo
REMIE BOLTE | COLLABSOFT | @RBOLTE
Monitoring as Code
How to Integrate App Monitoring Into Your Developer Cycle
Agenda
A Brief History Of Monitoring
Agenda
The Boy Who Cried Wolf
Agenda
Didn’t We Solve This With DevOps?
Agenda
Introducing Monitoring As Code
Agenda
Getting started
A
Brief
History Of
Monitoring
History of
Monitoring
Pre-historic
Single system monitoring
All tools were focused on the wellbeing of their host
system (top, vmstat, syslog). It was a symbiotic mess.
Command-line interfaces
Because... well… does this need explaining?
It makes me feel old.
Application? Say what?
It is hard enough to keep the systems running, who
cares about the actual applications.
History of
Monitoring
‘90s
Systems & network monitoring
Even back then we wanted to make sure amazon.com
was always online (we ❤ books!)
Web-based interfaces FTW!
Yes, finally, a web-based interface. Who doesn’t love
to configure CGI scripts in Apache 1.3?
Oh right, applications, yes, getting there
Ok, so you created this “website” you want to run on
my system. You want it to ALWAYS work. I get it.
History of
Monitoring
‘00s
Busy doing other stuff until late ‘00
Yeah sorry, life kept us busy doing other stuff.
Be the change you seek 😉
Agile. DevOps. Right… gotcha
Ops are still using Nagios. Devs spent the entire
decade reinventing almost everything.
What is APM again?
Install what New Relic agent now? JVM level
integration? Oh wow, those graphs are awesome 😍!
History of
Monitoring
Cloud age
Multi-faceted landscape monitoring
We have eyes on our on-prem, multi-cloud, micro
services based infrastructure. We have 200 tools for it.
Still getting notifications at 3am
Oh well… some things never change 🤷
Your application are belong to us
We are using auto-scaling now, don’t really care if
your application is hording resources. We cool.
The
Boy Who
Cried Wolf
(false) positively cruel
fool me once, shame on you;
fool me twice, shame on me;
fool me at 3am and for the love of me
I will know where to find you.
25% believe these
interruptions [..] make their
jobs unmanageable at times
2018 SURVEY OF OVER 800 IT PROFESSIONALS, PAGERDUTY
49%
of IT professionals reported 11 – 30 interruptions per week
We are using the wrong
metrics to monitor our
systems and applications
BOLD STATEMENT #1
Monitoring & alerting is the
last remaining silo in our
development process
BOLD STATEMENT #2
It’s the tooling, stupid
BOLD STATEMENT #3
Didn’t
We Solve
This With
DevOps?
Introducing Monitoring As Code
Monitoring
As Code
The problem
We are using the wrong metrics
Reactive monitoring based on thresholds determined
by historic trend analysis is not good enough anymore
We operate with a split brain
Developers write business logic in code, operations
crew recreates this in separate monitoring tooling
The learning curve is too steep
We can’t expect anyone to be a full-stack-devops-
rainbow-unicorn-centaur 🦄 🌈 '
Monitoring
As Code
The goal
Monitoring application state
We need to proactively track the actual real-time
state of the application
Monitoring should be SOLID and DRY
We should implement the same principles for
monitoring as we do with application development
Use modern development methods
There should be no new languages, no new techniques
and no context switching for monitoring
Monitoring
As Code
The solution
Nagios Core+Docker+TypeScript = 🤔😊😍
Create your checks in Typescript and deploy it with
Docker
Incorporate monitoring in your application
Ops are still using Nagios. Devs spent the entire
decade reinventing almost everything.
Write checks like you write code
Use your existing skills, your existing CI/CD pipeline
and your existing process to develop monitoring
Monitoring
As Code
But why
Nagios though?
Proven technology
Conceived in the same year Toni Braxton wanted her
heart to be unbroken and Lauryn Hill was killed softly
Lightweight, super fast, fit for purpose
Written in C, focused on one thing. No fancy stuff, just a
very good task scheduler for monitoring & alerting
Active community, well documented
Hosted on GitHub, it is actively maintained with
regular stable releases and thorough documentation
Show me some
code already
./src/checks/http.ts
./src/hosts/website.ts
/src/index.ts
./src/inversify.config.ts
./src/contacts/statuspage.ts
… there are more examples on Github
https://github.com/remie/atlascamp-2019
Getting
Started
Getting
Started
Identify
Monitor what matters to you
Make sure to identify which parts of your application
landscape require monitoring & alerting
Determine ownership
Who will be alerted when things go south? What do
you expect will happen at 3am?
Adjust your definition of done
Make sure to include writing monitoring checks as
part of your DoD, just like you’d do with tests
Getting
Started
Create
Write your checks
Add a folder called ‘monitoring’ (next to tests) and
initialize it:
$: mkdir monitoring
$: cd monitoring
$: npx @remie/nagios-cli init
This will install an example project that you can use to
start writing your checks.
Run it with `npm start` and check the results here:
http://localhost:8000
Getting
Started
Test
Write unit tests for your checks
Remember, we’re dealing with Typescript. You can
write unit tests for it.
Run locally with Docker
You can run the checks against your local
development environment with Docker
Deploy to staging environment
By leveraging environment variables or IoC, you easily
deploy to your staging environment
Getting
Started
Deploy
Include monitoring in your CI/CD process
Build & compile your Typescript code and build the
Docker container in your existing CI/CD pipeline
Deploy to your Kubernetes/ECS cluster
Because containers, AM I RIGHT?
No but seriously, deployment is that simple
Connect with existing alerting solutions
Integrate with Slack, OpsGenie, PagerDuty or
StatusPage to receive alert notifications
REMIE BOLTE | COLLABSOFT | @RBOLTE
Thank you!

More Related Content

PDF
Leaning into Server to Cloud App Migration
PDF
Herding Microservices – the Atlassian Way
PDF
Building Faster With Your Team's UI Kit
PDF
Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...
PDF
Behind the Scenes of Vendor Security Reviews in the Enterprise
PDF
From AUI to Atlaskit - Streamlining Development for Server & Cloud Apps
PDF
5 Essential Techniques for Building Fault-tolerant Systems
PDF
Declaring Server App Components in Pure Java
Leaning into Server to Cloud App Migration
Herding Microservices – the Atlassian Way
Building Faster With Your Team's UI Kit
Not All Heroes Wear Capes: Skills and Tools Helpful in Becoming a Support Sup...
Behind the Scenes of Vendor Security Reviews in the Enterprise
From AUI to Atlaskit - Streamlining Development for Server & Cloud Apps
5 Essential Techniques for Building Fault-tolerant Systems
Declaring Server App Components in Pure Java

What's hot (19)

PDF
Managing Application Lifecycle using Jira and Bitbucket Cloud and AWS Tooling
PDF
Spec-first API Design for Speed and Safety
PDF
Product Keynote: Jira Service Desk, Opsgenie, Statuspage
PDF
Take Action with Forge Triggers
PDF
The New & Improved Confluence Server and Data Center
PPTX
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
PDF
4 Changes We're Making to Help you be Successful in the Cloud
PDF
Launch into New Markets with JIRA Service Desk
PPTX
AWS Summit - Trends in Advanced Monitoring for AWS environments
PDF
Mock Servers - Fake All the Things!
PDF
Designing Forge UI: A Story of Designing an App UI System
PDF
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
PPTX
Alexandre Roman - How Pivotal Cloud Foundry can help you run Spring at scale ...
PDF
Automate Mission Critical Business Workflows With JIRA
PDF
Automation Awesomeness: Scaling JIRA Service Desk
PDF
Using Cookies to Store Your Postman Secrets
PDF
The Four Principles of Atlassian Performance Tuning
PDF
What Does Jira Next-Gen Mean for Cloud Apps?
PPTX
Atlassian User Group NYC - May 24, 2017 Slides
Managing Application Lifecycle using Jira and Bitbucket Cloud and AWS Tooling
Spec-first API Design for Speed and Safety
Product Keynote: Jira Service Desk, Opsgenie, Statuspage
Take Action with Forge Triggers
The New & Improved Confluence Server and Data Center
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
4 Changes We're Making to Help you be Successful in the Cloud
Launch into New Markets with JIRA Service Desk
AWS Summit - Trends in Advanced Monitoring for AWS environments
Mock Servers - Fake All the Things!
Designing Forge UI: A Story of Designing an App UI System
Modern Operations at Scale within Viasat – How to Structure Teams and Build A...
Alexandre Roman - How Pivotal Cloud Foundry can help you run Spring at scale ...
Automate Mission Critical Business Workflows With JIRA
Automation Awesomeness: Scaling JIRA Service Desk
Using Cookies to Store Your Postman Secrets
The Four Principles of Atlassian Performance Tuning
What Does Jira Next-Gen Mean for Cloud Apps?
Atlassian User Group NYC - May 24, 2017 Slides
Ad

Similar to Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle (20)

PPTX
What does "monitoring" mean? (FOSDEM 2017)
PDF
Open Source Monitoring in 2015
PDF
Sensu monitoring as code what it is and why you need it
PDF
Monitoring - deeper dive
PPTX
Evolution of Monitoring and Prometheus (Dublin 2018)
PPTX
Monitor all the thingz slideshare
PPTX
Icinga camp ams 2016 icinga2
PPTX
Icinga Camp Amsterdam - Monitoring – When to start
PDF
Lesson_08_Continuous_Monitoring.pdf
ODP
PDF
Monitoring in an Infrastructure as Code Age
PPTX
Monitoring What Matters: The Prometheus Approach to Whitebox Monitoring (Berl...
ODP
Monitoring in an Infrastructure as Code Age
ODP
Monitoring - When To start (or Metrics led development)
PPTX
DevOps monitoring: Feedback loops in enterprise environments
PDF
The Open-Source Monitoring Landscape
PDF
The Open-Source Monitoring Landscape
PDF
Monitoring Big Data Systems - "The Simple Way"
PPTX
TopConf : DevOps Monitoring: Feedback Loops in Enterprise Environments
PDF
LOPSA East 2013 - Building a More Effective Monitoring Environment
What does "monitoring" mean? (FOSDEM 2017)
Open Source Monitoring in 2015
Sensu monitoring as code what it is and why you need it
Monitoring - deeper dive
Evolution of Monitoring and Prometheus (Dublin 2018)
Monitor all the thingz slideshare
Icinga camp ams 2016 icinga2
Icinga Camp Amsterdam - Monitoring – When to start
Lesson_08_Continuous_Monitoring.pdf
Monitoring in an Infrastructure as Code Age
Monitoring What Matters: The Prometheus Approach to Whitebox Monitoring (Berl...
Monitoring in an Infrastructure as Code Age
Monitoring - When To start (or Metrics led development)
DevOps monitoring: Feedback loops in enterprise environments
The Open-Source Monitoring Landscape
The Open-Source Monitoring Landscape
Monitoring Big Data Systems - "The Simple Way"
TopConf : DevOps Monitoring: Feedback Loops in Enterprise Environments
LOPSA East 2013 - Building a More Effective Monitoring Environment
Ad

More from Atlassian (20)

PPTX
International Women's Day 2020
PDF
10 emerging trends that will unbreak your workplace in 2020
PDF
Forge App Showcase
PDF
Let's Build an Editor Macro with Forge UI
PDF
Meet the Forge Runtime
PDF
Forge UI: A New Way to Customize the Atlassian User Experience
PDF
Observability and Troubleshooting in Forge
PDF
Trusted by Default: The Forge Security & Privacy Model
PDF
Forge: Under the Hood
PDF
Access to User Activities - Activity Platform APIs
PDF
Design Your Next App with the Atlassian Vendor Sketch Plugin
PDF
Tear Up Your Roadmap and Get Out of the Building
PDF
Nailing Measurement: a Framework for Measuring Metrics that Matter
PDF
Building Apps With Color Blind Users in Mind
PDF
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
PDF
Beyond Diversity: A Guide to Building Balanced Teams
PDF
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
PDF
Building Apps With Enterprise in Mind
PDF
Shipping With Velocity and Confidence Using Feature Flags
PDF
Build With Heart and Balance, Remote Work Edition
International Women's Day 2020
10 emerging trends that will unbreak your workplace in 2020
Forge App Showcase
Let's Build an Editor Macro with Forge UI
Meet the Forge Runtime
Forge UI: A New Way to Customize the Atlassian User Experience
Observability and Troubleshooting in Forge
Trusted by Default: The Forge Security & Privacy Model
Forge: Under the Hood
Access to User Activities - Activity Platform APIs
Design Your Next App with the Atlassian Vendor Sketch Plugin
Tear Up Your Roadmap and Get Out of the Building
Nailing Measurement: a Framework for Measuring Metrics that Matter
Building Apps With Color Blind Users in Mind
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Beyond Diversity: A Guide to Building Balanced Teams
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
Building Apps With Enterprise in Mind
Shipping With Velocity and Confidence Using Feature Flags
Build With Heart and Balance, Remote Work Edition

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Approach and Philosophy of On baking technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Big Data Technologies - Introduction.pptx
PDF
Electronic commerce courselecture one. Pdf
cuic standard and advanced reporting.pdf
Modernizing your data center with Dell and AMD
Per capita expenditure prediction using model stacking based on satellite ima...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Approach and Philosophy of On baking technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Empathic Computing: Creating Shared Understanding
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Big Data Technologies - Introduction.pptx
Electronic commerce courselecture one. Pdf

Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle

  • 1. REMIE BOLTE | COLLABSOFT | @RBOLTE Monitoring as Code How to Integrate App Monitoring Into Your Developer Cycle
  • 2. Agenda A Brief History Of Monitoring
  • 3. Agenda The Boy Who Cried Wolf
  • 4. Agenda Didn’t We Solve This With DevOps?
  • 8. History of Monitoring Pre-historic Single system monitoring All tools were focused on the wellbeing of their host system (top, vmstat, syslog). It was a symbiotic mess. Command-line interfaces Because... well… does this need explaining? It makes me feel old. Application? Say what? It is hard enough to keep the systems running, who cares about the actual applications.
  • 9. History of Monitoring ‘90s Systems & network monitoring Even back then we wanted to make sure amazon.com was always online (we ❤ books!) Web-based interfaces FTW! Yes, finally, a web-based interface. Who doesn’t love to configure CGI scripts in Apache 1.3? Oh right, applications, yes, getting there Ok, so you created this “website” you want to run on my system. You want it to ALWAYS work. I get it.
  • 10. History of Monitoring ‘00s Busy doing other stuff until late ‘00 Yeah sorry, life kept us busy doing other stuff. Be the change you seek 😉 Agile. DevOps. Right… gotcha Ops are still using Nagios. Devs spent the entire decade reinventing almost everything. What is APM again? Install what New Relic agent now? JVM level integration? Oh wow, those graphs are awesome 😍!
  • 11. History of Monitoring Cloud age Multi-faceted landscape monitoring We have eyes on our on-prem, multi-cloud, micro services based infrastructure. We have 200 tools for it. Still getting notifications at 3am Oh well… some things never change 🤷 Your application are belong to us We are using auto-scaling now, don’t really care if your application is hording resources. We cool.
  • 13. (false) positively cruel fool me once, shame on you; fool me twice, shame on me; fool me at 3am and for the love of me I will know where to find you.
  • 14. 25% believe these interruptions [..] make their jobs unmanageable at times 2018 SURVEY OF OVER 800 IT PROFESSIONALS, PAGERDUTY
  • 15. 49% of IT professionals reported 11 – 30 interruptions per week
  • 16. We are using the wrong metrics to monitor our systems and applications BOLD STATEMENT #1
  • 17. Monitoring & alerting is the last remaining silo in our development process BOLD STATEMENT #2
  • 18. It’s the tooling, stupid BOLD STATEMENT #3
  • 21. Monitoring As Code The problem We are using the wrong metrics Reactive monitoring based on thresholds determined by historic trend analysis is not good enough anymore We operate with a split brain Developers write business logic in code, operations crew recreates this in separate monitoring tooling The learning curve is too steep We can’t expect anyone to be a full-stack-devops- rainbow-unicorn-centaur 🦄 🌈 '
  • 22. Monitoring As Code The goal Monitoring application state We need to proactively track the actual real-time state of the application Monitoring should be SOLID and DRY We should implement the same principles for monitoring as we do with application development Use modern development methods There should be no new languages, no new techniques and no context switching for monitoring
  • 23. Monitoring As Code The solution Nagios Core+Docker+TypeScript = 🤔😊😍 Create your checks in Typescript and deploy it with Docker Incorporate monitoring in your application Ops are still using Nagios. Devs spent the entire decade reinventing almost everything. Write checks like you write code Use your existing skills, your existing CI/CD pipeline and your existing process to develop monitoring
  • 24. Monitoring As Code But why Nagios though? Proven technology Conceived in the same year Toni Braxton wanted her heart to be unbroken and Lauryn Hill was killed softly Lightweight, super fast, fit for purpose Written in C, focused on one thing. No fancy stuff, just a very good task scheduler for monitoring & alerting Active community, well documented Hosted on GitHub, it is actively maintained with regular stable releases and thorough documentation
  • 25. Show me some code already
  • 30. … there are more examples on Github https://github.com/remie/atlascamp-2019
  • 32. Getting Started Identify Monitor what matters to you Make sure to identify which parts of your application landscape require monitoring & alerting Determine ownership Who will be alerted when things go south? What do you expect will happen at 3am? Adjust your definition of done Make sure to include writing monitoring checks as part of your DoD, just like you’d do with tests
  • 33. Getting Started Create Write your checks Add a folder called ‘monitoring’ (next to tests) and initialize it: $: mkdir monitoring $: cd monitoring $: npx @remie/nagios-cli init This will install an example project that you can use to start writing your checks. Run it with `npm start` and check the results here: http://localhost:8000
  • 34. Getting Started Test Write unit tests for your checks Remember, we’re dealing with Typescript. You can write unit tests for it. Run locally with Docker You can run the checks against your local development environment with Docker Deploy to staging environment By leveraging environment variables or IoC, you easily deploy to your staging environment
  • 35. Getting Started Deploy Include monitoring in your CI/CD process Build & compile your Typescript code and build the Docker container in your existing CI/CD pipeline Deploy to your Kubernetes/ECS cluster Because containers, AM I RIGHT? No but seriously, deployment is that simple Connect with existing alerting solutions Integrate with Slack, OpsGenie, PagerDuty or StatusPage to receive alert notifications
  • 36. REMIE BOLTE | COLLABSOFT | @RBOLTE Thank you!