Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/riywo/site-status
Ping web sites and get status
https://github.com/riywo/site-status
Last synced: 28 days ago
JSON representation
Ping web sites and get status
- Host: GitHub
- URL: https://github.com/riywo/site-status
- Owner: riywo
- License: mit
- Created: 2013-08-28T03:09:02.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-08-28T05:51:07.000Z (over 11 years ago)
- Last Synced: 2024-11-22T19:09:45.653Z (about 2 months ago)
- Language: CoffeeScript
- Homepage:
- Size: 145 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# site-status
Ping web sites and get status
## What is this?
Like [pingdom](https://www.pingdom.com/) or [keynote](http://www.keynote.com/), `site-status` access some endpoints of web sites and gets the "Site Status".
Example:
$ cat ./example/github.json
{ "site": "github", "url": "https://status.github.com/", "stats": { "GitHub": { "selector": "div.service:nth-of-type(1) span.status", "type": "string" } , "App Server %": { "selector": "div.graph div.data:nth-of-type(1) span.number", "type": "numeric" } } }$ cat ./example/github.json | site-status
{"site":"github","url":"https://status.github.com/","time":1100,"code":"200","stats":{"GitHub":"Normal","App Server %":100}}## "Site Status"?
### status code
HTTP status code.
### response time
Response time of the HTTP request.
### in the content
Some sites have "status" value in their contents of the sites. `site-status` can scrape the value.
**Currently only HTML and CSS selector.** JSONPath will be supported soon.
## Installation
npm install -g site-status
## Usage
`site-status` reads STDIN line by line as a site configuration JSON object, get the sites and writes STDOUT line by line as a site status.
### site configuration (STDIN)
#### site
Name of the site
#### url
URL of the site endpoint
#### stats
- key: name of the stat
- value:
- selector: CSS selector
- see also: [CSSselect](https://npmjs.org/package/CSSselect)
- type: `numeric` or `string`#### example
You have to use a single line JSON.
{ "site": "github", "url": "https://status.github.com/", "stats": { "GitHub": { "selector": "div.service:nth-of-type(1) span.status", "type": "string" } , "App Server %": { "selector": "div.graph div.data:nth-of-type(1) span.number", "type": "numeric" } } }
pretty print:
{
"site": "github",
"url": "https://status.github.com/",
"stats": {
"App Server %": {
"selector": "div.graph div.data:nth-of-type(1) span.number",
"type": "numeric"
},
"GitHub": {
"selector": "div.service:nth-of-type(1) span.status",
"type": "string"
}
}
}### site status (STDOUT)
#### site
Same as the site configuration
#### url
Same as the site configuration
#### code
HTTP status code (200, 400, 500 or ***)
#### time
Response time (ms)
#### stats
Scraped status
#### example
{"site":"github","url":"https://status.github.com/","time":912,"code":"200","stats":{"GitHub":"Normal","App Server %":100}}
pretty print:
{
"site": "github",
"url": "https://status.github.com/",
"code": "200",
"time": 912,
"stats": {
"App Server %": 100,
"GitHub": "Normal"
}
}### help
Usage: site-status [options]
Options:
-h, --help output usage information
-V, --version output the version number
-t, --timeout Timeout (ms) default: 10000## License
MIT
## Author
Ryosuke IWANAGA a.k.a. riywo