{"id":18030866,"url":"https://github.com/atc0005/check-statuspage","last_synced_at":"2025-08-27T15:05:46.907Z","repository":{"id":37100406,"uuid":"433216640","full_name":"atc0005/check-statuspage","owner":"atc0005","description":"Go-based tooling to interact with status page APIs hosted by Atlassian Statuspage; NOT affiliated with or endorsed by Atlassian.","archived":false,"fork":false,"pushed_at":"2025-06-30T09:51:49.000Z","size":4493,"stargazers_count":5,"open_issues_count":22,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-06T23:03:26.482Z","etag":null,"topics":["go","golang","maintenance","nagios","nagios-plugin","outage","plugin","service","status","status-page","statuspage"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atc0005.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-29T22:30:11.000Z","updated_at":"2025-05-16T11:43:44.000Z","dependencies_parsed_at":"2023-02-16T06:15:51.693Z","dependency_job_id":"88d655da-e0d4-4fca-9c2a-74e751b989bf","html_url":"https://github.com/atc0005/check-statuspage","commit_stats":null,"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/atc0005/check-statuspage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fcheck-statuspage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fcheck-statuspage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fcheck-statuspage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fcheck-statuspage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atc0005","download_url":"https://codeload.github.com/atc0005/check-statuspage/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atc0005%2Fcheck-statuspage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272342464,"owners_count":24917631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","maintenance","nagios","nagios-plugin","outage","plugin","service","status","status-page","statuspage"],"created_at":"2024-10-30T09:15:24.838Z","updated_at":"2025-08-27T15:05:46.876Z","avatar_url":"https://github.com/atc0005.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- omit in toc --\u003e\n\n# check-statuspage\n\nGo-based tooling to interact with status page APIs hosted by Atlassian\nStatuspage; NOT affiliated with or endorsed by Atlassian.\n\n[![Latest Release](https://img.shields.io/github/release/atc0005/check-statuspage.svg?style=flat-square)](https://github.com/atc0005/check-statuspage/releases/latest)\n[![Go Reference](https://pkg.go.dev/badge/github.com/atc0005/check-statuspage.svg)](https://pkg.go.dev/github.com/atc0005/check-statuspage)\n[![go.mod Go version](https://img.shields.io/github/go-mod/go-version/atc0005/check-statuspage)](https://github.com/atc0005/check-statuspage)\n[![Lint and Build](https://github.com/atc0005/check-statuspage/actions/workflows/lint-and-build.yml/badge.svg)](https://github.com/atc0005/check-statuspage/actions/workflows/lint-and-build.yml)\n[![Project Analysis](https://github.com/atc0005/check-statuspage/actions/workflows/project-analysis.yml/badge.svg)](https://github.com/atc0005/check-statuspage/actions/workflows/project-analysis.yml)\n\n\u003c!-- omit in toc --\u003e\n## Table of Contents\n\n- [check-statuspage](#check-statuspage)\n  - [Project home](#project-home)\n  - [Overview](#overview)\n    - [Output](#output)\n    - [Performance Data](#performance-data)\n      - [`check_statuspage_components` Plugin](#check_statuspage_components-plugin)\n        - [NOTES](#notes)\n    - [`check_statuspage_components`](#check_statuspage_components)\n    - [`lscs`](#lscs)\n  - [Features](#features)\n  - [Changelog](#changelog)\n  - [Requirements](#requirements)\n    - [Building source code](#building-source-code)\n    - [Running](#running)\n  - [Installation](#installation)\n    - [From source](#from-source)\n    - [Using provided binaries](#using-provided-binaries)\n      - [Linux](#linux)\n      - [Other operating systems](#other-operating-systems)\n  - [Configuration options](#configuration-options)\n    - [Threshold calculations](#threshold-calculations)\n      - [`check_statuspage_components`](#check_statuspage_components-1)\n    - [Command-line arguments](#command-line-arguments)\n      - [`check_statuspage_components`](#check_statuspage_components-2)\n      - [`lscs`](#lscs-1)\n    - [Configuration file](#configuration-file)\n  - [Examples](#examples)\n    - [`check_statuspage_components` Nagios plugin](#check_statuspage_components-nagios-plugin)\n      - [CLI invocations](#cli-invocations)\n        - [Evaluate all subcomponents in a group](#evaluate-all-subcomponents-in-a-group)\n        - [Evaluate a specific top-level component](#evaluate-a-specific-top-level-component)\n      - [Command definition](#command-definition)\n    - [`lscs` CLI app](#lscs-cli-app)\n      - [CLI invocation](#cli-invocation)\n        - [The `table` format (default)](#the-table-format-default)\n        - [The `overview` format](#the-overview-format)\n        - [The `verbose` format](#the-verbose-format)\n        - [The `list` format](#the-list-format)\n        - [Other supported formats](#other-supported-formats)\n  - [License](#license)\n  - [References](#references)\n\n## Project home\n\nSee [our GitHub repo][repo-url] for the latest code, to file an issue or\nsubmit improvements for review and potential inclusion into the project.\n\nJust to be 100% clear: this project is not affiliated with or endorsed by\nAtlassian.\n\n## Overview\n\nThis repo contains various tools and plugins used to monitor status pages\npowered by Atlassian Statuspage.\n\n| Plugin or Tool Name           | Description                                                  |\n| ----------------------------- | ------------------------------------------------------------ |\n| `lscs`                        | CLI app to list `components` in multiple output formats.     |\n| `check_statuspage_components` | Nagios plugin used to monitor one, many or all `components`. |\n\n### Output\n\nThe output for plugins in this project is designed to provide the one-line\nsummary needed by Nagios (and other monitoring systems) for quick\nidentification of a problem while providing longer, more detailed information\nfor display within the web UI, use in email and Teams notifications\n([atc0005/send2teams](https://github.com/atc0005/send2teams)).\n\nBy default, output intended for processing by Nagios is sent to `stdout` and\noutput intended for troubleshooting by the sysadmin is sent to `stderr`.\nOutput emitted to `stderr` is  configurable via the `--log-level` flag.\n\nFor some monitoring systems or addons (e.g., Icinga Web 2, Nagios XI), the\n`stderr` output is mixed in with the `stdout` output in the web UI for the\nservice check. This may add visual noise when viewing the service check\noutput. For those cases, you may wish to explicitly disable the output to\n`stderr` by using the `--log-level \"disabled\"` CLI flag \u0026 value.\n\n### Performance Data\n\nInitial support has been added for emitting Performance Data / Metrics, but\nrefinement suggestions are welcome.\n\nConsult the tables below for the metrics implemented thus far.\n\nPlease add to an existing\n[Discussion](https://github.com/atc0005/check-statuspage/discussions) thread\n(if applicable) or [open a new\none](https://github.com/atc0005/check-statuspage/discussions/new) with any\nfeedback that you may have. Thanks in advance!\n\n#### `check_statuspage_components` Plugin\n\n| Emitted Performance Data / Metric | Meaning                                                                           |\n| --------------------------------- | --------------------------------------------------------------------------------- |\n| `time`                            | Runtime for plugin                                                                |\n| `all_component_groups`            | Number of non-excluded component Groups                                           |\n| `all_components`                  | Number of non-excluded components `*`                                             |\n| `all_components_critical`         | Number of non-excluded components in a `CRITICAL` state                           |\n| `all_components_ok`               | Number of non-excluded components in an `OK` state                                |\n| `all_components_unknown`          | Number of non-excluded components in an `UNKNOWN` state                           |\n| `all_components_warning`          | Number of non-excluded components in a `WARNING` state                            |\n| `all_problem_components`          | Number of non-excluded components in a \"problem\" (non-`OK`) state                 |\n| `excluded_problem_components`     | Number of excluded components (all states)                                        |\n| `remaining_components_critical`   | Number of components in a `CRITICAL` state remaining *after* exclusions           |\n| `remaining_components_ok`         | Number of components in an `OK` state remaining *after* exclusions                |\n| `remaining_components_unknown`    | Number of components in an `UNKNOWN` state remaining *after* exclusions           |\n| `remaining_components_warning`    | Number of components in a `WARNING` state remaining *after* exclusions            |\n| `remaining_problem_components`    | Number of components in a \"problem\" (non-`OK`) state remaining *after* exclusions |\n\n##### NOTES\n\n- the `all_components` metric (`*`)\n  - includes top-level components (not part of a component Group)\n  - includes subcomponents (part of a component Group)\n  - *includes* component Groups\n- the `*_components_STATE` metrics (where `STATE` is `critical`, `ok`,\n  `unknown`, `warning`)\n  - includes top-level components (not part of a component Group)\n  - includes subcomponents (part of a component Group)\n  - *excludes* component Groups\n- subcomponents are not currently reported as independent values\n- top-level / standalone components (those outside of a component Group) are\n  not currently reported as independent values\n\n### `check_statuspage_components`\n\nNagios plugin used to monitor the status of one, many or all `components`\n(aka, \"services\") of a Statuspage powered site. See the [configuration\noptions](#configuration-options) section for details regarding supported flags\nand values.\n\n### `lscs`\n\nSmall CLI app used to generate an overview of `components` (aka, \"services\")\nof a Statuspage powered site. This tool can be useful for quickly inspecting a\nnew Statuspage powered site to retrieve `component` names or IDs for\nmonitoring via the `check_statuspage_components` plugin.\n\n## Features\n\n- Plugin for monitoring an Atlassian Statuspage powered site\n  - the status of `components` (aka, \"services\") specified by one or many\n    top-level components, component groups (all subcomponents) or component\n    group and subcomponents\n\n- CLI app to list `components` from an Atlassian Statuspage powered site\n  - multiple output formats\n    - `overview`\n    - `table`\n    - `verbose`\n    - `debug`\n    - `list` (mostly used to assist with crafting test cases)\n    - `json`\n\n- User-specified input sources\n  - local file\n    - useful for testing\n    - useful to help prevent hitting API limits (e.g., refresh via a cron job)\n  - remote URL\n    - e.g., \u003chttps://status.linode.com/api/v2/components.json\u003e\n    - most common scenario\n\n- Optional, leveled logging using `rs/zerolog` package\n  - JSON-format output (to `stderr`)\n  - choice of `disabled`, `panic`, `fatal`, `error`, `warn`, `info` (the\n    default), `debug` or `trace`.\n\n- Optional, user-specified timeout value for plugin execution\n\n- Optional, user-specified read limit\n  - helps protect against excessive/unexpected input size\n\n- Optional override to allow unknown JSON fields in input source\n  - future proofing\n  - could be useful as a hotfix until plugins in this project can be updated\n    to handle future JSON input changes\n\n- Optional support for omitting `components` in an `OK` state (aka,\n  `operational` status)\n  - help focus on just the `components` with a \"problem\" status\n\n- Optional support for omitting summary in results output\n\n## Changelog\n\nSee the [`CHANGELOG.md`](CHANGELOG.md) file for the changes associated with\neach release of this application. Changes that have been merged to `master`,\nbut not yet an official release may also be noted in the file under the\n`Unreleased` section. A helpful link to the Git commit history since the last\nofficial release is also provided for further review.\n\n## Requirements\n\nThe following is a loose guideline. Other combinations of Go and operating\nsystems for building and running tools from this repo may work, but have not\nbeen tested.\n\n### Building source code\n\n- Go\n  - see this project's `go.mod` file for *preferred* version\n  - this project tests against [officially supported Go\n    releases][go-supported-releases]\n    - the most recent stable release (aka, \"stable\")\n    - the prior, but still supported release (aka, \"oldstable\")\n- GCC\n  - if building with custom options (as the provided `Makefile` does)\n- `make`\n  - if using the provided `Makefile`\n\n### Running\n\n- Windows 10\n- Ubuntu Linux 18.04+\n\n## Installation\n\n### From source\n\n1. [Download][go-docs-download] Go\n1. [Install][go-docs-install] Go\n   - NOTE: Pay special attention to the remarks about `$HOME/.profile`\n1. Clone the repo\n   1. `cd /tmp`\n   1. `git clone https://github.com/atc0005/check-statuspage`\n   1. `cd check-statuspage`\n1. Install dependencies (optional)\n   - for Ubuntu Linux\n     - `sudo apt-get install make gcc`\n   - for CentOS Linux\n     - `sudo yum install make gcc`\n   - for Windows\n     - Emulated environments (*easier*)\n       - Skip all of this and build using the default `go build` command in\n         Windows (see below for use of the `-mod=vendor` flag)\n       - build using Windows Subsystem for Linux Ubuntu environment and just\n         copy out the Windows binaries from that environment\n       - If already running a Docker environment, use a container with the Go\n         tool-chain already installed\n       - If already familiar with LXD, create a container and follow the\n         installation steps given previously to install required dependencies\n     - Native tooling (*harder*)\n       - see the StackOverflow Question `32127524` link in the\n         [References](references.md) section for potential options for\n         installing `make` on Windows\n       - see the mingw-w64 project homepage link in the\n         [References](references.md) section for options for installing `gcc`\n         and related packages on Windows\n1. Build binaries\n   - for the current operating system, explicitly using bundled dependencies\n         in top-level `vendor` folder\n     - `go build -mod=vendor ./cmd/check_statuspage_components/`\n     - `go build -mod=vendor ./cmd/lscs/`\n   - for all supported platforms (where `make` is installed)\n      - `make all`\n   - for use on Windows\n      - `make windows`\n   - for use on Linux\n     - `make linux`\n1. Copy the newly compiled binary from the applicable `/tmp` subdirectory path\n   (based on the clone instructions in this section) below and deploy where\n   needed.\n   - if using `Makefile`\n     - look in `/tmp/check-statuspage/release_assets/check_statuspage_components/`\n     - look in `/tmp/check-statuspage/release_assets/lscs/`\n   - if using `go build`\n     - look in `/tmp/check-statuspage/`\n1. Review [configuration options](#configuration-options) and\n   [examples](#examples) sections usage details.\n\n**NOTE**: Depending on which `Makefile` recipe you use the generated binary\nmay be compressed and have an `xz` extension. If so, you should decompress the\nbinary first before deploying it (e.g., `xz -d\ncheck_statuspage_components-linux-amd64.xz`).\n\n### Using provided binaries\n\n#### Linux\n\n1. Download plugins from the [Latest\n   release](https://github.com/atc0005/check-statuspage/releases/latest) that you\n   are interested in\n1. Decompress binaries\n   - e.g., `xz -d check_statuspage_components-linux-amd64.xz`\n1. Review [configuration options](#configuration-options) and\n   [examples](#examples) sections usage details.\n\n**NOTE**:\n\nDEB and RPM packages are provided as an alternative to manually deploying\nbinaries.\n\n#### Other operating systems\n\nBinaries for Windows are currently available, but may be discontinued if there\nisn't sufficient interest.\n\nIf you would benefit from precompiled binaries for other platforms, please let\nus know by opening a new issue or responding to an existing issue with an\nup-vote. See \u003chttps://golang.org/doc/install/source\u003e for a list of supported\narchitectures and operating systems.\n\n## Configuration options\n\n### Threshold calculations\n\n#### `check_statuspage_components`\n\nThis table lists equivalent Nagios plugin states and Statuspage status values.\nThough these are not technically *thresholds*, the plugin lists them as such\nfor quick reference.\n\n| Nagios State | Statuspage Status                                             |\n| ------------ | ------------------------------------------------------------- |\n| `OK`         | `operational`                                                 |\n| `WARNING`    | `under_maintenance`, `partial_outage`, `degraded_performance` |\n| `CRITICAL`   | `major_outage`                                                |\n\n### Command-line arguments\n\n- Use the `-h` or `--help` flag to display current usage information.\n- Flags marked as **`required`** must be set via CLI flag.\n- Flags *not* marked as required are for settings where a useful default is\n  already defined, but may be overridden if desired.\n\n#### `check_statuspage_components`\n\n| Flag                          | Required  | Default   | Repeat | Possible                                                                | Description                                                                                                                                                                                                                                    |\n| ----------------------------- | --------- | --------- | ------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `branding`                    | No        | `false`   | No     | `branding`                                                              | Toggles emission of branding details with plugin status details. This output is disabled by default.                                                                                                                                           |\n| `h`, `help`                   | No        | `false`   | No     | `h`, `help`                                                             | Show Help text along with the list of supported flags.                                                                                                                                                                                         |\n| `v`, `version`                | No        | `false`   | No     | `v`, `version`                                                          | Whether to display application version and then immediately exit application.                                                                                                                                                                  |\n| `verbose`                     | No        | `false`   | No     | `true`, `false`                                                         | Whether to display verbose details in the final plugin output.                                                                                                                                                                                 |\n| `ll`, `log-level`             | No        | `info`    | No     | `disabled`, `panic`, `fatal`, `error`, `warn`, `info`, `debug`, `trace` | Log message priority filter. Log messages with a lower level are ignored. Log messages are sent to `stderr` by default. See [Output](#output) for more information.                                                                            |\n| `t`, `timeout`                | No        | `10`      | No     | *positive whole number of seconds*                                      | Timeout value in seconds allowed before a plugin execution attempt is abandoned and an error returned.                                                                                                                                         |\n| `f`, `filename`               | **Maybe** |           | No     | *fully-qualified path to a Statuspage components JSON file*             | The fully-qualified filename of a previously downloaded Statuspage API/JSON feed (e.g., /tmp/statuspage/github/components.json). This option is incompatible with the `--url` flag.                                                            |\n| `u`, `url`                    | **Maybe** |           | No     | *valid https URL*                                                       | The fully-qualified URL of a Statuspage API/JSON feed (e.g., \u003chttps://www.githubstatus.com/api/v2/components.json\u003e)..                                                                                                                          |\n| `g`, `group`                  | **Maybe** |           | No     | *valid name or ID value of component group*                             | A single name or ID value for a component group. Can be used by itself or with the flag to specify a list of components. If used with the components flag all specified components are required to be subcomponents of the group.              |\n| `c`, `component`              | **Maybe** |           | No     | *valid name or ID value of component*                                   | One or more comma-separated component (name or ID) values. Can be used by itself or with the flag to specify a component group. If used with the component group flag, all specified components are required to be subcomponents of the group. |\n| `ea`, `eval-all`              | **Maybe** | `false`   | No     | `true`, `false`                                                         | Whether all components should be evaluated. Incompatible with flag to specify list of components, component group or component group set.                                                                                                      |\n| `ook`, `omit-ok`              | No        | `false`   | No     | `true`, `false`                                                         | Whether listed components in results output should be limited to just those in a non-operational state.                                                                                                                                        |\n| `os`, `omit-summary`          | No        | `false`   | No     | `true`, `false`                                                         | Whether summary in results output should be omitted.                                                                                                                                                                                           |\n| `rl`, `read-limit`            | No        | `1048576` | No     | *valid whole number of bytes*                                           | Limit in bytes used to help prevent abuse when reading input that could be larger than expected. The default value is nearly 4x the largest observed (formatted) feed size.                                                                    |\n| `auf`, `allow-unknown-fields` | No        | `false`   | No     | `true`, `false`                                                         | Whether unknown JSON fields encountered while decoding JSON data should be ignored.                                                                                                                                                            |\n\n#### `lscs`\n\n| Flag                          | Required  | Default   | Repeat | Possible                                                                | Description                                                                                                                                                                                                                                    |\n| ----------------------------- | --------- | --------- | ------ | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `h`, `help`                   | No        | `false`   | No     | `h`, `help`                                                             | Show Help text along with the list of supported flags.                                                                                                                                                                                         |\n| `v`, `version`                | No        | `false`   | No     | `v`, `version`                                                          | Whether to display application version and then immediately exit application.                                                                                                                                                                  |\n| `ll`, `log-level`             | No        | `info`    | No     | `disabled`, `panic`, `fatal`, `error`, `warn`, `info`, `debug`, `trace` | Log message priority filter. Log messages with a lower level are ignored. Log messages are sent to `stderr` by default. See [Output](#output) for more information.                                                                            |\n| `t`, `timeout`                | No        | `10`      | No     | *positive whole number of seconds*                                      | Timeout value in seconds allowed before a plugin execution attempt is abandoned and an error returned.                                                                                                                                         |\n| `f`, `filename`               | **Maybe** |           | No     | *fully-qualified path to a Statuspage components JSON file*             | The fully-qualified filename of a previously downloaded Statuspage API/JSON feed (e.g., /tmp/statuspage/github/components.json). This option is incompatible with the `--url` flag.                                                            |\n| `u`, `url`                    | **Maybe** |           | No     | *valid https URL*                                                       | The fully-qualified URL of a Statuspage API/JSON feed (e.g., \u003chttps://www.githubstatus.com/api/v2/components.json\u003e)..                                                                                                                          |\n| `g`, `group`                  | **Maybe** |           | No     | *valid name or ID value of component group*                             | A single name or ID value for a component group. Can be used by itself or with the flag to specify a list of components. If used with the components flag all specified components are required to be subcomponents of the group.              |\n| `c`, `component`              | **Maybe** |           | No     | *valid name or ID value of component*                                   | One or more comma-separated component (name or ID) values. Can be used by itself or with the flag to specify a component group. If used with the component group flag, all specified components are required to be subcomponents of the group. |\n| `ook`, `omit-ok`              | No        | `false`   | No     | `true`, `false`                                                         | Whether listed components in results output should be limited to just those in a non-operational state. Applies to `table`, `overview` and `verbose` formats.                                                                                  |\n| `os`, `omit-summary`          | No        | `false`   | No     | `true`, `false`                                                         | Whether summary in results output should be omitted.                                                                                                                                                                                           |\n| `rl`, `read-limit`            | No        | `1048576` | No     | *valid whole number of bytes*                                           | Limit in bytes used to help prevent abuse when reading input that could be larger than expected. The default value is nearly 4x the largest observed (formatted) feed size.                                                                    |\n| `auf`, `allow-unknown-fields` | No        | `false`   | No     | `true`, `false`                                                         | Whether unknown JSON fields encountered while decoding JSON data should be ignored.                                                                                                                                                            |\n| `fmt`, `output-format`        | No        | `table`   | No     | `overview`, `table`, `verbose`, `debug`, `list`, `json`                 | Sets output format. The default format is `table`.                                                                                                                                                                                             |\n\n### Configuration file\n\nNot currently supported. This feature may be added later if there is\nsufficient interest.\n\n## Examples\n\nEntries in this section attempt to provide a brief overview of usage. While\nthe `--filename` flag is predominantly used to provide reproducible results\n(based on the `testdata/components` files), the `--url` flag is also used for\ncontrast.\n\n### `check_statuspage_components` Nagios plugin\n\n#### CLI invocations\n\n##### Evaluate all subcomponents in a group\n\nWe evaluate all subcomponents in the entire `Canvas` component group for a\nnon-OK or non-operational status. The most severe (non-excluded) status is\nused as the final plugin state.\n\nHere we use a cached testdata file:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --filename testdata/components/instructure-components.json --group 'Canvas'\n{\"level\":\"error\",\"version\":\"check-statuspage x.y.z (https://github.com/atc0005/check-statuspage)\",\"logging_level\":\"info\",\"app_type\":\"plugin-components\",\"timeout\":\"10s\",\"filename\":\"testdata/components/instructure-components.json\",\"url\":\"\",\"read_limit\":1048576,\"allow_unknown_fields\":false,\"total_problem_components\":8,\"excluded_components\":7,\"excluded_problem_components\":7,\"remaining_problem_components\":1,\"time\":\"2023-07-26T05:07:29-05:00\",\"caller\":\"/mnt/t/github/check-statuspage/cmd/check_statuspage_components/main.go:336\",\"message\":\"Non-excluded, non-operational status of statuspage components detected\"}\nWARNING: 1 evaluated \"Instructure\" component has a non-operational status (17 evaluated, 24 total) [degraded_performance (1)]\n\n**ERRORS**\n\n* component with non-operational status not excluded from evaluation\n\n**DETAILED INFO**\n\n\nGROUP NAME        COMPONENT NAME              STATUS\n----------        --------------              ------\nCanvas            Canvas                      DEGRADED PERFORMANCE\nCanvas            - Catalog                   OPERATIONAL\nCanvas            - Chat                      OPERATIONAL\nCanvas            - Collaboration             OPERATIONAL\nCanvas            - Commons                   OPERATIONAL\nCanvas            - Conferences               OPERATIONAL\nCanvas            - Document previewing       OPERATIONAL\nCanvas            - Imports and exports       OPERATIONAL\nCanvas            - Media tools               OPERATIONAL\nCanvas            - Notifications             OPERATIONAL\nCanvas            - Support: Phones/Chat      OPERATIONAL\nCanvas            - Support: Webform/email    OPERATIONAL\nCanvas            - ePortfolios               OPERATIONAL\nCanvas            - Gauge                     OPERATIONAL\n\nPortfolium        Website                     DEGRADED PERFORMANCE\nPortfolium        Web Application             DEGRADED PERFORMANCE\nPortfolium        EDU Platform                DEGRADED PERFORMANCE\n\nMasteryConnect    Assessments                 DEGRADED PERFORMANCE\nMasteryConnect    Benchmarks                  DEGRADED PERFORMANCE\nMasteryConnect    Portal                      DEGRADED PERFORMANCE\nMasteryConnect    Reporting                   DEGRADED PERFORMANCE\n\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 0\n* Number of total component groups: 3\n* Number of total subcomponents: 21\n* Number of total problem components: 8\n* Number of ignored problem components: 7\n* Number of remaining problem components: 1\n\n\n | 'all_component_groups'=3;;;; 'all_components'=24;;;; 'all_components_critical'=0;;;; 'all_components_ok'=13;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=8;;;; 'all_problem_components'=8;;;; 'excluded_problem_components'=7;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=13;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=1;;;; 'remaining_problem_components'=1;;;; 'time'=5ms;;;;\n```\n\nand here we use live data:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --url https://status.instructure.com/api/v2/components.json --group 'Canvas'\nOK: 0 evaluated \"Instructure\" components have a non-operational status (13 evaluated, 32 total)\n\n\nGROUP NAME       COMPONENT NAME                 STATUS\n----------       --------------                 ------\n                 Instructure                    OPERATIONAL\n                 Impact                         OPERATIONAL\n\nCanvas           Canvas LMS                     OPERATIONAL\nCanvas           Canvas Catalog                 OPERATIONAL\nCanvas           Canvas Commons                 OPERATIONAL\nCanvas           Student ePortfolios            OPERATIONAL\nCanvas           Canvas Studio                  OPERATIONAL\nCanvas           Canvas Credentials             OPERATIONAL\nCanvas           Canvas Mobile                  OPERATIONAL\nCanvas           Student Pathways               OPERATIONAL\n\nMastery          Mastery Connect                OPERATIONAL\nMastery          Item Bank                      OPERATIONAL\nMastery          Online Testing                 OPERATIONAL\n\nElevate          Elevate K-12 Analytics         OPERATIONAL\nElevate          Elevate Data Quality           OPERATIONAL\nElevate          Elevate Data Sync              OPERATIONAL\nElevate          Elevate Standards Alignment    OPERATIONAL\nElevate          Elevate Data Hub               OPERATIONAL\n\nSupport Tools    Support: Phones/Chat           OPERATIONAL\nSupport Tools    Support: Webform/email         OPERATIONAL\n\nAWS Region       ca-central-1                   OPERATIONAL\nAWS Region       eu-central-1                   OPERATIONAL\nAWS Region       eu-west-1                      OPERATIONAL\nAWS Region       us-east-1                      OPERATIONAL\nAWS Region       us-west-2                      OPERATIONAL\nAWS Region       ap-southeast-1                 OPERATIONAL\nAWS Region       ap-southeast-2                 OPERATIONAL\n\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 2\n* Number of total component groups: 5\n* Number of total subcomponents: 25\n* Number of total problem components: 0\n* Number of ignored problem components: 0\n* Number of remaining problem components: 0\n\n\n | 'all_component_groups'=5;;;; 'all_components'=32;;;; 'all_components_critical'=0;;;; 'all_components_ok'=27;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=0;;;; 'all_problem_components'=0;;;; 'excluded_problem_components'=0;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=8;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=0;;;; 'remaining_problem_components'=0;;;; 'time'=449ms;;;;\n```\n\nand here we opt to use the `--verbose` flag to restore output emitted by\ndefault in earlier versions of the plugin:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --url https://status.instructure.com/api/v2/components.json --group 'Canvas' --verbose\nOK: 0 evaluated \"Instructure\" components have a non-operational status (13 evaluated, 32 total)\n**THRESHOLDS**\n\n* CRITICAL: major_outage\n* WARNING: under_maintenance, partial_outage, degraded_performance\n\n**DETAILED INFO**\n\nSpecified filter: {Group: \"Canvas\", Components: \"\"}\n\nPage: Instructure (https://status.instructure.com)\nTime Zone: America/Denver\nLast Updated: 2023-07-21T12:16:04-06:00\n\n\n\nGROUP NAME       COMPONENT NAME                 STATUS\n----------       --------------                 ------\n                 Instructure                    OPERATIONAL\n                 Impact                         OPERATIONAL\n\nCanvas           Canvas LMS                     OPERATIONAL\nCanvas           Canvas Catalog                 OPERATIONAL\nCanvas           Canvas Commons                 OPERATIONAL\nCanvas           Student ePortfolios            OPERATIONAL\nCanvas           Canvas Studio                  OPERATIONAL\nCanvas           Canvas Credentials             OPERATIONAL\nCanvas           Canvas Mobile                  OPERATIONAL\nCanvas           Student Pathways               OPERATIONAL\n\nMastery          Mastery Connect                OPERATIONAL\nMastery          Item Bank                      OPERATIONAL\nMastery          Online Testing                 OPERATIONAL\n\nElevate          Elevate K-12 Analytics         OPERATIONAL\nElevate          Elevate Data Quality           OPERATIONAL\nElevate          Elevate Data Sync              OPERATIONAL\nElevate          Elevate Standards Alignment    OPERATIONAL\nElevate          Elevate Data Hub               OPERATIONAL\n\nSupport Tools    Support: Phones/Chat           OPERATIONAL\nSupport Tools    Support: Webform/email         OPERATIONAL\n\nAWS Region       ca-central-1                   OPERATIONAL\nAWS Region       eu-central-1                   OPERATIONAL\nAWS Region       eu-west-1                      OPERATIONAL\nAWS Region       us-east-1                      OPERATIONAL\nAWS Region       us-west-2                      OPERATIONAL\nAWS Region       ap-southeast-1                 OPERATIONAL\nAWS Region       ap-southeast-2                 OPERATIONAL\n\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 2\n* Number of total component groups: 5\n* Number of total subcomponents: 25\n* Number of total problem components: 0\n* Number of ignored problem components: 0\n* Number of remaining problem components: 0\n\n\n | 'all_component_groups'=5;;;; 'all_components'=32;;;; 'all_components_critical'=0;;;; 'all_components_ok'=27;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=0;;;; 'all_problem_components'=0;;;; 'excluded_problem_components'=0;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=8;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=0;;;; 'remaining_problem_components'=0;;;; 'time'=414ms;;;;\n```\n\nSee the [configuration options](#configuration-options) section for all\ncommand-line settings supported by this plugin along with descriptions of\neach.\n\n##### Evaluate a specific top-level component\n\nWe evaluate a specific top-level component named `Hosted DNS Service` by id\nvalue for a non-OK or non-operational status.\n\nHere we use a cached testdata file when Linode was experiencing an outage of\nsome services, but not the specific service we opted to evaluate:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --filename testdata/components/linode-components-problems.json --component mmgkdgcjgnbl\nOK: 0 evaluated \"Linode\" components have a non-operational status (7 evaluated, 68 total)\n\nNOTE: Component count (68) is higher than display limit (50); overriding default display of OK components.\nNOTE: Omitting OK/operational components as requested.\n\n\nGROUP NAME    COMPONENT NAME              STATUS\n----------    --------------              ------\nRegions       US-East (Newark)            PARTIAL OUTAGE\nRegions       US-Central (Dallas)         PARTIAL OUTAGE\nRegions       US-West (Fremont)           PARTIAL OUTAGE\nRegions       EU-West (London)            PARTIAL OUTAGE\nRegions       EU-Central (Frankfurt)      PARTIAL OUTAGE\nRegions       AP-South (Singapore)        PARTIAL OUTAGE\nRegions       AP-Northeast-2 (Tokyo 2)    PARTIAL OUTAGE\n\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): true\n* Number of total top-level components: 4\n* Number of total component groups: 6\n* Number of total subcomponents: 58\n* Number of total problem components: 7\n* Number of ignored problem components: 7\n* Number of remaining problem components: 0\n\n\n | 'all_component_groups'=6;;;; 'all_components'=68;;;; 'all_components_critical'=0;;;; 'all_components_ok'=55;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=7;;;; 'all_problem_components'=7;;;; 'excluded_problem_components'=7;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=1;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=0;;;; 'remaining_problem_components'=0;;;; 'time'=5ms;;;;\n```\n\nand for contrast, here we use another cached testdata file when Linode was\nnot experiencing any outages:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --filename testdata/components/linode-components.json --component mmgkdgcjgnbl\nOK: 0 evaluated \"Linode\" components have a non-operational status (7 evaluated, 68 total)\n\nNOTE: Component count (68) is higher than display limit (50); overriding default display of OK components.\nNOTE: Omitting OK/operational components as requested.\n\n\nGROUP NAME    COMPONENT NAME    STATUS\n----------    --------------    ------\nN/A           N/A               N/A\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): true\n* Number of total top-level components: 4\n* Number of total component groups: 6\n* Number of total subcomponents: 58\n* Number of total problem components: 0\n* Number of ignored problem components: 0\n* Number of remaining problem components: 0\n\n\n | 'all_component_groups'=6;;;; 'all_components'=68;;;; 'all_components_critical'=0;;;; 'all_components_ok'=62;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=0;;;; 'all_problem_components'=0;;;; 'excluded_problem_components'=0;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=1;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=0;;;; 'remaining_problem_components'=0;;;; 'time'=5ms;;;;\n```\n\nand here we use live data where Linode was not experiencing any outages:\n\n```console\n$ /usr/lib/nagios/plugins/check_statuspage_components --url https://status.linode.com/api/v2/components.json --component mmgkdgcjgnbl\nOK: 0 evaluated \"Linode\" components have a non-operational status (7 evaluated, 88 total)\n\nNOTE: Component count (88) is higher than display limit (50); overriding default display of OK components.\nNOTE: Omitting OK/operational components as requested.\n\n\nGROUP NAME    COMPONENT NAME    STATUS\n----------    --------------    ------\nN/A           N/A               N/A\n\n\nSummary:\n\n* Filtering applied to components set: true\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): true\n* Number of total top-level components: 5\n* Number of total component groups: 6\n* Number of total subcomponents: 77\n* Number of total problem components: 0\n* Number of ignored problem components: 0\n* Number of remaining problem components: 0\n\n\n | 'all_component_groups'=6;;;; 'all_components'=88;;;; 'all_components_critical'=0;;;; 'all_components_ok'=82;;;; 'all_components_unknown'=0;;;; 'all_components_warning'=0;;;; 'all_problem_components'=0;;;; 'excluded_problem_components'=0;;;; 'remaining_components_critical'=0;;;; 'remaining_components_ok'=1;;;; 'remaining_components_unknown'=0;;;; 'remaining_components_warning'=0;;;; 'remaining_problem_components'=0;;;; 'time'=500ms;;;;\n```\n\n#### Command definition\n\nThe command definition file below defines three commands. Each command\nexplicitly excludes \"OK\" components in order to keep the output manageable.\nRemove the `omit-ok` flag if you wish to use the built-in components output\nlimit to control the number of components emitted.\n\nSee also:\n\n- `--verbose` flag\n- `--omit-summary` flag\n\n```shell\n# /etc/nagios-plugins/config/statuspage-components.cfg\n\n# Evaluate all components for a specified component group.\ndefine command{\n    command_name    check_statuspage_components_group\n    command_line    $USER1$/check_statuspage_components --url '$ARG1$' --group '$ARG2$' --omit-ok --log-level info\n    }\n\n# Evaluate one or more components for a (single) specified component group.\n#\n# NOTE: Multiple components can be specified as a comma separated string using\n# a mix of component names and/or ID values.\ndefine command{\n    command_name    check_statuspage_components_group_and_select_subcomponents\n    command_line    $USER1$/check_statuspage_components --url '$ARG1$' --group '$ARG2$' --component '$ARG3$' --omit-ok --log-level info\n    }\n\n# Evaluate one or more components regardless of component group.\n#\n# NOTE: Multiple components can be specified as a comma separated string using\n# a mix of component names and/or ID values.\ndefine command{\n    command_name    check_statuspage_components_list\n    command_line    $USER1$/check_statuspage_components --url '$ARG1$' --component '$ARG2$' --omit-ok --log-level info\n    }\n```\n\nSee the [configuration options](#configuration-options) section for all\ncommand-line settings supported by this plugin along with descriptions of\neach.\n\n### `lscs` CLI app\n\n#### CLI invocation\n\nWe evaluate a local testdata file to illustrate different supported output\nformats.\n\n##### The `table` format (default)\n\n```console\n$ /usr/local/bin/lscs --filename testdata/components/instructure-components.json --output-format table\n\nPage: Instructure (https://status.instructure.com)\nTime Zone: America/Denver\nLast Updated: 2021-12-07T11:07:15-07:00\n\n\n\nGROUP NAME        GROUP ID        COMPONENT NAME              COMPONENT ID    EVALUATED    STATUS\n----------        --------        --------------              ------------    ---------    ------\nCanvas            41wg86q5vc14    Canvas                      9dlvqx1drp3d    N/A          DEGRADED PERFORMANCE\nCanvas            41wg86q5vc14    — Catalog                   jw0fn0dnpcgn    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Chat                      57p1tjtk1yq0    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Collaboration             zxq967k6np07    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Commons                   z5p8qvl1hj1y    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Conferences               mtytktcmbk6p    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Document previewing       ch8dsykb6hln    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Imports and exports       qt6q9hfpbljc    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Media tools               knh34j1129ft    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Notifications             6pnn3zwfyzxz    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Support: Phones/Chat      d7cxm3fbff4h    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Support: Webform/email    zlyh32dxbwjj    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — ePortfolios               tlhdyd68vb55    N/A          OPERATIONAL\nCanvas            41wg86q5vc14    — Gauge                     3q12z77wvfjp    N/A          OPERATIONAL\n\nPortfolium        9c01dg04bfg5    Website                     j7jp6sq831c2    N/A          DEGRADED PERFORMANCE\nPortfolium        9c01dg04bfg5    Web Application             100xy482gkyf    N/A          DEGRADED PERFORMANCE\nPortfolium        9c01dg04bfg5    EDU Platform                c8zkn4rlhvw6    N/A          DEGRADED PERFORMANCE\n\nMasteryConnect    qw5j90r2w7k1    Assessments                 v6m5nhwgtshj    N/A          DEGRADED PERFORMANCE\nMasteryConnect    qw5j90r2w7k1    Benchmarks                  jt1kl5fj472f    N/A          DEGRADED PERFORMANCE\nMasteryConnect    qw5j90r2w7k1    Portal                      142661pcf7h1    N/A          DEGRADED PERFORMANCE\nMasteryConnect    qw5j90r2w7k1    Reporting                   xwqppk51m3mm    N/A          DEGRADED PERFORMANCE\n\n\n\nSummary:\n\n* Filtering applied to components set: false\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 0\n* Number of total component groups: 3\n* Number of total subcomponents: 21\n* Number of total problem components: 8\n* Number of ignored problem components: 0\n* Number of remaining problem components: 8\n```\n\n##### The `overview` format\n\n```console\n$ /usr/local/bin/lscs --filename testdata/components/instructure-components.json --output-format overview\n\nPage: Instructure (https://status.instructure.com)\nTime Zone: America/Denver\nLast Updated: 2021-12-07T11:07:15-07:00\n\n\nCanvas [DEGRADED PERFORMANCE]\n        Canvas [DEGRADED PERFORMANCE]\n        — Catalog\n        — Chat\n        — Collaboration\n        — Commons\n        — Conferences\n        — Document previewing\n        — Imports and exports\n        — Media tools\n        — Notifications\n        — Support: Phones/Chat\n        — Support: Webform/email\n        — ePortfolios\n        — Gauge\n\nPortfolium [DEGRADED PERFORMANCE]\n        Website [DEGRADED PERFORMANCE]\n        Web Application [DEGRADED PERFORMANCE]\n        EDU Platform [DEGRADED PERFORMANCE]\n\nMasteryConnect [DEGRADED PERFORMANCE]\n        Assessments [DEGRADED PERFORMANCE]\n        Benchmarks [DEGRADED PERFORMANCE]\n        Portal [DEGRADED PERFORMANCE]\n        Reporting [DEGRADED PERFORMANCE]\n\n\n\nSummary:\n\n* Filtering applied to components set: false\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 0\n* Number of total component groups: 3\n* Number of total subcomponents: 21\n* Number of total problem components: 8\n* Number of ignored problem components: 0\n* Number of remaining problem components: 8\n```\n\n##### The `verbose` format\n\n```console\n$ /usr/local/bin/lscs --filename testdata/components/instructure-components.json --output-format verbose\n\nPage: Instructure (https://status.instructure.com)\nTime Zone: America/Denver\nLast Updated: 2021-12-07T11:07:15-07:00\n\n\nComponent Groups (3):\n\n* 001): Canvas [ID: 41wg86q5vc14, GroupID: N/A, Status: DEGRADED PERFORMANCE]\n* 002): Portfolium [ID: 9c01dg04bfg5, GroupID: N/A, Status: DEGRADED PERFORMANCE]\n* 003): MasteryConnect [ID: qw5j90r2w7k1, GroupID: N/A, Status: DEGRADED PERFORMANCE]\n\n\nSubcomponents (21):\n\n* 001): Website [ID: j7jp6sq831c2, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 002): Canvas [ID: 9dlvqx1drp3d, GroupID: 41wg86q5vc14, Status: DEGRADED PERFORMANCE]\n* 003): Assessments [ID: v6m5nhwgtshj, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 004): Benchmarks [ID: jt1kl5fj472f, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 005): Web Application [ID: 100xy482gkyf, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 006): — Catalog [ID: jw0fn0dnpcgn, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 007): — Chat [ID: 57p1tjtk1yq0, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 008): EDU Platform [ID: c8zkn4rlhvw6, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 009): Portal [ID: 142661pcf7h1, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 010): — Collaboration [ID: zxq967k6np07, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 011): Reporting [ID: xwqppk51m3mm, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 012): — Commons [ID: z5p8qvl1hj1y, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 013): — Conferences [ID: mtytktcmbk6p, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 014): — Document previewing [ID: ch8dsykb6hln, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 015): — Imports and exports [ID: qt6q9hfpbljc, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 016): — Media tools [ID: knh34j1129ft, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 017): — Notifications [ID: 6pnn3zwfyzxz, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 018): — Support: Phones/Chat [ID: d7cxm3fbff4h, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 019): — Support: Webform/email [ID: zlyh32dxbwjj, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 020): — ePortfolios [ID: tlhdyd68vb55, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n* 021): — Gauge [ID: 3q12z77wvfjp, GroupID: 41wg86q5vc14, Status: OPERATIONAL]\n\n\nComponents (8) in a non-OK state:\n\n* 001): Website [ID: j7jp6sq831c2, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 002): Canvas [ID: 9dlvqx1drp3d, GroupID: 41wg86q5vc14, Status: DEGRADED PERFORMANCE]\n* 003): Assessments [ID: v6m5nhwgtshj, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 004): Benchmarks [ID: jt1kl5fj472f, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 005): Web Application [ID: 100xy482gkyf, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 006): EDU Platform [ID: c8zkn4rlhvw6, GroupID: 9c01dg04bfg5, Status: DEGRADED PERFORMANCE]\n* 007): Portal [ID: 142661pcf7h1, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n* 008): Reporting [ID: xwqppk51m3mm, GroupID: qw5j90r2w7k1, Status: DEGRADED PERFORMANCE]\n\n\nSummary:\n\n* Filtering applied to components set: false\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): false\n* Number of total top-level components: 0\n* Number of total component groups: 3\n* Number of total subcomponents: 21\n* Number of total problem components: 8\n* Number of ignored problem components: 0\n* Number of remaining problem components: 8\n```\n\n##### The `list` format\n\nThis mostly came in handy when I was crafting test cases, but left it as an\noption in case others also might also find it useful.\n\n```console\n$ /usr/local/bin/lscs --filename testdata/components/instructure-components.json --output-format list\n\nPage: Instructure (https://status.instructure.com)\nTime Zone: America/Denver\nLast Updated: 2021-12-07T11:07:15-07:00\n\n\"j7jp6sq831c2\", \"41wg86q5vc14\", \"9dlvqx1drp3d\", \"v6m5nhwgtshj\",\n\"9c01dg04bfg5\", \"jt1kl5fj472f\", \"100xy482gkyf\", \"jw0fn0dnpcgn\",\n\"57p1tjtk1yq0\", \"qw5j90r2w7k1\", \"c8zkn4rlhvw6\", \"142661pcf7h1\",\n\"zxq967k6np07\", \"xwqppk51m3mm\", \"z5p8qvl1hj1y\", \"mtytktcmbk6p\",\n\"ch8dsykb6hln\", \"qt6q9hfpbljc\", \"knh34j1129ft\", \"6pnn3zwfyzxz\",\n\"d7cxm3fbff4h\", \"zlyh32dxbwjj\", \"tlhdyd68vb55\", \"3q12z77wvfjp\",\n\n\nSummary:\n\n* Filtering applied to components set: false\n* Evaluating all components in the set: false\n* Omitting OK/operational components (if requested): true\n* Number of total top-level components: 0\n* Number of total component groups: 3\n* Number of total subcomponents: 21\n* Number of total problem components: 8\n* Number of ignored problem components: 0\n* Number of remaining problem components: 8\n```\n\nSee the [configuration options](#configuration-options) section for all\ncommand-line settings supported by this plugin along with descriptions of\neach.\n\n##### Other supported formats\n\nThe `debug` and `json` formats are also supported output formats, but are\n*very* detailed. Give them a try if the other formats do not meet your needs.\nFeedback is welcome.\n\n## License\n\nFrom the [LICENSE](LICENSE) file:\n\n```license\nMIT License\n\nCopyright (c) 2021 Adam Chalkley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n## References\n\n- Related projects\n  - \u003chttps://github.com/atc0005/send2teams\u003e\n  - \u003chttps://github.com/atc0005/check-cert\u003e\n  - \u003chttps://github.com/atc0005/check-vmware\u003e\n  - \u003chttps://github.com/atc0005/check-mail\u003e\n  - \u003chttps://github.com/atc0005/check-whois\u003e\n  - \u003chttps://github.com/atc0005/check-path\u003e\n  - \u003chttps://github.com/atc0005/nagios-debug\u003e\n  - \u003chttps://github.com/atc0005/go-nagios\u003e\n\n- Statuspage\n  - [What is a component?](https://support.atlassian.com/statuspage/docs/what-is-a-component/)\n  - [Show service status with components](https://support.atlassian.com/statuspage/docs/show-service-status-with-components/)\n  - [Statuspage API documentation](https://developer.statuspage.io/)\n\n- Logging\n  - \u003chttps://github.com/rs/zerolog\u003e\n\n- Nagios\n  - \u003chttps://github.com/atc0005/go-nagios\u003e\n  - \u003chttps://nagios-plugins.org/doc/guidelines.html\u003e\n  - \u003chttps://www.monitoring-plugins.org/doc/guidelines.html\u003e\n  - \u003chttps://icinga.com/docs/icinga-2/latest/doc/05-service-monitoring/\u003e\n\n\u003c!-- Footnotes here  --\u003e\n\n[repo-url]: \u003chttps://github.com/atc0005/check-statuspage\u003e  \"This project's GitHub repo\"\n\n[go-docs-download]: \u003chttps://golang.org/dl\u003e  \"Download Go\"\n\n[go-docs-install]: \u003chttps://golang.org/doc/install\u003e  \"Install Go\"\n\n[go-supported-releases]: \u003chttps://go.dev/doc/devel/release#policy\u003e \"Go Release Policy\"\n\n\u003c!-- []: PLACEHOLDER \"DESCRIPTION_HERE\" --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatc0005%2Fcheck-statuspage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatc0005%2Fcheck-statuspage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatc0005%2Fcheck-statuspage/lists"}