DADI Status returns a JSON object containing information about an application's platform, process and health state.
- Latest version of the specified NPM module (e.g. @dadi/web)
- Node version
- Process ID
- Process uptime
- Process memory usage
- Hostname
- System platform and version
- System Uptime
- Memory, free and total
- Current load averages
In addition to system information, if a collection of routes are specified DADI Status will send a request to each one and return data about the response:
"routes": [
{
"route": "/movies/latest",
"status": 200,
"responseTime": 0.039,
"healthStatus": "Green"
}
]
DADI Status passes a User-Agent header to idenitify itself when making health check requests. The following header is used:
'User-Agent': '@dadi/status'
npm install @dadi/status --save
var dadiStatus = require('@dadi/status')
app.use('/api/status', function(req, res, next) {
var params = {
site: "WC?",
package: '@dadi/web',
version: version,
healthCheck: {
baseUrl: 'http://127.0.0.1:3001',
authorization: 'Bearer 123abcdef',
routes: [{
route: '/movies/latest',
expectedResponseTime: 10
}]
}
}
dadiStatus(params, function(err, data) {
if (err) return next(err)
var resBody = JSON.stringify(data, null, 2)
res.statusCode = 200
res.setHeader('Content-Type', 'application/json')
res.setHeader('content-length', Buffer.byteLength(resBody))
res.end(resBody)
})
})
{
"service": {
"site": "WC?",
"package": "@dadi/web",
"versions": {
"current": "1.1.2",
"latest": "1.1.2"
}
},
"process": {
"pid": 19463,
"uptime": 3.523,
"uptimeFormatted": "0 days 0 hours 0 minutes 3 seconds",
"versions": {
"http_parser": "2.3",
"node": "0.12.0",
"v8": "3.28.73",
"uv": "1.0.2",
"zlib": "1.2.8",
"modules": "14",
"openssl": "1.0.1l"
}
},
"memory": {
"rss": "86.508 MB",
"heapTotal": "65.771 MB",
"heapUsed": "32.938 MB"
},
"system": {
"platform": "darwin",
"release": "14.5.0",
"hostname": "hudson",
"memory": {
"free": "37.781 MB",
"total": "8.000 GB"
},
"load": [
2.2958984375,
2.27197265625,
2.25927734375
],
"uptime": 155084,
"uptimeFormatted": "1 days 19 hours 4 minutes 44 seconds"
},
"routes": [
{
"route": "/movies/latest",
"responseTime": 0.039,
"healthStatus": "Green"
}
]
}
Copyright notice
(C) 2018 DADI+ Limited support@dadi.co
All rights reserved
This product is part of DADI.
DADI is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version ("the AGPL").
If you wish to use DADI outside the scope of the AGPL, please
contact us at info@dadi.co for details of alternative licence
arrangements.
This product may be distributed alongside other components available under different licences (which may not be AGPL). See those components themselves, or the documentation accompanying them, to determine what licences are applicable.
DADI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
The GNU Affero General Public License (AGPL) is available at
http://www.gnu.org/licenses/agpl-3.0.en.html.
This copyright notice MUST APPEAR in all copies of the product!