Check githubstatus¶
Overview¶
Monitors the GitHub status page for service disruptions. Reports the overall status indicator, individual component states, and any unresolved incidents. Alerts on active incidents or degraded components.
Data Collection:
- Queries the public GitHub status API at
https://www.githubstatus.com/api/v2/summary.json - Reports a table listing each component with its current status and last update timestamp
Fact Sheet¶
| Fact | Value |
|---|---|
| Check Plugin Download | https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/githubstatus |
| Nagios/Icinga Check Name | check_githubstatus |
| Check Interval Recommendation | Every 5 minutes |
| Can be called without parameters | Yes |
| Runs on | Cross-platform |
| Compiled for Windows | No (runs with Python interpreter) |
Help¶
usage: githubstatus [-h] [-V] [--always-ok] [--insecure] [--no-perfdata]
[--no-proxy] [--proxy PROXY] [--timeout TIMEOUT]
Monitors the GitHub status page for service disruptions. Reports the overall
status indicator, individual component states, and any unresolved incidents.
Alerts on active incidents or degraded components.
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
--always-ok Always returns OK.
--insecure This option explicitly allows insecure SSL connections.
--no-perfdata Suppress the performance data section from the output.
The status message and the exit code are unaffected, so
alerting keeps working while trending data is dropped.
--no-proxy Do not use a proxy, not even one the environment names.
Overrides `--proxy`.
--proxy PROXY Proxy to reach the target through. The scheme defaults to
`http` when omitted. Overrides the proxy the environment
names (`http_proxy`, `https_proxy`, `all_proxy`) together
with the exceptions it lists in `no_proxy`, and is itself
overridden by `--no-proxy`. Without either parameter the
environment applies. Credentials belong into the
environment variable rather than here, because a command-
line argument is visible to every user on the host.
Example: `--proxy=http://proxy.example.com:3128`.
--timeout TIMEOUT Network timeout in seconds. Default: 8 (seconds)
Documentation:
https://linuxfabrik.github.io/monitoring-plugins/check-plugins/githubstatus/
Usage Examples¶
./githubstatus
Output:
Everything is ok.
Component ! Status ! Updated (Etc/UTC)
---------------+-------------+---------------------
Git Operations ! operational ! 2023-05-11 14:40:16
API Requests ! operational ! 2023-05-11 14:40:15
Webhooks ! operational ! 2023-05-11 14:40:18
Issues ! operational ! 2023-05-11 14:40:17
Pull Requests ! operational ! 2023-05-11 14:33:31
Actions ! operational ! 2023-05-11 14:40:14
Packages ! operational ! 2023-04-27 09:56:19
Pages ! operational ! 2023-05-11 14:46:14
Codespaces ! operational ! 2023-05-11 14:40:16
Copilot ! operational ! 2023-05-04 16:18:39
Output (with incident):
1 incident, 1 component affected. 2023-05-11 17:53:35, minor impact, investigating: Incident with Actions, API Requests, Codespaces, Git Operations, Issues, Pages, Pull Requests and Webhooks.
Component ! Status ! Updated (Etc/UTC)
---------------+----------------+---------------------
Pull Requests ! partial_outage ! 2023-05-11 13:33:31
Actions ! operational ! 2023-05-11 14:40:14
States¶
- OK if no incidents are reported and all components are "operational".
- WARN if there are any unresolved incidents.
- WARN if any component is not "operational".
--always-oksuppresses all alerts and always returns OK.
Perfdata / Metrics¶
| Name | Type | Description |
|---|---|---|
| components | Number | Number of GitHub components currently affected (not "operational"). |
| incidents | Number | Number of unresolved incidents. |
Credits, License¶
- Authors: Linuxfabrik GmbH, Zurich
- License: The Unlicense, see LICENSE file.