最近推送 2026-10-26 14:41(2 天前),属于活跃维护
TwiN/gatus
GITHUB项目档案主语言 Go · 12,419 星 · Apache-2.0 · 创建于 2019-09-04
Automated developer-oriented status page with alerting and incident support
仓库健康度
5 个维度开放 Issue 429 个 · Fork 878 个
star 记录还不够天数,增量算不出来
许可证 Apache-2.0 · 8 个 topics
这一项暂无数据,不代表项目没有发布
「证据不足」表示这项数据暂时没有取到,不能读成「项目有问题」;「部分数据」表示只拿到一部分信号。版本发布要额外调 Releases 接口,下一版补。
Star 趋势
2 天记录横轴 2026-10-27 → 2026-10-28,纵轴按这段时间的最小/最大值拉伸。趋势来自站内每天记录一次的星数,页面打开时不会实时请求 GitHub。
README 原文细节
4 个板块核心功能README 里列出来的能力清单
Features
- Highly flexible health check conditions: While checking the response status may be enough for some use cases, Gatus goes much further and allows you to add conditions on the response time, the respons
- Ability to use Gatus for user acceptance tests: Thanks to the point above, you can leverage this application to create automated user acceptance tests.
- Very easy to configure: Not only is the configuration designed to be as readable as possible, it's also extremely easy to add a new service or a new endpoint to monitor.
- Alerting: While having a pretty visual dashboard is useful to keep track of the state of your application(s), you probably don't want to stare at it all day. Thus, notifications via Slack, Mattermost,
- Low resource consumption: As with most Go applications, the resource footprint that this application requires is negligibly small.
怎么安装从零跑起来的步骤
Deployment
Many examples can be found in the .examples folder, but this section will focus on the most popular ways of deploying Gatus.
Installing as binary
You can download Gatus as a binary using the following command:
go install github.com/TwiN/gatus/v5@latest
怎么用最典型的用法与示例
Usage
If you want to create your own configuration, see Docker for information on how to mount a configuration file.
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stable
配置项能调整哪些参数
Configuration
By default, the configuration file is expected to be at config/config.yaml.
You can specify a custom path by setting the GATUSCONFIGPATH environment variable.
If GATUSCONFIGPATH points to a directory, all .yaml and .yml files inside said directory and its subdirectories are merged like so: - All maps/objects are deep merged (i.e. you could define alerting.slack in one file and alerting.pagerduty in another file) - All slices/arrays are appended (i.e. you can define endpoints in multiple files and each endpoint will be added to the final list of endpoints) - Parameters with a primitive value (e.g. metrics, alerting.slack.webhook-url, etc.) may only be defined once to forcefully avoid any ambiguity - To clarify, this also means that you could not defi
Configuration
If you want more verbose logging, you may set the GATUSLOGLEVEL environment variable to DEBUG. Conversely, if you want less verbose logging, you can set the aforementioned environment variable to WARN, ERROR or FATAL. The default value for GATUSLOGLEVEL is INFO.
- metrics — Whether to expose metrics at /metrics. — false
- storage — Storage configuration. — {}
- alerting — Alerting configuration. — {}
- announcements — Announcements configuration. — []
- endpoints — Endpoints configuration. — Required []
- external-endpoints — External Endpoints configuration. — []
- security — Security configuration. — {}
- concurrency — Maximum number of endpoints/suites to monitor concurrently. Set to 0 for unlimited. See Concurrency. — 3
- disable-monitoring-lock — Whether to disable the monitoring lock. Deprecated: Use concurrency: 0 instead. — false
- skip-invalid-config-update — Whether to ignore invalid configuration update. See Reloading configuration on the fly. — false
- web — Web configuration. — {}
- ui — UI configuration. — {}
- maintenance — Maintenance configuration. — {}
Client configuration
In order to support a wide range of environments, each monitored endpoint has a unique configuration for the client used to send the request.
Note that this configuration is only available under endpoints[], alerting.mattermost and alerting.custom.
Here's an example with the client configuration under endpoints[]:
This example shows how you can specify a custom DNS resolver:
- client.insecure — Whether to skip verifying the server's certificate chain and host name. — false
- client.ignore-redirect — Whether to ignore redirects (true) or follow them (false, default). — false
- client.timeout — Duration before timing out. — 10s
- client.dns-resolver — Override the DNS resolver using the format {proto}://{host}:{port}. — ""
- client.oauth2 — OAuth2 client configuration. — {}
- client.oauth2.token-url — The token endpoint URL — required ""
- client.oauth2.client-id — The client id which should be used for the Client credentials flow — required ""
- client.oauth2.client-secret — The client secret which should be used for the Client credentials flow — required ""
- client.oauth2.scopes[] — A list of scopes which should be used for the Client credentials flow. — required [""]
- client.proxy-url — The URL of the proxy to use for the client — ""
- client.identity-aware-proxy — Google Identity-Aware-Proxy client configuration. — {}
- client.identity-aware-proxy.audience — The Identity-Aware-Proxy audience. (client-id of the IAP oauth2 credential) — required ""
- client.tls.certificate-file — Path to a client certificate (in PEM format) for mTLS configurations. — ""
- client.tls.private-key-file — Path to a client private key (in PEM format) for mTLS configurations. — ""
client:
insecure: false
ignore-redirect: false
timeout: 10s
store-cookies: false
Reloading configuration on the fly
For the sake of convenience, Gatus automatically reloads the configuration on the fly if the loaded configuration file is updated while Gatus is running.
By default, the application will exit if the updating configuration is invalid, but you can configure Gatus to continue running if the configuration file is updated with an invalid configuration by setting skip-invalid-config-update to true.
Keep in mind that it is in your best interest to ensure the validity of the configuration file after each update you apply to the configuration file while Gatus is running by looking at the log and making sure that you do not see the following message:
Failure to do so may result in Gatus being unable to start if the application is restarted for whatever reason.
The configuration file was updated, but it is not valid. The old configuration will continue being used.
关于 gatus 的常见问题
4 个问题gatus 是做什么的?
TwiN/gatus 是 GitHub 上的开源项目:Automated developer-oriented status page with alerting and incident support。README 里的说明是:Before getting into the specifics, I want to address the most common question: > Why would I use Gatus when I can just use Prometheus’ Alertmanager, Cloudwatch or even Splunk?
gatus 有哪些功能?
项目 README 列出的能力包括:Highly flexible health check conditions: While checking the response status may be enough for some use cases, Gatus goes much further and allows you to add conditions on the response time, the respons;Ability to use Gatus for user acceptance tests: Thanks to the point above, you can leverage this application to create automated user acceptance tests.;Very easy to configure: Not only is the configuration designed to be as readable as possible, it's also extremely easy to add a new service or a new endpoint to monitor.;Alerting: While having a pretty visual dashboard is useful to keep track of the state of your application(s), you probably don't want to stare at it all day. Thus, notifications via Slack, Mattermost,;Low resource consumption: As with most Go applications, the resource footprint that this application requires is negligibly small.。
怎么安装 gatus?
按项目 README 的说明:Many examples can be found in the .examples folder, but this section will focus on the most popular ways of deploying Gatus.;You can download Gatus as a binary using the following command:。完整命令见下方「怎么安装」一节或 GitHub 仓库的 README。
gatus 现在还在维护吗?数据怎么样?
目前 12,419 星,878 个 Fork,主语言 Go,创建于 2019-09-04,最近一次推送 2026-10-26 14:41,许可证 Apache-2.0。星数、Fork、推送时间都是 GitHub 返回的实时数据,「最近推送」离现在越近说明越活跃;长期不动要留意是否已停止维护。
这些内容来自哪
读法说明项目数据取自 GitHub 官方接口与项目 README;星数、Fork、语言与时间以 GitHub 页面为准,档案更新于 2026-10-27 19:30。
