{"_id":"@dollarshaveclub/monitor","_rev":"130-f81c1680774ede0f975ee2e36924d6ae","name":"@dollarshaveclub/monitor","description":"A remote uptime monitoring framework for running monitors as a CRON job","dist-tags":{"latest":"1.9.1"},"versions":{"0.0.0":{"name":"@dollarshaveclub/monitor","version":"0.0.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@0.0.0","maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"bin":{"monitor":"./bin/run.js"},"dist":{"shasum":"fa276ef2bb63c53799f057a8877372bd79264814","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-0.0.0.tgz","integrity":"sha512-O+323Ql8Tj0oepGSxbxovizGCrrJPY+Rg1MaO1TMWTZ6rR4ZYvO5EmKGLdp20OPn2kIHvVWEVj2g3w+FBLRIrA==","signatures":[{"sig":"MEYCIQDlAb/RbBBivj9scyNWDt+99a3xN0OlW2vCbPrbtlJHAgIhAJ3OnoJYhI3+psQNFvySy/34cdG5zFK1boRyMScfv0op","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"gitHead":"c2ba700003f7bdbf9ed3327c72c27450f65f1502","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","debug":"^3.1.0","colors":"^1.1.2","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-0.0.0.tgz_1510381731936_0.18628363986499608","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@dollarshaveclub/monitor","version":"1.0.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.0.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"monitor":"./bin/run.js"},"dist":{"shasum":"57c5676bb2383dab39ce147eecca41d0952f1a8c","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.0.0.tgz","integrity":"sha512-vqh27FB6+RI9h0sMSIBo2XwLF+N0Uaeo4KBujfEXz7klQW3R+Y6png5D025tilDHWtYmd6dEphh6NRPwJVqvsg==","signatures":[{"sig":"MEQCIGtAuBGT7D1zHsr5Wlq9KCWmidW2P9NIDgQNviGOVzDjAiAKUIKA+rLlRMgb64YRAmNvTxGdng/G2VgmmQksLKNS9A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"51066a55adcbebab952d90c37f09214729bb373d","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","debug":"^3.1.0","colors":"^1.1.2","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.0.0.tgz_1510385786634_0.39540748833678663","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@dollarshaveclub/monitor","version":"1.0.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.0.1","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"a465466d55d8bc6671bd993e0ad67639c5f0c11f","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.0.1.tgz","integrity":"sha512-XvfPprl2sAalcH/vT6SpN2OVFCWR7bwNe6pf68UshPngRwTu/zxoIU/YvvbZajkg0+KOMk12hMG6t+1TFbyBbQ==","signatures":[{"sig":"MEUCIQDEQqqW4iEXjEK1I4+NDe8anxHNtqix1aEGT93XKm2O2wIgBHLrm61ZKt5Dy+tdNW2M8UBfty7MyHbo8nEwNh5LPvY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"167070490edb68e307933a62ff014558d7514832","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","debug":"^3.1.0","colors":"^1.1.2","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.0.1.tgz_1510386303082_0.9606593439821154","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@dollarshaveclub/monitor","version":"1.1.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.1.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"46b55c35ef138a8098b64bd3a317a540744e0630","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.1.0.tgz","integrity":"sha512-qvsYzlmGQQ2RlH8PgzUFK3Ku0FvPAMuffOojtbMf+KpjVbMInvUxTEpA0vg0JfzyqvFEoKbHmnQxVNzs41s2/w==","signatures":[{"sig":"MEYCIQCc8LDcbpxDc/OR13RxMta5zu3Hn2+ynqPXDimalBn7OAIhAOFrUduwiya0QYyMhlDmq3QNs84Keelh3sFfGNklDpwL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"a54b5037669fd4948bde9536f976921477fa541a","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","debug":"^3.1.0","colors":"^1.1.2","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.1.0.tgz_1510413702529_0.48608648078516126","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@dollarshaveclub/monitor","version":"1.1.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.1.1","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"cfc6df0d8570e3ec37d7688ed160497a038ed083","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.1.1.tgz","integrity":"sha512-TsgBrl2VwFwXCL/rWXYBa91AbaMXg4/sP18PAjf1hDi+tDvxSpvJvm3ElHzu1dfIG+C4Y3ZaL93NS0D+wP/Rng==","signatures":[{"sig":"MEYCIQC9uhZf2JghqUJVFLiMgulmE/c9bbEmwtPmwlsjjXhCmAIhAI0O4zIV+iwKRadvjEoqO9tzimKCUOSSCW1ZsVM6n2Vz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"9f54ce6a142f7977eb0bf06f4c8d792bbe677b88","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","debug":"^3.1.0","colors":"^1.1.2","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.1.1.tgz_1510419987741_0.5408503070939332","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@dollarshaveclub/monitor","version":"1.1.2","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.1.2","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"d386a5e69885e518fab7c0218349c67164a9fe63","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.1.2.tgz","integrity":"sha512-is70vvN8TH/nCye2Bni5fS5vh3Kpxtspy+ojjM7AWy7H65Dr0VTcSWardGX/p4gzX/GIZOv776SdNUtAmFCjEQ==","signatures":[{"sig":"MEYCIQDvqUYGn8pGZ7W+9nMZp2uXzjaJUAV/Rmyao32przirBAIhAOSX4ZYwAkXa9C/ZYJ4RC868W1mBsUpDEY4Yhnh29/yu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"368d2bc27752bbbeef07917ad88faa315a358a3f","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","globby":"^6.1.0","lodash":"^4.17.4","throat":"^4.1.0","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.1.2.tgz_1510448279811_0.7960488374810666","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@dollarshaveclub/monitor","version":"1.2.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.2.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"b5acc0db04b80b156a09e1853a98fdf9587304ff","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.2.0.tgz","integrity":"sha512-Y5F9Ma3Ix54N/5Gd3Fy0VAIK5zUZrms/fjYdS/+g2sxP1ShqiVBiUNgXxbW/LCJxxwZhsQ+6ytJNqpQXgeK9Ug==","signatures":[{"sig":"MEUCIGqERSUz9gO5Tr5RF2Cl1bbr3vWvC/mUCIKs7S+nZUORAiEA4q/j3Ps8Y/Q5XMwR9dUN8VkA6ySrscLKCrIVF7nE/UQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"97577637ef6352145c388e18795bed5c59465d32","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.2.0.tgz_1510544997949_0.45622441079467535","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@dollarshaveclub/monitor","version":"1.3.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.3.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"b09485cf08e1890f51f660b037b6b46edebce56e","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.3.0.tgz","integrity":"sha512-JHdKUbseBBpu2rSj+7F0WyjistsVn0KtSfD4k0dDkfmOYMviFCPcleaiqSUBQMWgdO480t3pameVqjWF1dm0jQ==","signatures":[{"sig":"MEUCIQDYc9zpWGJn+hX9N+4iZIOYvSrq4fIyJpnDODbESDXNPAIgB1pgQOxHMyoVV8gmBCBOGThiqxBDCZMPqAvigUNkqOQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"c1ac81c03c95ee1aa92a284b38b0c250018bb9a6","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.3.0.tgz_1510549973687_0.8054402221459895","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@dollarshaveclub/monitor","version":"1.4.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.4.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"3877723c13239e48c9582a87e29aaa87fd2ba897","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.4.0.tgz","integrity":"sha512-d2RG9AhseCr3yQvSZ5R3vGx8PjpIs1FtTbvTksb6Aya5MCVWm/GcvHNpe2VWkjJBqmpXFn/DwRveKZcLJIgIpQ==","signatures":[{"sig":"MEUCIQCy4qsClV8PPz5cY/lMSq361ce7FqkaG5YK/K4n4uhz7AIgX2hK8gx6Pp31zliohlSW8uzc2QDuiS6S9Xa5WJgtIJU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"6b5b7b54f34a17a5d763a73283aafa88cbcedc58","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^0.13.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.4.0.tgz_1510620350488_0.8294253731146455","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@dollarshaveclub/monitor","version":"1.4.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.4.1","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"0fe951fabd6f8ad671261baed9e0e971526941e6","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.4.1.tgz","integrity":"sha512-vEbAqHngFP8+r3Zx6z3K0MiGBCbnz3Az8Fvuz446L40iaSF9ir4I2/iV+MHCFfGEorqjP7bDBOfW7Zcykz2czw==","signatures":[{"sig":"MEUCIB2a+whqepi3wdkot7fv/3GlhYejQja3JGjieMVDty0LAiEAh/d0+iTfxgDNOs/gRKKx+hZEKvbS5z+LhMlJpbV/5VY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"331351087f4b4fb3b2feba739978e900ff16afe3","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^0.13.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.4.1.tgz_1510622161743_0.7782827792689204","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@dollarshaveclub/monitor","version":"1.5.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.5.0","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"732092e5f7cd6274b1cd4e0f2f704856b18a204f","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.5.0.tgz","integrity":"sha512-6uAPiLa9fOaOv6I0zLl3bDQhbV3WOP24WKv/JS6bHiDboR2+/kiYk11b2GWSm5AfxHEq4WRlRrlswY57dsF+LA==","signatures":[{"sig":"MEUCIQD0jFwbXg/IDm+wCQb09TTH3BUMzCMwAhe5xy1aATldNwIgMQSErjo7HK5PKSumYZjX06HUWvme6sgn5JG1KEczBho=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"be099b406c646707031dadc1b9cef7b272553714","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^0.13.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.5.0.tgz_1510717499302_0.6607544410508126","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"@dollarshaveclub/monitor","version":"1.5.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.5.1","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"c402cca1c553c425ed4a50c203808af96431fdc3","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.5.1.tgz","integrity":"sha512-7VxXGtbE8Hi97mV1GbNFvTLtUU9qMt3Cr52KbtNFHnaQF8k9qsj00s3HfIR/mc9MpItyRxOOJBaowX/QzRkLUA==","signatures":[{"sig":"MEUCIQCxMODaXSMRpzU/hKOZPKGDmGaTvBF5mf1o3NO4DzkAywIgOwCuC1UkoNbt7dctXtkYoEnsiAS+36qlaYomY6DAM1c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"6804591deb01ec9426c22cac7b17da980873b65f","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^0.13.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.5.1.tgz_1510717674488_0.4331051579210907","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"@dollarshaveclub/monitor","version":"1.5.2","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.5.2","maintainers":[{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"92db28e46408b73422847ed67e617698d8c2868d","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.5.2.tgz","integrity":"sha512-UJ7k4EG8EbGnkgoAqdC67O7HlwK13QQM5RUsaF9nFLHRIv9tDBZ02GRiksAcj90gty1B6CT8skgr/gLVcuUjXg==","signatures":[{"sig":"MEQCIH8pexZamWS5tWJwXxS7i0lRsIPFQeLg3uklzZDsfP7wAiBmhfjkVXSHwy9nGXCyShgOvFLnKhoofm4Cj3xfqpd5Ew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"9e133e81130394820fb22e36e9d2ca1aa174422f","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.5.1","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.1","dependencies":{"ms":"^2.0.0","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^6.1.0","lodash":"^4.17.4","commander":"^2.11.0"},"devDependencies":{"jest":"^21.2.1","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^0.13.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/monitor-1.5.2.tgz_1510717899326_0.32084973785094917","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@dollarshaveclub/monitor","version":"1.6.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.6.0","maintainers":[{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian@yahoo.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"8030f5eae70b670432a5abff220b88341d463057","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.6.0.tgz","fileCount":16,"integrity":"sha512-xxrN16rWDrveaFIBj7+y3F1/zyeJAxzoZRwsx6hAzMVWLJJWGrOsJfvjk9zkb2PunnuDFYNDomOsNCm4IuYCMg==","signatures":[{"sig":"MEQCIAhc3MwVzNeQq4jNcEvEEcJgViEWFe6eUUjoSMY1SUNSAiAiyLFh2sneE/TRsM0JTcm7bRNZx/FC7Y4/lWwXKA0mMA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27741},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"920d5db9a33168e206fc521eee3d582f5a785973","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.4","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.0.0","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.6.0_1518678043536_0.9257947391167078","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@dollarshaveclub/monitor","version":"1.7.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.7.0","maintainers":[{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian@yahoo.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"30abca678d1664f6f12c5a9da030a4ddb82f01c4","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.7.0.tgz","fileCount":16,"integrity":"sha512-gNVQNIZMUCJe+ITF3kF8QC9OXEaCVhvMYXuOZzwmDLYsEP6YWBq0YzsbboDVt9iFHajMsV3TTGM5hb1WX+n1kg==","signatures":[{"sig":"MEQCIBqno00i76qrJXas42z/HKnhDLWP8uyF6/VLpS7rLHpqAiBlymfnnbY1VUEIl5EHC5+Oh5a4E2Zikt9LR6BPyn32lg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28077},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"5e3bfa3630842ad0b6f4f75788963f1df348b1d9","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.4","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^8.0.0","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.7.0_1519300542541_0.7762966898133739","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"@dollarshaveclub/monitor","version":"1.7.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.7.1","maintainers":[{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian@yahoo.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"54b622b23bdf07f39f826876b5150b0f698eec51","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.7.1.tgz","fileCount":16,"integrity":"sha512-yKXP6MmJjgqwXDA44zVI1YN29cdH15EWaEQ+DsBEbwCRVEC3RWJJfj7FNO09gxrj799AIdq2OOipglbByYZumQ==","signatures":[{"sig":"MEUCIQCmHXysQ+ulhHBw6xlFSXzW0a7otmNnFUKZODFagKksCAIgAPlkzmQIoPv6u6jauXIc3NGwLyOLBBMVNC7/Jq4oFKY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28077},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"4d35a2063fae94937a4b52daff1d2479dc3e8240","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.9.4","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.1.1","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.7.1_1519301641749_0.9397126264191975","host":"s3://npm-registry-packages"}},"1.7.2":{"name":"@dollarshaveclub/monitor","version":"1.7.2","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.7.2","maintainers":[{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian@yahoo.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"8296ace5ae4b818de81d420c59c5cf97dd7277a4","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.7.2.tgz","fileCount":16,"integrity":"sha512-EfTgeurtFTcqiMjceMVKNucHHFlrmiyJ4tiw1QBfLtsSlRSiYk270QnPmr7vk0aFT5sPiO37G54si+D/XgOrZA==","signatures":[{"sig":"MEUCIFZK/VW0+DowF+b6PqsJzg6ZcXOCtQLj817bqbmmeN/IAiEAwAAEHXmwRiSuYAiicVcOzWPEDOUkz6ZwMJgs0tb5rio=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28076},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"87638b170be0e65f9540305fbd64d59f0161e344","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"9.7.1","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.1.1","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.7.2_1520566234466_0.21338317173393784","host":"s3://npm-registry-packages"}},"1.7.3":{"name":"@dollarshaveclub/monitor","version":"1.7.3","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.7.3","maintainers":[{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"briangonzalez","email":"me@briangonzalez.org"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian@yahoo.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"jjwainwright2@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"f23ff49f2f07cd38ed9563723977eb8645fdaaf1","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.7.3.tgz","fileCount":16,"integrity":"sha512-OMh4ia+BnHxqRLFOSrafWWU0NoBu1RJIwXAACJeAw3kp7IQf7xiXw82i/LgQsA+HpSplZg0gSuwPufOuOKLn1Q==","signatures":[{"sig":"MEUCIChECbpe55KegkqVU2a6kwDLmrMCwHTqrjA8AeNlptvzAiEA412F4AadxjNOc2E6vrF4+X9wUo2fdZnZ9SX8Mcl4Lns=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28096},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"60801f802c6523af32f4d39eee8f851171ac044a","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"9.7.1","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.1.1","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.7.3_1520566363154_0.9873658494800128","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"@dollarshaveclub/monitor","version":"1.8.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.8.0","maintainers":[{"name":"aliaodsc","email":"alvin.liao@dollarshaveclub.com"},{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jasonbosco","email":"mail@jasonbos.co"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"opaopa","email":"nick.a.march@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian22@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"yowainwright@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"8c2cad529713e9e3aa63da4ab07d49675919a5ed","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.8.0.tgz","fileCount":16,"integrity":"sha512-BgzIzdMzDhq3uZwvBZ3RqatL0R7C4SLav2wW0S7MI25dMb4MvWBmaspg/q6s4P+yTmqOcdTmOhmQzKEaEO3kIQ==","signatures":[{"sig":"MEUCIHTbfsQHtTsmtjJLEgb/1CSfEZ7JbQxFuOeOlWNgaUflAiEA0BHvvmZ/ACFMZ/X8OzdDtl0Y37juAfdaCtXr57hOaZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28595},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"b9676ec5107907979433b1570b3966d97b993a0a","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.11.1","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.1.1","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.8.0_1523311173116_0.3503636524694349","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"@dollarshaveclub/monitor","version":"1.9.0","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.9.0","maintainers":[{"name":"aliaodsc","email":"alvin.liao@dollarshaveclub.com"},{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian.g.gates","email":"brian.g.gates@gmail.com"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jasonbosco","email":"mail@jasonbos.co"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"opaopa","email":"nick.a.march@gmail.com"},{"name":"pwfisher","email":"patrick@pwfisher.com"},{"name":"sakoh","email":"sakohartounian22@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"yowainwright","email":"yowainwright@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"40ac6917a449cd760f5fda04c67926d8af3ae2ac","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.9.0.tgz","fileCount":17,"integrity":"sha512-j0YRLh3Zbgws3fEl6AHeWGQ3cvfQuYINTvGBTJfAKAiT85h9wyiDR0Z7TRhsJU3VQn2V78zW3J2kSTzxfXxbzg==","signatures":[{"sig":"MEUCIAE3lQ8n08DGlGVOqp43drD85rT5X22jXGq0sRmddg2RAiEAy6dIDfo0DGZ50LS5rb+aIjj4ZdRDcaDCJdPdA2h+OgA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29915},"jest":{"testEnvironment":"node"},"files":["bin","lib"],"gitHead":"24b9b8ad3bc630b6ee7f8b76b8cdfa46e64b0de2","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"_npmVersion":"5.6.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"8.11.1","dependencies":{"ms":"^2.1.1","chalk":"^2.3.0","debug":"^3.1.0","p-all":"^1.0.0","globby":"^7.1.1","lodash":"^4.17.4","commander":"^2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^22.0.0","eslint":"^4.10.0","codecov":"^3.0.0","request":"^2.83.0","puppeteer":"^1.0.0","request-promise":"^4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.9.0_1523320685596_0.43728086642046504","host":"s3://npm-registry-packages"}},"1.9.1":{"name":"@dollarshaveclub/monitor","version":"1.9.1","keywords":["remote","uptime","monitoring","testing"],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"license":"MIT","_id":"@dollarshaveclub/monitor@1.9.1","maintainers":[{"name":"ackell","email":"ackell@gmail.com"},{"name":"anthonybalmeo","email":"anthonybalmeo@gmail.com"},{"name":"aptran","email":"tran.anh.p@gmail.com"},{"name":"arjansingh","email":"arjan.singh@dollarshaveclub.com"},{"name":"bensonnn","email":"dan.s.benson@gmail.com"},{"name":"brian-gates","email":"brian.g.gates@gmail.com"},{"name":"chuntley56","email":"coreyhuntley562@gmail.com"},{"name":"danafff","email":"danafleur@hotmail.com"},{"name":"dollarshaveclub-engineering","email":"engineering.services@dollarshaveclub.com"},{"name":"esterlinej","email":"joel.esterline@dollarshaveclub.com"},{"name":"hankjacobs-dsc","email":"hank.jacobs@dollarshaveclub.com"},{"name":"jakiestfu","email":"jakie8@gmail.com"},{"name":"jasonbosco","email":"mail@jasonbos.co"},{"name":"jdcoded","email":"jeremy@jdcoded.com"},{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},{"name":"kevinpeno","email":"kevinpeno@gmail.com"},{"name":"kylecorbelli","email":"kyle.corbelli@gmail.com"},{"name":"michael.rarela.dsc","email":"michael.rarela@dollarshaveclub.com"},{"name":"opaopa","email":"nick.a.march@gmail.com"},{"name":"pcadwell","email":"pcadwell@gmail.com"},{"name":"pezwilson","email":"pezwilson@gmail.com"},{"name":"someguynamedmatt","email":"young.qubit@gmail.com"},{"name":"stefkoenig","email":"stefanie.koenig@dollarshaveclub.com"},{"name":"tr00gle","email":"rtrontz@gmail.com"},{"name":"userjn","email":"dukejoon@gmail.com"},{"name":"yowainwright","email":"yowainwright@gmail.com"}],"bin":{"dsc-monitor":"./bin/run.js"},"dist":{"shasum":"b6e8b24c6301f554b5b5d0b15e84e17ffc19263e","tarball":"https://registry.npmjs.org/@dollarshaveclub/monitor/-/monitor-1.9.1.tgz","fileCount":17,"integrity":"sha512-Gtr/En7OnOBpWdrInPN0UW3iJTGJ6BUnGUv98E8qW6FfQ85LheQdnjTx6YaTxKyHzg2JlXO9TuxB0GYUC/OkFA==","signatures":[{"sig":"MEYCIQDTQcUp9R90rMtYyxK8BvZDkVEEmiYBqnK3/D3MSm3tmgIhAOSAG78LKCIzWBsyy9Y7JaRLGCzuBnwrj/InEwwwqg1r","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29873,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBZxzCRA9TVsSAnZWagAA3YoP/iT2ianEKruL9wbnyby2\nHZmMU7hssHiV6GvE38BaRAP4Ma5tFoK6NfYYGfgLbLyIflMuQ5IWkx5ARqOh\n9vaRViVPhnv9JzP+sYrE+JjXzCCOLqY9APZrUPPkeIGZsHs37veHZ6jQTntt\nvAkd4MXYID1yPxbeZvXJhMdwaU6ZZFkhOQor4ZamIfbRRZ6VSW/dhz+VvZN0\nVx/pfYsVpzHrWaWL4xMqhe+Qzhef0juIidDGNPvQA80y3YlhRxAYRgNwoZO2\n3gvXBVEYwu3gzeNTvbByt1U5HJbqK/lcdte/KEJyHPOcBEJvnRzcAEKhIpiQ\nK4HNS7MUsF1ORJlEtK5qXAcmun2LLKoYsRM6DEbZF0qp5SheOQpuSuQFkzQD\n7ObGNDwJOcwJ6NUbiKDval75XVegpq93T8oyF9e9Rfu/qjrlquDcwGRhryOz\nJids6B6agqXswkuw0bT95u+Lx7tMwrM1DoI2UwIfrDk1cLONJ+kxjieMmZs6\nFBsBRn2eeVQ3qNpc/bP4ctSL3MCveiztwJ/VgOL9fAMrJreTL3hqzUAbWkyQ\noNLajyldywhPhtwimp4J365PXEIxmC5rf/kcQfbsbu9o6cccU/AH4qEoBtUR\nawKR4+6GwavqH3tj1ZWcvRj/+ctHk0R3U3vKRTGThaMWHmBVxGxHcHuF9fDV\nYM7N\r\n=4xcM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"testEnvironment":"node"},"_from":".","_shasum":"b6e8b24c6301f554b5b5d0b15e84e17ffc19263e","gitHead":"5e7f71d6df172bb7d2b34ff39448fd7ba4744dee","scripts":{"test":"jest --coverage","eslint":"eslint . --fix --cache","monitors":"./bin/run.js 'monitors/**/*.js'","eslint:ci":"eslint ."},"_npmUser":{"name":"yowainwright","email":"yowainwright@gmail.com"},"_npmVersion":"4.2.0","description":"A remote uptime monitoring framework for running monitors as a CRON job","directories":{},"_nodeVersion":"7.10.1","dependencies":{"ms":"2.1.1","chalk":"2.3.0","debug":"3.1.0","p-all":"1.0.0","globby":"7.1.1","lodash":"4.17.4","commander":"2.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"22.0.0","eslint":"5.0.1","codecov":"3.0.0","request":"2.83.0","puppeteer":"1.0.0","request-promise":"4.2.2","eslint-config-dollarshaveclub":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/monitor_1.9.1_1543871603060_0.92560165147756","host":"s3://npm-registry-packages"}}},"time":{"created":"2017-11-11T06:28:52.855Z","modified":"2024-06-06T21:11:51.518Z","0.0.0":"2017-11-11T06:28:52.855Z","1.0.0":"2017-11-11T07:36:27.616Z","1.0.1":"2017-11-11T07:45:04.145Z","1.1.0":"2017-11-11T15:21:43.461Z","1.1.1":"2017-11-11T17:06:28.686Z","1.1.2":"2017-11-12T00:58:01.392Z","1.2.0":"2017-11-13T03:49:58.020Z","1.3.0":"2017-11-13T05:12:54.616Z","1.4.0":"2017-11-14T00:45:50.564Z","1.4.1":"2017-11-14T01:16:01.941Z","1.5.0":"2017-11-15T03:44:59.400Z","1.5.1":"2017-11-15T03:47:54.553Z","1.5.2":"2017-11-15T03:51:39.421Z","1.6.0":"2018-02-15T07:00:43.631Z","1.7.0":"2018-02-22T11:55:42.999Z","1.7.1":"2018-02-22T12:14:01.905Z","1.7.2":"2018-03-09T03:30:34.560Z","1.7.3":"2018-03-09T03:32:43.210Z","1.8.0":"2018-04-09T21:59:33.246Z","1.9.0":"2018-04-10T00:38:05.698Z","1.9.1":"2018-12-03T21:13:23.244Z"},"maintainers":[{"email":"alex.janckila@dollarshaveclub.com","name":"ajdsc"},{"email":"engineering.services@dollarshaveclub.com","name":"dollarshaveclub-engineering"},{"email":"dukejoon@gmail.com","name":"userjn"},{"email":"jeremy@jdcoded.com","name":"jdcoded"},{"email":"joon.heo@dollarshaveclub.com","name":"javer"},{"email":"theturtle32@gmail.com","name":"theturtle32"},{"email":"natalie.protasevich@dollarshaveclub.com","name":"natalie.protasevich"}],"author":{"url":"http://jongleberry.com","name":"Jonathan Ong","email":"me@jongleberry.com"},"keywords":["remote","uptime","monitoring","testing"],"license":"MIT","readme":"# @dollarshaveclub/monitor\n\n[![CircleCI](https://circleci.com/gh/dollarshaveclub/monitor/tree/master.svg?style=svg&circle-token=8d27ba25d161dbd81a19eddea92f6e3f69f8c218)](https://circleci.com/gh/dollarshaveclub/monitor/tree/master)\n[![codecov](https://codecov.io/gh/dollarshaveclub/monitor/branch/master/graph/badge.svg?token=7dgu14EsZp)](https://codecov.io/gh/dollarshaveclub/monitor)\n[![Greenkeeper badge](https://badges.greenkeeper.io/dollarshaveclub/monitor.svg?token=882bf829fa5624cf562abac32aa14c00e2b636aa738c8bd72593b26740655743&ts=1510381924742)](https://greenkeeper.io/)\n\nA remote uptime monitoring framework for running monitors as a CRON job.\n\nAt Dollar Shave Club, we run some of our monitors using CircleCI 2 Scheduled Workflows.\nYou can see the test/example monitors for this repository running every minute here: https://circleci.com/gh/dollarshaveclub/workflows/monitor/tree/master.\nSee our [CircleCI 2 Config](.circleci/config.yml).\n\n## Motivation\n\nWith this monitoring solution, we were able to:\n\n- Run our monitors every minute instead of every 5 minutes\n- Test both our API and Browser monitoring scripts outside of a monitoring platform's console/UI. We were unable to do this with our Terraform setup.\n- Use these monitoring scripts as tests for our version of [Heroku Review Apps](https://devcenter.heroku.com/articles/github-integration-review-apps)\n  - Additionally, we can develop monitors alongside our features, allowing us to  merge them simultaneously. We no longer have conflicts between our codebase and our monitors.\n- Able to easily create and manage hundreds of monitors, which is difficult with Terraform (excessive copy pasta) and any UI-based monitoring platform.\n\nSome downsides to our CircleCI Scheduled Workflow setup are:\n\n- Contention with your other tests. If you reach your CircleCI 2 container limit, your monitors will queue then run in bursts, losing coverage momentarily.\n- May not be as fast as running monitors as Kubernetes jobs because CircleCI runs many commands like `npm install` on every build,\n  which could be slower than just pulling a Docker container.\n  However, having a CircleCI UI is preferable.\n\nWhat about features other monitoring solutions provide?\n\n- We must setup our own dashboards and alerting\n- We still use other services for features we need, just not for monitoring everything\n- We don't need to run these monitors from multiple locations.\n  If we do, we'll run them as Kubernetes jobs on different clusters.\n\n## Running Monitors\n\nThere are two ways to run these monitors.\n\n### Locally\n\nTo run monitors locally:\n\n```bash\nnpx dsc-monitor 'monitors/**/*.js'\n```\n\nRun `dsc-monitor --help` for options.\n\nNOTE: this assumes you've installed this library as a local dependency, which is installed as `dsc-monitor`.\nIf you're running the monitors from this repository, use `./bin/run.js`.\nIf you've `npm install --global @dollarshaveclub/monitor`, just run `dsc-monitor`.\n\n### Via Docker\n\nCopy our [Dockerfile Template](Dockerfile.template) to your repository, then run:\n\n```bash\ndocker build -t dsc-monitor\ndocker run -t dsc-monitor 'monitors/**/*.js'\n```\n\n## Creating your Monitoring Repository\n\n```bash\nmkdir my-monitors # your repository name\ncd my-monitors\nnpm init\nnpm i --save @dollarshaveclub/monitor\nmkdir monitors\n```\n\n1. Create a test monitor. You can use one of [our example monitors](monitors/).\n1. Add the `npm run monitors` command:\n  1. Add the following `script` to your `package.json`: `\"monitors\": \"dsc-monitor 'monitors/**/*.js'\"`\n  1. Run your monitors with `npm run monitors`\n1. Setting up your monitors in CircleCI as a CRON job:\n  1. Copy [.circleci/template.config.yml](.circleci/template.config.yml) to `.circleci/config.yml` and push\n\n## Environment Variables\n\nMonitor environment variables:\n\n- `MONITOR_CONCURRENCY=1` - concurrency of monitors running at the same time\n  - When `concurrency === 1`, results will stream to `stdout`\n  - When `concurrency >= 1`, results will be logged one monitor set at a time\n- `MONITOR_SHUFFLE` - whether to shuffle monitors and monitor sets\n- `MONITOR_SHUFFLE_MONITOR_SETS` - whether to shuffle monitor sets\n- `MONITOR_SHUFFLE_MONITORS` - whether to shuffle monitors within a set\n\n## Defining Monitors\n\nAll monitoring sets are defined in `monitors/`.\nEach set is a module with:\n\n- `exports.disabled<Boolean> = false` - whether this monitor is disabled\n- `exports.id<String> = __filename [optional]` - an ID for your monitor set, defaulting to the filename\n- `exports.slowThreshold<Number|String> = 30s [optional]` - slow threshold for the entire monitor set\n- `exports.parallelism<Number> = 1 [optional]` - split this monitor set into shards and run in parallel\n- `exports.monitors<Array>` - an array of monitors with the following properties:\n  - `id<String> [required]` - the ID of the monitor\n  - `parameters<Object> [optional]` - parameters to send to the monitor function and for data purposes\n  - `monitor<Function>(monitorConfig, monitorSetConfig, { attempt, log }) [required]` - the monitor function, which is passed this monitor object as well as `exports`\n    - `monitorConfig` - this `monitor` object\n    - `monitorSetConfig` - this `exports` object\n    - `attempt = 0` - the attempt # for this monitor\n    - `log(str)` - a function to log in a nicely-formatted way\n  - `timeout<Number|String> = '5s' [optional]` - timeout for the monitor before it's considered a failure\n  - `slowThreshold<Number|String> = '1s' [optional]` - slow threshold for a monitor\n  - `retries<Number> = 0 [optional]` - number of times to retry a failing monitor\n- Optional functions to run within the life cycle of the monitoring set:\n  - `exports.beforeAll<Function>(monitorSetConfig)`\n  - `exports.afterAll<Function>(monitorSetConfig, result)`\n  - `exports.beforeEach<Function>(monitorConfig, monitorSetConfig, { attempt, log })`\n  - `exports.afterEach<Function>(monitorConfig, monitorSetConfig, { attempt, log })`\n\nWhat certain fields do:\n\n- `slowThreshold` - turns the color of the time from `green` to `yellow` when a monitor or set of monitors take this amount of time\n\n## Plugins\n\nCreate a file named `dsc-monitor.js` with the form:\n\n```js\nmodule.exports = (monitorRunner) => {\n\n}\n```\n\nThen pass it as a plugin (`-p`) when you run the monitors:\n\n```bash\ndsc-monitor -p dsc-monitor.js 'monitors/**/*.js'\n```\n\n### Events\n\nHook into events via `monitorRunner.events.on(<event>, callback)`. The events are:\n\n- `monitorSet` => `(result) => {}` - when a monitor set is completed\n  - `monitorSetConfig`\n  - `results` - array of `monitor` results\n  - `success = true|false`\n  - `elapsedTime` - in milliseconds\n- `monitor` => `(result) => {}` - when a monitor is completed\n  - `monitorSetConfig`\n  - `monitorConfig`\n  - `results` - array of `monitorAttempt` results\n  - `success = true|false`\n  - `elapsedTime` - in milliseconds\n- `monitorAttempt` => `(result) => {}` - when a monitor attempt is completed\n  - `monitorSetConfig`\n  - `monitorConfig`\n  - `success = true|false`\n  - `elapsedTime` - in milliseconds\n  - `error` - if an error occured\n  - `attempt = 1` - attempt #\n\n## Notes\n\n### Scheduling Monitors\n\n#### CircleCI\n\nSee CircleCI 2 workflow scheduling: https://circleci.com/docs/2.0/workflows/#scheduling-a-workflow. You can work off our [.circleci/config.yml](.circleci/template.config.yml) template\n\nSee all builds on master of workflow `monitor` without a commit attached to it: https://circleci.com/gh/dollarshaveclub/monitor/tree/master\nOr just look at the `monitor` workflow: https://circleci.com/gh/dollarshaveclub/workflows/monitor/tree/master\n","readmeFilename":"README.md"}