diff --git a/home/.npmrc b/home/.npmrc new file mode 100644 index 00000000000..6c59086d862 --- /dev/null +++ b/home/.npmrc @@ -0,0 +1 @@ +enable-pre-post-scripts=true diff --git a/home/blog/2022-06-01-hertzbeat-v1.0.md b/home/blog/2022-06-01-hertzbeat-v1.0.md index 887067fbbd1..5fbe8851f39 100644 --- a/home/blog/2022-06-01-hertzbeat-v1.0.md +++ b/home/blog/2022-06-01-hertzbeat-v1.0.md @@ -1,12 +1,12 @@ --- -title: Cloud Monitoring System HertzBeat v1.0 Officially Released -author: tom -author_title: tom -author_url: https://github.com/tomsun28 +title: Cloud Monitoring System HertzBeat v1.0 Officially Released +author: tom +author_title: tom +author_url: https://github.com/tomsun28 tags: [opensource] --- -HertzBeat, incubated by Dromara and open-sourced by TanCloud, is an open-source monitoring and alerting project that supports a variety of monitoring types including websites, APIs, PING, ports, databases, full-site, operating systems, middleware, etc. +HertzBeat, incubated by Dromara and open-sourced by TanCloud, is an open-source monitoring and alerting project that supports a variety of monitoring types including websites, APIs, PING, ports, databases, full-site, operating systems, middleware, etc. It supports threshold alarms and notification alerts (email, webhook, DingTalk, WeCom, Feishu robots) and has an easy-to-use, friendly visual operation interface. Official Website: hertzbeat.com | tancloud.cn @@ -17,20 +17,20 @@ We would like to thank the HertzBeat Contributors for their contributions since - - - - - - - + + + + + + + - - - - - + + + + +

tomsun28

💻 📖 🎨

会编程的王学长

💻 📖 🎨

MaxKey

💻 🎨 🤔

观沧海

💻 🎨 🐛

yuye

💻 📖

jx10086

💻 🐛

winnerTimer

💻 🐛

tomsun28

💻 📖 🎨

会编程的王学长

💻 📖 🎨

MaxKey

💻 🎨 🤔

观沧海

💻 🎨 🐛

yuye

💻 📖

jx10086

💻 🐛

winnerTimer

💻 🐛

goo-kits

💻 🐛

brave4Time

💻 🐛

WalkerLee

💻 🐛

jianghang

💻 🐛

ChineseTony

💻

goo-kits

💻 🐛

brave4Time

💻 🐛

WalkerLee

💻 🐛

jianghang

💻 🐛

ChineseTony

💻
@@ -52,7 +52,7 @@ Bug fix. 5. [[collector]bugfix: fix warehouse data queue consume error #153](https://github.com/apache/hertzbeat/pull/153). issue by @daqianxiaoyao 6. [[web-app]bugfix:fix input blocking when input error in dark theme #157](https://github.com/apache/hertzbeat/pull/157). issue by @ConradWen -Online . +Online: [tancloud](https://console.tancloud.cn) ----------------------- @@ -69,5 +69,5 @@ Online . **Repository url** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/blog/2022-06-19-hertzbeat-v1.1.0.md b/home/blog/2022-06-19-hertzbeat-v1.1.0.md index 111e49835a3..29d0061a369 100644 --- a/home/blog/2022-06-19-hertzbeat-v1.1.0.md +++ b/home/blog/2022-06-19-hertzbeat-v1.1.0.md @@ -32,7 +32,7 @@ Bugfixes: 3. [[monitor] bugfix: Fix for Elasticsearch monitoring failure under basic authentication #174](https://github.com/apache/hertzbeat/pull/174) Contributed by @weifuqing 4. [Fix for monitoring failure due to ambiguous Oracle monitoring parameter "database name" #182](https://github.com/apache/hertzbeat/pull/182) @zklmcookle -Online at . +Online at [https://console.tancloud.cn](https://console.tancloud.cn). --- @@ -68,5 +68,5 @@ Have Fun! **Repository Addresses** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/blog/2022-06-22-one-step-up.md b/home/blog/2022-06-22-one-step-up.md index 0391896be0d..11d4adcabfb 100644 --- a/home/blog/2022-06-22-one-step-up.md +++ b/home/blog/2022-06-22-one-step-up.md @@ -67,5 +67,5 @@ Have Fun! **Repository Addresses** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/blog/2022-07-10-hertzbeat-v1.1.1.md b/home/blog/2022-07-10-hertzbeat-v1.1.1.md index f54b19ae39e..fc8284fbaa3 100644 --- a/home/blog/2022-07-10-hertzbeat-v1.1.1.md +++ b/home/blog/2022-07-10-hertzbeat-v1.1.1.md @@ -39,7 +39,7 @@ Bugfix. 8. [[manager] 修改监控页面取消监控功能再启动监控导致多生成jobId,原有监控项目并没有真实取消 #215](https://github.com/apache/hertzbeat/pull/215) contribute by @yangshihui 9. [[warehouse] bugfix exception when tdengine create table SQL contain special char #220](https://github.com/apache/hertzbeat/pull/220) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! @@ -57,5 +57,5 @@ Have Fun! **If you like HertzBeat, star us on GitHub** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/blog/2022-09-04-hertzbeat-v1.1.3.md b/home/blog/2022-09-04-hertzbeat-v1.1.3.md index d6bd076b5f5..16818ac96ab 100644 --- a/home/blog/2022-09-04-hertzbeat-v1.1.3.md +++ b/home/blog/2022-09-04-hertzbeat-v1.1.3.md @@ -32,9 +32,9 @@ Bugfix. 1. [[docs] fix extend-http-jsonpath.md parseScript error #262](https://github.com/apache/hertzbeat/pull/262) contribute by @woshiniusange . 2. [[monitor] update help docs, refactor redis metrics name #264](https://github.com/apache/hertzbeat/pull/264) -3. [[manager] bugfix alert tags is null when tags map key normal value null. #270](https://github.com/apache/hertzbeat/pull/270) issue by -4. [[alert] bugfix: the alert global preset config do not take effect #275](https://github.com/apache/hertzbeat/pull/275) issue by +3. [[manager] bugfix alert tags is null when tags map key normal value null. #270](https://github.com/apache/hertzbeat/pull/270) issue by [https://gitee.com/hello_brother_niu](https://gitee.com/hello_brother_niu) +4. [[alert] bugfix: the alert global preset config do not take effect #275](https://github.com/apache/hertzbeat/pull/275) issue by [https://gitee.com/hello_brother_niu](https://gitee.com/hello_brother_niu) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). ## Have Fun diff --git a/home/blog/2022-09-10-ssl-practice.md b/home/blog/2022-09-10-ssl-practice.md index 315d83cbbbc..f803c0cf224 100644 --- a/home/blog/2022-09-10-ssl-practice.md +++ b/home/blog/2022-09-10-ssl-practice.md @@ -16,10 +16,10 @@ Today's article describes how to use hertzbeat monitoring system to detect the v HertzBeat is a real-time monitoring tool with powerful customizable monitoring capabilities without the need for an agent. Website monitoring, PING connectivity, port availability, database, OS, middleware, API monitoring, threshold alerts, alert notifications (email weChat pinning flybook). -**Official website: | ** +**Official website: [https://hertzbeat.apache.org](https://hertzbeat.apache.org) | [https://tancloud.cn](https://tancloud.cn)** -github: -gitee: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) #### Install HertzBeat @@ -86,8 +86,8 @@ gitee: You can refer to the help file for the token configuration of Nail WeChat Flying Book, etc. - - + [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) + [https://tancloud.cn/docs/help/alert_dingtalk](https://tancloud.cn/docs/help/alert_dingtalk) > Alert Notification -> Add new alert notification policy -> Enable notification for the recipients you just configured @@ -101,6 +101,6 @@ gitee: The practice of monitoring SSL certificates here, of course, for hertzbeat this function is just the tip of the iceberg, if you think hertzbeat this open source project is good if you welcome to give us in the GitHub Gitee star oh, thank you very much. Thank you for your support. The author! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**gitee: ** +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2022-10-08-hertzbeat-v1.2.0.md b/home/blog/2022-10-08-hertzbeat-v1.2.0.md index 8a1067c19fe..1206ff4e465 100644 --- a/home/blog/2022-10-08-hertzbeat-v1.2.0.md +++ b/home/blog/2022-10-08-hertzbeat-v1.2.0.md @@ -44,13 +44,13 @@ Bugfixes. 2. [[web-app] fix redirect when monitors app is null #286](https://github.com/apache/hertzbeat/pull/286) 3. [[alerter] bugfix aviator expression match npe #297](https://github.com/apache/hertzbeat/pull/297) 4. [[doc] fix project name error #294](https://github.com/apache/hertzbeat/pull/294) contributed by @CharlieXCL -5. [[common]feature:use "apache.http.conn.util" replace "sun.net.util" for upgrading java version #299]( hertzbeat/pull/299) contributed by @Privauto +5. [[common]feature:use "apache.http.conn.util" replace "sun.net.util" for upgrading java version #299]([https://github.com/dromara/](https://github.com/dromara/) hertzbeat/pull/299) contributed by @Privauto 6. [Update docker-deploy.md #304](https://github.com/apache/hertzbeat/pull/304) contributed by @emrys-he 7. [fix(sec): upgrade snakeyaml to 1.31 #313](https://github.com/apache/hertzbeat/pull/313) contributed by @SxLiuYu 8. [[script] add startup log and optimize port service judgment #321](https://github.com/apache/hertzbeat/pull/321) 9. [[web-app] fix echarts y-axis value tip overflow #325](https://github.com/apache/hertzbeat/pull/325) 10. [[webapp] fix interceptor http resp common error-msg when error #329](https://github.com/apache/hertzbeat/pull/329) - Online . + Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! diff --git a/home/blog/2022-11-28-hertzbeat-v1.2.2.md b/home/blog/2022-11-28-hertzbeat-v1.2.2.md index f88cd63d681..96bfd4415ec 100644 --- a/home/blog/2022-11-28-hertzbeat-v1.2.2.md +++ b/home/blog/2022-11-28-hertzbeat-v1.2.2.md @@ -50,6 +50,6 @@ Bugfix. 6. [[manager] bugfix the gmtUpdate not change when update monitor param #459](https://github.com/apache/hertzbeat/pull/459) 7. [[home] fix typo in springboot2.md #464](https://github.com/apache/hertzbeat/pull/464) @eltociear -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! diff --git a/home/blog/2022-12-19-new-committer.md b/home/blog/2022-12-19-new-committer.md index f44d94b5dd4..a1b1c308224 100644 --- a/home/blog/2022-12-19-new-committer.md +++ b/home/blog/2022-12-19-new-committer.md @@ -56,7 +56,7 @@ github:[wang1027-wqh](https://github.com/wang1027-wqh) 现从事:某互联网公司Java开发工程师 -email:<1758619238@qq.com> +email:[1758619238@qq.com](mailto:1758619238@qq.com) Hertzbeat Committer diff --git a/home/blog/2022-12-28-hertzbeat-v1.2.3.md b/home/blog/2022-12-28-hertzbeat-v1.2.3.md index be618468657..9a168c9922b 100644 --- a/home/blog/2022-12-28-hertzbeat-v1.2.3.md +++ b/home/blog/2022-12-28-hertzbeat-v1.2.3.md @@ -48,6 +48,6 @@ Bugfix. 7. [监控k8s问题issue描述与解决方案 #511](https://github.com/apache/hertzbeat/pull/511) @MrAndyMing 8. [[manager] springboot2 monitor support base path config #515](https://github.com/apache/hertzbeat/pull/515) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! diff --git a/home/blog/2023-01-05-monitor-iotdb.md b/home/blog/2023-01-05-monitor-iotdb.md index b49f4640c94..4367cb6df2e 100644 --- a/home/blog/2023-01-05-monitor-iotdb.md +++ b/home/blog/2023-01-05-monitor-iotdb.md @@ -40,7 +40,7 @@ tags: [opensource, practice] - PROMETHEUS ``` -2. Restart IoTDB, open a browser or use curl to access , and you can see the metric data. +2. Restart IoTDB, open a browser or use curl to access [http://ip:9091/metrics](http://ip:9091/metrics), and you can see the metric data. #### 2. Add IoTDB monitoring on the HertzBeat monitoring page @@ -53,7 +53,7 @@ tags: [opensource, practice] 2. Configure the parameters required for monitoring IoTDB Fill in the IoTDB **service IP** and **monitoring port** (default 9091) on the monitoring page, and finally click OK to add. - For other parameters such as **collection interval**, **timeout period**, etc., please refer to [Help Documentation](https://hertzbeat.apache.org/docs/help/iotdb/) /iotdb/ + For other parameters such as **collection interval**, **timeout period**, etc., please refer to [Help Documentation](https://hertzbeat.apache.org/docs/help/iotdb/) [https://hertzbeat.apache.org/docs/help](https://hertzbeat.apache.org/docs/help) /iotdb/ ![HertzBeat](/img/blog/monitor-iotdb-2.png) @@ -95,7 +95,7 @@ tags: [opensource, practice] Message notification methods support **email, DingTalk, WeChat Work, Feishu, WebHook, SMS**, etc. Here we take the commonly used DingTalk as an example. - - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the receiver parameters in HertzBeat as follows. 【Alarm Notification】->【New Recipient】->【Select DingTalk Robot Notification Method】->【Set DingTalk Robot ACCESS_TOKEN】->【OK】 @@ -122,8 +122,8 @@ Content details: The status of IOTDB node 127.0.0.1 is monitored as OFFLINE, ple This practical article took us to experience that if HertzBeat is used to monitor the IoTDB database metric data, we can find that HertzBeat, which integrates monitoring-alarm-notification, is more convenient in operation and use, and IoTDB can be included in the monitoring with a simple click on the page, it is no longer necessary to deploy multiple components and write multiple YML configuration files with thresholds. -IoTDB Github: -HertzBeat Github: +IoTDB Github: [https://github.com/apache/iotdb](https://github.com/apache/iotdb) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Welcome to learn about using Star Support!** diff --git a/home/blog/2023-01-08-monitor-shenyu.md b/home/blog/2023-01-08-monitor-shenyu.md index 531b2184f3b..e0e61f37478 100644 --- a/home/blog/2023-01-08-monitor-shenyu.md +++ b/home/blog/2023-01-08-monitor-shenyu.md @@ -42,11 +42,11 @@ tags: [opensource, practice] 1. Add the `metrics plugin` dependency to the `pom.xml` file of the gateway. ```xml - - org.apache.shenyu - shenyu-spring-boot-starter-plugin-metrics - ${project.version} - + `` + ``org.apache.shenyu`` + ``shenyu-spring-boot-starter-plugin-metrics`` + ``${project.version}`` + `` ``` 2. `metric` plugin Capture is turned off by default, edit the following in the gateway's configuration `yaml` file: @@ -76,7 +76,7 @@ tags: [opensource, practice] 2. Configure the parameters required for monitoring ShenYu On the monitor page, fill in ShenYu **service IP**, **monitor port** (default 8090), and click OK to add. - For other parameters such as **collection interval**, **timeout**, etc., you can refer to the [help file](https://hertzbeat.apache.org/docs/help/shenyu/) + For other parameters such as **collection interval**, **timeout**, etc., you can refer to the [help file](https://hertzbeat.apache.org/docs/help/shenyu/) [https://hertzbeat.apache.org/docs/help/shenyu/](https://hertzbeat.apache.org/docs/help/shenyu/) ![HertzBeat](/img/blog/monitor-shenyu-1.png) @@ -125,7 +125,7 @@ Of course, just looking at it is not perfect, monitoring is often accompanied by Message notification methods support **Email, Nail, WeChat, Flybook, WebHook, SMS**, etc. Here we take the commonly used Nail as an example. - - Refer to this [help document](https://hertzbeat.apache.org/docs/help/alert_dingtalk) Configure the bot on the pinning side, set the security customization keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [help document](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) Configure the bot on the pinning side, set the security customization keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the recipient parameters in HertzBeat as follows. [Alert Notification] -> [Add Recipient] -> [Select Nailed Bot Notification Method] -> [Set Nailed Bot ACCESS_TOKEN] -> [OK] @@ -156,8 +156,8 @@ Details : Please note that the number of file descriptors opened by ⚠️ ShenY This hands-on article takes us through how to use HertzBeat to monitor Apache ShenYu metrics data, and we can find that HertzBeat, which combines ``Monitoring-Alert-Notification``, is much more convenient to operate and use, and you can include ShenYu in the monitoring by simply clicking on a page. There is no need to deploy multiple components and write multiple YML configuration files. ::: -Apache ShenYu Github: -HertzBeat Github: +Apache ShenYu Github: [https://github.com/apache/shenyu](https://github.com/apache/shenyu) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Welcome to learn about using Star Support Oh!** diff --git a/home/blog/2023-02-02-monitor-dynamic-tp.md b/home/blog/2023-02-02-monitor-dynamic-tp.md index bf3a39542b5..0152c79bfb0 100644 --- a/home/blog/2023-02-02-monitor-dynamic-tp.md +++ b/home/blog/2023-02-02-monitor-dynamic-tp.md @@ -88,7 +88,7 @@ tags: [opensource, practice] 2. Configure the parameters required for monitoring DynamicTp. On the monitor page, fill in DynamicTp **service IP**, **monitoring port** (default 8080), and finally click OK to add it. - For other parameters such as **collection interval**, **timeout**, etc., you can refer to [help](https://hertzbeat.apache.org/docs/help/dynamic_tp/) + For other parameters such as **collection interval**, **timeout**, etc., you can refer to [help](https://hertzbeat.apache.org/docs/help/dynamic_tp/) [https://hertzbeat.apache.org/docs/help/dynamic_tp/](https://hertzbeat.apache.org/docs/help/dynamic_tp/) ![HertzBeat](/img/blog/monitor-dynamic-tp-2.png) @@ -137,7 +137,7 @@ Of course, just watching is not perfect, monitoring is often accompanied by alar Message notification methods support **Email, Dingtalk, WeChat, Flybook, WebHook, SMS**, etc. We take the commonly used Dingtalk as an example. - - Refer to this [help document](https://hertzbeat.apache.org/docs/help/alert_dingtalk) Configure the bot on Dingtalk side, set the security customization keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [help document](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) Configure the bot on Dingtalk side, set the security customization keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the recipient parameters in HertzBeat as follows. [Alert Notification] -> [Add Recipient] -> [Choose Dingtalk bot notification method] -> [Set Dingtalk bot ACCESS_TOKEN] -> [OK] @@ -168,8 +168,8 @@ Details : DynamicTp has run timeout thread, count is 2 This practical article takes us to experience how to use HertzBeat to monitor DynamicTp thread pool metrics data, and we can find that HertzBeat with ``monitoring-alerting-notification`` is much more convenient to operate and use, and you only need to point and click on a page to include DynamicTp thread pool into the monitoring and alert notification, and you don't need to deploy multiple components to write YML configuration files anymore. There is no need to deploy multiple components and write YML configuration files. ::: -DynamicTp Github: -HertzBeat Github: +DynamicTp Github: [https://github.com/dromara/dynamic-tp](https://github.com/dromara/dynamic-tp) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Welcome to learn how to use Star Support!** diff --git a/home/blog/2023-02-10-new-committer.md b/home/blog/2023-02-10-new-committer.md index 8f30e1694c6..abcef654aaf 100644 --- a/home/blog/2023-02-10-new-committer.md +++ b/home/blog/2023-02-10-new-committer.md @@ -112,8 +112,8 @@ First of all, I am also a newcomer to Novice Village, but I can share some of my > > The powerful customization of `HertzBeat`, multi-type support, easy expansion, and low coupling, hope to help developers and small and medium-sized teams quickly build their own monitoring tools. -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## ⛄ Supported diff --git a/home/blog/2023-02-11-monitor-mysql.md b/home/blog/2023-02-11-monitor-mysql.md index 32ffc69ed07..8140895a55f 100644 --- a/home/blog/2023-02-11-monitor-mysql.md +++ b/home/blog/2023-02-11-monitor-mysql.md @@ -39,7 +39,7 @@ Keywords: [Open source monitoring tool, open source database monitoring, Mysql d 2. Configure the parameters required for the new monitoring Mysql database On the monitoring page, fill in Mysql **service IP**, **monitoring port** (default 3306), **account password, etc.**, and finally click OK to add. - For other parameters such as **collection interval**, **timeout period**, etc., please refer to [Help Documentation](https://hertzbeat.apache.org/docs/help/mysql/) /mysql/ + For other parameters such as **collection interval**, **timeout period**, etc., please refer to [Help Documentation](https://hertzbeat.apache.org/docs/help/mysql/) [https://hertzbeat.apache.org/docs/help](https://hertzbeat.apache.org/docs/help) /mysql/ ![HertzBeat](/img/blog/monitor-mysql-2.png) @@ -87,7 +87,7 @@ Of course, just looking at it is definitely not perfect. Monitoring is often acc Message notification methods support **email, DingTalk, WeChat Work, Feishu, WebHook, SMS**, etc. Here we take the commonly used DingTalk as an example. - - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the receiver parameters in HertzBeat as follows. 【Alarm Notification】->【New Recipient】->【Select DingTalk Robot Notification Method】->【Set DingTalk Robot ACCESS_TOKEN】->【OK】 @@ -118,8 +118,8 @@ Content details: mysql db query_cache_hit_rate is too low, now is 20. This practical article took us to experience how to use the open source real-time monitoring tool HertzBeat to monitor Mysql database metric data. We can find that HertzBeat, which integrates `monitoring-alarm-notification`, is more convenient in operation and use, just click on the page The Mysql database can be included in the monitoring and alarm notification, and the tedious operations of deploying multiple components and writing configuration files are no longer needed. ::: -Mysql Github: -HertzBeat Github: +Mysql Github: [https://github.com/mysql/mysql-server](https://github.com/mysql/mysql-server) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Welcome to learn, use and star!** diff --git a/home/blog/2023-02-15-monitor-linux.md b/home/blog/2023-02-15-monitor-linux.md index d5a667ef0b6..d0a3626c0d8 100644 --- a/home/blog/2023-02-15-monitor-linux.md +++ b/home/blog/2023-02-15-monitor-linux.md @@ -17,7 +17,7 @@ keywords: [Open source monitoring tool, operating system monitoring, Linux monit - It configurable protocol specifications such as Http, Jmx, Ssh, Snmp, Jdbc, Prometheus, etc. You only need to configure YML to use these protocols to customize and collect any metrics you want to collect. Do you believe that you can immediately adapt to a new monitoring type such as K8s or Docker just by configuring YML? - HertzBeat's powerful customization, multi-type support, easy expansion, and low coupling, hope to help developers and small and medium teams quickly build their own monitoring tools. -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ### Get Linux Monitoring Done in HertzBeat in 5 Minutes @@ -36,7 +36,7 @@ Github: 2. Configure the parameters required for new monitoring Linux Fill in the Linux **peer IP**, **SSH port** (default 22), **account password, etc.** on the monitoring page, and finally click OK to add. - For other parameters such as **collection interval**, **timeout period**, etc., please refer to the help document + For other parameters such as **collection interval**, **timeout period**, etc., please refer to the help document [https://hertzbeat.apache.org/docs/help/mysql/](https://hertzbeat.apache.org/docs/help/mysql/) ![HertzBeat](/img/blog/monitor-linux-2.png) @@ -88,7 +88,7 @@ Of course, just looking at it is definitely not perfect. Monitoring is often acc Message notification methods support **email, DingTalk, WeChat Work, Feishu, WebHook, SMS**, etc. Here we take the commonly used DingTalk as an example. - - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the receiver parameters in HertzBeat as follows. 【Alarm Notification】->【New Recipient】->【Select DingTalk Robot Notification Method】->【Set DingTalk Robot ACCESS_TOKEN】->【OK】 @@ -132,8 +132,8 @@ This practical article took us to experience how to use the open source real-tim > > The powerful customization of `HertzBeat`, multi-type support, easy expansion, and low coupling, hope to help developers and small and medium-sized teams quickly build their own monitoring tools. -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## ⛄ Supported diff --git a/home/blog/2023-03-15-hertzbeat-v1.3.0.md b/home/blog/2023-03-15-hertzbeat-v1.3.0.md index 8bc00d6bb5e..93c5fbb9cc4 100644 --- a/home/blog/2023-03-15-hertzbeat-v1.3.0.md +++ b/home/blog/2023-03-15-hertzbeat-v1.3.0.md @@ -21,9 +21,9 @@ Website: hertzbeat.com | tancloud.cn > > Do you believe that you can immediately adapt a new monitoring type such as K8s or Docker just by defining YML? -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.0 release is here @@ -86,5 +86,5 @@ COMMIT; --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-03-22-monitor-springboot2.md b/home/blog/2023-03-22-monitor-springboot2.md index 72e26191015..c5f232b187c 100644 --- a/home/blog/2023-03-22-monitor-springboot2.md +++ b/home/blog/2023-03-22-monitor-springboot2.md @@ -21,7 +21,7 @@ keywords: [opensource monitoring, SpringBoot monitoring, alert] > > `HertzBeat`'s powerful custom-define, multi-type support, easy expansion, low coupling, hope to help developers and micro teams to quickly build their own monitoring system. -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ### Monitoring SpringBoot2 Metrics with HertzBeat in 5 minutes @@ -93,7 +93,7 @@ Github: 2. Configure the parameters required for new monitoring SpringBoot2 Fill in the SpringBoot2 application **peer IP**, **service port** (default 8080), **account password, etc.** on the monitoring page, and finally click OK to add. - For other parameters such as **collection interval**, **timeout period**, etc., please refer to the help document + For other parameters such as **collection interval**, **timeout period**, etc., please refer to the help document [https://hertzbeat.apache.org/docs/help/](https://hertzbeat.apache.org/docs/help/) ![HertzBeat](/img/blog/monitor-springboot2-2.png) @@ -141,7 +141,7 @@ Of course, it is impossible to manually check the metrics in real time. Monitori Message notification methods support **email, DingTalk, WeChat Work, Feishu, WebHook, SMS**, etc. Here we take the commonly used DingTalk as an example. - - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. + - Refer to this [Help Documentation](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) to configure the robot on DingTalk and set the security custom keyword `HertzBeat`, get the corresponding `access_token` value. - Configure the receiver parameters in HertzBeat as follows. 【Alarm Notification】->【New Recipient】->【Select DingTalk Robot Notification Method】->【Set DingTalk Robot ACCESS_TOKEN】->【OK】 @@ -208,5 +208,5 @@ This practical article took us to experience how to use the open source real-tim ---- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-05-09-hertzbeat-v1.3.1.md b/home/blog/2023-05-09-hertzbeat-v1.3.1.md index 4c392e80272..69671bbaa79 100644 --- a/home/blog/2023-05-09-hertzbeat-v1.3.1.md +++ b/home/blog/2023-05-09-hertzbeat-v1.3.1.md @@ -24,9 +24,9 @@ Website: hertzbeat.com | tancloud.cn > `HertzBeat`'s powerful custom-define, multi-type support, easy expansion, low coupling, hope to help developers and micro teams to quickly build their own monitoring system. > We also provide **[Monitoring SaaS Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system in order to monitor resources. **[Get started for free](https://console.tancloud.cn)**. -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.1 release is here @@ -66,5 +66,5 @@ COMMIT; --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-05-11-greptimedb-store.md b/home/blog/2023-05-11-greptimedb-store.md index 12f42267987..43bef637e87 100644 --- a/home/blog/2023-05-11-greptimedb-store.md +++ b/home/blog/2023-05-11-greptimedb-store.md @@ -75,9 +75,9 @@ See the [official documentation](https://hertzbeat.apache.org/zh-cn/docs/start/d - `-v /opt/application.yml:/opt/hertzbeat/config/application.yml` : Mount customized local configuration files to the container, i.e. use local configuration files to overwrite the container configuration files. - Note that the ⚠️ local mount configuration file `application.yml` needs to exist in advance, and the full contents of the file can be found in the project repository [/script/application.yml]( application.yml) + Note that the ⚠️ local mount configuration file `application.yml` needs to exist in advance, and the full contents of the file can be found in the project repository [/script/application.yml]([https://github.com/apache/hertzbeat/raw/master/script/](https://github.com/apache/hertzbeat/raw/master/script/) application.yml) -2. Go to with the default account and password admin/hertzbeat to see if HertzBeat starts successfully. +2. Go to [http://ip:1157/](http://ip:1157/) with the default account and password admin/hertzbeat to see if HertzBeat starts successfully. #### Configure to use GreptimeDB to store HertzBeat monitoring metrics metrics data @@ -105,7 +105,7 @@ See the [official documentation](https://hertzbeat.apache.org/zh-cn/docs/start/d #### Observe the authentication effect -1. visit HertzBeat in your browser default account password admin/hertzbeat +1. visit HertzBeat in your browser [http://ip:1157/](http://ip:1157/) default account password admin/hertzbeat 2. Use HertzBeat to add application monitors, such as website monitors, Linux monitors, Mysql monitors, and so on. 3. After monitoring and collecting several cycles, check whether GreptimeDB database stores the metrics data and whether HertzBeat metrics data graph data is displayed normally. @@ -122,8 +122,8 @@ Here's the picture: ! This article took us to experience how to use the open source time-series database GreptimeDB to store the metrics data of the open source real-time monitoring HertzBeat, in general, the two open source products is very simple to get started, the key is that if it is too much trouble do not want to deploy both of them still have cloud services 😂 let you toss. As one of the developers of the feature [HertzBeat supports GreptimeDB](https://github.com/apache/hertzbeat/pull/834), in the actual adaptation process, GreptimeDB's silky-smooth native SDK and relational database-like SQL, let us from other GreptimeDB native SDK and relational database-like SQL make it very easy to switch from other time-series databases like `TDengine, IotDB, InfluxDB` to GreptimeDB, and the experience is very smooth. -GreptimeDB Github: -HertzBeat Github: +GreptimeDB Github: [https://github.com/GreptimeTeam/greptimedb](https://github.com/GreptimeTeam/greptimedb) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Finally, you are welcome to be more understanding, more use, more comments, more ISSUE, more PR, more Star support these two did not come out for a long time hope to get care of open source cattle are not afraid of difficulties a small star oh! Do open source, we are sincere, love 💗** diff --git a/home/blog/2023-07-05-hertzbeat-v1.3.2.md b/home/blog/2023-07-05-hertzbeat-v1.3.2.md index 2b930b818ce..31790baa9b1 100644 --- a/home/blog/2023-07-05-hertzbeat-v1.3.2.md +++ b/home/blog/2023-07-05-hertzbeat-v1.3.2.md @@ -24,9 +24,9 @@ Website: hertzbeat.com | tancloud.cn > `HertzBeat`'s powerful custom-define, multi-type support, easy expansion, low coupling, hope to help developers and micro teams to quickly build their own monitoring system. > We also provide **[Monitoring SaaS Cloud](https://console.tancloud.cn)**, users no longer need to deploy a cumbersome monitoring system in order to monitor resources. **[Get started for free](https://console.tancloud.cn)**. -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.2 @@ -92,5 +92,5 @@ spring: --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-08-14-hertzbeat-v1.4.0.md b/home/blog/2023-08-14-hertzbeat-v1.4.0.md index b201b0e41f5..8ec67596b6c 100644 --- a/home/blog/2023-08-14-hertzbeat-v1.4.0.md +++ b/home/blog/2023-08-14-hertzbeat-v1.4.0.md @@ -25,9 +25,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![HertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### The cluster version is coming @@ -100,53 +100,53 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -* [doc] add v1.3.2 publish doc by @tomsun28 in -* remove elasticsearch unused param index by @Ceilzcx in -* feature support monitoring apache airflow by @luoxuanzao in -* add luoxuanzao as a contributor for code by @allcontributors in -* [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in -* bugfix update dashboard alerts cards height not consist by @tomsun28 in -* Feature#serverchan by @zqr10159 in -* bugfix dm database monitoring connect error by @lisongning in -* add lisongning as a contributor for code by @allcontributors in -* update alert rule operator display "<=" to ">=" by @Ceilzcx in -* [doc] add custom monitoring relate document by @tomsun28 in -* add YutingNie as a contributor for code by @allcontributors in -* Remove unreachable status by @YutingNie in -* 139 auto update alert status by @l646505418 in -* feat: aviator fn for str contains, exists & matches by @mikezzb in -* add mikezzb as a contributor for code by @allcontributors in -* bugfix common alarm do not need monitorId tag existed by @tomsun28 in -* bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in -* feature: support apache spark metrics monitoring by @a-little-fool in -* add a-little-fool as a contributor for code by @allcontributors in -* [Feature]Add third report of TenCloud by @zqr10159 in -* [Feature]Add third report of TenCloud (#1113) by @zqr10159 in -* [manager] fix: can query by tags when tagValue is null by @l646505418 in -* bugfix the notification template environment variable display error by @tomsun28 in -* add littlezhongzer as a contributor for code by @allcontributors in -* feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in -* docs: enhance README by @mikezzb in -* Update app-oracle.yml by @ChenXiangxxxxx in -* add ChenXiangxxxxx as a contributor for code by @allcontributors in -* fix alarm silence strategy setting failed by @Ceilzcx in -* support run sql script file in jdbc protocol config by @tomsun28 in -* bugfix return old cache json file when upgrade version by @tomsun28 in -* support ssh protocol config choose if reuse connection by @tomsun28 in -* feat(web): alert threshold UI support matches & contains by @mikezzb in -* support hertzbeat metrics collector cluster by @tomsun28 in -* add collector card in dashboard by @tomsun28 in -* bugfix: linux collect warning: bad syntax, perhaps a bogus '-' by @Mr-zhou315 in -* add Mr-zhou315 as a contributor for code by @allcontributors in -* support config timezone locale language region on web ui by @tomsun28 in -* bugfix monitoring template app name already exists by @tomsun28 in -* bugfix can not startup when error monitoring template yml file by @tomsun28 in -* tags also deleted when the monitor is deleted by @Ceilzcx in -* monitoring param host with http head will not be error reported by @littlezhongzer in -* [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in -* add XimfengYao as a contributor for code by @allcontributors in -* [doc] add collector clusters document by @tomsun28 in -* [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in +* [doc] add v1.3.2 publish doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1075](https://github.com/apache/hertzbeat/pull/1075) +* remove elasticsearch unused param index by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1080](https://github.com/apache/hertzbeat/pull/1080) +* feature support monitoring apache airflow by @luoxuanzao in [https://github.com/apache/hertzbeat/pull/1081](https://github.com/apache/hertzbeat/pull/1081) +* add luoxuanzao as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1083](https://github.com/apache/hertzbeat/pull/1083) +* [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in [https://github.com/apache/hertzbeat/pull/1084](https://github.com/apache/hertzbeat/pull/1084) +* bugfix update dashboard alerts cards height not consist by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1087](https://github.com/apache/hertzbeat/pull/1087) +* Feature#serverchan by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1092](https://github.com/apache/hertzbeat/pull/1092) +* bugfix dm database monitoring connect error by @lisongning in [https://github.com/apache/hertzbeat/pull/1094](https://github.com/apache/hertzbeat/pull/1094) +* add lisongning as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1096](https://github.com/apache/hertzbeat/pull/1096) +* update alert rule operator display "\<=" to "\>=" by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1097](https://github.com/apache/hertzbeat/pull/1097) +* [doc] add custom monitoring relate document by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1098](https://github.com/apache/hertzbeat/pull/1098) +* add YutingNie as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1103](https://github.com/apache/hertzbeat/pull/1103) +* Remove unreachable status by @YutingNie in [https://github.com/apache/hertzbeat/pull/1102](https://github.com/apache/hertzbeat/pull/1102) +* 139 auto update alert status by @l646505418 in [https://github.com/apache/hertzbeat/pull/1104](https://github.com/apache/hertzbeat/pull/1104) +* feat: aviator fn for str contains, exists & matches by @mikezzb in [https://github.com/apache/hertzbeat/pull/1106](https://github.com/apache/hertzbeat/pull/1106) +* add mikezzb as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1107](https://github.com/apache/hertzbeat/pull/1107) +* bugfix common alarm do not need monitorId tag existed by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1108](https://github.com/apache/hertzbeat/pull/1108) +* bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1111](https://github.com/apache/hertzbeat/pull/1111) +* feature: support apache spark metrics monitoring by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1114](https://github.com/apache/hertzbeat/pull/1114) +* add a-little-fool as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1116](https://github.com/apache/hertzbeat/pull/1116) +* [Feature]Add third report of TenCloud by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1113](https://github.com/apache/hertzbeat/pull/1113) +* [Feature]Add third report of TenCloud (#1113) by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1119](https://github.com/apache/hertzbeat/pull/1119) +* [manager] fix: can query by tags when tagValue is null by @l646505418 in [https://github.com/apache/hertzbeat/pull/1118](https://github.com/apache/hertzbeat/pull/1118) +* bugfix the notification template environment variable display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1120](https://github.com/apache/hertzbeat/pull/1120) +* add littlezhongzer as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1127](https://github.com/apache/hertzbeat/pull/1127) +* feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in [https://github.com/apache/hertzbeat/pull/1122](https://github.com/apache/hertzbeat/pull/1122) +* docs: enhance README by @mikezzb in [https://github.com/apache/hertzbeat/pull/1128](https://github.com/apache/hertzbeat/pull/1128) +* Update app-oracle.yml by @ChenXiangxxxxx in [https://github.com/apache/hertzbeat/pull/1129](https://github.com/apache/hertzbeat/pull/1129) +* add ChenXiangxxxxx as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1130](https://github.com/apache/hertzbeat/pull/1130) +* fix alarm silence strategy setting failed by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1131](https://github.com/apache/hertzbeat/pull/1131) +* support run sql script file in jdbc protocol config by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1117](https://github.com/apache/hertzbeat/pull/1117) +* bugfix return old cache json file when upgrade version by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1137](https://github.com/apache/hertzbeat/pull/1137) +* support ssh protocol config choose if reuse connection by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1136](https://github.com/apache/hertzbeat/pull/1136) +* feat(web): alert threshold UI support matches & contains by @mikezzb in [https://github.com/apache/hertzbeat/pull/1138](https://github.com/apache/hertzbeat/pull/1138) +* support hertzbeat metrics collector cluster by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1101](https://github.com/apache/hertzbeat/pull/1101) +* add collector card in dashboard by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1147](https://github.com/apache/hertzbeat/pull/1147) +* bugfix: linux collect warning: bad syntax, perhaps a bogus '-' by @Mr-zhou315 in [https://github.com/apache/hertzbeat/pull/1151](https://github.com/apache/hertzbeat/pull/1151) +* add Mr-zhou315 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1157](https://github.com/apache/hertzbeat/pull/1157) +* support config timezone locale language region on web ui by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1154](https://github.com/apache/hertzbeat/pull/1154) +* bugfix monitoring template app name already exists by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1152](https://github.com/apache/hertzbeat/pull/1152) +* bugfix can not startup when error monitoring template yml file by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1153](https://github.com/apache/hertzbeat/pull/1153) +* tags also deleted when the monitor is deleted by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1159](https://github.com/apache/hertzbeat/pull/1159) +* monitoring param host with http head will not be error reported by @littlezhongzer in [https://github.com/apache/hertzbeat/pull/1155](https://github.com/apache/hertzbeat/pull/1155) +* [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in [https://github.com/apache/hertzbeat/pull/1162](https://github.com/apache/hertzbeat/pull/1162) +* add XimfengYao as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1163](https://github.com/apache/hertzbeat/pull/1163) +* [doc] add collector clusters document by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1161](https://github.com/apache/hertzbeat/pull/1161) +* [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1168](https://github.com/apache/hertzbeat/pull/1168) --- @@ -163,5 +163,5 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-08-28-new-committer.md b/home/blog/2023-08-28-new-committer.md index 8d9af805bb7..afcd3d5a20b 100644 --- a/home/blog/2023-08-28-new-committer.md +++ b/home/blog/2023-08-28-new-committer.md @@ -84,6 +84,6 @@ HertzBeat HertzBeat is an open source real-time monitoring and alerting system w > `HertzBeat`'s powerful customization, multi-type support, high performance, easy to extend, low-coupling, and hopefully can help developers and teams to quickly build their own monitoring system. -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) More users are welcome to participate in `HertzBeat` open source collaboration, no matter a typo or punctuation we are very welcome. diff --git a/home/blog/2023-09-26-hertzbeat-v1.4.1.md b/home/blog/2023-09-26-hertzbeat-v1.4.1.md index 485e4e1bf0e..def28ffaf05 100644 --- a/home/blog/2023-09-26-hertzbeat-v1.4.1.md +++ b/home/blog/2023-09-26-hertzbeat-v1.4.1.md @@ -25,9 +25,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![HertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.1 version is coming @@ -83,58 +83,58 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -* bugfix npe when get undefined name monitor template yml by @tomsun28 in -* [bug fixed]When importing and exporting monitoring, support export collectors, configure collectors when importing by @zqr10159 in -* support alert threshold rule config system value row count by @tomsun28 in -* Update README.md by @zqr10159 in -* support config alert threshold tags bind by @tomsun28 in -* the back-end of help component has been built by @YutingNie in -* support enable alert threshold auto resolved notice by @tomsun28 in -* Delete tag of the dashboard's homepage on the top four pages by @Ceilzcx in -* replace obsolete `registry.npm.taobao.org` to`registry.npmmirror.com` by @zqr10159 in -* refactor MonitorServiceImpl by @Carpe-Wang in -* config default system timezone and fix monitor status auto recover by @tomsun28 in -* update-doc-doris by @zqr10159 in -* [manager] support tidb database monitoring by @luxx-lq in -* refactor fix potential npe by @Carpe-Wang in -* [ospp] support ui help massage component by @YutingNie in -* support monitor metrics name i18n by @tomsun28 in -* support google analytics by @tomsun28 in -* refactor code and fix some npe by @Carpe-Wang in -* bugfix fix found 2 dataQueue bean when not config common.queue param by @tomsun28 in -* Help component update by @YutingNie in -* bugfix enterprise wechat push display content is too cumbersome by @l646505418 in -* bugfix WeChatAppAlertNotifyHandlerImpl by @LINGLUOJUN in -* add LINGLUOJUN as a contributor for code by @allcontributors in -* fix jmx jndi inject vulnerability by @luelueking in -* add luelueking as a contributor for code by @allcontributors in -* bugfix monitoring param number limit range by @qyaaaa in -* add qyaaaa as a contributor for code by @allcontributors in -* add app-ping i18n by @qyaaaa in -* some codes opt by @LINGLUOJUN in -* support deploy hertzbeat by kubernetes helm charts by @tomsun28 in -* bugfix threshold setting template variables has repeated parameters by @qyaaaa in -* support display metrics i18n label when threshold setting by @tomsun28 in -* bugfix user role display not correctly on webui by @tomsun28 in -* add hertzbeat about msg card by @tomsun28 in -* add app-api i18n by @novohit in -* add novohit as a contributor for code by @allcontributors in -* [feature]Add `getAlertDefinesByName`. by @zqr10159 in -* thread pool executor support shutdown gracefully by @LINGLUOJUN in -* fix: expression injection RCE by @mikezzb in -* [bugfix]Replace schema "{key1:value1}" to "{\"key1\":\"value1\"}" by @zqr10159 in -* [Refactor] Use static methods instead of constructors for Message.java by @gcdd1993 in -* bugfix snake yaml decode rce by @tomsun28 in -* bugfix jackson deserialize localDatetime error by @tomsun28 in -* netty as an independent module, add new feature about collector list by @Ceilzcx in -* support show deploy collector script in web by @tomsun28 in -* bugfix mongodb collect extra metrics npe by @tomsun28 in -* bugfix fix collector run cyclic when connect auth failed by @tomsun28 in -* update webapp login ui by @tomsun28 in -* bugfix collector can not auto reconnect when channel idle by @tomsun28 in -* update alarm notice wework app send content ui by @tomsun28 in -* [hertzbeat] release hertzbeat version v1.4.1 by @tomsun28 in -* auto split webhook token when user input hook url by @tomsun28 in +* bugfix npe when get undefined name monitor template yml by @tomsun28 in [#1173](https://github.com/apache/hertzbeat/pull/1173) +* [bug fixed]When importing and exporting monitoring, support export collectors, configure collectors when importing by @zqr10159 in [#1178](https://github.com/apache/hertzbeat/pull/1178) +* support alert threshold rule config system value row count by @tomsun28 in [#1180](https://github.com/apache/hertzbeat/pull/1180) +* Update README.md by @zqr10159 in [#1182](https://github.com/apache/hertzbeat/pull/1182) +* support config alert threshold tags bind by @tomsun28 in [#1181](https://github.com/apache/hertzbeat/pull/1181) +* the back-end of help component has been built by @YutingNie in [#1160](https://github.com/apache/hertzbeat/pull/1160) +* support enable alert threshold auto resolved notice by @tomsun28 in [#1185](https://github.com/apache/hertzbeat/pull/1185) +* Delete tag of the dashboard's homepage on the top four pages by @Ceilzcx in [#1189](https://github.com/apache/hertzbeat/pull/1189) +* replace obsolete `registry.npm.taobao.org` to`registry.npmmirror.com` by @zqr10159 in [#1192](https://github.com/apache/hertzbeat/pull/1192) +* refactor MonitorServiceImpl by @Carpe-Wang in [#1190](https://github.com/apache/hertzbeat/pull/1190) +* config default system timezone and fix monitor status auto recover by @tomsun28 in [#1187](https://github.com/apache/hertzbeat/pull/1187) +* update-doc-doris by @zqr10159 in [#1193](https://github.com/apache/hertzbeat/pull/1193) +* [manager] support tidb database monitoring by @luxx-lq in [#733](https://github.com/apache/hertzbeat/pull/733) +* refactor fix potential npe by @Carpe-Wang in [#1197](https://github.com/apache/hertzbeat/pull/1197) +* [ospp] support ui help massage component by @YutingNie in [#1199](https://github.com/apache/hertzbeat/pull/1199) +* support monitor metrics name i18n by @tomsun28 in [#1198](https://github.com/apache/hertzbeat/pull/1198) +* support google analytics by @tomsun28 in [#1202](https://github.com/apache/hertzbeat/pull/1202) +* refactor code and fix some npe by @Carpe-Wang in [#1201](https://github.com/apache/hertzbeat/pull/1201) +* bugfix fix found 2 dataQueue bean when not config common.queue param by @tomsun28 in [#1205](https://github.com/apache/hertzbeat/pull/1205) +* Help component update by @YutingNie in [#1207](https://github.com/apache/hertzbeat/pull/1207) +* bugfix enterprise wechat push display content is too cumbersome by @l646505418 in [#1149](https://github.com/apache/hertzbeat/pull/1149) +* bugfix WeChatAppAlertNotifyHandlerImpl by @LINGLUOJUN in [#1208](https://github.com/apache/hertzbeat/pull/1208) +* add LINGLUOJUN as a contributor for code by @allcontributors in [#1209](https://github.com/apache/hertzbeat/pull/1209) +* fix jmx jndi inject vulnerability by @luelueking in [#1215](https://github.com/apache/hertzbeat/pull/1215) +* add luelueking as a contributor for code by @allcontributors in [#1217](https://github.com/apache/hertzbeat/pull/1217) +* bugfix monitoring param number limit range by @qyaaaa in [#1216](https://github.com/apache/hertzbeat/pull/1216) +* add qyaaaa as a contributor for code by @allcontributors in [#1218](https://github.com/apache/hertzbeat/pull/1218) +* add app-ping i18n by @qyaaaa in [#1220](https://github.com/apache/hertzbeat/pull/1220) +* some codes opt by @LINGLUOJUN in [#1214](https://github.com/apache/hertzbeat/pull/1214) +* support deploy hertzbeat by kubernetes helm charts by @tomsun28 in [#1221](https://github.com/apache/hertzbeat/pull/1221) +* bugfix threshold setting template variables has repeated parameters by @qyaaaa in [#1223](https://github.com/apache/hertzbeat/pull/1223) +* support display metrics i18n label when threshold setting by @tomsun28 in [#1225](https://github.com/apache/hertzbeat/pull/1225) +* bugfix user role display not correctly on webui by @tomsun28 in [#1227](https://github.com/apache/hertzbeat/pull/1227) +* add hertzbeat about msg card by @tomsun28 in [#1229](https://github.com/apache/hertzbeat/pull/1229) +* add app-api i18n by @novohit in [#1236](https://github.com/apache/hertzbeat/pull/1236) +* add novohit as a contributor for code by @allcontributors in [#1238](https://github.com/apache/hertzbeat/pull/1238) +* [feature]Add `getAlertDefinesByName`. by @zqr10159 in [#1237](https://github.com/apache/hertzbeat/pull/1237) +* thread pool executor support shutdown gracefully by @LINGLUOJUN in [#1240](https://github.com/apache/hertzbeat/pull/1240) +* fix: expression injection RCE by @mikezzb in [#1241](https://github.com/apache/hertzbeat/pull/1241) +* [bugfix]Replace schema `"{key1:value1}"` to `"{\"key1\":\"value1\"}"` by @zqr10159 in [#1245](https://github.com/apache/hertzbeat/pull/1245) +* [Refactor] Use static methods instead of constructors for Message.java by @gcdd1993 in [#1247](https://github.com/apache/hertzbeat/pull/1247) +* bugfix snake yaml decode rce by @tomsun28 in [#1239](https://github.com/apache/hertzbeat/pull/1239) +* bugfix jackson deserialize localDatetime error by @tomsun28 in [#1249](https://github.com/apache/hertzbeat/pull/1249) +* netty as an independent module, add new feature about collector list by @Ceilzcx in [#1244](https://github.com/apache/hertzbeat/pull/1244) +* support show deploy collector script in web by @tomsun28 in [#1251](https://github.com/apache/hertzbeat/pull/1251) +* bugfix mongodb collect extra metrics npe by @tomsun28 in [#1257](https://github.com/apache/hertzbeat/pull/1257) +* bugfix fix collector run cyclic when connect auth failed by @tomsun28 in [#1256](https://github.com/apache/hertzbeat/pull/1256) +* update webapp login ui by @tomsun28 in [#1260](https://github.com/apache/hertzbeat/pull/1260) +* bugfix collector can not auto reconnect when channel idle by @tomsun28 in [#1259](https://github.com/apache/hertzbeat/pull/1259) +* update alarm notice wework app send content ui by @tomsun28 in [#1258](https://github.com/apache/hertzbeat/pull/1258) +* [hertzbeat] release hertzbeat version v1.4.1 by @tomsun28 in [#1261](https://github.com/apache/hertzbeat/pull/1261) +* auto split webhook token when user input hook url by @tomsun28 in [#1262](https://github.com/apache/hertzbeat/pull/1262) --- @@ -151,5 +151,5 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-11-12-hertzbeat-v1.4.2.md b/home/blog/2023-11-12-hertzbeat-v1.4.2.md index b4dc1f74990..51b32d81d36 100644 --- a/home/blog/2023-11-12-hertzbeat-v1.4.2.md +++ b/home/blog/2023-11-12-hertzbeat-v1.4.2.md @@ -23,9 +23,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![HertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.2 version release @@ -65,55 +65,55 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -* bugfix counting wrong tasks num of collector by @tomsun28 in -* [ospp] add push style collector by @vinci-897 in -* add 1.4.1 version doc by @tomsun28 in -* support using Huawei Cloud OBS to store custom define yml file by @gcdd1993 in -* [doc] add more contact channel by @tomsun28 in -* bugfix app-tomcat memory_pool unit mb by @rbsrcy in -* add rbsrcy as a contributor for code by @allcontributors in -* [doc] update docker.md by @ruanliang-hualun in -* add ruanliang-hualun as a contributor for doc by @allcontributors in -* bugfix jmx memory_pool unit and time unit error by @rbsrcy in -* bugfix old version monitor alert has no monitor name by @tomsun28 in -* support edit monitor in monitor detail page by @tomsun28 in -* reset alert converge reduce cache when restored alert trigger by @tomsun28 in -* [ospp] add push style collector doc by @vinci-897 in -* bugfix threshold availability automatically carries threshold parameters by @tomsun28 in -* [ospp] support custom notice template by @Eden4701 in -* add Eden4701 as a contributor for code by @allcontributors in -* bugfix AvailableAlertDefineInit - query did not return a unique result by @tomsun28 in -* upgrade to version angular 15 by @tomsun28 in -* support push style for multiple messages by @vinci-897 in -* update hertzbeat upgrade help doc by @tomsun28 in -* feat alert converge, define, silence support search query by @tomsun28 in -* feature:support monitoring udp port availability by @tomsun28 in -* support emqx monitor by @vinci-897 in -* add an explicit tag filter by @vinci-897 in -* add hertzbeat icon by @zqr10159 in -* [doc] update kafka help doc by @XiaTian688 in -* add XiaTian688 as a contributor for doc by @allcontributors in -* support webhook custom template by @tomsun28 in -* set ssh param connect reused default false by @tomsun28 in -* upgrade greptimedb to v0.4 by @liyin in -* add liyin as a contributor for code by @allcontributors in -* add some emqx monitoring metrics by @tomsun28 in -* feature: app-mysql.yml by @a-little-fool in -* modify default IoTDB version config to V_1_0 by @Ceilzcx in -* bugfix timestamp is null by @qyaaaa in -* [hertzbeat] release hertzbeat version v1.4.2 by @tomsun28 in -* bugfix alarm time span match in silence and notice by @tomsun28 in -* update available alert threshold trigger times default 2 by @tomsun28 in -* bugfix rabbitmq contains duplicated metric by @tomsun28 in -* [alerter] optimize the encoding of how to add Extern Alarm Manage API(#1320) by @SurryChen in -* bugfix webhook post body error and alarm recover exception by @tomsun28 in -* build hertzbeat package with jdk runtime by @tomsun28 in +* bugfix counting wrong tasks num of collector by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1265](https://github.com/apache/hertzbeat/pull/1265) +* [ospp] add push style collector by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1222](https://github.com/apache/hertzbeat/pull/1222) +* add 1.4.1 version doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1263](https://github.com/apache/hertzbeat/pull/1263) +* support using Huawei Cloud OBS to store custom define yml file by @gcdd1993 in [https://github.com/apache/hertzbeat/pull/1266](https://github.com/apache/hertzbeat/pull/1266) +* [doc] add more contact channel by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1272](https://github.com/apache/hertzbeat/pull/1272) +* bugfix app-tomcat memory_pool unit mb by @rbsrcy in [https://github.com/apache/hertzbeat/pull/1268](https://github.com/apache/hertzbeat/pull/1268) +* add rbsrcy as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1271](https://github.com/apache/hertzbeat/pull/1271) +* [doc] update docker.md by @ruanliang-hualun in [https://github.com/apache/hertzbeat/pull/1270](https://github.com/apache/hertzbeat/pull/1270) +* add ruanliang-hualun as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1274](https://github.com/apache/hertzbeat/pull/1274) +* bugfix jmx memory_pool unit and time unit error by @rbsrcy in [https://github.com/apache/hertzbeat/pull/1273](https://github.com/apache/hertzbeat/pull/1273) +* bugfix old version monitor alert has no monitor name by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1278](https://github.com/apache/hertzbeat/pull/1278) +* support edit monitor in monitor detail page by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1282](https://github.com/apache/hertzbeat/pull/1282) +* reset alert converge reduce cache when restored alert trigger by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1281](https://github.com/apache/hertzbeat/pull/1281) +* [ospp] add push style collector doc by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1267](https://github.com/apache/hertzbeat/pull/1267) +* bugfix threshold availability automatically carries threshold parameters by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1285](https://github.com/apache/hertzbeat/pull/1285) +* [ospp] support custom notice template by @Eden4701 in [https://github.com/apache/hertzbeat/pull/1233](https://github.com/apache/hertzbeat/pull/1233) +* add Eden4701 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1287](https://github.com/apache/hertzbeat/pull/1287) +* bugfix AvailableAlertDefineInit - query did not return a unique result by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1288](https://github.com/apache/hertzbeat/pull/1288) +* upgrade to version angular 15 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1291](https://github.com/apache/hertzbeat/pull/1291) +* support push style for multiple messages by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1292](https://github.com/apache/hertzbeat/pull/1292) +* update hertzbeat upgrade help doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1294](https://github.com/apache/hertzbeat/pull/1294) +* feat alert converge, define, silence support search query by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1300](https://github.com/apache/hertzbeat/pull/1300) +* feature:support monitoring udp port availability by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1295](https://github.com/apache/hertzbeat/pull/1295) +* support emqx monitor by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1302](https://github.com/apache/hertzbeat/pull/1302) +* add an explicit tag filter by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1303](https://github.com/apache/hertzbeat/pull/1303) +* add hertzbeat icon by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1305](https://github.com/apache/hertzbeat/pull/1305) +* [doc] update kafka help doc by @XiaTian688 in [https://github.com/apache/hertzbeat/pull/1308](https://github.com/apache/hertzbeat/pull/1308) +* add XiaTian688 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1309](https://github.com/apache/hertzbeat/pull/1309) +* support webhook custom template by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1306](https://github.com/apache/hertzbeat/pull/1306) +* set ssh param connect reused default false by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1310](https://github.com/apache/hertzbeat/pull/1310) +* upgrade greptimedb to v0.4 by @liyin in [https://github.com/apache/hertzbeat/pull/1311](https://github.com/apache/hertzbeat/pull/1311) +* add liyin as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1313](https://github.com/apache/hertzbeat/pull/1313) +* add some emqx monitoring metrics by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1312](https://github.com/apache/hertzbeat/pull/1312) +* feature: app-mysql.yml by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1316](https://github.com/apache/hertzbeat/pull/1316) +* modify default IoTDB version config to V_1_0 by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1315](https://github.com/apache/hertzbeat/pull/1315) +* bugfix timestamp is null by @qyaaaa in [https://github.com/apache/hertzbeat/pull/1246](https://github.com/apache/hertzbeat/pull/1246) +* [hertzbeat] release hertzbeat version v1.4.2 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1317](https://github.com/apache/hertzbeat/pull/1317) +* bugfix alarm time span match in silence and notice by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1318](https://github.com/apache/hertzbeat/pull/1318) +* update available alert threshold trigger times default 2 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1324](https://github.com/apache/hertzbeat/pull/1324) +* bugfix rabbitmq contains duplicated metric by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1322](https://github.com/apache/hertzbeat/pull/1322) +* [alerter] optimize the encoding of how to add Extern Alarm Manage API(#1320) by @SurryChen in [https://github.com/apache/hertzbeat/pull/1325](https://github.com/apache/hertzbeat/pull/1325) +* bugfix webhook post body error and alarm recover exception by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1327](https://github.com/apache/hertzbeat/pull/1327) +* build hertzbeat package with jdk runtime by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1328](https://github.com/apache/hertzbeat/pull/1328) ## New Contributors -* @rbsrcy made their first contribution in -* @XiaTian688 made their first contribution in -* @liyin made their first contribution in +* @rbsrcy made their first contribution in [https://github.com/apache/hertzbeat/pull/1268](https://github.com/apache/hertzbeat/pull/1268) +* @XiaTian688 made their first contribution in [https://github.com/apache/hertzbeat/pull/1308](https://github.com/apache/hertzbeat/pull/1308) +* @liyin made their first contribution in [https://github.com/apache/hertzbeat/pull/1311](https://github.com/apache/hertzbeat/pull/1311) --- @@ -130,5 +130,5 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2023-12-11-hertzbeat-v1.4.3.md b/home/blog/2023-12-11-hertzbeat-v1.4.3.md index e461c2c3e80..59fb791ca5a 100644 --- a/home/blog/2023-12-11-hertzbeat-v1.4.3.md +++ b/home/blog/2023-12-11-hertzbeat-v1.4.3.md @@ -24,9 +24,9 @@ keywords: [open source monitoring system, alerting system] ![HertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.3 Version Release @@ -71,63 +71,63 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -* update package deploy doc by @tomsun28 in -* bugfix duplicate collect job when update monitor templates by @tomsun28 in -* bugfix number variable in freemarker template display error by @tomsun28 in -* [alerter] Enhanced reporting of external general alert API by @SurryChen in -* [doc] update hertzbeat-mysql-tdengine readme by @jiashu1024 in -* add jiashu1024 as a contributor for doc by @allcontributors in -* app-mysql.yml: Adjust slow query translation by @1036664317 in -* add 1036664317 as a contributor for doc by @allcontributors in -* Bump com.google.guava:guava from 31.0.1-jre to 32.0.0-jre by @dependabot in -* [feature] support auto collect metrics by prometheus task by @tomsun28 in -* [doc] add vinci as new committer by @tomsun28 in -* [feature] add tag word cloud in dashboard by @tomsun28 in -* support custom prometheus endpoint path by @tomsun28 in -* bugfix tdengine query interval history metrics data with instance error by @tomsun28 in -* unlimit Alert.java content field length by @xiaoguolong in -* add xiaoguolong as a contributor for code by @allcontributors in -* update monitor detail table ui layout by @tomsun28 in -* [doc]add star history by @zqr10159 in -* feature: app-mongodb.yml by @a-little-fool in -* alarm threshold support prometheus task metrics by @tomsun28 in -* support victoriametrics as metrics data storage by @tomsun28 in -* Add time type to support query_time of mysql and mariadb by @Clownsw in -* add Clownsw as a contributor for code by @allcontributors in -* Error occured when I followed running steps to start Front-web by @Calvin979 in -* add Calvin979 as a contributor for doc by @allcontributors in -* enriches the cncf landscape by @tomsun28 in -* Fix flaky test in CollectUtilTest by @bbelide2 in -* add bbelide2 as a contributor for code by @allcontributors in -* Fix flaky test replaceSmilingPlaceholder by @bbelide2 in -* add docker-compose script hertzbeat+mysql+victoria-metrics all in one by @tomsun28 in -* Feature: app-jvm.yml support for international name aliases by @Calvin979 in -* add Calvin979 as a contributor for code by @allcontributors in -* feature: support monitoring spring gateway metrics by @a-little-fool in -* update code comment and doc, bugfix concurrent exception by @tomsun28 in -* update windows define and accept snmp leaf by @jinyaoMa in -* add jinyaoMa as a contributor for code by @allcontributors in -* fix exception when sending email has special chars by @Carpe-Wang in -* test: add e2e testing for some basic APIs by @LinuxSuRen in -* add LinuxSuRen as a contributor for code, and test by @allcontributors in -* bugfix auto generate monitor name error when add monitor by @tomsun28 in -* bugfix CalculateAlarm execAlertExpression NPE by @tomsun28 in -* Feature: app-redis.yml support for international name aliases by @Calvin979 in -* test: add more monitor related e2e testing case by @LinuxSuRen in -* chore: update the pr template about the e2e testing by @LinuxSuRen in -* add help header ui when update or add monitors by @tomsun28 in -* [hertzbeat] release hertzbeat version v1.4.3 by @tomsun28 in +* update package deploy doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1330](https://github.com/apache/hertzbeat/pull/1330) +* bugfix duplicate collect job when update monitor templates by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1332](https://github.com/apache/hertzbeat/pull/1332) +* bugfix number variable in freemarker template display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1334](https://github.com/apache/hertzbeat/pull/1334) +* [alerter] Enhanced reporting of external general alert API by @SurryChen in [https://github.com/apache/hertzbeat/pull/1326](https://github.com/apache/hertzbeat/pull/1326) +* [doc] update hertzbeat-mysql-tdengine readme by @jiashu1024 in [https://github.com/apache/hertzbeat/pull/1335](https://github.com/apache/hertzbeat/pull/1335) +* add jiashu1024 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1336](https://github.com/apache/hertzbeat/pull/1336) +* app-mysql.yml: Adjust slow query translation by @1036664317 in [https://github.com/apache/hertzbeat/pull/1337](https://github.com/apache/hertzbeat/pull/1337) +* add 1036664317 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1338](https://github.com/apache/hertzbeat/pull/1338) +* Bump com.google.guava:guava from 31.0.1-jre to 32.0.0-jre by @dependabot in [https://github.com/apache/hertzbeat/pull/1339](https://github.com/apache/hertzbeat/pull/1339) +* [feature] support auto collect metrics by prometheus task by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1342](https://github.com/apache/hertzbeat/pull/1342) +* [doc] add vinci as new committer by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1341](https://github.com/apache/hertzbeat/pull/1341) +* [feature] add tag word cloud in dashboard by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1345](https://github.com/apache/hertzbeat/pull/1345) +* support custom prometheus endpoint path by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1346](https://github.com/apache/hertzbeat/pull/1346) +* bugfix tdengine query interval history metrics data with instance error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1348](https://github.com/apache/hertzbeat/pull/1348) +* unlimit Alert.java content field length by @xiaoguolong in [https://github.com/apache/hertzbeat/pull/1351](https://github.com/apache/hertzbeat/pull/1351) +* add xiaoguolong as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1353](https://github.com/apache/hertzbeat/pull/1353) +* update monitor detail table ui layout by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1352](https://github.com/apache/hertzbeat/pull/1352) +* [doc]add star history by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1356](https://github.com/apache/hertzbeat/pull/1356) +* feature: app-mongodb.yml by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1359](https://github.com/apache/hertzbeat/pull/1359) +* alarm threshold support prometheus task metrics by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1354](https://github.com/apache/hertzbeat/pull/1354) +* support victoriametrics as metrics data storage by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1361](https://github.com/apache/hertzbeat/pull/1361) +* Add time type to support query_time of mysql and mariadb by @Clownsw in [https://github.com/apache/hertzbeat/pull/1364](https://github.com/apache/hertzbeat/pull/1364) +* add Clownsw as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1365](https://github.com/apache/hertzbeat/pull/1365) +* Error occured when I followed running steps to start Front-web by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1366](https://github.com/apache/hertzbeat/pull/1366) +* add Calvin979 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1367](https://github.com/apache/hertzbeat/pull/1367) +* enriches the cncf landscape by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1368](https://github.com/apache/hertzbeat/pull/1368) +* Fix flaky test in CollectUtilTest by @bbelide2 in [https://github.com/apache/hertzbeat/pull/1371](https://github.com/apache/hertzbeat/pull/1371) +* add bbelide2 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1372](https://github.com/apache/hertzbeat/pull/1372) +* Fix flaky test replaceSmilingPlaceholder by @bbelide2 in [https://github.com/apache/hertzbeat/pull/1373](https://github.com/apache/hertzbeat/pull/1373) +* add docker-compose script hertzbeat+mysql+victoria-metrics all in one by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1370](https://github.com/apache/hertzbeat/pull/1370) +* Feature: app-jvm.yml support for international name aliases by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1376](https://github.com/apache/hertzbeat/pull/1376) +* add Calvin979 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1377](https://github.com/apache/hertzbeat/pull/1377) +* feature: support monitoring spring gateway metrics by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1374](https://github.com/apache/hertzbeat/pull/1374) +* update code comment and doc, bugfix concurrent exception by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1378](https://github.com/apache/hertzbeat/pull/1378) +* update windows define and accept snmp leaf by @jinyaoMa in [https://github.com/apache/hertzbeat/pull/1379](https://github.com/apache/hertzbeat/pull/1379) +* add jinyaoMa as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1380](https://github.com/apache/hertzbeat/pull/1380) +* fix exception when sending email has special chars by @Carpe-Wang in [https://github.com/apache/hertzbeat/pull/1383](https://github.com/apache/hertzbeat/pull/1383) +* test: add e2e testing for some basic APIs by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1387](https://github.com/apache/hertzbeat/pull/1387) +* add LinuxSuRen as a contributor for code, and test by @allcontributors in [https://github.com/apache/hertzbeat/pull/1389](https://github.com/apache/hertzbeat/pull/1389) +* bugfix auto generate monitor name error when add monitor by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1384](https://github.com/apache/hertzbeat/pull/1384) +* bugfix CalculateAlarm execAlertExpression NPE by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1388](https://github.com/apache/hertzbeat/pull/1388) +* Feature: app-redis.yml support for international name aliases by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1390](https://github.com/apache/hertzbeat/pull/1390) +* test: add more monitor related e2e testing case by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1391](https://github.com/apache/hertzbeat/pull/1391) +* chore: update the pr template about the e2e testing by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1392](https://github.com/apache/hertzbeat/pull/1392) +* add help header ui when update or add monitors by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1399](https://github.com/apache/hertzbeat/pull/1399) +* [hertzbeat] release hertzbeat version v1.4.3 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1400](https://github.com/apache/hertzbeat/pull/1400) ## New Contributors -* @1036664317 made their first contribution in -* @dependabot made their first contribution in -* @xiaoguolong made their first contribution in -* @Clownsw made their first contribution in -* @Calvin979 made their first contribution in -* @bbelide2 made their first contribution in -* @jinyaoMa made their first contribution in -* @LinuxSuRen made their first contribution in +* @1036664317 made their first contribution in [https://github.com/apache/hertzbeat/pull/1337](https://github.com/apache/hertzbeat/pull/1337) +* @dependabot made their first contribution in [https://github.com/apache/hertzbeat/pull/1339](https://github.com/apache/hertzbeat/pull/1339) +* @xiaoguolong made their first contribution in [https://github.com/apache/hertzbeat/pull/1351](https://github.com/apache/hertzbeat/pull/1351) +* @Clownsw made their first contribution in [https://github.com/apache/hertzbeat/pull/1364](https://github.com/apache/hertzbeat/pull/1364) +* @Calvin979 made their first contribution in [https://github.com/apache/hertzbeat/pull/1366](https://github.com/apache/hertzbeat/pull/1366) +* @bbelide2 made their first contribution in [https://github.com/apache/hertzbeat/pull/1371](https://github.com/apache/hertzbeat/pull/1371) +* @jinyaoMa made their first contribution in [https://github.com/apache/hertzbeat/pull/1379](https://github.com/apache/hertzbeat/pull/1379) +* @LinuxSuRen made their first contribution in [https://github.com/apache/hertzbeat/pull/1387](https://github.com/apache/hertzbeat/pull/1387) --- @@ -144,5 +144,5 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2024-01-11-new-committer.md b/home/blog/2024-01-11-new-committer.md index 46d2577205a..cb094af7a8f 100644 --- a/home/blog/2024-01-11-new-committer.md +++ b/home/blog/2024-01-11-new-committer.md @@ -128,8 +128,8 @@ Thanks to the authors of hertzbeat for the documentation and help. Thanks to my > ``HertzBeat``s powerful customization, multi-type support, high performance, easy to extend, low coupling, hope to help developers and teams quickly build their own monitoring system. -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** Welcome more partners to participate in HertzBeat's open source collaboration, no matter a typo or punctuation we are very welcome, we learn together to make progress, the goal is to do a world-class open source software. diff --git a/home/blog/2024-01-18-hertzbeat-v1.4.4.md b/home/blog/2024-01-18-hertzbeat-v1.4.4.md index 6ed67398ed4..558dae9a886 100644 --- a/home/blog/2024-01-18-hertzbeat-v1.4.4.md +++ b/home/blog/2024-01-18-hertzbeat-v1.4.4.md @@ -24,9 +24,9 @@ keywords: [open source monitoring system, alerting system] ![HertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.4 Version Release @@ -72,76 +72,76 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -* bugfix metrics tags value store jpa data-storage error by @tomsun28 in -* add smtp protocol and support smtp monitoring by @ZY945 in -* add ZY945 as a contributor for code by @allcontributors in -* support new parse type 'log' in ssh collect protocol by @tomsun28 in -* add ntp protocol and support ntp monitoring by @ZY945 in -* monitoring the availability of websockets through handshake. by @ZY945 in -* [Task-1386] When adding tags in tag management, random colors are given by default. by @prolevel1 in -* add prolevel1 as a contributor for code by @allcontributors in +* bugfix metrics tags value store jpa data-storage error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1403](https://github.com/apache/hertzbeat/pull/1403) +* add smtp protocol and support smtp monitoring by @ZY945 in [https://github.com/apache/hertzbeat/pull/1407](https://github.com/apache/hertzbeat/pull/1407) +* add ZY945 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1409](https://github.com/apache/hertzbeat/pull/1409) +* support new parse type 'log' in ssh collect protocol by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1410](https://github.com/apache/hertzbeat/pull/1410) +* add ntp protocol and support ntp monitoring by @ZY945 in [https://github.com/apache/hertzbeat/pull/1411](https://github.com/apache/hertzbeat/pull/1411) +* monitoring the availability of websockets through handshake. by @ZY945 in [https://github.com/apache/hertzbeat/pull/1413](https://github.com/apache/hertzbeat/pull/1413) +* [Task-1386] When adding tags in tag management, random colors are given by default. by @prolevel1 in [https://github.com/apache/hertzbeat/pull/1412](https://github.com/apache/hertzbeat/pull/1412) +* add prolevel1 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1415](https://github.com/apache/hertzbeat/pull/1415) * -## 1397 feature: support for dns monitoring by @Calvin979 in - -* Support monitoring hive metrics by @a-little-fool in -* support legend pageable in history data charts by @tomsun28 in -* update component tip and help tip doc by @tomsun28 in -* feature: support monitoring nginx metrics and add a help doc by @a-little-fool in -* update parser to parse from prometheus txt metrics data by @tomsun28 in -* support monitoring memcached metrics and add a help doc by @ZY945 in -* support all ssh connect key exchange by @tomsun28 in -* [doc] add code of conduct by @tomsun28 in -* update label structure store in victoria metrics, make it prometheus like by @tomsun28 in -* feature: support monitoring pop3 metrics and add help doc by @a-little-fool in -* Update sidebars.json by @a-little-fool in -* Add zh-cn help doc by @a-little-fool in -* update monitoring state un-manage to unmonitored, update pic by @tomsun28 in -* Add jpa to date type storage by @Clownsw in -* bugfix ^o^ token error, protect metrics api auth by @tomsun28 in -* Add relevant documents for SMTP and NTP by @ZY945 in -* bugfix threshold init error in mysql env by @tomsun28 in -* app-rabbitmq.yml support for international name aliases by @ZY945 in -* fix(*): error create lru-cache-timeout-cleaner thread by @Clownsw in -* app-rabbitmq.yml Modifying Error Fields. by @ZY945 in -* support monitoring NebulaGraph metrics and add help doc by @ZY945 in -* Fix Nginx Collect validateParams function NPE by @Clownsw in -* feature: add metrics i18n for app-springboot3.yml by @liyin in -* feat: add metrics i18n for app-docker.yml by @liyin in -* update docker-compose script and fix version by @tomsun28 in -* bugfix java.lang.IllegalArgumentException: Illegal character in query… by @tomsun28 in -* bugfix delete monitor error after monitor canceled by @ZhangZixuan1994 in -* add ZhangZixuan1994 as a contributor for code by @allcontributors in -* remove sleep, probably busy-waiting by @tomsun28 in -* [doc] add new committer ZY945 by @tomsun28 in -* Update app-zookeeper.yml by @hurenjie1 in -* add hurenjie1 as a contributor for code by @allcontributors in -* update dashboard ui, remove ssh custom SignatureFactories, update app name by @tomsun28 in -* [Task] Monitoring Template Yml Metrics I18n | 监控模板指标国际化任务认领 #1212 by @tslj1024 in -* add tslj1024 as a contributor for code by @allcontributors in -* Add alarm trigger time for alarm restore by @Calvin979 in -* bugfix history range query not work when victoria-metrics store by @tomsun28 in -* bugfix springboot3 translation by @liyin in -* bugfix telegram-notice can not input bot-token by @tomsun28 in -* feat: support hostname target by @ldysdu in -* add ldysdu as a contributor for code by @allcontributors in -* [feature] support snmp v3 monitoring protocol by @TJxiaobao in -* bugfix alarm trigger-times not work when alarm and recovered trigger cyclically by @tomsun28 in -* update switch monitoring metrics i18n by @tomsun28 in -* fixed: snmpv3 contextName bug by @TJxiaobao in -* Fix npt of webhook notify by @Calvin979 in -* [hertzbeat] release hertzbeat version v1.4.4 by @tomsun28 in -* bugfix nginx collect http deadlock error by @tomsun28 in -* alarm calculate ignore metrics collect code - TIMEOUT by @tomsun28 in +## 1397 feature: support for dns monitoring by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1416](https://github.com/apache/hertzbeat/pull/1416) + +* Support monitoring hive metrics by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1417](https://github.com/apache/hertzbeat/pull/1417) +* support legend pageable in history data charts by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1414](https://github.com/apache/hertzbeat/pull/1414) +* update component tip and help tip doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1418](https://github.com/apache/hertzbeat/pull/1418) +* feature: support monitoring nginx metrics and add a help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1420](https://github.com/apache/hertzbeat/pull/1420) +* update parser to parse from prometheus txt metrics data by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1421](https://github.com/apache/hertzbeat/pull/1421) +* support monitoring memcached metrics and add a help doc by @ZY945 in [https://github.com/apache/hertzbeat/pull/1423](https://github.com/apache/hertzbeat/pull/1423) +* support all ssh connect key exchange by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1424](https://github.com/apache/hertzbeat/pull/1424) +* [doc] add code of conduct by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1425](https://github.com/apache/hertzbeat/pull/1425) +* update label structure store in victoria metrics, make it prometheus like by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1426](https://github.com/apache/hertzbeat/pull/1426) +* feature: support monitoring pop3 metrics and add help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1427](https://github.com/apache/hertzbeat/pull/1427) +* Update sidebars.json by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1428](https://github.com/apache/hertzbeat/pull/1428) +* Add zh-cn help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1429](https://github.com/apache/hertzbeat/pull/1429) +* update monitoring state un-manage to unmonitored, update pic by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1430](https://github.com/apache/hertzbeat/pull/1430) +* Add jpa to date type storage by @Clownsw in [https://github.com/apache/hertzbeat/pull/1431](https://github.com/apache/hertzbeat/pull/1431) +* bugfix ^o^ token error, protect metrics api auth by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1434](https://github.com/apache/hertzbeat/pull/1434) +* Add relevant documents for SMTP and NTP by @ZY945 in [https://github.com/apache/hertzbeat/pull/1437](https://github.com/apache/hertzbeat/pull/1437) +* bugfix threshold init error in mysql env by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1435](https://github.com/apache/hertzbeat/pull/1435) +* app-rabbitmq.yml support for international name aliases by @ZY945 in [https://github.com/apache/hertzbeat/pull/1439](https://github.com/apache/hertzbeat/pull/1439) +* fix(*): error create lru-cache-timeout-cleaner thread by @Clownsw in [https://github.com/apache/hertzbeat/pull/1438](https://github.com/apache/hertzbeat/pull/1438) +* app-rabbitmq.yml Modifying Error Fields. by @ZY945 in [https://github.com/apache/hertzbeat/pull/1440](https://github.com/apache/hertzbeat/pull/1440) +* support monitoring NebulaGraph metrics and add help doc by @ZY945 in [https://github.com/apache/hertzbeat/pull/1441](https://github.com/apache/hertzbeat/pull/1441) +* Fix Nginx Collect validateParams function NPE by @Clownsw in [https://github.com/apache/hertzbeat/pull/1442](https://github.com/apache/hertzbeat/pull/1442) +* feature: add metrics i18n for app-springboot3.yml by @liyin in [https://github.com/apache/hertzbeat/pull/1445](https://github.com/apache/hertzbeat/pull/1445) +* feat: add metrics i18n for app-docker.yml by @liyin in [https://github.com/apache/hertzbeat/pull/1446](https://github.com/apache/hertzbeat/pull/1446) +* update docker-compose script and fix version by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1447](https://github.com/apache/hertzbeat/pull/1447) +* bugfix java.lang.IllegalArgumentException: Illegal character in query… by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1443](https://github.com/apache/hertzbeat/pull/1443) +* bugfix delete monitor error after monitor canceled by @ZhangZixuan1994 in [https://github.com/apache/hertzbeat/pull/1451](https://github.com/apache/hertzbeat/pull/1451) +* add ZhangZixuan1994 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1454](https://github.com/apache/hertzbeat/pull/1454) +* remove sleep, probably busy-waiting by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1456](https://github.com/apache/hertzbeat/pull/1456) +* [doc] add new committer ZY945 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1453](https://github.com/apache/hertzbeat/pull/1453) +* Update app-zookeeper.yml by @hurenjie1 in [https://github.com/apache/hertzbeat/pull/1458](https://github.com/apache/hertzbeat/pull/1458) +* add hurenjie1 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1459](https://github.com/apache/hertzbeat/pull/1459) +* update dashboard ui, remove ssh custom SignatureFactories, update app name by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1460](https://github.com/apache/hertzbeat/pull/1460) +* [Task] Monitoring Template Yml Metrics I18n | 监控模板指标国际化任务认领 #1212 by @tslj1024 in [https://github.com/apache/hertzbeat/pull/1461](https://github.com/apache/hertzbeat/pull/1461) +* add tslj1024 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1462](https://github.com/apache/hertzbeat/pull/1462) +* Add alarm trigger time for alarm restore by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1464](https://github.com/apache/hertzbeat/pull/1464) +* bugfix history range query not work when victoria-metrics store by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1463](https://github.com/apache/hertzbeat/pull/1463) +* bugfix springboot3 translation by @liyin in [https://github.com/apache/hertzbeat/pull/1467](https://github.com/apache/hertzbeat/pull/1467) +* bugfix telegram-notice can not input bot-token by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1465](https://github.com/apache/hertzbeat/pull/1465) +* feat: support hostname target by @ldysdu in [https://github.com/apache/hertzbeat/pull/1455](https://github.com/apache/hertzbeat/pull/1455) +* add ldysdu as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1471](https://github.com/apache/hertzbeat/pull/1471) +* [feature] support snmp v3 monitoring protocol by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1469](https://github.com/apache/hertzbeat/pull/1469) +* bugfix alarm trigger-times not work when alarm and recovered trigger cyclically by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1468](https://github.com/apache/hertzbeat/pull/1468) +* update switch monitoring metrics i18n by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1472](https://github.com/apache/hertzbeat/pull/1472) +* fixed: snmpv3 contextName bug by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1473](https://github.com/apache/hertzbeat/pull/1473) +* Fix npt of webhook notify by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1474](https://github.com/apache/hertzbeat/pull/1474) +* [hertzbeat] release hertzbeat version v1.4.4 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1475](https://github.com/apache/hertzbeat/pull/1475) +* bugfix nginx collect http deadlock error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1476](https://github.com/apache/hertzbeat/pull/1476) +* alarm calculate ignore metrics collect code - TIMEOUT by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1478](https://github.com/apache/hertzbeat/pull/1478) ## New Contributors -* @ZY945 made their first contribution in -* @prolevel1 made their first contribution in -* @ZhangZixuan1994 made their first contribution in -* @hurenjie1 made their first contribution in -* @tslj1024 made their first contribution in -* @ldysdu made their first contribution in +* @ZY945 made their first contribution in [https://github.com/apache/hertzbeat/pull/1407](https://github.com/apache/hertzbeat/pull/1407) +* @prolevel1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1412](https://github.com/apache/hertzbeat/pull/1412) +* @ZhangZixuan1994 made their first contribution in [https://github.com/apache/hertzbeat/pull/1451](https://github.com/apache/hertzbeat/pull/1451) +* @hurenjie1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1458](https://github.com/apache/hertzbeat/pull/1458) +* @tslj1024 made their first contribution in [https://github.com/apache/hertzbeat/pull/1461](https://github.com/apache/hertzbeat/pull/1461) +* @ldysdu made their first contribution in [https://github.com/apache/hertzbeat/pull/1455](https://github.com/apache/hertzbeat/pull/1455) --- @@ -158,5 +158,5 @@ Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/blog/2024-04-17-to-apache.md b/home/blog/2024-04-17-to-apache.md index 5aa09e5993e..e121b18655c 100644 --- a/home/blog/2024-04-17-to-apache.md +++ b/home/blog/2024-04-17-to-apache.md @@ -304,14 +304,14 @@ Special thanks to the Champions and Mentors who have kindly offered guidance to **Repo Url** -**** +**[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** Welcome to star us🐶🐶🐶 **Home Url** -**** +**[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** **Email List** -**** +**[dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)** diff --git a/home/blog/2024-05-09-hertzbeat-ospp-subject-introduction.md b/home/blog/2024-05-09-hertzbeat-ospp-subject-introduction.md index e7fed2d86d6..f1fbb7c95da 100644 --- a/home/blog/2024-05-09-hertzbeat-ospp-subject-introduction.md +++ b/home/blog/2024-05-09-hertzbeat-ospp-subject-introduction.md @@ -13,9 +13,9 @@ HertzBeat is a powerful custom monitoring capabilities, high-performance cluster - High-performance, supports horizontal expansion of multiple collector clusters, supports multi-isolated network monitoring, and cloud edge collaboration. - Free alarm threshold rules, `mail,` `Discord,` `Slack,` `Telegram,` `Dingding,` `wechat,` `Feibook,` `SMS,` `Webhook,` `Server sauce,` and other ways to send messages in a timely manner. -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## What is Open Source Summer? diff --git a/home/blog/2024-06-15-hertzbeat-v1.6.0.md b/home/blog/2024-06-15-hertzbeat-v1.6.0.md index 96e7932fd3b..87cdd291ae5 100644 --- a/home/blog/2024-06-15-hertzbeat-v1.6.0.md +++ b/home/blog/2024-06-15-hertzbeat-v1.6.0.md @@ -16,9 +16,9 @@ At the same time, some bugs were fixed and some functions were optimized, and mo **Of course, the most important thing is to give the best thanks to the contributors in the community!** -Download Page: +Download Page: [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) -Upgrade Guide: +Upgrade Guide: [https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/](https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/) ## What is HertzBeat? @@ -38,7 +38,7 @@ Upgrade Guide: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** ## HertzBeat's 1.6.0 Version Release @@ -78,292 +78,292 @@ Upgrade Guide: -* translate some hertzbeat blog by @TJxiaobao in -* Check class description by @ZY945 in -* translate class description to english by @TJxiaobao in -* support monitor metrics name i18n: ClickHouse by @ZY945 in -* translate blog 20220601 to English by @vinci-897 in -* add a online prometheus parser and a prometheus-like push style. by @vinci-897 in -* translate blog 20220320 to English by @vinci-897 in -* support monitor metrics name i18n: DynamicTp by @ZY945 in -* translate blog 20220228 to English by @vinci-897 in -* translate blog 20220310 to English by @vinci-897 in -* translate blog 20220904 to English by @vinci-897 in -* support monitor metrics name i18n: Airflow by @ZY945 in -* support monitor metrics name i18n: IoTDB by @ZY945 in -* Translate 2022-02-11-hertzbeat document by @wang1027-wqh in -* bugfix The annotation @Transactional specifies rollbackFor. by @handy-git in -* add handy-git as a contributor for code by @allcontributors in -* feature:Translate 2022-02-17-hertzbeat Document by @wang1027-wqh in -* support monitor metrics name i18n: rocketmq by @ZY945 in -* [doc] update relate doc and readme by @tomsun28 in -* bugfix monitoring mongodb not work in springboot3 by @ZY945 in -* [feature] add storm monitor by @starmilkxin in -* [bugfix] fixed the issue in http_sd where services were incorrectly reported as available when they were actually unavailable by @starmilkxin in -* remove mysql-oracle dependency jar from release package lib by @tomsun28 in -* System config theme by @TJxiaobao in -* update webapp menu layout and doc by @tomsun28 in -* bugfix can not find mysql dependency when startup by @tomsun28 in -* support config common aes secret by @tomsun28 in -* [bugfix]fix the issue of add redis cluster node test error report(#1601) by @LiuTianyou in -* add LiuTianyou as a contributor for code by @allcontributors in -* mongodb monitoring support custom connection timeout param by @ZY945 in -* bugfix old data decode error when use new common-secret by @tomsun28 in -* [bugfix] fix bug where reopening pop-up window still retained previously edited data after closing. by @starmilkxin in -* monitor center add search type modal by @tomsun28 in -* fix status page logo overflow by @tomsun28 in -* bugfix npe monitor jobid may be null by @tomsun28 in -* support custom main menus in monitor template by @tomsun28 in -* update home website doc by @tomsun28 in -* [Improve] change package group to org Apache HertzBeat™ by @vinci-897 in -* [improve] initial license clean up by @tomsun28 in -* update manager and collector logback config(#1704) by @handy-git in -* fix(sec): upgrade com.h2database:h2 to by @WinterKi1ler in -* add WinterKi1ler as a contributor for code by @allcontributors in -* update asf branch protected check by @tomsun28 in -* [doc]Update star chart by @zqr10159 in -* [fixed] fixed click collector online offline button error by @miki-hmt in -* [improve] initial doc clean up by @tomsun28 in -* [Improvement]Support multiple receivers. by @zqr10159 in -* [improvement]Add lisence. by @zqr10159 in -* Backend LICENSE Initialize by @wang1027-wqh in -* Back-end dependency upgrade by @TJxiaobao in -* [Improve] run hertzbeat in docker compose support dependen service condition by @gjjjj0101 in -* [bugfix] fix statuspage index exception by @makechoicenow in -* remove unlicensed dependency 'wolfy87 eventemitter' by @alpha951 in -* [improve] auto label when pr, update asf config by @tomsun28 in -* [improve] update asf config set required status checks context by @tomsun28 in -* [improve] home add apache info by @a-little-fool in -* [doc] Change e2e path by @crossoverJie in -* fix : ingress tls inoperative by @PeixyJ in -* [refactor] method improvement rationale by @dukbong in -* [improve] create disclaimer file, add incubating in describe by @tomsun28 in -* [improve] update new hertzbeat brand logo, update doc by @tomsun28 in -* Complete the code comment translation of the common module by @Hi-Mr-Wind in -* Remove unnecessary if-else statement. by @dukbong in -* [doc] remove and translate chinese to english in warehous by @xuziyang in -* Replace deprecated methods with builder pattern for RedisURI construction by @dukbong in -* remove and translate chinese to english in collector,script,push,remoting and manager module by @MananPoojara in -* Added the function of sending SMS messages through Alibaba Cloud. by @lwqzz in -* [improve]Add frontend license. by @zqr10159 in -* [test] Add RedisSingleCollectImplTest by @crossoverJie in -* [refactor] add override annotation by @handy-git in -* '[docs]bugfix: display syntax error of ipmi protocol' by @tomorrowshipyltm in -* [doc] translate alerter moudle code chinese to english by @tomsun28 in -* [refactor] database-related properties class, type changed to record by @xuziyang in -* Fix snmp template unit conversion problem by @TJxiaobao in -* [doc] Add help documentation for clickhouse monitoring by @LiuTianyou in -* [feature:update-checkstyle] Limit the java file header by @YxYL6125 in -* [improve]Add external lib folder to store mysql and oracle driver. by @zqr10159 in -* [Improve]When multiple lines are returned, each alarm is triggered instead of only the first alarm by @15613060203 in -* [doc] add team page in website by @alpha951 in -* [feature] Improve the import checkstyle by @crossoverJie in -* [doc] Add help document for dns monitoring by @LiuTianyou in -* [improve] preventing NPE by @dukbong in -* [refactor] change the warehouse properties the type to record by @xuziyang in -* Refactor: upgrade syntax to jdk17(instanceof & switch) by @Calvin979 in -* [test] Add NginxCollect test by @crossoverJie in -* [website] update team page by @tomsun28 in -* [test] Add RedisClusterCollectImplTest by @crossoverJie in -* [improve] Fix typo ReqStatusResponse by @crossoverJie in -* Comparing N objects for null with Assert.noNullElements(). by @dukbong in -* [doc] Add help document for elasticsearch monitoring and ftp monitoring by @LiuTianyou in -* [doc] add help documentation for huawei switch monitoring by @Alanxtl in -* chore: upgrade the api-testing (e2e) to v0.0.16 by @LinuxSuRen in -* [Remove]\[Improve\]Mail config by @zqr10159 in -* Remove and translate chinese to english in code by @dukbong in -* [feature]Add monitoring for Hbase Master by @zhangshenghang in -* [doc] resolve code conflicts and coverage caused by pr(#1813) merge by @LiuTianyou in -* [doc] Add help document for tidb and nacos monitoring by @Alanxtl in -* [improve] use eclipselink orm replace of hibernate orm by @tomsun28 in -* [improve] Add whitespace checkstyle by @crossoverJie in -* [bugfix] dns monitoring template add query class parameter by @LiuTianyou in -* [Refactor] Preventing Unnecessary Object Creation and Using Utility Methods by @dukbong in -* [doc]Add and modify Doris FE Chinese and English documentation by @zhangshenghang in -* [docs] Optimize: add help docs for UDP port & Springboot3 help doc by @zuobiao-zhou in -* Code Simplification, Structure Changes, and Translation Work, Along with a Question by @dukbong in -* [doc] add help document for mongodb monitoring by @LiuTianyou in -* [collector] fix: inverts the compareTo sort of MetricsCollect run queue by @Pzz-2021 in -* [doc]Doc add debian system by @zhangshenghang in -* [feature] Add Apache Hbase RegionServer monitoring by @zhangshenghang in -* [improve] Optimize websocket monitor by @LiuTianyou in -* [refactor] Split the WarehouseProperties class by @xuziyang in -* [test] Add test for HttpsdImpl by @crossoverJie in -* [fix] Fix the wrong comment by @xuziyang in -* [refactor] trans and use assert by @dukbong in -* [bugfix] modify the command in the mongodb monitoring template by @LiuTianyou in -* [bigfix]Fix Debian system Top10 monitoring bug by @zhangshenghang in -* [cleanup]Delete the corresponding Chinese comments by @hudongdong129 in -* [doc] translates chinese comment to english. by @dukbong in -* [doc] fix error and add help document for prometheus task by @LiuTianyou in -* [feature] Add Linux process monitoring by @zhangshenghang in -* [test] Add test for FtpCollectImpl by @crossoverJie in -* [improve] use apache jexl replace of aviator by @tomsun28 in -* [bugfix] jpa data save logic repair by @zhangshenghang in -* [feature] add influxdb metrics monitoring by @TJxiaobao in -* [doc] add help document for rocketmq by @LiuTianyou in -* [improve] Imporve checkstyle of test code. by @crossoverJie in -* [feature] Support Redfish protocol to monitoring server by @gjjjj0101 in -* Fix debian monitoring template issue about process monitoring by @LLP2333 in -* [bugfix] centos Top10 shows missing one by @zhangshenghang in -* [improve] add website apache incubator footer by @tomsun28 in -* [doc] update help document by @LiuTianyou in -* [featurn] support flyway database migration by @tomsun28 in -* [improve] Delete the timestamp field in the class MetricFamily.Metric by @xuziyang in -* [improve] Use java.lang.AutoCloseable instead of CacheCloseable by @crossoverJie in -* [bugfix]Fix top10 process command. by @zqr10159 in -* [feature] support the VictoriaMetrics cluster by @xuziyang in -* [improve] Refactor common cache code by @crossoverJie in -* Eliminate Unnecessary Unboxing and Generics by @handy-git in -* [bugfix]\[doc\]Add kafka sidebar. by @zqr10159 in -* [doc] I18n for monitoring template yml metrics by @zuobiao-zhou in -* [refactor] StoreProperties is no longer useful, delete it by @xuziyang in -* bugfix statistical metrics data matching fails by @tomsun28 in -* [doc] add help doc for flink monitoring by @HeartLinked in -* [doc] add almalinux documentation by @zhangshenghang in -* [improve] Missing a generic by @crossoverJie in -* [bugfix] Fixed some metrics of Jexlespression not matching in Elasticsearch by @zhangshenghang in -* feat(*): Support Time Type to Tengine Data Storage by @Clownsw in -* [feature] support random jwt secret when not custom by @tomsun28 in -* [doc] add opensuse doc by @zhangshenghang in -* fix when manager restart, collect register error by @Ceilzcx in -* [bugfix] fix can not use empty collection as query params in eclipselink by @tomsun28 in -* [doc] update doc add download page and pic by @tomsun28 in -* [test] Add test for UdpCollectImpl by @crossoverJie in -* fix license by @yqxxgh in -* [improve] refactor code by @Ceilzcx in -* [type:bugfix] fix customized menu invalid bug #1898 by @Aias00 in -* [type:bugfix] fix HTTP API bug #1895 by @Aias00 in -* [test] Add test for WebsocketCollectImpl by @crossoverJie in -* [doc] translates chinese comment to english. by @westboy in -* [doc] Add HIP document and template by @crossoverJie in -* [improve] clean up home webapp unused code by @tomsun28 in -* [feature] support use ngql query metrics from nebulaGraph by @LiuTianyou in -* [doc] Improve the Contribution Documentation. by @crossoverJie in -* [featrue]add apache hdfs monitor by @zhangshenghang in -* [doc] update hbase documentation description by @zhangshenghang in -* [doc] Add documentation for nebulaGraph cluster monitoring and custom monitoring using NGQL, and clean up useless parameters by @LiuTianyou in -* [test] Add test for TelnetCollectImplTest by @crossoverJie in -* fix(*): fix TdEngine Init not found Database by @Clownsw in -* [doc] update contribution and add run-build guide by @tomsun28 in -* bugfix collector startup error can not find JdbcClient by @tomsun28 in -* [doc] add help document for freebsd monitoring by @LiuTianyou in -* [refactoring] Split AbstractHistoryDataStorage class by @xuziyang in -* [fix] fixed name error in monitoring template and improve NGQL protocol by @LiuTianyou in -* [refactoring] Split AbstractRealTimeDataStorage class by @xuziyang in -* [bugfix] fix ssl-cert days_remaining and npe by @tomsun28 in -* [feature] add apache yarn monitor by @zhangshenghang in -* [doc] add help document for redhat monitoring and rocky linux monitoring by @LiuTianyou in -* [test] Add test for NtpCollectImpl by @crossoverJie in -* [bugfix] fix alarm center tags display error by @tomsun28 in -* [improve] prepare for release hertzbeat v1.6.0 by @tomsun28 in -* add:Updated the Open Source Summer Project blog. by @TJxiaobao in -* [feature] Support monitoring of OpenAI accounts by @zuobiao-zhou in -* [refactoring] Inject a single instance of the data store by @xuziyang in -* [refactoring] AbstractHistoryDataStorage implement the DisposableBean by @xuziyang in -* [doc] update iotdb init document by @zhangshenghang in -* [improve] update build script by @tomsun28 in -* [test] add test for NgqlCollectImpl by @LiuTianyou in -* [bugfix]Replace monitors to alert. by @zqr10159 in -* [improve] add llm, server menu and update doc by @tomsun28 in -* [improve]\[HIP\] HIP-01: Refactoring AbstractCollect by @crossoverJie in -* [bugfix] fix ConnectionCommonCache possible npe by @crossoverJie in -* [doc] add help document for eulerOS monitoring by @LiuTianyou in -* [fixbug] Fix the problem of no data for springboot3 monitoring by @zhangshenghang in -* commit:fix the front-end popup cannot exit by @Yanshuming1 in -* [fixbug] expression rule adaptation by @zhangshenghang in -* [doc] add help doc for influxdb-promql and kafka-promql monitoring by @LiuTianyou in -* [doc]: update readme-cn docs by @yuluo-yx in -* [improve]\[HIP\] HIP-01: Implement refactoring AbstractCollect by @crossoverJie in -* [chore] update .gitignore to save .idea/icon.png by @yuluo-yx in -* [improve]\[bugfix\]: fix AlertTemplateUtilTest test exception and update code style by @yuluo-yx in -* [feature] add apache hugegraph monitor by @zhangshenghang in -* [improve] Implement cascading parameter list for SNMP protocol by @zuobiao-zhou in -* [improve] optimize DateUtil and add test case by @yuluo-yx in -* [feature]Hertzbeat custom plugin. by @zqr10159 in -* update login page and status page color by @lwjxy in -* [chore] update code style and add some comment by @yuluo-yx in -* [doc]Hertzbeat plugin doc. by @zqr10159 in -* [doc] update contributors and update status page style by @tomsun28 in -* [feature] Implement cascading parameter list by @zuobiao-zhou in -* [doc]update threshold alarm doc by @zhangshenghang in -* [chore] optimize code style by @yuluo-yx in -* [fix] Compatible with MongoDB versions earlier than 3.6 by @gjjjj0101 in -* [chore] optimize manager code style by @yuluo-yx in -* [doc] Translate part of documentation development.md under `zh-cn` directory from `en` to `zh-cn` by @Thespica in -* [improve] http protocol prometheus parsing optimization by @zhangshenghang in -* [feature] add at function for wechat by @Yanshuming1 in -* [improve] add common util test by @yuluo-yx in -* [improve] update release license notice and package by @tomsun28 in -* [bugfix] fix collector startup error classpath by @tomsun28 in -* [chore] optimize code style by @yuluo-yx in -* [improve] Bump up `eslint-plugin-jsdoc` to 48.2.5 to support node 20+ by @Thespica in -* [doc] fix doc highlighting by @boatrainlsz in -* [web-app]feature: case insensitive search by @JavaProgrammerLB in -* [feature] Support time calculation expressions. by @LiuTianyou in -* [doc] add document for time expression by @LiuTianyou in -* [feature] Add Apache Pulsar monitor by @zhangshenghang in -* [doc] home verify release doc update by @tomsun28 in -* [Improve] Improve clickhouse monitor And Improve Pulsar monitor by @zhangshenghang in -* [doc] translate help document for memcached monitoring by @LiuTianyou in -* [improve] optimize collector httpsd discovery by @yuluo-yx in -* [optimize] optimize code style and logic, add unit test by @yuluo-yx in -* [fix] Fix possible potential thread safe bugs by @gjjjj0101 in -* [improve] add ci for home by @LiuTianyou in -* [bugfix]Tag with empty value Shouldn't transform to Tag: by @JavaProgrammerLB in -* [bugfix] modify popup confirm to clear cache and cancel popup save by @Yanshuming1 in -* [improve] update monitor state desc by @tomsun28 in -* bugfix: fix overflow of integers by @Calvin979 in -* [improve] tips need update initial default password by @tomsun28 in -* [improve] deprecate support iotdb 0.* version by @Ceilzcx in -* [fixbug] required field check by @zhangshenghang in -* [improve] add IcmpCollectImplTest by @zuobiao-zhou in -* [improve] fix code style by @zuobiao-zhou in -* [improve] increase the length limit of the username field by @zuobiao-zhou in -* [improve] Checkstyle include testSource by @crossoverJie in -* [bugfix] fix collector and frontend dependent license error by @tomsun28 in -* [improve] Add test for MemcachedCollectImpl by @zuobiao-zhou in -* [imprve] Remove duplicate indices by @zuobiao-zhou in -* [docs]: fix several typos in docs by @lw-yang in -* Add the missing parts of docs, fix layout, sync the English version with the Chinese version by @xfl12345 in -* [improve] add filename check in home ci by @LiuTianyou in -* [improve] update dependency licenses and remove the aliyun sms depend by @tomsun28 in +* bugfix collector can not startup alone by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1633](https://github.com/apache/hertzbeat/pull/1633) +* translate some hertzbeat blog by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1635](https://github.com/apache/hertzbeat/pull/1635) +* Check class description by @ZY945 in [https://github.com/apache/hertzbeat/pull/1638](https://github.com/apache/hertzbeat/pull/1638) +* translate class description to english by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1641](https://github.com/apache/hertzbeat/pull/1641) +* support monitor metrics name i18n: ClickHouse by @ZY945 in [https://github.com/apache/hertzbeat/pull/1642](https://github.com/apache/hertzbeat/pull/1642) +* translate blog 20220601 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1646](https://github.com/apache/hertzbeat/pull/1646) +* add a online prometheus parser and a prometheus-like push style. by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1644](https://github.com/apache/hertzbeat/pull/1644) +* translate blog 20220320 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1647](https://github.com/apache/hertzbeat/pull/1647) +* support monitor metrics name i18n: DynamicTp by @ZY945 in [https://github.com/apache/hertzbeat/pull/1649](https://github.com/apache/hertzbeat/pull/1649) +* translate blog 20220228 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1648](https://github.com/apache/hertzbeat/pull/1648) +* translate blog 20220310 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1651](https://github.com/apache/hertzbeat/pull/1651) +* translate blog 20220904 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1652](https://github.com/apache/hertzbeat/pull/1652) +* support monitor metrics name i18n: Airflow by @ZY945 in [https://github.com/apache/hertzbeat/pull/1654](https://github.com/apache/hertzbeat/pull/1654) +* support monitor metrics name i18n: IoTDB by @ZY945 in [https://github.com/apache/hertzbeat/pull/1659](https://github.com/apache/hertzbeat/pull/1659) +* Translate 2022-02-11-hertzbeat document by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1660](https://github.com/apache/hertzbeat/pull/1660) +* bugfix The annotation @Transactional specifies rollbackFor. by @handy-git in [https://github.com/apache/hertzbeat/pull/1643](https://github.com/apache/hertzbeat/pull/1643) +* add handy-git as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1661](https://github.com/apache/hertzbeat/pull/1661) +* feature:Translate 2022-02-17-hertzbeat Document by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1662](https://github.com/apache/hertzbeat/pull/1662) +* support monitor metrics name i18n: rocketmq by @ZY945 in [https://github.com/apache/hertzbeat/pull/1663](https://github.com/apache/hertzbeat/pull/1663) +* [doc] update relate doc and readme by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1667](https://github.com/apache/hertzbeat/pull/1667) +* bugfix monitoring mongodb not work in springboot3 by @ZY945 in [https://github.com/apache/hertzbeat/pull/1668](https://github.com/apache/hertzbeat/pull/1668) +* [feature] add storm monitor by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1673](https://github.com/apache/hertzbeat/pull/1673) +* [bugfix] fixed the issue in http_sd where services were incorrectly reported as available when they were actually unavailable by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1678](https://github.com/apache/hertzbeat/pull/1678) +* remove mysql-oracle dependency jar from release package lib by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1680](https://github.com/apache/hertzbeat/pull/1680) +* System config theme by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1636](https://github.com/apache/hertzbeat/pull/1636) +* update webapp menu layout and doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1682](https://github.com/apache/hertzbeat/pull/1682) +* bugfix can not find mysql dependency when startup by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1686](https://github.com/apache/hertzbeat/pull/1686) +* support config common aes secret by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1683](https://github.com/apache/hertzbeat/pull/1683) +* [bugfix]fix the issue of add redis cluster node test error report(#1601) by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1684](https://github.com/apache/hertzbeat/pull/1684) +* add LiuTianyou as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1687](https://github.com/apache/hertzbeat/pull/1687) +* mongodb monitoring support custom connection timeout param by @ZY945 in [https://github.com/apache/hertzbeat/pull/1697](https://github.com/apache/hertzbeat/pull/1697) +* bugfix old data decode error when use new common-secret by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1696](https://github.com/apache/hertzbeat/pull/1696) +* [bugfix] fix bug where reopening pop-up window still retained previously edited data after closing. by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1698](https://github.com/apache/hertzbeat/pull/1698) +* monitor center add search type modal by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1699](https://github.com/apache/hertzbeat/pull/1699) +* fix status page logo overflow by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1700](https://github.com/apache/hertzbeat/pull/1700) +* bugfix npe monitor jobid may be null by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1701](https://github.com/apache/hertzbeat/pull/1701) +* support custom main menus in monitor template by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1703](https://github.com/apache/hertzbeat/pull/1703) +* update home website doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1712](https://github.com/apache/hertzbeat/pull/1712) +* [Improve] change package group to org Apache HertzBeat™ by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1724](https://github.com/apache/hertzbeat/pull/1724) +* [improve] initial license clean up by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1725](https://github.com/apache/hertzbeat/pull/1725) +* update manager and collector logback config(#1704) by @handy-git in [https://github.com/apache/hertzbeat/pull/1723](https://github.com/apache/hertzbeat/pull/1723) +* fix(sec): upgrade com.h2database:h2 to by @WinterKi1ler in [https://github.com/apache/hertzbeat/pull/1718](https://github.com/apache/hertzbeat/pull/1718) +* add WinterKi1ler as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1736](https://github.com/apache/hertzbeat/pull/1736) +* update asf branch protected check by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1738](https://github.com/apache/hertzbeat/pull/1738) +* [doc]Update star chart by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1737](https://github.com/apache/hertzbeat/pull/1737) +* [fixed] fixed click collector online offline button error by @miki-hmt in [https://github.com/apache/hertzbeat/pull/1734](https://github.com/apache/hertzbeat/pull/1734) +* [improve] initial doc clean up by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1741](https://github.com/apache/hertzbeat/pull/1741) +* [Improvement]Support multiple receivers. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1731](https://github.com/apache/hertzbeat/pull/1731) +* [improvement]Add lisence. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1746](https://github.com/apache/hertzbeat/pull/1746) +* Backend LICENSE Initialize by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1744](https://github.com/apache/hertzbeat/pull/1744) +* Back-end dependency upgrade by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1743](https://github.com/apache/hertzbeat/pull/1743) +* [Improve] run hertzbeat in docker compose support dependen service condition by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1748](https://github.com/apache/hertzbeat/pull/1748) +* [bugfix] fix statuspage index exception by @makechoicenow in [https://github.com/apache/hertzbeat/pull/1747](https://github.com/apache/hertzbeat/pull/1747) +* remove unlicensed dependency 'wolfy87 eventemitter' by @alpha951 in [https://github.com/apache/hertzbeat/pull/1745](https://github.com/apache/hertzbeat/pull/1745) +* [improve] auto label when pr, update asf config by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1749](https://github.com/apache/hertzbeat/pull/1749) +* [improve] update asf config set required status checks context by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1751](https://github.com/apache/hertzbeat/pull/1751) +* [improve] home add apache info by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1740](https://github.com/apache/hertzbeat/pull/1740) +* [doc] Change e2e path by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1758](https://github.com/apache/hertzbeat/pull/1758) +* fix : ingress tls inoperative by @PeixyJ in [https://github.com/apache/hertzbeat/pull/1760](https://github.com/apache/hertzbeat/pull/1760) +* [refactor] method improvement rationale by @dukbong in [https://github.com/apache/hertzbeat/pull/1757](https://github.com/apache/hertzbeat/pull/1757) +* [improve] create disclaimer file, add incubating in describe by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1764](https://github.com/apache/hertzbeat/pull/1764) +* [improve] update new hertzbeat brand logo, update doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1761](https://github.com/apache/hertzbeat/pull/1761) +* Complete the code comment translation of the common module by @Hi-Mr-Wind in [https://github.com/apache/hertzbeat/pull/1766](https://github.com/apache/hertzbeat/pull/1766) +* Remove unnecessary if-else statement. by @dukbong in [https://github.com/apache/hertzbeat/pull/1770](https://github.com/apache/hertzbeat/pull/1770) +* [doc] remove and translate chinese to english in warehous by @xuziyang in [https://github.com/apache/hertzbeat/pull/1773](https://github.com/apache/hertzbeat/pull/1773) +* Replace deprecated methods with builder pattern for RedisURI construction by @dukbong in [https://github.com/apache/hertzbeat/pull/1772](https://github.com/apache/hertzbeat/pull/1772) +* remove and translate chinese to english in collector,script,push,remoting and manager module by @MananPoojara in [https://github.com/apache/hertzbeat/pull/1774](https://github.com/apache/hertzbeat/pull/1774) +* Added the function of sending SMS messages through Alibaba Cloud. by @lwqzz in [https://github.com/apache/hertzbeat/pull/1768](https://github.com/apache/hertzbeat/pull/1768) +* [improve]Add frontend license. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1776](https://github.com/apache/hertzbeat/pull/1776) +* [test] Add RedisSingleCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1784](https://github.com/apache/hertzbeat/pull/1784) +* [refactor] add override annotation by @handy-git in [https://github.com/apache/hertzbeat/pull/1782](https://github.com/apache/hertzbeat/pull/1782) +* '[docs]bugfix: display syntax error of ipmi protocol' by @tomorrowshipyltm in [https://github.com/apache/hertzbeat/pull/1793](https://github.com/apache/hertzbeat/pull/1793) +* [doc] translate alerter moudle code chinese to english by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1765](https://github.com/apache/hertzbeat/pull/1765) +* [refactor] database-related properties class, type changed to record by @xuziyang in [https://github.com/apache/hertzbeat/pull/1786](https://github.com/apache/hertzbeat/pull/1786) +* Fix snmp template unit conversion problem by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1796](https://github.com/apache/hertzbeat/pull/1796) +* [doc] Add help documentation for clickhouse monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1798](https://github.com/apache/hertzbeat/pull/1798) +* [feature:update-checkstyle] Limit the java file header by @YxYL6125 in [https://github.com/apache/hertzbeat/pull/1799](https://github.com/apache/hertzbeat/pull/1799) +* [improve]Add external lib folder to store mysql and oracle driver. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1783](https://github.com/apache/hertzbeat/pull/1783) +* [Improve]When multiple lines are returned, each alarm is triggered instead of only the first alarm by @15613060203 in [https://github.com/apache/hertzbeat/pull/1797](https://github.com/apache/hertzbeat/pull/1797) +* [doc] add team page in website by @alpha951 in [https://github.com/apache/hertzbeat/pull/1800](https://github.com/apache/hertzbeat/pull/1800) +* [feature] Improve the import checkstyle by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1802](https://github.com/apache/hertzbeat/pull/1802) +* [doc] Add help document for dns monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1804](https://github.com/apache/hertzbeat/pull/1804) +* [improve] preventing NPE by @dukbong in [https://github.com/apache/hertzbeat/pull/1808](https://github.com/apache/hertzbeat/pull/1808) +* [refactor] change the warehouse properties the type to record by @xuziyang in [https://github.com/apache/hertzbeat/pull/1806](https://github.com/apache/hertzbeat/pull/1806) +* Refactor: upgrade syntax to jdk17(instanceof & switch) by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1807](https://github.com/apache/hertzbeat/pull/1807) +* [test] Add NginxCollect test by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1809](https://github.com/apache/hertzbeat/pull/1809) +* [website] update team page by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1803](https://github.com/apache/hertzbeat/pull/1803) +* [test] Add RedisClusterCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1789](https://github.com/apache/hertzbeat/pull/1789) +* [improve] Fix typo ReqStatusResponse by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1811](https://github.com/apache/hertzbeat/pull/1811) +* Comparing N objects for null with Assert.noNullElements(). by @dukbong in [https://github.com/apache/hertzbeat/pull/1814](https://github.com/apache/hertzbeat/pull/1814) +* [doc] Add help document for elasticsearch monitoring and ftp monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1815](https://github.com/apache/hertzbeat/pull/1815) +* [doc] add help documentation for huawei switch monitoring by @Alanxtl in [https://github.com/apache/hertzbeat/pull/1813](https://github.com/apache/hertzbeat/pull/1813) +* chore: upgrade the api-testing (e2e) to v0.0.16 by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1817](https://github.com/apache/hertzbeat/pull/1817) +* [Remove]\[Improve\]Mail config by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1819](https://github.com/apache/hertzbeat/pull/1819) +* Remove and translate chinese to english in code by @dukbong in [https://github.com/apache/hertzbeat/pull/1816](https://github.com/apache/hertzbeat/pull/1816) +* [feature]Add monitoring for Hbase Master by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1820](https://github.com/apache/hertzbeat/pull/1820) +* [doc] resolve code conflicts and coverage caused by pr(#1813) merge by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1821](https://github.com/apache/hertzbeat/pull/1821) +* [doc] Add help document for tidb and nacos monitoring by @Alanxtl in [https://github.com/apache/hertzbeat/pull/1823](https://github.com/apache/hertzbeat/pull/1823) +* [improve] use eclipselink orm replace of hibernate orm by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1801](https://github.com/apache/hertzbeat/pull/1801) +* [improve] Add whitespace checkstyle by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1824](https://github.com/apache/hertzbeat/pull/1824) +* [bugfix] dns monitoring template add query class parameter by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1825](https://github.com/apache/hertzbeat/pull/1825) +* [Refactor] Preventing Unnecessary Object Creation and Using Utility Methods by @dukbong in [https://github.com/apache/hertzbeat/pull/1818](https://github.com/apache/hertzbeat/pull/1818) +* [doc]Add and modify Doris FE Chinese and English documentation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1828](https://github.com/apache/hertzbeat/pull/1828) +* [docs] Optimize: add help docs for UDP port & Springboot3 help doc by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1832](https://github.com/apache/hertzbeat/pull/1832) +* Code Simplification, Structure Changes, and Translation Work, Along with a Question by @dukbong in [https://github.com/apache/hertzbeat/pull/1827](https://github.com/apache/hertzbeat/pull/1827) +* [doc] add help document for mongodb monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1834](https://github.com/apache/hertzbeat/pull/1834) +* [collector] fix: inverts the compareTo sort of MetricsCollect run queue by @Pzz-2021 in [https://github.com/apache/hertzbeat/pull/1837](https://github.com/apache/hertzbeat/pull/1837) +* [doc]Doc add debian system by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1842](https://github.com/apache/hertzbeat/pull/1842) +* [feature] Add Apache Hbase RegionServer monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1833](https://github.com/apache/hertzbeat/pull/1833) +* [improve] Optimize websocket monitor by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1838](https://github.com/apache/hertzbeat/pull/1838) +* [refactor] Split the WarehouseProperties class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1830](https://github.com/apache/hertzbeat/pull/1830) +* [test] Add test for HttpsdImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1840](https://github.com/apache/hertzbeat/pull/1840) +* [fix] Fix the wrong comment by @xuziyang in [https://github.com/apache/hertzbeat/pull/1843](https://github.com/apache/hertzbeat/pull/1843) +* [refactor] trans and use assert by @dukbong in [https://github.com/apache/hertzbeat/pull/1841](https://github.com/apache/hertzbeat/pull/1841) +* [bugfix] modify the command in the mongodb monitoring template by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1844](https://github.com/apache/hertzbeat/pull/1844) +* [bigfix]Fix Debian system Top10 monitoring bug by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1846](https://github.com/apache/hertzbeat/pull/1846) +* [cleanup]Delete the corresponding Chinese comments by @hudongdong129 in [https://github.com/apache/hertzbeat/pull/1847](https://github.com/apache/hertzbeat/pull/1847) +* [doc] translates chinese comment to english. by @dukbong in [https://github.com/apache/hertzbeat/pull/1853](https://github.com/apache/hertzbeat/pull/1853) +* [doc] fix error and add help document for prometheus task by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1852](https://github.com/apache/hertzbeat/pull/1852) +* [feature] Add Linux process monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1857](https://github.com/apache/hertzbeat/pull/1857) +* [test] Add test for FtpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1856](https://github.com/apache/hertzbeat/pull/1856) +* [improve] use apache jexl replace of aviator by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1859](https://github.com/apache/hertzbeat/pull/1859) +* [bugfix] jpa data save logic repair by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1863](https://github.com/apache/hertzbeat/pull/1863) +* [feature] add influxdb metrics monitoring by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1730](https://github.com/apache/hertzbeat/pull/1730) +* [doc] add help document for rocketmq by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1874](https://github.com/apache/hertzbeat/pull/1874) +* [improve] Imporve checkstyle of test code. by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1864](https://github.com/apache/hertzbeat/pull/1864) +* [feature] Support Redfish protocol to monitoring server by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1867](https://github.com/apache/hertzbeat/pull/1867) +* Fix debian monitoring template issue about process monitoring by @LLP2333 in [https://github.com/apache/hertzbeat/pull/1868](https://github.com/apache/hertzbeat/pull/1868) +* [bugfix] centos Top10 shows missing one by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1870](https://github.com/apache/hertzbeat/pull/1870) +* [improve] add website apache incubator footer by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1860](https://github.com/apache/hertzbeat/pull/1860) +* [doc] update help document by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1861](https://github.com/apache/hertzbeat/pull/1861) +* [featurn] support flyway database migration by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1875](https://github.com/apache/hertzbeat/pull/1875) +* [improve] Delete the timestamp field in the class MetricFamily.Metric by @xuziyang in [https://github.com/apache/hertzbeat/pull/1878](https://github.com/apache/hertzbeat/pull/1878) +* [improve] Use java.lang.AutoCloseable instead of CacheCloseable by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1879](https://github.com/apache/hertzbeat/pull/1879) +* [bugfix]Fix top10 process command. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1876](https://github.com/apache/hertzbeat/pull/1876) +* [feature] support the VictoriaMetrics cluster by @xuziyang in [https://github.com/apache/hertzbeat/pull/1880](https://github.com/apache/hertzbeat/pull/1880) +* [improve] Refactor common cache code by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1881](https://github.com/apache/hertzbeat/pull/1881) +* Eliminate Unnecessary Unboxing and Generics by @handy-git in [https://github.com/apache/hertzbeat/pull/1882](https://github.com/apache/hertzbeat/pull/1882) +* [bugfix]\[doc\]Add kafka sidebar. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1883](https://github.com/apache/hertzbeat/pull/1883) +* [doc] I18n for monitoring template yml metrics by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1888](https://github.com/apache/hertzbeat/pull/1888) +* [refactor] StoreProperties is no longer useful, delete it by @xuziyang in [https://github.com/apache/hertzbeat/pull/1887](https://github.com/apache/hertzbeat/pull/1887) +* bugfix statistical metrics data matching fails by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1884](https://github.com/apache/hertzbeat/pull/1884) +* [doc] add help doc for flink monitoring by @HeartLinked in [https://github.com/apache/hertzbeat/pull/1893](https://github.com/apache/hertzbeat/pull/1893) +* [doc] add almalinux documentation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1892](https://github.com/apache/hertzbeat/pull/1892) +* [improve] Missing a generic by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1889](https://github.com/apache/hertzbeat/pull/1889) +* [bugfix] Fixed some metrics of Jexlespression not matching in Elasticsearch by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1894](https://github.com/apache/hertzbeat/pull/1894) +* feat(*): Support Time Type to Tengine Data Storage by @Clownsw in [https://github.com/apache/hertzbeat/pull/1890](https://github.com/apache/hertzbeat/pull/1890) +* [feature] support random jwt secret when not custom by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1897](https://github.com/apache/hertzbeat/pull/1897) +* [doc] add opensuse doc by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1902](https://github.com/apache/hertzbeat/pull/1902) +* fix when manager restart, collect register error by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1896](https://github.com/apache/hertzbeat/pull/1896) +* [bugfix] fix can not use empty collection as query params in eclipselink by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1900](https://github.com/apache/hertzbeat/pull/1900) +* [doc] update doc add download page and pic by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1904](https://github.com/apache/hertzbeat/pull/1904) +* [test] Add test for UdpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1906](https://github.com/apache/hertzbeat/pull/1906) +* fix license by @yqxxgh in [https://github.com/apache/hertzbeat/pull/1907](https://github.com/apache/hertzbeat/pull/1907) +* [improve] refactor code by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1901](https://github.com/apache/hertzbeat/pull/1901) +* [type:bugfix] fix customized menu invalid bug #1898 by @Aias00 in [https://github.com/apache/hertzbeat/pull/1908](https://github.com/apache/hertzbeat/pull/1908) +* [type:bugfix] fix HTTP API bug #1895 by @Aias00 in [https://github.com/apache/hertzbeat/pull/1909](https://github.com/apache/hertzbeat/pull/1909) +* [test] Add test for WebsocketCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1912](https://github.com/apache/hertzbeat/pull/1912) +* [doc] translates chinese comment to english. by @westboy in [https://github.com/apache/hertzbeat/pull/1914](https://github.com/apache/hertzbeat/pull/1914) +* [doc] Add HIP document and template by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1913](https://github.com/apache/hertzbeat/pull/1913) +* [improve] clean up home webapp unused code by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1915](https://github.com/apache/hertzbeat/pull/1915) +* [feature] support use ngql query metrics from nebulaGraph by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1917](https://github.com/apache/hertzbeat/pull/1917) +* [doc] Improve the Contribution Documentation. by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1918](https://github.com/apache/hertzbeat/pull/1918) +* [featrue]add apache hdfs monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1920](https://github.com/apache/hertzbeat/pull/1920) +* [doc] update hbase documentation description by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1921](https://github.com/apache/hertzbeat/pull/1921) +* [doc] Add documentation for nebulaGraph cluster monitoring and custom monitoring using NGQL, and clean up useless parameters by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1923](https://github.com/apache/hertzbeat/pull/1923) +* [test] Add test for TelnetCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1924](https://github.com/apache/hertzbeat/pull/1924) +* fix(*): fix TdEngine Init not found Database by @Clownsw in [https://github.com/apache/hertzbeat/pull/1891](https://github.com/apache/hertzbeat/pull/1891) +* [doc] update contribution and add run-build guide by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1919](https://github.com/apache/hertzbeat/pull/1919) +* bugfix collector startup error can not find JdbcClient by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1925](https://github.com/apache/hertzbeat/pull/1925) +* [doc] add help document for freebsd monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1928](https://github.com/apache/hertzbeat/pull/1928) +* [refactoring] Split AbstractHistoryDataStorage class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1926](https://github.com/apache/hertzbeat/pull/1926) +* [fix] fixed name error in monitoring template and improve NGQL protocol by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1931](https://github.com/apache/hertzbeat/pull/1931) +* [refactoring] Split AbstractRealTimeDataStorage class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1935](https://github.com/apache/hertzbeat/pull/1935) +* [bugfix] fix ssl-cert days_remaining and npe by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1934](https://github.com/apache/hertzbeat/pull/1934) +* [feature] add apache yarn monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1937](https://github.com/apache/hertzbeat/pull/1937) +* [doc] add help document for redhat monitoring and rocky linux monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1939](https://github.com/apache/hertzbeat/pull/1939) +* [test] Add test for NtpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1940](https://github.com/apache/hertzbeat/pull/1940) +* [bugfix] fix alarm center tags display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1938](https://github.com/apache/hertzbeat/pull/1938) +* [improve] prepare for release hertzbeat v1.6.0 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1929](https://github.com/apache/hertzbeat/pull/1929) +* add:Updated the Open Source Summer Project blog. by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1943](https://github.com/apache/hertzbeat/pull/1943) +* [feature] Support monitoring of OpenAI accounts by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1947](https://github.com/apache/hertzbeat/pull/1947) +* [refactoring] Inject a single instance of the data store by @xuziyang in [https://github.com/apache/hertzbeat/pull/1944](https://github.com/apache/hertzbeat/pull/1944) +* [refactoring] AbstractHistoryDataStorage implement the DisposableBean by @xuziyang in [https://github.com/apache/hertzbeat/pull/1946](https://github.com/apache/hertzbeat/pull/1946) +* [doc] update iotdb init document by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1948](https://github.com/apache/hertzbeat/pull/1948) +* [improve] update build script by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1949](https://github.com/apache/hertzbeat/pull/1949) +* [test] add test for NgqlCollectImpl by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1953](https://github.com/apache/hertzbeat/pull/1953) +* [bugfix]Replace monitors to alert. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1954](https://github.com/apache/hertzbeat/pull/1954) +* [improve] add llm, server menu and update doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1955](https://github.com/apache/hertzbeat/pull/1955) +* [improve]\[HIP\] HIP-01: Refactoring AbstractCollect by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1930](https://github.com/apache/hertzbeat/pull/1930) +* [bugfix] fix ConnectionCommonCache possible npe by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1959](https://github.com/apache/hertzbeat/pull/1959) +* [doc] add help document for eulerOS monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1960](https://github.com/apache/hertzbeat/pull/1960) +* [fixbug] Fix the problem of no data for springboot3 monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1961](https://github.com/apache/hertzbeat/pull/1961) +* commit:fix the front-end popup cannot exit by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/1957](https://github.com/apache/hertzbeat/pull/1957) +* [fixbug] expression rule adaptation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1963](https://github.com/apache/hertzbeat/pull/1963) +* [doc] add help doc for influxdb-promql and kafka-promql monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1965](https://github.com/apache/hertzbeat/pull/1965) +* [doc]: update readme-cn docs by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1964](https://github.com/apache/hertzbeat/pull/1964) +* [improve]\[HIP\] HIP-01: Implement refactoring AbstractCollect by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1966](https://github.com/apache/hertzbeat/pull/1966) +* [chore] update .gitignore to save .idea/icon.png by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1971](https://github.com/apache/hertzbeat/pull/1971) +* [improve]\[bugfix\]: fix AlertTemplateUtilTest test exception and update code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1969](https://github.com/apache/hertzbeat/pull/1969) +* [feature] add apache hugegraph monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1972](https://github.com/apache/hertzbeat/pull/1972) +* [improve] Implement cascading parameter list for SNMP protocol by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1976](https://github.com/apache/hertzbeat/pull/1976) +* [improve] optimize DateUtil and add test case by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1974](https://github.com/apache/hertzbeat/pull/1974) +* [feature]Hertzbeat custom plugin. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1973](https://github.com/apache/hertzbeat/pull/1973) +* update login page and status page color by @lwjxy in [https://github.com/apache/hertzbeat/pull/1977](https://github.com/apache/hertzbeat/pull/1977) +* [chore] update code style and add some comment by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1975](https://github.com/apache/hertzbeat/pull/1975) +* [doc]Hertzbeat plugin doc. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1980](https://github.com/apache/hertzbeat/pull/1980) +* [doc] update contributors and update status page style by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1981](https://github.com/apache/hertzbeat/pull/1981) +* [feature] Implement cascading parameter list by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1978](https://github.com/apache/hertzbeat/pull/1978) +* [doc]update threshold alarm doc by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1983](https://github.com/apache/hertzbeat/pull/1983) +* [chore] optimize code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1984](https://github.com/apache/hertzbeat/pull/1984) +* [fix] Compatible with MongoDB versions earlier than 3.6 by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1988](https://github.com/apache/hertzbeat/pull/1988) +* [chore] optimize manager code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1993](https://github.com/apache/hertzbeat/pull/1993) +* [doc] Translate part of documentation development.md under `zh-cn` directory from `en` to `zh-cn` by @Thespica in [https://github.com/apache/hertzbeat/pull/1995](https://github.com/apache/hertzbeat/pull/1995) +* [improve] http protocol prometheus parsing optimization by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1996](https://github.com/apache/hertzbeat/pull/1996) +* [feature] add at function for wechat by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/1994](https://github.com/apache/hertzbeat/pull/1994) +* [improve] add common util test by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2001](https://github.com/apache/hertzbeat/pull/2001) +* [improve] update release license notice and package by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2003](https://github.com/apache/hertzbeat/pull/2003) +* [bugfix] fix collector startup error classpath by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2004](https://github.com/apache/hertzbeat/pull/2004) +* [chore] optimize code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2000](https://github.com/apache/hertzbeat/pull/2000) +* [improve] Bump up `eslint-plugin-jsdoc` to 48.2.5 to support node 20+ by @Thespica in [https://github.com/apache/hertzbeat/pull/2005](https://github.com/apache/hertzbeat/pull/2005) +* [doc] fix doc highlighting by @boatrainlsz in [https://github.com/apache/hertzbeat/pull/2006](https://github.com/apache/hertzbeat/pull/2006) +* [web-app]feature: case insensitive search by @JavaProgrammerLB in [https://github.com/apache/hertzbeat/pull/2007](https://github.com/apache/hertzbeat/pull/2007) +* [feature] Support time calculation expressions. by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2009](https://github.com/apache/hertzbeat/pull/2009) +* [doc] add document for time expression by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2012](https://github.com/apache/hertzbeat/pull/2012) +* [feature] Add Apache Pulsar monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2013](https://github.com/apache/hertzbeat/pull/2013) +* [doc] home verify release doc update by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2014](https://github.com/apache/hertzbeat/pull/2014) +* [Improve] Improve clickhouse monitor And Improve Pulsar monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2015](https://github.com/apache/hertzbeat/pull/2015) +* [doc] translate help document for memcached monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2019](https://github.com/apache/hertzbeat/pull/2019) +* [improve] optimize collector httpsd discovery by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1991](https://github.com/apache/hertzbeat/pull/1991) +* [optimize] optimize code style and logic, add unit test by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2010](https://github.com/apache/hertzbeat/pull/2010) +* [fix] Fix possible potential thread safe bugs by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/2021](https://github.com/apache/hertzbeat/pull/2021) +* [improve] add ci for home by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2024](https://github.com/apache/hertzbeat/pull/2024) +* [bugfix]Tag with empty value Shouldn't transform to Tag: by @JavaProgrammerLB in [https://github.com/apache/hertzbeat/pull/2025](https://github.com/apache/hertzbeat/pull/2025) +* [bugfix] modify popup confirm to clear cache and cancel popup save by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/2026](https://github.com/apache/hertzbeat/pull/2026) +* [improve] update monitor state desc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2028](https://github.com/apache/hertzbeat/pull/2028) +* bugfix: fix overflow of integers by @Calvin979 in [https://github.com/apache/hertzbeat/pull/2029](https://github.com/apache/hertzbeat/pull/2029) +* [improve] tips need update initial default password by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2030](https://github.com/apache/hertzbeat/pull/2030) +* [improve] deprecate support iotdb 0.* version by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/2032](https://github.com/apache/hertzbeat/pull/2032) +* [fixbug] required field check by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2022](https://github.com/apache/hertzbeat/pull/2022) +* [improve] add IcmpCollectImplTest by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2033](https://github.com/apache/hertzbeat/pull/2033) +* [improve] fix code style by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2034](https://github.com/apache/hertzbeat/pull/2034) +* [improve] increase the length limit of the username field by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2035](https://github.com/apache/hertzbeat/pull/2035) +* [improve] Checkstyle include testSource by @crossoverJie in [https://github.com/apache/hertzbeat/pull/2036](https://github.com/apache/hertzbeat/pull/2036) +* [bugfix] fix collector and frontend dependent license error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2037](https://github.com/apache/hertzbeat/pull/2037) +* [improve] Add test for MemcachedCollectImpl by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2044](https://github.com/apache/hertzbeat/pull/2044) +* [imprve] Remove duplicate indices by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2045](https://github.com/apache/hertzbeat/pull/2045) +* [docs]: fix several typos in docs by @lw-yang in [https://github.com/apache/hertzbeat/pull/2047](https://github.com/apache/hertzbeat/pull/2047) +* Add the missing parts of docs, fix layout, sync the English version with the Chinese version by @xfl12345 in [https://github.com/apache/hertzbeat/pull/2048](https://github.com/apache/hertzbeat/pull/2048) +* [improve] add filename check in home ci by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2049](https://github.com/apache/hertzbeat/pull/2049) +* [improve] update dependency licenses and remove the aliyun sms depend by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2058](https://github.com/apache/hertzbeat/pull/2058) ## New Contributors -* @handy-git made their first contribution in -* @LiuTianyou made their first contribution in -* @WinterKi1ler made their first contribution in -* @miki-hmt made their first contribution in -* @gjjjj0101 made their first contribution in -* @makechoicenow made their first contribution in -* @alpha951 made their first contribution in -* @crossoverJie made their first contribution in -* @PeixyJ made their first contribution in -* @dukbong made their first contribution in -* @xuziyang made their first contribution in -* @MananPoojara made their first contribution in -* @lwqzz made their first contribution in -* @tomorrowshipyltm made their first contribution in -* @YxYL6125 made their first contribution in -* @15613060203 made their first contribution in -* @Alanxtl made their first contribution in -* @zhangshenghang made their first contribution in -* @zuobiao-zhou made their first contribution in -* @Pzz-2021 made their first contribution in -* @LLP2333 made their first contribution in -* @HeartLinked made their first contribution in -* @Aias00 made their first contribution in -* @westboy made their first contribution in -* @Yanshuming1 made their first contribution in -* @yuluo-yx made their first contribution in -* @lwjxy made their first contribution in -* @Thespica made their first contribution in -* @boatrainlsz made their first contribution in -* @JavaProgrammerLB made their first contribution in -* @lw-yang made their first contribution in -* @xfl12345 made their first contribution in +* @handy-git made their first contribution in [https://github.com/apache/hertzbeat/pull/1643](https://github.com/apache/hertzbeat/pull/1643) +* @LiuTianyou made their first contribution in [https://github.com/apache/hertzbeat/pull/1684](https://github.com/apache/hertzbeat/pull/1684) +* @WinterKi1ler made their first contribution in [https://github.com/apache/hertzbeat/pull/1718](https://github.com/apache/hertzbeat/pull/1718) +* @miki-hmt made their first contribution in [https://github.com/apache/hertzbeat/pull/1734](https://github.com/apache/hertzbeat/pull/1734) +* @gjjjj0101 made their first contribution in [https://github.com/apache/hertzbeat/pull/1748](https://github.com/apache/hertzbeat/pull/1748) +* @makechoicenow made their first contribution in [https://github.com/apache/hertzbeat/pull/1747](https://github.com/apache/hertzbeat/pull/1747) +* @alpha951 made their first contribution in [https://github.com/apache/hertzbeat/pull/1745](https://github.com/apache/hertzbeat/pull/1745) +* @crossoverJie made their first contribution in [https://github.com/apache/hertzbeat/pull/1758](https://github.com/apache/hertzbeat/pull/1758) +* @PeixyJ made their first contribution in [https://github.com/apache/hertzbeat/pull/1760](https://github.com/apache/hertzbeat/pull/1760) +* @dukbong made their first contribution in [https://github.com/apache/hertzbeat/pull/1757](https://github.com/apache/hertzbeat/pull/1757) +* @xuziyang made their first contribution in [https://github.com/apache/hertzbeat/pull/1773](https://github.com/apache/hertzbeat/pull/1773) +* @MananPoojara made their first contribution in [https://github.com/apache/hertzbeat/pull/1774](https://github.com/apache/hertzbeat/pull/1774) +* @lwqzz made their first contribution in [https://github.com/apache/hertzbeat/pull/1768](https://github.com/apache/hertzbeat/pull/1768) +* @tomorrowshipyltm made their first contribution in [https://github.com/apache/hertzbeat/pull/1793](https://github.com/apache/hertzbeat/pull/1793) +* @YxYL6125 made their first contribution in [https://github.com/apache/hertzbeat/pull/1799](https://github.com/apache/hertzbeat/pull/1799) +* @15613060203 made their first contribution in [https://github.com/apache/hertzbeat/pull/1797](https://github.com/apache/hertzbeat/pull/1797) +* @Alanxtl made their first contribution in [https://github.com/apache/hertzbeat/pull/1813](https://github.com/apache/hertzbeat/pull/1813) +* @zhangshenghang made their first contribution in [https://github.com/apache/hertzbeat/pull/1820](https://github.com/apache/hertzbeat/pull/1820) +* @zuobiao-zhou made their first contribution in [https://github.com/apache/hertzbeat/pull/1832](https://github.com/apache/hertzbeat/pull/1832) +* @Pzz-2021 made their first contribution in [https://github.com/apache/hertzbeat/pull/1837](https://github.com/apache/hertzbeat/pull/1837) +* @LLP2333 made their first contribution in [https://github.com/apache/hertzbeat/pull/1868](https://github.com/apache/hertzbeat/pull/1868) +* @HeartLinked made their first contribution in [https://github.com/apache/hertzbeat/pull/1893](https://github.com/apache/hertzbeat/pull/1893) +* @Aias00 made their first contribution in [https://github.com/apache/hertzbeat/pull/1908](https://github.com/apache/hertzbeat/pull/1908) +* @westboy made their first contribution in [https://github.com/apache/hertzbeat/pull/1914](https://github.com/apache/hertzbeat/pull/1914) +* @Yanshuming1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1957](https://github.com/apache/hertzbeat/pull/1957) +* @yuluo-yx made their first contribution in [https://github.com/apache/hertzbeat/pull/1964](https://github.com/apache/hertzbeat/pull/1964) +* @lwjxy made their first contribution in [https://github.com/apache/hertzbeat/pull/1977](https://github.com/apache/hertzbeat/pull/1977) +* @Thespica made their first contribution in [https://github.com/apache/hertzbeat/pull/1995](https://github.com/apache/hertzbeat/pull/1995) +* @boatrainlsz made their first contribution in [https://github.com/apache/hertzbeat/pull/2006](https://github.com/apache/hertzbeat/pull/2006) +* @JavaProgrammerLB made their first contribution in [https://github.com/apache/hertzbeat/pull/2007](https://github.com/apache/hertzbeat/pull/2007) +* @lw-yang made their first contribution in [https://github.com/apache/hertzbeat/pull/2047](https://github.com/apache/hertzbeat/pull/2047) +* @xfl12345 made their first contribution in [https://github.com/apache/hertzbeat/pull/2048](https://github.com/apache/hertzbeat/pull/2048) ## Just one command to get started @@ -373,14 +373,14 @@ Upgrade Guide: +Detailed refer to HertzBeat Document [https://hertzbeat.apache.org/docs](https://hertzbeat.apache.org/docs) --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -Download Page: +Download Page: [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) -Upgrade Guide: +Upgrade Guide: [https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/](https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/) Have Fun! diff --git a/home/blog/2024-08-18-new-committer.md b/home/blog/2024-08-18-new-committer.md index ab2f86571d5..3aea51eeac0 100644 --- a/home/blog/2024-08-18-new-committer.md +++ b/home/blog/2024-08-18-new-committer.md @@ -19,8 +19,8 @@ From my junior year to the present, I still maintain my passion for open source ## Participate in the Apache Community -[Apache Software Foundation (ASF)](https://community.apache.org/) is an American non-profit organization that aims to support various open source software projects. ASF was originally formed by a group of developers of Apache HTTP Server and was officially established on March 25, 1999. As of 2021, its total membership is approximately 1,000. The name comes from a local Indian tribe in North America. -This tribe is famous for its superb military literacy and superhuman endurance. In the second half of the 19th century, it resisted the invaders who invaded their territory. In order to show respect for this Indian tribe, the name of the tribe (Apache) is used as the server name. +[Apache Software Foundation (ASF)](https://community.apache.org/) is an American non-profit organization that aims to support various open source software projects. ASF was originally formed by a group of developers of Apache HTTP Server and was officially established on March 25, 1999. As of 2021, its total membership is approximately 1,000. The name comes from a local Indian tribe in North America. +This tribe is famous for its superb military literacy and superhuman endurance. In the second half of the 19th century, it resisted the invaders who invaded their territory. In order to show respect for this Indian tribe, the name of the tribe (Apache) is used as the server name. But when it comes to this naming, there is an interesting story circulating here. Because this server is based on the NCSA HTTPd server and is the product of continuous revision and patching through the efforts of everyone, it is nicknamed "A Patchy Server" (a patch server). Here, because "A Patchy" and "Apache" are homophones, it was finally officially named "Apache Server". The above is an introduction to the Apache Software Foundation from Wikipedia. @@ -35,7 +35,7 @@ The first contribution in the Apache community should be to delete a `{@link}` c ### Get nominated and become a Committer -This nomination was recommended by PPMC Member [Logic](https://github.com/zqr10159) of Apache HertzbeatP(Incubating). Thanks to the Apache HertzBeat™ Team. I was successfully nominated to become a Hertzbeat Committer and got my own Apache mailbox. +This nomination was recommended by PPMC Member [Logic](https://github.com/zqr10159) of Apache Hertzbeat. Thanks to the Apache HertzBeat™ Team. I was successfully nominated to become a Hertzbeat Committer and got my own Apache mailbox. ![Apache ID Email](/img/blog/committer/yuluo-yx/3.jpg) @@ -47,14 +47,14 @@ As the saying goes, the greater the ability, the greater the task. Becoming a pr ## How to participate in open source -Anyone who wants to do something needs an opportunity and a guide. Among the many Apache projects, there are many people who pay attention to the project's Issue List. The one time that remains fresh in my memory is: one night after writing the unit test of a tool class, I discovered a small bug. What I thought at the time was that there was too much contextual information and it was not good to write it in a PR, so I opened an Issue to record the context. +Anyone who wants to do something needs an opportunity and a guide. Among the many Apache projects, there are many people who pay attention to the project's Issue List. The one time that remains fresh in my memory is: one night after writing the unit test of a tool class, I discovered a small bug. What I thought at the time was that there was too much contextual information and it was not good to write it in a PR, so I opened an Issue to record the context. How small is this bug? It was so small that I just created the Issue. After submitting the unit test and the code to fix the bug together, I refreshed the PR List again and saw a PR Title to fix the bug. In fact, there is no shortage of people paying attention to the project, but more of an opportunity! Opportunities to participate in projects. ### The Apache Way -[The Apache Way](https://www.apache.org/theapacheway/) pursued by the Apache Community. The community is greater than the code. A good community is often more important than excellent code. The components of the community include developers, users, etc. Users are the first users of the project code. A healthy community status is when users discover problems, then report problems, and finally solve problems during use. +[The Apache Way](https://www.apache.org/theapacheway/) pursued by the Apache Community. The community is greater than the code. A good community is often more important than excellent code. The components of the community include developers, users, etc. Users are the first users of the project code. A healthy community status is when users discover problems, then report problems, and finally solve problems during use. A more likely scenario is that a user reports a problem, switches from being a user to a developer, and solves the problem. And continue to participate in the maintenance of community projects. ### Paths to participate in open source @@ -63,7 +63,7 @@ Open source is often pure, and the Apache Foundation exists to protect projects #### Apache Community Identity -Before contributing to the community, it is important to understand the community's definition of identity, where a project's Committers are located, and how to become a Committer. The Apache community has a clear definition of [Contributor Identity](. html): [Contributor Identity](. html). The Apache community has a very clear definition of [contributor status](. html): +Before contributing to the community, it is important to understand the community's definition of identity, where a project's Committers are located, and how to become a Committer. The Apache community has a clear definition of [Contributor Identity]([https://community.apache.org/contributor-ladder](https://community.apache.org/contributor-ladder). html): [Contributor Identity]([https://community.apache.org/contributor-ladder](https://community.apache.org/contributor-ladder). html). The Apache community has a very clear definition of [contributor status](. html): ! [Apache contributor label](/img/blog/committer/yuluo-yx/6.jpg) diff --git a/home/blog/2024-08-31-new-committer.md b/home/blog/2024-08-31-new-committer.md index ed6cade8e78..c1cc537d8bf 100644 --- a/home/blog/2024-08-31-new-committer.md +++ b/home/blog/2024-08-31-new-committer.md @@ -17,7 +17,7 @@ Besides work, I am also passionate about the open-source community. Participatin ## Participating in the Apache Community -The first Apache project I participated in was Apache ShenYu (). As an API gateway project, ShenYu provided me with an opportunity to gain a deep understanding of microservice architecture and gateway technology. Through my involvement in ShenYu's development, I not only enhanced my technical skills but also learned about the collaboration methods and open-source spirit of the Apache community. +The first Apache project I participated in was Apache ShenYu ([https://github.com/apache/shenyu](https://github.com/apache/shenyu)). As an API gateway project, ShenYu provided me with an opportunity to gain a deep understanding of microservice architecture and gateway technology. Through my involvement in ShenYu's development, I not only enhanced my technical skills but also learned about the collaboration methods and open-source spirit of the Apache community. This experience gave me a deeper understanding of the Apache community and laid the foundation for my later participation in other Apache projects, such as HertzBeat. From ShenYu to HertzBeat, I gradually deepened my understanding and contribution to Apache projects, eventually becoming a Committer for HertzBeat. diff --git a/home/blog/2024-11-09-hertzbeat-v1.6.1.md b/home/blog/2024-11-09-hertzbeat-v1.6.1.md index 1c5292f7f59..2db8e3bde63 100644 --- a/home/blog/2024-11-09-hertzbeat-v1.6.1.md +++ b/home/blog/2024-11-09-hertzbeat-v1.6.1.md @@ -13,8 +13,8 @@ We are thrilled to announce the official release of Apache HertzBeat™ version ## Downloads and Documentation -- **Apache HertzBeat™ 1.6.1 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.6.1 Download Link**: [https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## Major Updates @@ -68,23 +68,23 @@ Special thanks to **@zqr10159** for supporting this release and to the following **Repository URL:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Official Website:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ Download Link:** - +[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) **Apache HertzBeat™ Docker Images:** Apache HertzBeat™ provides Docker images for each release, available on Docker Hub: -- HertzBeat: -- HertzBeat Collector: +- HertzBeat: [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector: [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **How to Contribute to the Apache HertzBeat™ Open Source Community?** - +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) diff --git a/home/blog/2024-11-24-custom-development.md b/home/blog/2024-11-24-custom-development.md index 0b99bfd13ca..6f6df17b087 100644 --- a/home/blog/2024-11-24-custom-development.md +++ b/home/blog/2024-11-24-custom-development.md @@ -22,10 +22,10 @@ The overall structure of the Collector module can be divided into four main part - **collector-xxx**: This is the extension Collector module for different services or protocols. For example, monitoring for specific services like MongoDB or RocketMQ often requires introducing their proprietary dependencies and developing within their respective modules. Below is an example of MongoDB's dependency: ```xml - - org.mongodb - mongodb-driver-sync - + `` + ``org.mongodb`` + ``mongodb-driver-sync`` + `` ``` Through this modular design, the Collector can easily be extended to adapt to various monitoring scenarios. @@ -46,35 +46,35 @@ First, we need to create a new module in the project for Kafka monitoring, named - 4.0.0 - - org.apache.hertzbeat - hertzbeat-collector - 2.0-SNAPSHOT - + ``4.0.0`` + `` + ``org.apache.hertzbeat`` + ``hertzbeat-collector`` + ``2.0-SNAPSHOT`` + `` - hertzbeat-collector-kafka - ${project.artifactId} + ``hertzbeat-collector-kafka`` + ``${project.artifactId}`` - + `` 17 17 UTF-8 - - - - - org.apache.hertzbeat - hertzbeat-collector-common - provided - + `` + + `` + `` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-common`` + ``provided`` + `` - - org.apache.kafka - kafka-clients - - - + `` + ``org.apache.kafka`` + ``kafka-clients`` + `` + `` +`` ``` Points to note: @@ -152,7 +152,7 @@ import org.apache.kafka.clients.admin.KafkaAdminClient; import java.util.Properties; -public class KafkaConnect extends AbstractConnection { +public class KafkaConnect extends AbstractConnection`` { private static AdminClient adminClient; @@ -292,7 +292,7 @@ public class KafkaCollectImpl extends AbstractCollect { */ private void collectTopicOffset(CollectRep.MetricsData.Builder builder, AdminClient adminClient) throws InterruptedException, ExecutionException { ListTopicsResult listTopicsResult = adminClient.listTopics(new ListTopicsOptions().listInternal(true)); - Set names = listTopicsResult.names().get(); + Set`` names = listTopicsResult.names().get(); names.forEach(name -> { try { Map map = adminClient.describeTopics(Collections.singleton(name)).all().get(3L, TimeUnit.SECONDS); @@ -361,7 +361,7 @@ public class KafkaCollectImpl extends AbstractCollect { */ private static void collectTopicList(CollectRep.MetricsData.Builder builder, AdminClient adminClient) throws InterruptedException, ExecutionException { ListTopicsOptions options = new ListTopicsOptions().listInternal(true); - Set names = adminClient.listTopics(options).names().get(); + Set`` names = adminClient.listTopics(options).names().get(); names.forEach(name -> { CollectRep.ValueRow valueRow = CollectRep.ValueRow.newBuilder().addColumns(name).build(); builder.addValues(valueRow); @@ -378,11 +378,11 @@ public class KafkaCollectImpl extends AbstractCollect { ListTopicsOptions options = new ListTopicsOptions(); options.listInternal(true); ListTopicsResult listTopicsResult = adminClient.listTopics(options); - Set names = listTopicsResult.names().get(); + Set`` names = listTopicsResult.names().get(); DescribeTopicsResult describeTopicsResult = adminClient.describeTopics(names); Map map = describeTopicsResult.all().get(); map.forEach((key, value) -> { - List listp = value.partitions(); + List`` listp = value.partitions(); listp.forEach(info -> { CollectRep.ValueRow.Builder valueRowBuilder = CollectRep.ValueRow.newBuilder(); valueRowBuilder.addColumns(value.name()); @@ -418,11 +418,11 @@ org.apache.hertzbeat.collector.collect.kafka.KafkaCollectImpl The final step is to add the `kafka-collector` module dependency in `collector/collector/pom.xml`: ```xml - - org.apache.hertzbeat - hertzbeat-collector-kafka - ${hertzbeat.version} - +`` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-kafka`` + ``${hertzbeat.version}`` +`` ``` By following the above steps, we have completed the development of a Kafka Collector, from protocol definition to the final SPI configuration and dependency management, fully extending a Kafka monitoring module. @@ -456,9 +456,9 @@ name: zh-TW: Kafka消息系統(客戶端) # The description and help of this monitoring type help: - zh-CN: HertzBeat 使用 Kafka Admin Client 对 Kafka 的通用指标进行采集监控。 - en-US: HertzBeat uses Kafka Admin Client to monitor Kafka general metrics. - zh-TW: HertzBeat 使用 Kafka Admin Client 對 Kafka 的通用指標進行采集監控。 + zh-CN: HertzBeat 使用 Kafka Admin Client`` 对 Kafka 的通用指标进行采集监控。`` + en-US: HertzBeat uses Kafka Admin Client`` to monitor Kafka general metrics. `` + zh-TW: HertzBeat 使用 Kafka Admin Client`` 對 Kafka 的通用指標進行采集監控。`` helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/kafka_client en-US: https://hertzbeat.apache.org/docs/help/kafka_client @@ -610,9 +610,9 @@ When starting the `manager` module locally, if the added monitoring cannot find ```xml - - org.apache.hertzbeat - hertzbeat-collector-kafka - ${hertzbeat.version} - +`` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-kafka`` + ``${hertzbeat.version}`` +`` ``` diff --git a/home/blog/2025-04-10-hertzbeat-v1.7.0.md b/home/blog/2025-04-10-hertzbeat-v1.7.0.md index 5e609a65dd5..ba99d3b0fa7 100644 --- a/home/blog/2025-04-10-hertzbeat-v1.7.0.md +++ b/home/blog/2025-04-10-hertzbeat-v1.7.0.md @@ -13,8 +13,8 @@ We are thrilled to announce the official release of Apache HertzBeat™ version ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.0 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.0 Download Link**: [https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/docs/](https://hertzbeat.apache.org/docs/) ## Major Updates @@ -293,23 +293,23 @@ Special thanks to the following community members for their collaborative effort **Repository URL:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Official Website:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ Download Link:** - +[https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) **Apache HertzBeat™ Docker Images:** Apache HertzBeat™ provides Docker images for each release, available on Docker Hub: -- HertzBeat: -- HertzBeat Collector: +- HertzBeat: [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector: [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **How to Contribute to the Apache HertzBeat™ Open Source Community?** - +[https://hertzbeat.apache.org/docs/community/contribution](https://hertzbeat.apache.org/docs/community/contribution) diff --git a/home/blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md b/home/blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md index f295eb87c99..92bd45a97d3 100644 --- a/home/blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md +++ b/home/blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md @@ -7,8 +7,8 @@ - **Back up the database**: Manually back up MySQL data as needed. ```bash - mysqldump -h -P -uroot -p"PASSWORD" > hertzbeat_backup-`date +%Y-%m-%d`.sql # Single database - mysqldump -h -P -uroot -p"PASSWORD" --all-databases > hertzbeat_backup-`date +%Y-%m-%d`.sql # Full database + mysqldump -h -P`` -uroot -p"PASSWORD" `` > hertzbeat_backup-`date +%Y-%m-%d`.sql # Single database + mysqldump -h -P`` -uroot -p"PASSWORD" --all-databases > hertzbeat_backup-`date +%Y-%m-%d`.sql # Full database ``` - **Back up configuration files and data directory**: diff --git a/home/blog/2025-06-10-hertzbeat-v1.7.1.md b/home/blog/2025-06-10-hertzbeat-v1.7.1.md index 51ad0307919..592753eea54 100644 --- a/home/blog/2025-06-10-hertzbeat-v1.7.1.md +++ b/home/blog/2025-06-10-hertzbeat-v1.7.1.md @@ -13,8 +13,8 @@ We are thrilled to announce the official release of Apache HertzBeat™ version ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.1 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.1 Download Link**: [https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/docs/](https://hertzbeat.apache.org/docs/) ## Major Updates @@ -203,23 +203,23 @@ Special thanks to the following community members for their collaborative effort **Repository URL:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Official Website:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ Download Link:** - +[https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) **Apache HertzBeat™ Docker Images:** Apache HertzBeat™ provides Docker images for each release, available on Docker Hub: -- HertzBeat: -- HertzBeat Collector: +- HertzBeat: [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector: [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **How to Contribute to the Apache HertzBeat™ Open Source Community?** - +[https://hertzbeat.apache.org/docs/community/contribution](https://hertzbeat.apache.org/docs/community/contribution) diff --git a/home/blog/2025-07-07-hertzbeat-v1.7.2.md b/home/blog/2025-07-07-hertzbeat-v1.7.2.md index 050c4a42682..ad4c5e951ac 100644 --- a/home/blog/2025-07-07-hertzbeat-v1.7.2.md +++ b/home/blog/2025-07-07-hertzbeat-v1.7.2.md @@ -13,8 +13,8 @@ We are thrilled to announce the official release of Apache HertzBeat™ version ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.2 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.2 Download Link**: [https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/docs/](https://hertzbeat.apache.org/docs/) ## Major Updates @@ -167,31 +167,31 @@ Special thanks to the following community members for their collaborative effort ## New Contributors -- @Duansg made their first contribution in -- @lx1229 made their first contribution in -- @RainBondsongyg made their first contribution in +- @Duansg made their first contribution in [https://github.com/apache/hertzbeat/pull/3380](https://github.com/apache/hertzbeat/pull/3380) +- @lx1229 made their first contribution in [https://github.com/apache/hertzbeat/pull/3431](https://github.com/apache/hertzbeat/pull/3431) +- @RainBondsongyg made their first contribution in [https://github.com/apache/hertzbeat/pull/3440](https://github.com/apache/hertzbeat/pull/3440) ## Apache Hertzbeat **Repository URL:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Official Website:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ Download Link:** - +[https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) **Apache HertzBeat™ Docker Images:** Apache HertzBeat™ provides Docker images for each release, available on Docker Hub: -- HertzBeat: -- HertzBeat Collector: +- HertzBeat: [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector: [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **How to Contribute to the Apache HertzBeat™ Open Source Community?** - +[https://hertzbeat.apache.org/docs/community/contribution](https://hertzbeat.apache.org/docs/community/contribution) diff --git a/home/blog/2025-09-06-hertzbeat-v1.7.3.md b/home/blog/2025-09-06-hertzbeat-v1.7.3.md index 815565d3a4f..ba5eeb1f395 100644 --- a/home/blog/2025-09-06-hertzbeat-v1.7.3.md +++ b/home/blog/2025-09-06-hertzbeat-v1.7.3.md @@ -13,8 +13,8 @@ We are thrilled to announce the official release of Apache HertzBeat™ 1.7.3. T ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.3 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.3 Download Link**: [https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## Major Updates @@ -218,36 +218,36 @@ Special thanks to the following community members for their collaborative effort ## New Contributors -- @yy549159265 made their first contribution in -- @cto-huhang made their first contribution in -- @Saramanda9988 made their first contribution in -- @delei made their first contribution in -- @chingjustwe made their first contribution in -- @rowankid made their first contribution in -- @tuzuy made their first contribution in -- @carlpinto25 made their first contribution in +- @yy549159265 made their first contribution in [https://github.com/apache/hertzbeat/pull/3474](https://github.com/apache/hertzbeat/pull/3474) +- @cto-huhang made their first contribution in [https://github.com/apache/hertzbeat/pull/3594](https://github.com/apache/hertzbeat/pull/3594) +- @Saramanda9988 made their first contribution in [https://github.com/apache/hertzbeat/pull/3598](https://github.com/apache/hertzbeat/pull/3598) +- @delei made their first contribution in [https://github.com/apache/hertzbeat/pull/3608](https://github.com/apache/hertzbeat/pull/3608) +- @chingjustwe made their first contribution in [https://github.com/apache/hertzbeat/pull/3622](https://github.com/apache/hertzbeat/pull/3622) +- @rowankid made their first contribution in [https://github.com/apache/hertzbeat/pull/3690](https://github.com/apache/hertzbeat/pull/3690) +- @tuzuy made their first contribution in [https://github.com/apache/hertzbeat/pull/3668](https://github.com/apache/hertzbeat/pull/3668) +- @carlpinto25 made their first contribution in [https://github.com/apache/hertzbeat/pull/3726](https://github.com/apache/hertzbeat/pull/3726) ## Apache Hertzbeat **Repository URL:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **Official Website:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ Download Link:** - +[https://hertzbeat.apache.org/docs/download](https://hertzbeat.apache.org/docs/download) **Apache HertzBeat™ Docker Images:** Apache HertzBeat™ provides Docker images for each release, available on Docker Hub: -- HertzBeat: -- HertzBeat Collector: +- HertzBeat: [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector: [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **How to Contribute to the Apache HertzBeat™ Open Source Community?** - +[https://hertzbeat.apache.org/docs/community/contribution](https://hertzbeat.apache.org/docs/community/contribution) diff --git a/home/blog/2025-5-19-new-pmc.md b/home/blog/2025-5-19-new-pmc.md index 0ee5e49e3ca..3f44c5d9c9e 100644 --- a/home/blog/2025-5-19-new-pmc.md +++ b/home/blog/2025-5-19-new-pmc.md @@ -40,12 +40,12 @@ Apache HertzBeat™ is an open source real-time monitoring system emphasizing ea ### How to Contribute? We welcome contributions of code, documentation, and ideas. My open source journey taught me that the hardest parts are starting and persisting. If interested, visit our contribution guide: - -Feel free to email me at - I'm happy to help you take your first open source steps! +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) +Feel free to email me at [liutianyou@apache.org](mailto:liutianyou@apache.org) - I'm happy to help you take your first open source steps! -- Official Site: -- GitHub: -- Mailing List: +- Official Site: [https://hertzbeat.apache.org](https://hertzbeat.apache.org) +- GitHub: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +- Mailing List: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) ### Acknowledgments diff --git a/home/docs/advanced/extend-http-default.md b/home/docs/advanced/extend-http-default.md index 9770143af31..8281718aa0a 100644 --- a/home/docs/advanced/extend-http-default.md +++ b/home/docs/advanced/extend-http-default.md @@ -96,9 +96,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/docs/advanced/extend-http-example-hertzbeat.md b/home/docs/advanced/extend-http-example-hertzbeat.md index 5b96870be48..76ea0b4974c 100644 --- a/home/docs/advanced/extend-http-example-hertzbeat.md +++ b/home/docs/advanced/extend-http-example-hertzbeat.md @@ -78,9 +78,9 @@ name: en-US: HertzBeat # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -217,4 +217,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/docs/advanced/extend-http-example-token.md b/home/docs/advanced/extend-http-example-token.md index e353340422c..d935329708d 100644 --- a/home/docs/advanced/extend-http-example-token.md +++ b/home/docs/advanced/extend-http-example-token.md @@ -60,9 +60,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -128,9 +128,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -267,9 +267,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -405,4 +405,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/docs/advanced/extend-http-xmlpath.md b/home/docs/advanced/extend-http-xmlpath.md index fd1692ec897..4bb16d113e6 100644 --- a/home/docs/advanced/extend-http-xmlpath.md +++ b/home/docs/advanced/extend-http-xmlpath.md @@ -34,25 +34,25 @@ Assume the HTTP API returns the following XML data: 36.400002 - - + + 399640 98792 228492 - - + + 1 1000 - + 2 0 - - + + 2025-01-06 10:27:48 87天0时55分59秒 2025-04-03 11:09:18 @@ -64,7 +64,7 @@ Assume the HTTP API returns the following XML data: NTP 34.191.45.101 - + ``` We want to monitor the device status and extract various metrics. diff --git a/home/docs/advanced/extend-http.md b/home/docs/advanced/extend-http.md index 3296ce42fcc..1b7330f75eb 100644 --- a/home/docs/advanced/extend-http.md +++ b/home/docs/advanced/extend-http.md @@ -45,9 +45,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/docs/advanced/extend-point.md b/home/docs/advanced/extend-point.md index 57b51e18ffb..dc3046d15af 100644 --- a/home/docs/advanced/extend-point.md +++ b/home/docs/advanced/extend-point.md @@ -40,9 +40,9 @@ name: en-US: EXAMPLE WEBSITE # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/docs/advanced/extend-tutorial.md b/home/docs/advanced/extend-tutorial.md index 321b65ee356..f78d8b5329a 100644 --- a/home/docs/advanced/extend-tutorial.md +++ b/home/docs/advanced/extend-tutorial.md @@ -80,9 +80,9 @@ name: en-US: HertzBeat Monitor # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -229,4 +229,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. Thanks for the old iron support. Refill! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/docs/community/code-style-and-quality-guide.md b/home/docs/community/code-style-and-quality-guide.md index 882c59c015f..f1a489a92fa 100644 --- a/home/docs/community/code-style-and-quality-guide.md +++ b/home/docs/community/code-style-and-quality-guide.md @@ -129,7 +129,7 @@ Error code description: 1. Prioritize selecting nouns for variable naming, it's easier to distinguish between `variables` or `methods`. ```java - Cache publicKeyCache; + Cache`` publicKeyCache; ``` 2. Pinyin abbreviations are prohibited for variables (excluding nouns such as place names), such as chengdu. @@ -210,7 +210,7 @@ Error code description: - The referenced `package` or `resource` name doesn't need to be extracted as constant. -3. Variables that have not been reassigned must also be declared as final types. +3. Variables that have not been reassigned must also be declared as `` final `` types. 4. About the arrangement order of `constant/variable` lines @@ -229,7 +229,7 @@ Error code description: For example, if the parameter cannot be null, it is best to add a `@Nonnull` annotation. If the returned value can be null, the `@Nullable` annotation should be added first. - Note: that the package name is javax.validation.requirements + `` Note: that the package name is ``javax.validation.requirements`` `` 3. If there are too many lines of code in the method, please have a try on using multiple sub methods at appropriate points to segment the method body. @@ -245,9 +245,9 @@ Error code description: ### 3.4 Collection Rule 1. For `collection` returned values, unless there are special `concurrent` (such as thread safety), always return the `interface`, such as: - - returns List if use `ArrayList` - - returns Map if use `HashMap` - - returns Set if use `HashSet` + - returns `` List `` if use `ArrayList` + - returns `` Map `` if use `HashMap` + - returns `` Set `` if use `HashSet` 2. If there are multiple threads, the following declaration or returned types can be used: ```java @@ -276,7 +276,7 @@ Error code description: 1. The `thread pool` needs to be managed, using a unified entry point to obtain the `thread pool`. - Note: During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. + `` Note: During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. `` 2. `Thread pool` needs to be resource constrained to prevent resource leakage caused by improper handling @@ -618,7 +618,7 @@ public void process(String input) { ```java // ignored declaration lines. - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); LOG.debug("All users: {}", getAllUserIds(userList)); ``` @@ -628,7 +628,7 @@ public void process(String input) { ```java // ignored declaration lines. - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); if (LOG.isDebugEnabled()) { LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); } @@ -642,8 +642,8 @@ public void process(String input) { ## References -- -- -- -- -- +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/docs/community/contribution.md b/home/docs/community/contribution.md index d10ee429cce..cbb606d2687 100644 --- a/home/docs/community/contribution.md +++ b/home/docs/community/contribution.md @@ -85,7 +85,7 @@ Of course, if you have a good idea, you can also propose it directly on GitHub D 2. Then download the code locally with git command: ```shell - git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended ``` 3. After the download is complete, please refer to the getting started guide or README file of the target repository to initialize the project. diff --git a/home/docs/community/document.md b/home/docs/community/document.md index 898de70c9e2..3c7c5fd956f 100644 --- a/home/docs/community/document.md +++ b/home/docs/community/document.md @@ -40,8 +40,8 @@ This website is compiled using node, using Docusaurus framework components 1. Download and install nodejs (version 18.8.0) 2. Clone the code to the local `git clone git@github.com:apache/hertzbeat.git` 3. In `home` directory run `npm install` to install the required dependent libraries. -4. In `home` directory run `npm run start`, you can visit to view the English mode preview of the site -5. In `home` directory run `npm run start-zh-cn`, you can visit to view the Chinese mode preview of the site +4. In `home` directory run `npm run start`, you can visit [http://localhost:3000](http://localhost:3000) to view the English mode preview of the site +5. In `home` directory run `npm run start-zh-cn`, you can visit [http://localhost:3000](http://localhost:3000) to view the Chinese mode preview of the site 6. To generate static website resource files, run `npm run build`. The static resources of the build are in the build directory. ## Document Format Inspection diff --git a/home/docs/community/how-to-release.md b/home/docs/community/how-to-release.md index b486d414173..3067b17dc5d 100644 --- a/home/docs/community/how-to-release.md +++ b/home/docs/community/how-to-release.md @@ -49,10 +49,10 @@ What keysize do you want? (3072) 4096 # Please enter 4096 here Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire - = key expires in n days -w = key expires in n weeks -m = key expires in n months -y = key expires in n years +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years Key is valid for? (0) 0 # Please enter 0 Key does not expire at all Is this correct? (y/N) y # Please enter y here @@ -63,7 +63,7 @@ Real name: muchunjin # Please enter 'gpg real name' Email address: muchunjin@apache.org # Please enter your apache email address here Comment: apache key # Please enter some comments here You selected this USER-ID: - "muchunjin (apache key) " + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here We need to generate a lot of random bytes. It is a good idea to perform @@ -79,7 +79,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ # Here you need to re-enter the password in the previous step. @@ -88,7 +88,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ gpg: key ACFB69E705016886 marked as ultimately trusted gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' @@ -96,7 +96,7 @@ public and secret key created and signed. pub rsa4096 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid muchunjin (apache key) +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096 2023-05-01 [E] ``` @@ -110,7 +110,7 @@ $ gpg --keyid-format SHORT --list-keys ------------------------ pub rsa4096/05016886 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid [ultimate] muchunjin (apache key) +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096/0C5A4E1C 2023-05-01 [E] # Send public key to keyserver via key id @@ -124,17 +124,17 @@ Verify whether it is synchronized to the public network, it will take about a mi ```shell $ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success -gpg: key ACFB69E705016886: "muchunjin (apache key) " not changed +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed gpg: Total number processed: 1 gpg: unchanged: 1 ``` -Or enter address in the browser, enter the name of the key and click 'Search key' to search if existed. +Or enter [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) address in the browser, enter the name of the key and click 'Search key' to search if existed. #### 2.4 Add the gpg public key to the KEYS file of the Apache SVN project repo -- Apache HertzBeat™ Branch Dev -- Apache HertzBeat™ Branch Release +- Apache HertzBeat™ Branch Dev [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat™ Branch Release [https://dist.apache.org/repos/dist/release/hertzbeat](https://dist.apache.org/repos/dist/release/hertzbeat) ##### 2.4.1 Add public key to KEYS in dev branch @@ -170,7 +170,7 @@ $ svn ci -m "add gpg key for muchunjin" ### Build Package -#### 3.1 Based on the master branch, create a release-${release_version}-rcx branch, such as release-1.7.3-rc1, And create a tag named v1.7.3-rc1 based on the release-1.7.3-rc1 branch, and set this tag as pre-release +#### 3.1 Based on the master branch, create a release-`release_version`-rcx branch, such as release-1.7.3-rc1, And create a tag named v1.7.3-rc1 based on the release-1.7.3-rc1 branch, and set this tag as pre-release ```shell git checkout master @@ -277,19 +277,19 @@ $ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done apache-hertzbeat-1.7.3-bin.tar.gz gpg: Signature made Tue May 2 12:16:35 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-1.7.3-docker-compose.tar.gz gpg: Signature made Tue May 2 12:16:36 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-1.7.3-src.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-collector-1.7.3-bin.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] # Verify SHA512 $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done @@ -317,7 +317,7 @@ svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat - Copy the material package to the dev directory -Create a version number directory and name it in the form of ${release_version}-${RC_version}. RC_version starts from 1, that is, the candidate version starts from RC1. During the release process, there is a problem that causes the vote to fail. +Create a version number directory and name it in the form of `release_version`-`RC_version`. RC_version starts from 1, that is, the candidate version starts from RC1. During the release process, there is a problem that causes the vote to fail. If it needs to be corrected, it needs to iterate the RC version , the RC version number needs to be +1. For example: Vote for version 1.7.3-RC1. If the vote passes without any problems, the RC1 version material will be released as the final version material. If there is a problem (when the hertzbeat/incubator community votes, the voters will strictly check various release requirements and compliance issues) and need to be corrected, then re-initiate the vote after the correction, and the candidate version for the next vote is 1.7.3- RC2. @@ -345,7 +345,7 @@ svn commit -m "release for HertzBeat 1.7.3" - Check Apache SVN Commit Results -> Visit the address in the browser, check if existed the new material package +> Visit the address [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) in the browser, check if existed the new material package ## 4. Enter the community voting stage @@ -353,7 +353,7 @@ svn commit -m "release for HertzBeat 1.7.3" Send a voting email in the community requires at least three `+1` and no `-1`. -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat™ 1.7.3 rc1
> `Body`: @@ -406,7 +406,7 @@ Thanks! After 72 hours, the voting results will be counted, and the voting result email will be sent, as follows. -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat™ 1.7.3-rc1
> `Body`: @@ -435,7 +435,7 @@ Best, ChunJin Mu ``` -One item of the email content is `Vote thread`, and the link is obtained here: +One item of the email content is `Vote thread`, and the link is obtained here: [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) ## 4. Complete the final publishing steps @@ -447,10 +447,10 @@ svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1 https://dist.a #### 4.2 Add the new version download address to the official website - - +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) -Open the official website address to see if there is a new version of the download +Open the official website address [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) to see if there is a new version of the download > It should be noted that the download link may take effect after an hour, so please pay attention to it. @@ -483,8 +483,8 @@ The rename the release-1.7.3-rc1 branch to release-1.7.3. #### 4.5 Send new version announcement email -> `Send to`:
-> `cc`:
+> `Send to`: [announce@apache.org](mailto:announce@apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [ANNOUNCE] Apache HertzBeat™ 1.7.3 released
> `Body`: diff --git a/home/docs/community/how-to-verify.md b/home/docs/community/how-to-verify.md index 8de9e4f1030..91aa60cdb7b 100644 --- a/home/docs/community/how-to-verify.md +++ b/home/docs/community/how-to-verify.md @@ -8,7 +8,7 @@ sidebar_position: 4 For detailed check list, please refer to the official [check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) -Version content accessible in browser +Version content accessible in browser [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) ### 1. Download the candidate version @@ -22,9 +22,9 @@ If the network is poor, downloading may be time-consuming. The download is compl ```shell #If there is svn locally, you can clone to the local -$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/ +$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ #or download the material file directly -$ wget https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/xxx.xxx +$ wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx ``` ### 2. Verify that the uploaded version is compliant @@ -125,10 +125,10 @@ check as follows: > If the binary/web-binary package is uploaded, check the binary package. -Unzip `apache-hertzbeat-${release_version}-src.tar.gz` +Unzip `apache-hertzbeat-`release_version`-src.tar.gz` ```shell -cd apache-hertzbeat-${release_version}-src +cd apache-hertzbeat-`release_version`-src ``` compile the source code: [Build HertzBeat Binary Package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) @@ -153,7 +153,7 @@ If you initiate a posting vote, you can refer to this response example to reply :::caution Attention When replying to the email, you must bring the information that you have checked by yourself. Simply replying to `+1 approve` is invalid. -When new PMC votes in the hertzbeat community, Please bring the binding suffix to indicate that it has a binding vote for the vote in the hertzbeat community, and it is convenient to count the voting results. +When new PMC votes in the [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) hertzbeat community, Please bring the binding suffix to indicate that it has a binding vote for the vote in the hertzbeat community, and it is convenient to count the voting results. ::: Non-PMC member: diff --git a/home/docs/community/mailing_lists.md b/home/docs/community/mailing_lists.md index ef1a0a20329..938b1b5160b 100644 --- a/home/docs/community/mailing_lists.md +++ b/home/docs/community/mailing_lists.md @@ -34,7 +34,7 @@ Before you post anything to the mailing lists, be sure that you already **subscr | List Name | Address | Subscribe | Unsubscribe | Archive | |--------------------|--------------------------|--------------------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------| -| **Developer List** | | [subscribe](mailto:dev-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:dev-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | +| **Developer List** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [subscribe](mailto:dev-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:dev-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | ### Notification List @@ -42,16 +42,16 @@ Before you post anything to the mailing lists, be sure that you already **subscr | List Name | Address | Subscribe | Unsubscribe | Archive | |-----------------------|------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------| -| **Notification List** | | [subscribe](mailto:notifications-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | +| **Notification List** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [subscribe](mailto:notifications-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | ## Steps for Subscription Sending a subscription email is also very simple. The steps are as follows: - 1、**Subscribe**: Click the **subscribe** button in the above table, and it redirects to your mail client. The subject and content are arbitrary. - After that, you will receive a confirmation email from (if not received, please confirm whether the email is automatically classified as SPAM, promotion email, subscription email, etc.). + After that, you will receive a confirmation email from [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) (if not received, please confirm whether the email is automatically classified as SPAM, promotion email, subscription email, etc.). - 2、**Confirm**: Reply directly to the confirmation email, or click on the link in the email to reply quickly. The subject and content are arbitrary. -- 3、**Welcome**: After completing the above steps, you will receive a welcome email with the subject WELCOME to , and you have successfully subscribed to the Apache HertzBeat mailing list. +- 3、**Welcome**: After completing the above steps, you will receive a welcome email with the subject WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and you have successfully subscribed to the Apache HertzBeat mailing list. ## Post Plain Text Mails diff --git a/home/docs/community/maturity.md b/home/docs/community/maturity.md index e54c1c054ec..f0698ccff9e 100644 --- a/home/docs/community/maturity.md +++ b/home/docs/community/maturity.md @@ -47,7 +47,7 @@ community members are welcome to comment and modify it. | **ID** | **Description** | **Status** | |----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **RE10** | Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term. | **YES** Source release is distributed via [dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/hertzbeat/) and linked from [download page](https://hertzbeat.apache.org/docs/download). | -| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at and , and have at least 3 PPMC member's votes. | +| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) and [general@incubator.apache.org](mailto:general@incubator.apache.org), and have at least 3 PPMC member's votes. | | **RE30** | Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives. | **YES** All releases are signed, and the [KEYS](https://dist.apache.org/repos/dist/release/hertzbeat/KEYS) are available. | | **RE40** | The project can distribute convenience binaries alongside source code, but they are not Apache Releases, they are provided with no guarantee. | **YES** User can easily build binaries from source code, and we do not provide binaries as Apache Releases. | | **RE50** | The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release. | **YES** We can follow the [Release guide](https://hertzbeat.apache.org/docs/community/how_to_release) to make a new Apache HertzBeat release, and so far we had 4 different release managers. | @@ -72,14 +72,14 @@ community members are welcome to comment and modify it. | **CO40** | The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project. | **YES** The community has elected 3 new PMC members and 13 new committers so far. | | **CO50** | The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently. | **YES** The community has clear docs on nominating committers and PPMC members | | **CO60** | The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects. | **YES** All decisions are made after vote by community members. | -| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use , [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | +| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | ### Consensus | **ID** | **Description** | **Status** | |----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------| | **CS10** | The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors. | **Yes** See [members](https://hertzbeat.apache.org/team/) with all PPMC members and committers. | -| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on , and with at least 3 +1 votes from PPMC. | +| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and with at least 3 +1 votes from PPMC. | | **CS30** | The project uses documented voting rules to build consensus when discussion is not sufficient. | **YES** The project uses the standard ASF voting rules. | | **CS40** | In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30. | **YES** Apache HertzBeat community has not used the veto power yet except for code commits. | | **CS50** | All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel. | **YES** All important discussions and conclusions are recorded in written form. | diff --git a/home/docs/community/new_committer_process.md b/home/docs/community/new_committer_process.md index 6d7525c1818..b190b9f1ed4 100644 --- a/home/docs/community/new_committer_process.md +++ b/home/docs/community/new_committer_process.md @@ -69,17 +69,17 @@ NEW_COMMITTER_NAME This Must Be Public Name, Not Github Name Or Id. ```text To: private@hertzbeat.apache.org -Subject: [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hi HertzBeat PMC, -This is a formal vote about inviting ${NEW_COMMITTER_NAME} as our community new committer. +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. Work list: https://github.com/apache/hertzbeat/commits?author=xxx -Here is the list of ${NEW_COMMITTER_NAME}'s contributions in HertzBeat Community: +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: > [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) > @@ -96,7 +96,7 @@ Submitted Issues (18 commits) Please vote: -+1: I support this proposal and will welcome ${NEW_COMMITTER_NAME} as a committer. ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. +0: I don't care. -1: I object to this proposal and here are my reasons. @@ -117,7 +117,7 @@ Note that, Voting ends one week from today, i.e. ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text @@ -218,7 +218,7 @@ establishing you as a committer. ### Committer Accept Template ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org Subject: Re: invitation to become HertzBeat committer ``` @@ -268,18 +268,18 @@ The Apache HertzBeat new PMC ### Announce New Committer Template ```text -To: dev@hertzbeat.apache.org, ${NEW_COMMITTER_EMAIL} -Subject: [ANNOUNCE] New committer: ${NEW_COMMITTER_NAME} +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hello Community, The Podling Project Management Committee (new PMC) for Apache HertzBeat -has invited ${NEW_COMMITTER_NAME} to become a committer and we are pleased to +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to announce that he has accepted. -${NEW_COMMITTER_NAME} is active in the Apache HertzBeat community, hope to see your +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your further interactions with the community! Thanks for your contributions. diff --git a/home/docs/community/new_pmc_member_process.md b/home/docs/community/new_pmc_member_process.md index 6a9eac4bde4..a6532207375 100644 --- a/home/docs/community/new_pmc_member_process.md +++ b/home/docs/community/new_pmc_member_process.md @@ -65,17 +65,17 @@ Note that, there are three placeholder in template should be replaced before usi ```text To: private@hertzbeat.apache.org -Subject: [VOTE] new PMC member candidate: ${NEW_PMC_NAME} +Subject: [VOTE] new PMC member candidate: `NEW_PMC_NAME` ``` ```text Hi HertzBeat PMC, -This is a formal vote about inviting ${NEW_PMC_NAME} as our new PMC member. +This is a formal vote about inviting `NEW_PMC_NAME` as our new PMC member. ${Work list}[1] -[1] https://github.com/apache/hertzbeat/commits?author=${NEW_PMC_NAME} +[1] https://github.com/apache/hertzbeat/commits?author=`NEW_PMC_NAME` ``` Note that, Voting ends one week from today, i.e. [midnight UTC on YYYY-MM-DD](https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD) @@ -85,7 +85,7 @@ Note that, Voting ends one week from today, i.e. [midnight UTC on YYYY-MM-DD](ht ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] new PMC member: ${NEW_PMC_NAME} +Subject: [RESULT] [VOTE] new PMC member: `NEW_PMC_NAME` ``` ```text @@ -106,12 +106,12 @@ The vote is ***successful/not successful*** ```text To: board@apache.org -Cc: private@.apache.org -Subject: [NOTICE] ${NEW_PMC_NAME} for HertzBeat PMC member +Cc: private@``.apache.org +Subject: [NOTICE] `NEW_PMC_NAME` for HertzBeat PMC member ``` ```text -HertzBeat proposes to invite ${NEW_PMC_NAME} to join the PMC. +HertzBeat proposes to invite `NEW_PMC_NAME` to join the PMC. The vote result is available here: https://lists.apache.org/... ``` @@ -121,9 +121,9 @@ The vote result is available here: https://lists.apache.org/... ### PMC member Invite Template ```text -To: ${NEW_PMC_EMAIL} +To: `NEW_PMC_EMAIL` Cc: private@hertzbeat.apache.org -Subject: Invitation to become HertzBeat PMC member: ${NEW_PMC_NAME} +Subject: Invitation to become HertzBeat PMC member: `NEW_PMC_NAME` ``` ```text @@ -199,7 +199,7 @@ establishing you as a PMC. ### PMC member Accept Template ```text -To: ${NEW_PMC_EMAIL} +To: `NEW_PMC_EMAIL` Cc: private@hertzbeat.apache.org Subject: Re: invitation to become HertzBeat PMC member ``` @@ -249,13 +249,13 @@ The Apache HertzBeat PMC ### PMC member Done Template ```text -To: private@hertzbeat.apache.org, ${NEW_PMC_EMAIL} -Subject: account request: ${NEW_PMC_NAME} +To: private@hertzbeat.apache.org, `NEW_PMC_EMAIL` +Subject: account request: `NEW_PMC_NAME` ``` ```text -${NEW_PMC_EMAIL}, as you know, the ASF Infrastructure has set up your -committer account with the username '${NEW_PMC_APACHE_NAME}'. +`NEW_PMC_EMAIL`, as you know, the ASF Infrastructure has set up your +committer account with the username '`NEW_PMC_APACHE_NAME`'. Please follow the instructions to set up your SSH, svn password, svn configuration, email forwarding, etc. @@ -284,19 +284,19 @@ A PMC member will announce your election to the dev list soon. ```text To: dev@hertzbeat.apache.org -[ANNONCE] new PMC member: ${NEW_PMC_NAME} +[ANNONCE] new PMC member: `NEW_PMC_NAME` ``` ```text Hi HertzBeat Community, The Podling Project Management Committee (PMC) for Apache HertzBeat -has invited ${NEW_PMC_NAME} to become our PMC member and +has invited `NEW_PMC_NAME` to become our PMC member and we are pleased to announce that he has accepted. ### add specific details here ### -Please join me in congratulating ${NEW_PMC_NAME}! +Please join me in congratulating `NEW_PMC_NAME`! Being a committer enables easier contribution to the project since there is no need to go via the patch diff --git a/home/docs/community/submit-code.md b/home/docs/community/submit-code.md index 4b5f5dacf42..c58670ef2f6 100644 --- a/home/docs/community/submit-code.md +++ b/home/docs/community/submit-code.md @@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -* First from the remote repository fork a copy of the code into your own repository +* First from the remote repository [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) fork a copy of the code into your own repository * The remote dev and merge branch is `master`. diff --git a/home/docs/download.md b/home/docs/download.md index ed0edb64f87..b1958923b62 100644 --- a/home/docs/download.md +++ b/home/docs/download.md @@ -28,8 +28,8 @@ Previous releases of HertzBeat may be affected by security issues, please use th > Apache HertzBeat™ provides a docker image for each release. You can pull the image from the [Docker Hub](https://hub.docker.com/r/apache/hertzbeat). -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) ## All Archived Releases diff --git a/home/docs/help/activemq.md b/home/docs/help/activemq.md index ee014e7ce8c..17b5248feef 100644 --- a/home/docs/help/activemq.md +++ b/home/docs/help/activemq.md @@ -29,8 +29,8 @@ keywords: [open source monitoring tool, monitoring Apache ActiveMQ metrics] ```text # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" @@ -39,8 +39,8 @@ keywords: [open source monitoring tool, monitoring Apache ActiveMQ metrics] Update to the following configuration, ⚠️ pay attention to modify `local external IP` ```text - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" diff --git a/home/docs/help/alert_notification_template.md b/home/docs/help/alert_notification_template.md index 04664e2b522..1856dd6ef10 100644 --- a/home/docs/help/alert_notification_template.md +++ b/home/docs/help/alert_notification_template.md @@ -50,12 +50,12 @@ HertzBeat notification templates are based on FreeMarker syntax, supporting vari ## Template Variables and Syntax Explanation - **Global Variables**: - - `${status}`:Alert status (e.g., alert, recovery, etc.) - - `${groupKey}`:Unique identifier for the group + - ``status``:Alert status (e.g., alert, recovery, etc.) + - ``groupKey``:Unique identifier for the group - `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:Common labels and annotations, accessed via `xxx` - **Alert Details List**: - - `${alerts}`:Collection of alert details, usually traversed with `<#list alerts as alert>` + - ``alerts``:Collection of alert details, usually traversed with `<#list alerts as alert>` - `${alert.labels.xxx}`、`${alert.annotations.xxx}`:Labels and annotations for a single alert - `${alert.content}`:Alert content - `${alert.triggerTimes}`:Number of triggers @@ -88,7 +88,7 @@ HertzBeat notification templates are based on FreeMarker syntax, supporting vari "labels": { <#if alert.labels?? && alert.labels?size gt 0> <#list alert.labels?keys as key> - "${key}": "${alert.labels[key]?json_string}"<#if key?has_next>, + "`key`": "${alert.labels[key]?json_string}"<#if key?has_next>, }, @@ -106,7 +106,7 @@ HertzBeat notification templates are based on FreeMarker syntax, supporting vari <#if alert.annotations?? && alert.annotations?size gt 0> "annotations": { <#list alert.annotations?keys as key> - "${key}": "${alert.annotations[key]?json_string}"<#if key?has_next>, + "`key`": "${alert.annotations[key]?json_string}"<#if key?has_next>, } @@ -117,7 +117,7 @@ HertzBeat notification templates are based on FreeMarker syntax, supporting vari "commonAnnotations": { <#if commonAnnotations?? && commonAnnotations?size gt 0> <#list commonAnnotations?keys as key> - "${key}": "${commonAnnotations[key]?json_string}"<#if key?has_next>, + "`key`": "${commonAnnotations[key]?json_string}"<#if key?has_next>, } diff --git a/home/docs/help/alert_sms.md b/home/docs/help/alert_sms.md index d194b252d2a..2b5dfe8d540 100644 --- a/home/docs/help/alert_sms.md +++ b/home/docs/help/alert_sms.md @@ -84,7 +84,7 @@ alerter: - Create a template with the following format: ```text - Monitor: ${instance}, Alert Level: ${priority}. Content: ${content} + Monitor: `instance`, Alert Level: `priority`. Content: `content` ``` - Submit the template for review diff --git a/home/docs/help/alert_telegram.md b/home/docs/help/alert_telegram.md index c33d2b0c72b..f2923b847f2 100644 --- a/home/docs/help/alert_telegram.md +++ b/home/docs/help/alert_telegram.md @@ -18,7 +18,7 @@ keywords: [open source monitoring tool, open source alerter, open source Telegra 2. Get the `User ID` of the recipient **Use the recipient account you want to notify to send a message to the newly created Bot account**, - Visit ```https://api.telegram.org/bot/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` + Visit ```https://api.telegram.org/bot``/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` ```json { diff --git a/home/docs/help/alert_threshold.md b/home/docs/help/alert_threshold.md index b281f40a7dc..be8e90bc5f7 100644 --- a/home/docs/help/alert_threshold.md +++ b/home/docs/help/alert_threshold.md @@ -5,8 +5,8 @@ sidebar_label: Alarm Threshold --- :::tip -Alarm Threshold are the core function of `HertzBeat`, users can configure the trigger conditions of the alarm through the threshold rules. -Threshold rules support real-time threshold and scheduled threshold, and can be applied to **monitoring metrics** and **log data** data types. Real-time thresholds can directly trigger alerts when monitoring data is collected, and scheduled thresholds support PromQL, SQL and other expressions to calculate trigger alerts within a specified time period. +Alarm Threshold are the core function of `HertzBeat`, users can configure the trigger conditions of the alarm through the threshold rules. +Threshold rules support real-time threshold and scheduled threshold, and can be applied to **monitoring metrics** and **log data** data types. Real-time thresholds can directly trigger alerts when monitoring data is collected, and scheduled thresholds support PromQL, SQL and other expressions to calculate trigger alerts within a specified time period. Support visual page configuration or more flexible expression rule configuration, support configuring trigger times, alarm levels, notification templates, associated specified monitoring and so on. Notification templates support object nested access, which can display alarm information more flexibly. ::: @@ -31,13 +31,13 @@ Configure the threshold, for example: Select the SSL certificate metric object, Configuration item details: - **Threshold Name**: Unique name defining this threshold rule -- **Data Type**: Select monitoring metrics or log data +- **Data Type**: Select monitoring metrics or log data - **Metric Object**: Select the monitoring metric object for which we need to configure the threshold. For example: Under website monitoring type -> response time metric - **Threshold Rule**: Configure the alarm trigger rules for specific indicators, support graphical interface and expression rules. For expression environment variables and operators, see the page prompts. For detailed help on threshold expressions, see [Threshold Expression Help](alert_threshold_expr) - **Associated Monitors**: Apply this threshold rule to the specified monitoring object (support direct binding and label association). If not configured, it will be applied to all monitoring objects that meet this threshold type rule - **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency - **Trigger Count**: Set how many times the threshold must be triggered before the alert is actually triggered -- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page, supports object nested access. For example: `${__instancename__} ${__metric__} metric value is ${responseTime}, which is greater than 50 triggering the alert`, also supports accessing object properties like `${log.attributes.hostname}` +- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page, supports object nested access. For example: `__instancename__`, metric value is `responseTime`, which is greater than 50 triggering the alert, also supports accessing object properties like `${log.attributes.hostname}` - **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert - **Additional Annotations**: Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm - **Enable Alert**: Enable or disable this alert threshold configuration @@ -64,7 +64,7 @@ Configuration item details: - **Individual Mode (individual)**: Send each log that meets the conditions as a separate alert - **Trigger Count**: Set how many logs that meet the conditions within the time window will trigger the alert - **Notification Template**: The template for the notification message sent after the alert is triggered, supports object nested access: - - Basic variables: `${__instancename__}`, `${__alertname__}`, etc. + - Basic variables: ``__instancename__``, ``__alertname__``, etc. - Log fields: `${log.level}`, `${log.message}`, `${log.timestamp}`, etc. - Nested attributes: `${log.attributes.hostname}`, `${log.resource.service.name}`, etc. - **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert @@ -90,7 +90,7 @@ Supports PromQL-style queries. For specific syntax, please refer to the official ```text cpu_usage - memory{\__field\__="field1"} + memory{__field__="field1"} ``` 2. **Comparison Expressions**: Used to compare values against thresholds @@ -121,15 +121,15 @@ Supports standard SQL syntax to query log data and filter data, allowing aggrega ```sql -- Query error log count -SELECT COUNT(*) as error_count -FROM hertzbeat_logs -WHERE level = 'ERROR' +SELECT COUNT(*) as error_count +FROM hertzbeat_logs +WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE -- Group by service to count errors SELECT service_name, COUNT(*) as error_count -FROM hertzbeat_logs -WHERE level = 'ERROR' +FROM hertzbeat_logs +WHERE level = 'ERROR' GROUP BY service_name HAVING COUNT(*) > 10 ``` @@ -140,7 +140,7 @@ HAVING COUNT(*) > 10 #### Monitoring Metrics Scheduled Threshold -Configure scheduled thresholds for monitoring metrics. For example: define the expression `cpu_usage{instance="server1"} > 80` for a group of CPU metrics, and trigger an alert when the expression is satisfied. +Configure scheduled thresholds for monitoring metrics. For example: define the expression `cpu_usage{instance="server1"}` > 80` for a group of CPU metrics, and trigger an alert when the expression is satisfied. ![threshold](/img/docs/help/alert-threshold-2.png) @@ -177,7 +177,7 @@ Configuration Items Explained: - **Log Query Expression**: Use standard SQL syntax to query log data, supporting aggregation functions, grouping, filtering and other operations. For example: ```sql -SELECT COUNT(*) as error_count FROM hertzbeat_logs +SELECT COUNT(*) as error_count FROM hertzbeat_logs WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE ``` @@ -188,8 +188,8 @@ WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE - **Individual Mode (individual)**: Send each row in the query result as a separate alert - **Trigger Count**: The number of consecutive times the query result meets the alert condition before an alert is actually triggered - **Notification Template**: The message template sent when an alert is triggered, supports accessing fields in the query result, for example: - - Query result fields: `${error_count}`, `${service_name}`, etc. - - Basic variables: `${__alertname__}`, `${__severity__}`, etc. + - Query result fields: ``error_count``, ``service_name``, etc. + - Basic variables: ``__alertname__``, ``__severity__``, etc. - **Additional Labels**: Custom labels that will be attached to the alert when it is generated - **Additional Annotations**: Custom annotation information (supports environment variables) that will be rendered and attached to the alert - **Enable Alerting**: Controls whether this threshold rule is active or not diff --git a/home/docs/help/alert_threshold_expr.md b/home/docs/help/alert_threshold_expr.md index 0dcc65f396a..3a0b3ad3af4 100644 --- a/home/docs/help/alert_threshold_expr.md +++ b/home/docs/help/alert_threshold_expr.md @@ -1,6 +1,6 @@ --- -id: alert_threshold_expr -title: Threshold Trigger Expression +id: alert_threshold_expr +title: Threshold Trigger Expression sidebar_label: Threshold Trigger Expression --- @@ -19,29 +19,29 @@ sidebar_label: Threshold Trigger Expression | Exists | exists(obj) | String, Numeric, Time | Check if value exists | | Not Exists | !exists(obj) | String, Numeric, Time | Check if value does not exist | | Greater than | obj1 > obj2 | Numeric, Time | Check if value is greater than | -| Less than | obj1 < obj2 | Numeric, Time | Check if value is less than | +| Less than | `obj1 < obj2` | Numeric, Time | Check if value is less than | | Greater than or Equal to | obj1 >= obj2 | Numeric, Time | Check if value is greater than or equal to | -| Less than or Equal to | obj1 <= obj2 | Numeric, Time | Check if value is less than or equal to | +| Less than or Equal to | `obj1 <= obj2` | Numeric, Time | Check if value is less than or equal to | | Not Equal to | obj1 != obj2 | Numeric, Time | Check if values are not equal | | Equal to | obj1 == obj2 | Numeric, Time | Check if values are equal | #### Expression Function Library List -| Supported Function Library | Description | -|----------------------------------------------|--------------------------------------------------------------------------------------------| -| condition ? trueExpression : falseExpression | Ternary operator | -| toDouble(str) | Convert string to Double type | -| toBoolean(str) | Convert string to Boolean type | -| toInteger(str) | Convert string to Integer type | -| array[n] | Retrieve the nth element of an array | -| * | Multiplication | -| / | Division | -| % | Modulo | -| ( and ) | Parentheses for controlling the order of operations in logical or mathematical expressions | -| + | Addition | -| - | Subtraction | -| && | Logical AND operator | -| \|\| | Logical OR operator | +| Supported Function Library | Description | +|--------------------------------------------|------------------------------------------------------------------------------------------| +| condition ? trueExpression : falseExpression | Ternary operator | +| toDouble(str) | Convert string to Double type | +| toBoolean(str) | Convert string to Boolean type | +| toInteger(str) | Convert string to Integer type | +| array[n] | Retrieve the nth element of an array | +| * | Multiplication | +| / | Division | +| % | Modulo | +| ( and ) | Parentheses for controlling the order of operations in logical or mathematical expressions | +| + | Addition | +| - | Subtraction | +| && | Logical AND operator | +| \|\| | Logical OR operator | #### Supported Environment Variables @@ -58,7 +58,7 @@ This variable is mainly used for calculations involving multiple instances. For `responseTime>=400` 2. API Monitoring -> Alert when response time is greater than 3000ms `responseTime>3000` -3. Overall Monitoring -> Alert when response time for URL (instance) path '' is greater than 200ms +3. Overall Monitoring -> Alert when response time for URL (instance) path '[https://baidu.com](https://baidu.com)' is greater than 200ms `equals(instance,"https://baidu.com")&&responseTime>200` 4. MYSQL Monitoring -> Alert when 'threads_running' metric under 'status' exceeds 7 `threads_running>7` diff --git a/home/docs/help/alert_webhook.md b/home/docs/help/alert_webhook.md index 9d0db1f9ed3..0960ba545c6 100644 --- a/home/docs/help/alert_webhook.md +++ b/home/docs/help/alert_webhook.md @@ -26,7 +26,7 @@ Content format:JSON ```json { "alarmId": 76456, - "target": "${target}", + "target": "`target`", "thresholdId": 33455, "priority": 0, "content": "udp_port monitoring availability alert, code is FAIL", @@ -54,7 +54,7 @@ Content format:JSON | status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | | times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | | triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | -| tags | example: {key1:value1} | +| tags | example: `{key1:value1}` | ### Webhook notification common issues diff --git a/home/docs/help/dolphinscheduler.md b/home/docs/help/dolphinscheduler.md index a70aa100e0c..5a38033fecc 100644 --- a/home/docs/help/dolphinscheduler.md +++ b/home/docs/help/dolphinscheduler.md @@ -13,6 +13,7 @@ keywords: [ Open Source Monitoring System, Monitor Apache DolphinScheduler ] You need to create a token in Apache DolphinScheduler. + Please refer to [Open API](https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/api/open-api) to create a new token.The main steps are as follows 1. Log in to the Apache DolphinScheduler system, click "Security", then click "Token manage" on the left, and click "Create token" to create a token. diff --git a/home/docs/help/doris_be.md b/home/docs/help/doris_be.md index d1e6ea51874..1fc2f332d4b 100644 --- a/home/docs/help/doris_be.md +++ b/home/docs/help/doris_be.md @@ -142,14 +142,14 @@ keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS | Metric Name | Metric Unit | Metric help description | |-------|------|--------------------------------------------| | path | None | Specify data directory | -| value | Bytes | {path="/path1/"} represents the remaining disk space of the /path1 directory's disk. | +| value | Bytes | `{path="/path1/"}` represents the remaining disk space of the /path1 directory's disk. | #### Metric Set:doris_be_disks_total_capacity | Metric Name | Metric Unit | Metric help description | |-------|------|--------------------------------------------| | path | None | Specify data directory | -| value | Bytes | {path="/path1/"} represents the total disk space of the disk where the /path1 directory is located. | +| value | Bytes | `{path="/path1/"}` represents the total disk space of the disk where the /path1 directory is located. | #### Metric Set:doris_be_local_bytes_read_total diff --git a/home/docs/help/dynamic_tp.md b/home/docs/help/dynamic_tp.md index 72e6389fdde..d739d95d561 100644 --- a/home/docs/help/dynamic_tp.md +++ b/home/docs/help/dynamic_tp.md @@ -63,15 +63,15 @@ keywords: [open source monitoring tool, open source dynamicTp monitoring tool, m ### Configuration parameters -| Parameter name | Parameter help description | -| ------------ |------------------------------------ ------------------| -| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | -| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | -| Port | The port provided by the application service, the default is 8080. | -| Enable HTTPS | Whether to access the website through HTTPS, note ⚠️Enable HTTPS, the default corresponding port needs to be changed to 443 | -| Base Path | Exposed interface path prefix, default /actuator | +| Parameter name | Parameter help description | +|-------------------|-------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the application service, the default is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, note ⚠️Enable HTTPS, the default corresponding port needs to be changed to 443 | +| Base Path | Exposed interface path prefix, default /actuator | | Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | -| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | | Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | ### Collect metrics diff --git a/home/docs/help/grafana_dashboard.md b/home/docs/help/grafana_dashboard.md index 765b300c235..680c65b06df 100644 --- a/home/docs/help/grafana_dashboard.md +++ b/home/docs/help/grafana_dashboard.md @@ -19,7 +19,7 @@ keywords: [Grafana, Historical Dashboard] ### Enable Grafana embedded features and configure anonymous authentication with role-based permissions -ref: . +ref: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/). In the `Grafana` configuration file `grafana.ini`, set the configuration parameters. Or run `Grafana` via `Docker`. @@ -68,8 +68,8 @@ grafana: ### Upload Grafana monitor template json file in HertzBeat monitor In `HertzBeat`, when creating or editing a `Prometheus` type monitor, click Enable Grafana Templates and select the Grafana template json file to upload. -The monitor template json file can be downloaded at . -For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open , click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it. +The monitor template json file can be downloaded at [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/). +For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/), click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it. ![grafana-1.png](/img/docs/help/grafana-1.png) ### View Grafana historical charts diff --git a/home/docs/help/hive.md b/home/docs/help/hive.md index 34e8b53ca33..1d768c7b9b1 100644 --- a/home/docs/help/hive.md +++ b/home/docs/help/hive.md @@ -26,13 +26,13 @@ hive --service hiveserver2 & ### Configure parameters | Parameter name | Parameter Help describes the | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| | Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | | Monitoring Name | A name that identifies this monitoring that needs to be unique. | | Port | The default port provided by the database is 10002. | | Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | -| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | -| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | | Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | ### Collect metrics diff --git a/home/docs/help/http_sd.md b/home/docs/help/http_sd.md index 7b49cb66a8e..fd29acd77d1 100644 --- a/home/docs/help/http_sd.md +++ b/home/docs/help/http_sd.md @@ -198,7 +198,7 @@ public class ServiceDiscoveryController { @GetMapping("/services") public Map getServices() { - List targets = Arrays.asList( + List`` targets = Arrays.asList( "192.168.1.10:8080", "192.168.1.11:8080", "192.168.1.12:8080" diff --git a/home/docs/help/iceberg.md b/home/docs/help/iceberg.md index ceba73377af..979f82fd6cf 100644 --- a/home/docs/help/iceberg.md +++ b/home/docs/help/iceberg.md @@ -26,13 +26,13 @@ hive --service hiveserver2 & ### Configure parameters | Parameter name | Parameter Help describes the | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| | Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | | Monitoring Name | A name that identifies this monitoring that needs to be unique. | | Port | The default port provided by the database is 10002. | | Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | -| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | -| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | | Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | ### Collect metrics diff --git a/home/docs/help/iotdb.md b/home/docs/help/iotdb.md index 5399caa3c41..f449c5fd87e 100644 --- a/home/docs/help/iotdb.md +++ b/home/docs/help/iotdb.md @@ -48,7 +48,7 @@ The main steps are as follows: ### Configuration parameters | Parameter name | Parameter help description | -|--------|----------------------------------------- --------------| +|----------------|---------------------------------------------------| | Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | | Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | | Port | The port provided by the IoTDB Metric interface, which is 9091 by default. | @@ -100,14 +100,14 @@ The main steps are as follows: #### Metric collection: cache_hit cache | Metric Name | Metric Unit | Metric Help Description | -| ----------- |------|------------------------------ ----------------------| +| ----------- |------|-------------------------------| | name | None | Cache name chunk/timeSeriesMeta/bloomFilter | | value | % | chunk/timeSeriesMeta cache hit rate, bloomFilter interception rate | #### Metric collection: queue task queue | Metric Name | Metric Unit | Metric Help Description | -| ----------- |------|------------------------------ ---------------------| +| ----------- |------|------------------------------| | name | None | Queue name compaction_inner/compaction_cross/flush | | status | none | status running/waiting | | value | None | Number of tasks at current time | diff --git a/home/docs/help/issue.md b/home/docs/help/issue.md index 37b7105f8bd..0eae3fca8df 100644 --- a/home/docs/help/issue.md +++ b/home/docs/help/issue.md @@ -19,7 +19,7 @@ sidebar_label: Common issues > The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. > When you install HertzBeat via DockerDocker root is enabled by default. No such problem. - > See + > See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) 4. Configured Kubernetes monitoring, but the actual monitoring is not executing at the correct interval Please troubleshoot the issue by following these steps: @@ -47,7 +47,7 @@ sidebar_label: Common issues > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` -2. **According to the process deploy,visit no interface** +2. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** Please refer to the following points to troubleshoot issues: > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. @@ -61,7 +61,7 @@ sidebar_label: Common issues ### Package Deployment common issues -1. **According to the process deploy,visit no interface** +1. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** Please refer to the following points to troubleshoot issues: > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. diff --git a/home/docs/help/jetty.md b/home/docs/help/jetty.md index 2a3f69c13e4..92be2924c99 100644 --- a/home/docs/help/jetty.md +++ b/home/docs/help/jetty.md @@ -24,9 +24,9 @@ keywords: [open source monitoring tool, open source jetty web server monitoring java -jar $JETTY_HOME/start.jar --add-module=jmx-remote ``` - Successful command execution will create `${JETTY_BASE}/start.d/jmx-remote.ini` configuration file + Successful command execution will create ``JETTY_BASE`/start.d/jmx-remote.ini` configuration file -2. Edit the `${JETTY_BASE}/start.d/jmx-remote.ini` configuration file to modify the JMX IP port and other parameters. +2. Edit the ``JETTY_BASE`/start.d/jmx-remote.ini` configuration file to modify the JMX IP port and other parameters. **`localhost` needs to be modified to expose the IP** diff --git a/home/docs/help/jvm.md b/home/docs/help/jvm.md index 477d9fbece1..1d59d025d41 100644 --- a/home/docs/help/jvm.md +++ b/home/docs/help/jvm.md @@ -13,7 +13,7 @@ keywords: [open source monitoring tool, open source java jvm monitoring tool, mo 1. Add JVM `VM options` When Start Server ⚠️ customIP -Refer: +Refer: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) ```shell -Djava.rmi.server.hostname=customIP diff --git a/home/docs/help/kafka_promql.md b/home/docs/help/kafka_promql.md index 203ef2bef4b..ef790ba1e61 100644 --- a/home/docs/help/kafka_promql.md +++ b/home/docs/help/kafka_promql.md @@ -37,7 +37,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | @@ -46,7 +46,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | @@ -55,7 +55,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | diff --git a/home/docs/help/kubernetes.md b/home/docs/help/kubernetes.md index c1488130fcb..48369057ff5 100644 --- a/home/docs/help/kubernetes.md +++ b/home/docs/help/kubernetes.md @@ -38,14 +38,14 @@ kubectl create token --duration=1000h cluster-admin ### Configure parameters | Parameter name | Parameter Help describes the | -|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| | Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | | Monitoring Name | A name that identifies this monitoring that needs to be unique. | | APiServer port | K8s APiServer port, default 6443 | | token | Authorize the Access Token | -| URL | The database connection URL is optional, if configured, the database name, user name and password parameters in the URL will override the parameter | configured above | -| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | -| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | +| URL | The database connection URL is optional, if configured, the database name, user name and password parameters in the URL will override the parameter configured above | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | | Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | ### Collect metrics @@ -53,13 +53,13 @@ kubectl create token --duration=1000h cluster-admin #### metric collection: nodes | Metric Name | metric unit | Metrics help describe | -|--------------------|-------------|-----------------------|-----------| +|--------------------|-------------|-----------------------| | node_name | None | Node name | | is_ready | None | Node Status | | capacity_cpu | None | CPU capacity | -| allocatable_cpu | None | CPU | allotted | +| allocatable_cpu | None | CPU allotted | | capacity_memory | None | Memory capacity | -| allocatable_memory | None | Memory | allocated | +| allocatable_memory | None | Memory allocated | | creation_time | None | Node creation time | | uid | None | UUID unique identifier| @@ -75,9 +75,9 @@ kubectl create token --duration=1000h cluster-admin #### metric collection: pods | Metric Name | metric unit | Metrics help describe | -|---------------|-------------|-------------------------------|--------------------------| +|---------------|-------------|-------------------------------| | pod | None | Pod name | -| namespace | None | The namespace | to which the pod belongs | +| namespace | None | The namespace to which the pod belongs | | status | None | Pod status | | restart | None | Number of restarts | | host_ip | None | The IP address of the host is | @@ -89,9 +89,9 @@ kubectl create token --duration=1000h cluster-admin #### metric Collection: services | Metric Name | metric unit | Metrics help describe | -|---------------|-------------|-----------------------------------------------------------|------------------------------| +|---------------|-------------|-----------------------------------------------------------| | service | None | Service Name | -| namespace | None | The namespace | to which the service belongs | +| namespace | None | The namespace to which the service belongs | | type | None | Service Type ClusterIP NodePort LoadBalancer ExternalName | | cluster_ip | None | cluster ip | | selector | None | tag selector matches | diff --git a/home/docs/help/linux_script.md b/home/docs/help/linux_script.md index 46cd2ea6687..e51d40c8028 100644 --- a/home/docs/help/linux_script.md +++ b/home/docs/help/linux_script.md @@ -14,10 +14,10 @@ If the collector is installed using Docker, it will cause the collector to be un ### Configuration Parameters | Parameter Name | Parameter Description | -|:---------------|-----------------------------------------------------|---| +|:---------------|-----------------------------------------------------| | Monitor Host | The IPv4, IPv6, or domain of the monitored endpoint. Note ⚠️ Do not include protocol headers (e.g., https://, http://). | | Task Name | The name identifying this monitoring task, which needs to be unique. | -| Collector | Specifies which collector will be used for data collection in this monitoring task. | +| Collector | Specifies which collector will be used for data collection in this monitoring task. | | Monitoring Interval | The time interval for periodic data collection, in seconds. | | Binding Tag | Classification management tags for monitoring resources. | | Description Notes | Additional notes to describe this monitoring task. Users can add remarks here. | diff --git a/home/docs/help/log_integration.md b/home/docs/help/log_integration.md index 3cf3925ed2a..ac1e9b9884a 100644 --- a/home/docs/help/log_integration.md +++ b/home/docs/help/log_integration.md @@ -1,12 +1,16 @@ --- id: log_integration -title: Log Integration -sidebar_label: Log Integration +title: Log Integration (Beta) +sidebar_label: Log Integration (Beta) keywords: [open source monitoring, log integration, log management, multi-source logs] --- > HertzBeat's log integration module aims to achieve unified reception, standardized processing of log data from different third-party log systems and observability platforms. As a centralized "log center", HertzBeat can efficiently integrate log information from external systems and provide real-time log monitoring and analysis capabilities. +:::warning +The log integration feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration. +::: + ### Core Capabilities - **Multi-source Log Integration**: Support receiving log data from mainstream platforms such as OpenTelemetry, Filebeat, Vector, Loki diff --git a/home/docs/help/log_manage.md b/home/docs/help/log_manage.md index 92826958a0c..2440c6e3be1 100644 --- a/home/docs/help/log_manage.md +++ b/home/docs/help/log_manage.md @@ -1,12 +1,16 @@ --- id: log_manage -title: Log Management -sidebar_label: Log Management +title: Log Management (Beta) +sidebar_label: Log Management (Beta) keywords: [open source monitoring, log management, log query, log statistics, log deletion] --- > HertzBeat's log management feature provides comprehensive log data management capabilities, including log querying, statistical analysis, and batch deletion operations. Users can precisely search logs through various filter conditions, view detailed statistical charts, and clean up unnecessary log data. +:::warning +The log management feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration. +::: + ## Prerequisites **Before using the log management feature, you must first configure a database that supports log storage.** diff --git a/home/docs/help/log_stream.md b/home/docs/help/log_stream.md index 9b834e3c8a9..41fc1db0619 100644 --- a/home/docs/help/log_stream.md +++ b/home/docs/help/log_stream.md @@ -1,12 +1,16 @@ --- id: log_stream -title: Log Stream -sidebar_label: Log Stream +title: Log Stream (Beta) +sidebar_label: Log Stream (Beta) keywords: [open source monitoring, log stream, real-time logs, log filtering] --- > HertzBeat's log stream feature provides real-time log viewing and filtering capabilities, including real-time log monitoring, multi-dimensional filtering, and log detail viewing. Users can monitor system logs in real-time and perform precise filtering based on different conditions to quickly locate issues and analyze system status. +:::warning +The log stream feature is currently in Beta (experimental) stage. There may be potential defects and limitations. The feature is under active development and iteration. +::: + ## Feature Overview In the HertzBeat interface, navigate to "Log" -> "Log Stream" page, where you will see a comprehensive real-time log monitoring interface. diff --git a/home/docs/help/mariadb.md b/home/docs/help/mariadb.md index 0f8d585449c..6bd75d08c48 100644 --- a/home/docs/help/mariadb.md +++ b/home/docs/help/mariadb.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/docs/help/memcached.md b/home/docs/help/memcached.md index e933b471883..a1949f535cb 100644 --- a/home/docs/help/memcached.md +++ b/home/docs/help/memcached.md @@ -30,7 +30,7 @@ STAT version 1.4.15 ... ``` -**There is help_doc: ** +**There is help_doc: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** ### Configuration parameter diff --git a/home/docs/help/mysql.md b/home/docs/help/mysql.md index 0daa3f84d51..f21a1a1da87 100644 --- a/home/docs/help/mysql.md +++ b/home/docs/help/mysql.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.4.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.4.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.4.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.4.0) - It is recommended that you use the latest available mysql-connector-java version as there are regular security fixes to JDBC drivers. - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/docs/help/nacos.md b/home/docs/help/nacos.md index eb4cb0b5e25..6b5f6f1f523 100644 --- a/home/docs/help/nacos.md +++ b/home/docs/help/nacos.md @@ -54,41 +54,41 @@ More information see [Nacos monitor guide](https://nacos.io/en-us/docs/monitor-g | http_server_requests_seconds_sum | second | http requests time | | nacos_timer_seconds_sum | second | Nacos config notify time | | nacos_timer_seconds_count | none | Nacos config notify count | -| nacos_monitor{name='longPolling'} | none | Nacos config connection count | -| nacos_monitor{name='configCount'} | none | Nacos configuration file count | -| nacos_monitor{name='dumpTask'} | none | Nacos config dump task count | -| nacos_monitor{name='notifyTask'} | none | Nacos config notify task count | -| nacos_monitor{name='getConfig'} | none | Nacos config read configuration count | -| nacos_monitor{name='publish'} | none | Nacos config update configuration count | -| nacos_monitor{name='ipCount'} | none | Nacos naming ip count | -| nacos_monitor{name='domCount'} | none | Nacos naming domain count(1.x version) | -| nacos_monitor{name='serviceCount'} | none | Nacos naming domain count(2.x version) | -| nacos_monitor{name='failedPush'} | none | Nacos naming push fail count | -| nacos_monitor{name='avgPushCost'} | second | Nacos naming push cost time(average) | -| nacos_monitor{name='leaderStatus'} | none | Nacos naming if node is leader | -| nacos_monitor{name='maxPushCost'} | second | Nacos naming push cost time(max) | -| nacos_monitor{name='mysqlhealthCheck'} | none | Nacos naming mysql health check count | -| nacos_monitor{name='httpHealthCheck'} | none | Nacos naming http health check count | -| nacos_monitor{name='tcpHealthCheck'} | none | Nacos naming tcp health check count | +| nacos_monitor`{name="longPolling"}` | none | Nacos config connection count | +| nacos_monitor`{name="configCount"}` | none | Nacos configuration file count | +| nacos_monitor`{name="dumpTask"}` | none | Nacos config dump task count | +| nacos_monitor`{name="notifyTask"}` | none | Nacos config notify task count | +| nacos_monitor`{name="getConfig"}` | none | Nacos config read configuration count | +| nacos_monitor`{name="publish"}` | none | Nacos config update configuration count | +| nacos_monitor`{name="ipCount"}` | none | Nacos naming ip count | +| nacos_monitor`{name="domCount"}` | none | Nacos naming domain count(1.x version) | +| nacos_monitor`{name="serviceCount"}` | none | Nacos naming domain count(2.x version) | +| nacos_monitor`{name="failedPush"}` | none | Nacos naming push fail count | +| nacos_monitor`{name="avgPushCost"}` | second | Nacos naming push cost time(average) | +| nacos_monitor`{name="leaderStatus"}` | none | Nacos naming if node is leader | +| nacos_monitor`{name="maxPushCost"}` | second | Nacos naming push cost time(max) | +| nacos_monitor`{name="mysqlhealthCheck"}` | none | Nacos naming mysql health check count | +| nacos_monitor`{name="httpHealthCheck"}` | none | Nacos naming http health check count | +| nacos_monitor`{name="tcpHealthCheck"}` | none | Nacos naming tcp health check count | #### Metric set:Nacos exception | Metric name | Metric unit | Metric help description | |----------------------------------------------------|-------------|------------------------------------------------| -| nacos_exception_total{name='db'} | none | database exception | -| nacos_exception_total{name='configNotify'} | none | Nacos config notify exception | -| nacos_exception_total{name='unhealth'} | none | Nacos config server health check exception | -| nacos_exception_total{name='disk'} | none | Nacos naming write disk exception | -| nacos_exception_total{name='leaderSendBeatFailed'} | none | Nacos naming leader send heart beat fail count | -| nacos_exception_total{name='illegalArgument'} | none | request argument illegal count | -| nacos_exception_total{name='nacos'} | none | Nacos inner exception | +| nacos_exception_total`{name="db"}` | none | database exception | +| nacos_exception_total`{name="configNotify"}` | none | Nacos config notify exception | +| nacos_exception_total`{name="unhealth"}` | none | Nacos config server health check exception | +| nacos_exception_total`{name="disk"}` | none | Nacos naming write disk exception | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | none | Nacos naming leader send heart beat fail count | +| nacos_exception_total`{name="illegalArgument"}` | none | request argument illegal count | +| nacos_exception_total`{name="nacos"}` | none | Nacos inner exception | #### Metric set:client | Metric name | Metric unit | Metric help description | |----------------------------------------|-------------|-----------------------------------| -| nacos_monitor{name='subServiceCount'} | none | subscribed services count | -| nacos_monitor{name='pubServiceCount'} | none | published services count | -| nacos_monitor{name='configListenSize'} | none | listened configuration file count | +| nacos_monitor`{name="subServiceCount"}` | none | subscribed services count | +| nacos_monitor`{name="pubServiceCount"}` | none | published services count | +| nacos_monitor`{name="configListenSize"}` | none | listened configuration file count | | nacos_client_request_seconds_count | none | request count | | nacos_client_request_seconds_sum | second | request time | diff --git a/home/docs/help/nebulagraph.md b/home/docs/help/nebulagraph.md index 80e44bfe857..f12b0f50b5a 100644 --- a/home/docs/help/nebulagraph.md +++ b/home/docs/help/nebulagraph.md @@ -18,7 +18,7 @@ nebulaGraph_stats is nebulaGraph's statistics, and rocksdb_stats is rocksdb's st 1.1、 If you only need to get nebulaGraph_stats, you need to ensure that you have access to stats, or you'll get errors. -The default port is 19669 and the access address is +The default port is 19669 and the access address is [http://ip:19669/stats](http://ip:19669/stats) 1.2、If you need to obtain additional parameters for rocksdb stats, you need to ensure that you have access to rocksdb stats, otherwise an error will be reported. @@ -26,11 +26,11 @@ stats, otherwise an error will be reported. Once you connect to NebulaGraph for the first time, you must first register your Storage service in order to properly query your data. -**There is help_doc: ** +**There is help_doc: [https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** -**** +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** -The default port is 19779 and the access address is: +The default port is 19779 and the access address is:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) ### Configuration parameter @@ -51,7 +51,7 @@ The default port is 19779 and the access address is:** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** | Metric name | Metric unit | Metric help description | |---------------------------------------|-------------|--------------------------------------------------------------| @@ -63,7 +63,7 @@ Too many indicators, related links are as follows #### Metrics Set:rocksdb_stats Too many indicators, related links are as follows -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** | Metric name | Metric unit | Metric help description | |----------------------------|-------------|-------------------------------------------------------------| diff --git a/home/docs/help/nginx.md b/home/docs/help/nginx.md index ce7ccf536a4..9f9feffa872 100644 --- a/home/docs/help/nginx.md +++ b/home/docs/help/nginx.md @@ -111,7 +111,7 @@ If you want to monitor information in 'Nginx' with this monitoring type, you nee 4. Access `http://localhost/req-status` in the browser to view the Nginx monitoring status information. -**Refer Doc: ** +**Refer Doc: [https://github.com/zls0424/ngx_req_status](https://github.com/zls0424/ngx_req_status)** **⚠️Attention: The endpoint path of the monitoring module is `/nginx-status` `/req-status`** diff --git a/home/docs/help/oceanbase.md b/home/docs/help/oceanbase.md index fbadc0b8259..510934771f5 100644 --- a/home/docs/help/oceanbase.md +++ b/home/docs/help/oceanbase.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/docs/help/openai.md b/home/docs/help/openai.md index a7a10de2b19..0bf3c496af8 100644 --- a/home/docs/help/openai.md +++ b/home/docs/help/openai.md @@ -12,8 +12,8 @@ keywords: [open source monitoring system, open source network monitoring, OpenAI > 1. Open Chrome browser's network request interface > `Mac: cmd + option + i` > `Windows: ctrl + shift + i` -> 2. Visit -> 3. Find the request to +> 2. Visit [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. Find the request to [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) > 4. Find the Authorization field in the request headers, and copy the content after `Bearer`. For example: `sess-123456` ### Notes diff --git a/home/docs/help/ping.md b/home/docs/help/ping.md index bed89d53dcf..9535a311375 100644 --- a/home/docs/help/ping.md +++ b/home/docs/help/ping.md @@ -33,4 +33,4 @@ keywords: [open source monitoring tool, open source network monitoring tool, mon > The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. > When you install HertzBeat via DockerDocker root is enabled by default. No such problem. -> See +> See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/docs/help/rabbitmq.md b/home/docs/help/rabbitmq.md index 91fad16ff1e..4dd30d94318 100644 --- a/home/docs/help/rabbitmq.md +++ b/home/docs/help/rabbitmq.md @@ -18,7 +18,7 @@ keywords: [open source monitoring tool, open source rabbitmq monitoring tool, mo rabbitmq-plugins enable rabbitmq_management ``` -2. Access with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. +2. Access [http://ip:15672/](http://ip:15672/) with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. 3. Just add the corresponding RabbitMQ monitoring in HertzBeat, the parameters use the IP port of Management, and the default account password. @@ -106,7 +106,7 @@ keywords: [open source monitoring tool, open source rabbitmq monitoring tool, mo |------------------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------| | name | None | The name of the queue with non-ASCII characters escaped as in C. | | node | None | The queue on the node name | -| state | None | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| state | None | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | | type | None | Queue type, one of: quorum, stream, classic. | | vhost | None | vhost path | | auto_delete | None | Whether the queue will be deleted automatically when no longer used | diff --git a/home/docs/help/risc-v.md b/home/docs/help/risc-v.md index fa906ff12f0..6e44b36c6c1 100644 --- a/home/docs/help/risc-v.md +++ b/home/docs/help/risc-v.md @@ -20,7 +20,7 @@ sudo apt install opensbi qemu-system-misc u-boot-qemu **2. Download Ubuntu Image for RISC-V Architecture** -Download link: +Download link: [https://ubuntu.com/download/risc-v](https://ubuntu.com/download/risc-v) Select the `QEMU Emulator` version and download your preferred release. **3. Install Ubuntu on QEMU** @@ -51,7 +51,7 @@ Reference: [Ubuntu Official Documentation](https://canonical-ubuntu-boards.readt > Configure a JDK that supports RISC-V architecture. Here we use Temurin JDK 17. **1. Download Temurin JDK** -Download link: +Download link: [https://adoptium.net/temurin/releases](https://adoptium.net/temurin/releases) **2. Configure JDK Environment** diff --git a/home/docs/help/smtp.md b/home/docs/help/smtp.md index 4be044bc090..0a43c2dfab2 100644 --- a/home/docs/help/smtp.md +++ b/home/docs/help/smtp.md @@ -11,7 +11,7 @@ keywords: [ open source monitoring tool, open source SMTP monitoring tool, monit Determine whether the server is available through the hello command in SMTP ``` -> see +> see [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) **Protocol Use:SMTP** diff --git a/home/docs/help/spark.md b/home/docs/help/spark.md index ba63ce7df2a..8efa5ed7662 100644 --- a/home/docs/help/spark.md +++ b/home/docs/help/spark.md @@ -13,7 +13,7 @@ keywords: [open source monitoring tool, open source java spark monitoring tool, 1. Add Spark `VM options` When Start Server ⚠️ customIP -Refer: +Refer: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) **Monitoring configuration spark can be monitored by Master, Worker, driver, and executor. The Master and Worker can be monitored when the spark cluster is running, while the Driver and Excutor need to be monitored for an app.** **If you want to monitor them, perform the following steps to configure them** diff --git a/home/docs/help/spring_gateway.md b/home/docs/help/spring_gateway.md index 36c0a42f730..923eb239af1 100644 --- a/home/docs/help/spring_gateway.md +++ b/home/docs/help/spring_gateway.md @@ -1,5 +1,5 @@ --- -id: spring_gateway +id: spring_gateway Title: Monitoring Spring Cloud Gateway sidebar_label: Spring Cloud Gateway keywords: [open source monitoring tool, open source Spring Cloud Gateway monitoring tool, monitoring Spring Cloud Gateway metrics] @@ -69,9 +69,9 @@ management: #### metric Collection: threads | Metric Name | metric unit | Metrics help describe | -|-------------|-------------|----------------------------------|-------------------| +|-------------|-------------|----------------------------------| | state | None | Thread status | -| number | None | This thread state corresponds to | number of threads | +| number | None | This thread state corresponds to number of threads | #### metric Collection: memory_used diff --git a/home/docs/help/springboot2.md b/home/docs/help/springboot2.md index f2e2ea83a56..4292e101d01 100644 --- a/home/docs/help/springboot2.md +++ b/home/docs/help/springboot2.md @@ -1,6 +1,6 @@ --- -id: springboot2 -Title: Monitoring SpringBoot 2.0 +id: springboot2 +Title: Monitoring SpringBoot 2.0 sidebar_label: SpringBoot 2.0 keywords: [open source monitoring tool, open source springboot2 monitoring tool, monitoring springboot2 metrics] --- @@ -52,14 +52,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter{ ### Configure parameters | Parameter name | Parameter Help describes the | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| | Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | | Monitoring Name | A name that identifies this monitoring that needs to be unique. | | Port | The default port provided by the database is 8080. | | Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | -| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | -| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | -| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | +| Description remarks | For more information identifying and describing the remarks for this monitoring, users can remark the information here | ### Collect metrics @@ -83,13 +83,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter{ #### metric Collection: threads | Metric Name | metric unit | Metrics help describe | -|-------------|-------------|----------------------------------|-------------------| +|-------------|-------------|----------------------------------| | state | None | Thread status | -| number | None | This thread state corresponds to | number of threads | +| number | None | This thread state corresponds to number of threads | #### metric Collection: memory_used -| Metric Name | metric unit | Metrics help describe | -|-------------|-------------|--------------------------------------| -| space | None | Memory space name | -| mem_used | MB | This space occupies a memory size of | +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|------------------------------------------| +| space | None | Memory space name | +| mem_used | MB | This space occupies a memory size of | diff --git a/home/docs/help/status.md b/home/docs/help/status.md index e9ba56a6ff1..daf362a0f5c 100644 --- a/home/docs/help/status.md +++ b/home/docs/help/status.md @@ -17,9 +17,9 @@ The fields that need to be filled in are as follows: |--------------------------|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Organization Name | Name of the organization | HertzBeat | | Organization Description | Detailed description of the organization | Apache HertzBeat™ is an easy-to-use and user-friendly open-source real-time monitoring and alerting system, no agent required, high-performance cluster, compatible with Prometheus, providing powerful custom monitoring and status page building capabilities. | -| Website Link | URL of the organization's website for more information | | -| Logo Image | Path or URL of the organization's official logo image, preferably in .svg format | | -| Feedback Address | Address to receive feedback | | +| Website Link | URL of the organization's website for more information | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| Logo Image | Path or URL of the organization's official logo image, preferably in .svg format | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| Feedback Address | Address to receive feedback | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | | Theme Color | Main color tone of the status page | Click to select on the page | After filling in the organization information, click `Confirm`. diff --git a/home/docs/help/tdengine_promql.md b/home/docs/help/tdengine_promql.md index 0635accb0d6..8049756701c 100644 --- a/home/docs/help/tdengine_promql.md +++ b/home/docs/help/tdengine_promql.md @@ -67,13 +67,11 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, TD ### Indicator set: Dnode information | Indicator name | indicator unit | Indicators help describe | -| --- | | --- | -| taos_d_info_status | Ready indicates normal, offline indicates offline, and unknown indicates unknown. | dnode -status | +| --- | --- | --- | +| taos_d_info_status | Ready indicates normal, offline indicates offline, and unknown indicates unknown. | dnode status | | taos_dnodes_info_uptime | s | The startup time of this dnode | | taos_dnodes_info_cpu_engine | none | The percentage of CPU used by the process of this dnode. | -| taos_dnodes_info_cpu_system | none | The percentage of CPU used by the system of the node where the dnode is -located. | +| taos_dnodes_info_cpu_system | none | The percentage of CPU used by the system of the node where the dnode is located. | | taos_dnodes_info_mem_engine | KB | Memory used by the process of this dnode | | taos_dnodes_info_mem_system | KB | The memory used by the system of the node where the dnode is located. | | taos_dnodes_info_disk_total | Byte | The total disk capacity of the node where the dnode is located. | diff --git a/home/docs/help/template_marketplace.md b/home/docs/help/template_marketplace.md index eeb18d96046..fa8c8e16e95 100644 --- a/home/docs/help/template_marketplace.md +++ b/home/docs/help/template_marketplace.md @@ -16,23 +16,23 @@ sidebar_label: Template Marketplace 1. **No filter: displayed in order of upload** - ![search.png](../../static/img/template-marketplace/search.png) + ![search.png](/img/template-marketplace/search.png) 2. **Filtering by category: currently divided into six categories** > **📋Todo:** develop tag function, subdivided within the category, such as database monitoring template can be divided into MySQL, Oracle, etc. - ![search-category.png](../../static/img/template-marketplace/search-category.png) + ![search-category.png](/img/template-marketplace/search-category.png) 3. **Fuzzy search by Title** - ![search-name.png](../../static/img/template-marketplace/search-name.png) + ![search-name.png](/img/template-marketplace/search-name.png) 4. **Hover window function: download the latest version, view details, favorite/un-favorite** > Show if the user has favorites after logging in - ![img.png](../../static/img/template-marketplace/hover-window-guest.png)![img_1.png](../../static/img/template-marketplace/hover-window-user.png) + ![img.png](/img/template-marketplace/hover-window-guest.png)![img_1.png](/img/template-marketplace/hover-window-user.png) 5. **Sort: Eight Sorting Methods** @@ -48,19 +48,19 @@ sidebar_label: Template Marketplace > **📋Todo:** Upgrade to MarkDown format - ![img.png](../../static/img/template-marketplace/detail-info.png) + ![img.png](/img/template-marketplace/detail-info.png) 2. **Version: Historical version download, sharing and basic information display** > **📋Todo:** Set up a view function for each historical version to display information such as the version description. - ![img.png](../../static/img/template-marketplace/detail-version.png) + ![img.png](/img/template-marketplace/detail-version.png) 3. **FAQ** > **📋Todo:** Discussion or issue Q&A section - ![img.png](../../static/img/template-marketplace/detail-faq.png) + ![img.png](/img/template-marketplace/detail-faq.png) 4. **Download** @@ -68,7 +68,7 @@ sidebar_label: Template Marketplace > The latest version can also be downloaded directly from the template detail page. > The historical version can be downloaded from the version page. - ![img.png](../../static/img/template-marketplace/download.png) + ![img.png](/img/template-marketplace/download.png) 5. **Share** @@ -78,7 +78,7 @@ sidebar_label: Template Marketplace > > **📋Todo:** Shared template detail page is accessed through the URL of the shared template, and the shared person is free to choose whether to download or not. - ![img.png](../../static/img/template-marketplace/share.png) + ![img.png](/img/template-marketplace/share.png) ### User Center @@ -94,21 +94,21 @@ sidebar_label: Template Marketplace > > **📋Todo:** Function to update template information - ![img_1.png](../../static/img/template-marketplace/user-center-asset.png) + ![img_1.png](/img/template-marketplace/user-center-asset.png) - ![img.png](../../static/img/template-marketplace/asset-detail.png) + ![img.png](/img/template-marketplace/asset-detail.png) 2. **Version Upgrade** > The user defines the new version number under this template family, updates the version information, and uploads the latest version of the file - ![img.png](../../static/img/template-marketplace/asset-upgrade.png) + ![img.png](/img/template-marketplace/asset-upgrade.png) 3. **Star** - ![img.png](../../static/img/template-marketplace/user-center-star.png) + ![img.png](/img/template-marketplace/user-center-star.png) - ![img.png](../../static/img/template-marketplace/user-center-star-detail.png) + ![img.png](/img/template-marketplace/user-center-star-detail.png) 4. **Upload** @@ -116,7 +116,7 @@ sidebar_label: Template Marketplace > > Fill in the template name, select the template category, fill in the description information and version information, and upload files - ![img.png](../../static/img/template-marketplace/user-center-upload.png) + ![img.png](/img/template-marketplace/user-center-upload.png) ### Sign Up & Login @@ -128,13 +128,13 @@ sidebar_label: Template Marketplace > > **📋Todo:** Captcha function, email verification function - ![img.png](../../static/img/template-marketplace/sign-up.png) + ![img.png](/img/template-marketplace/sign-up.png) 2. **Login** > **📋Todo:** Captcha function and forgot password function - ![img.png](../../static/img/template-marketplace/email-login.png) + ![img.png](/img/template-marketplace/email-login.png) ## Development Steps diff --git a/home/docs/help/tidb.md b/home/docs/help/tidb.md index 2378b224110..73d8195aab4 100644 --- a/home/docs/help/tidb.md +++ b/home/docs/help/tidb.md @@ -50,5 +50,5 @@ Due to the large number of metrics that can be monitored, only the metrics queri | version_compile_machine | none | The name of the CPU architecture on which TiDB is running. | | version_compile_os | none | The name of the OS on which TiDB is running. | | max_connections | none | The maximum number of concurrent connections permitted for a single TiDB instance. This variable can be used for resources control. The default value 0 means no limit. When the value of this variable is larger than 0, and the number of connections reaches the value, the TiDB server rejects new connections from clients. | -| datadir | none | The location where data is stored. This location can be a local path /tmp/tidb, or point to a PD server if the data is stored on TiKV. A value in the format of ${pd-ip}:${pd-port} indicates the PD server that TiDB connects to on startup. | +| datadir | none | The location where data is stored. This location can be a local path /tmp/tidb, or point to a PD server if the data is stored on TiKV. A value in the format of `${pd-ip}:${pd-port}` indicates the PD server that TiDB connects to on startup. | | port | none | The port that the tidb-server is listening on when speaking the MySQL protocol. | diff --git a/home/docs/help/time_expression.md b/home/docs/help/time_expression.md index 406123f74b3..c38b8186c2d 100644 --- a/home/docs/help/time_expression.md +++ b/home/docs/help/time_expression.md @@ -12,7 +12,7 @@ HertzBeat supports using expressions to calculate relative time during monitorin ### Syntax ```shell -${FORMATTER [{ + | - } ]} +${FORMATTER [{ + | - }`` ``]} ``` - `FORMATTER`: Determines the format of the expression's result diff --git a/home/docs/help/windows_script.md b/home/docs/help/windows_script.md index 3aaefd7382c..6abcf126ac6 100644 --- a/home/docs/help/windows_script.md +++ b/home/docs/help/windows_script.md @@ -14,7 +14,7 @@ keywords: [open source monitoring system, open source network monitoring, using ### Configuration Parameters | Parameter Name | Parameter Description | -|:---------------|-----------------------------------------------------|---| +|:---------------|-----------------------------------------------------| | Monitor Host | The IPv4, IPv6, or domain of the monitored endpoint. Note ⚠️ Do not include protocol headers (e.g., https://, http://). | | Task Name | The name identifying this monitoring task, which needs to be unique. | | Collector | Specifies which collector will be used for data collection in this monitoring task. | diff --git a/home/docs/introduce.md b/home/docs/introduce.md index faaab5b8704..fdba2db0c45 100644 --- a/home/docs/introduce.md +++ b/home/docs/introduce.md @@ -309,7 +309,7 @@ Built-in support for monitoring types include: ### Status Page -- Based on HertzBeat, quickly build an external status page for your own product and easily convey the real-time status of your product service to users. For example, the service status page provided by Github . +- Based on HertzBeat, quickly build an external status page for your own product and easily convey the real-time status of your product service to users. For example, the service status page provided by Github [https://www.githubstatus.com](https://www.githubstatus.com). - Support synchronization between the status of the status page component and the monitoring status, as well as the fault event maintenance management mechanism, etc. Improve your transparency, professionalism, and user trust, and reduce communication costs. ![HertzBeat](/img/home/19.png) @@ -322,6 +322,6 @@ Built-in support for monitoring types include: --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Home: ** +**Home: [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** diff --git a/home/docs/start/account-modify.md b/home/docs/start/account-modify.md index fc4f2f7cdaa..ea72ca06a1f 100644 --- a/home/docs/start/account-modify.md +++ b/home/docs/start/account-modify.md @@ -155,4 +155,4 @@ sureness: dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' ``` -**Restart HertzBeat, access to explore** +**Restart HertzBeat, access [http://ip:1157/](http://ip:1157/) to explore** diff --git a/home/docs/start/baota-deploy.md b/home/docs/start/baota-deploy.md index 9003e961fee..9d7257d80f2 100644 --- a/home/docs/start/baota-deploy.md +++ b/home/docs/start/baota-deploy.md @@ -36,7 +36,7 @@ Install aaPanel, go to the [aaPanel](https://www.aapanel.com/new/download.html#i ## Access HertzBeat - If you have set a domain name, please enter the domain name directly in the browser address bar to access, such as `http://demo.hertzbeat.apache.org`, you can access the `HertzBeat` console. -- If you choose to access via `IP+Port`, please enter the domain name in the browser address bar to access `http://:1157`, you can access the `HertzBeat` console. +- If you choose to access via `IP+Port`, please enter the domain name in the browser address bar to access `http://\:1157`, you can access the `HertzBeat` console. ![HertzBeat](/img/home/0.png) diff --git a/home/docs/start/docker-compose-deploy.md b/home/docs/start/docker-compose-deploy.md index 4a40c948f8e..34a85ea5c07 100644 --- a/home/docs/start/docker-compose-deploy.md +++ b/home/docs/start/docker-compose-deploy.md @@ -56,7 +56,7 @@ Run the `docker compose version` command to check if you have a Docker Compose e ``` 3. Start exploring HertzBeat - Access in the browser to start exploring and using it. The default account password is admin/hertzbeat. + Access [http://ip:1157/](http://ip:1157/) in the browser to start exploring and using it. The default account password is admin/hertzbeat. **HAVE FUN** diff --git a/home/docs/start/docker-deploy.md b/home/docs/start/docker-deploy.md index 59eab1ae78e..69c2310c023 100644 --- a/home/docs/start/docker-deploy.md +++ b/home/docs/start/docker-deploy.md @@ -52,7 +52,7 @@ It is necessary to have Docker environment in your environment. If not installed ::: 2. Start to explore HertzBeat - Access using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! ### Deploy HertzBeat Collector Cluster(Optional) @@ -112,7 +112,7 @@ By deploying multiple HertzBeat Collectors, high availability, load balancing, a > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` -2. According to the process deploy,visit no interface +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface Please refer to the following points to troubleshoot issues: > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. diff --git a/home/docs/start/mysql-change.md b/home/docs/start/mysql-change.md index ce90b344a58..b817caca8a4 100644 --- a/home/docs/start/mysql-change.md +++ b/home/docs/start/mysql-change.md @@ -53,7 +53,7 @@ mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) ### Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.0.25.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) - Copy the jar package to the `hertzbeat/ext-lib` directory. ### Modify hertzbeat's configuration file application.yml and switch data source @@ -110,4 +110,4 @@ spring: > Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./mysql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. -**Start HertzBeat visit on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/docs/start/package-deploy.md b/home/docs/start/package-deploy.md index dedc8cb28f8..45f913886e1 100644 --- a/home/docs/start/package-deploy.md +++ b/home/docs/start/package-deploy.md @@ -55,7 +55,7 @@ Since version 1.6.0 uses `Java 17` and the installation package no longer provid 5. Begin to explore HertzBeat - Access using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! ### Deploy HertzBeat Collector Cluster(Optional) @@ -129,7 +129,7 @@ Deploying multiple HertzBeat Collectors can achieve high availability, load bala ``` -2. According to the process deploy,visit no interface +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface Please refer to the following points to troubleshoot issues: > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. diff --git a/home/docs/start/postgresql-change.md b/home/docs/start/postgresql-change.md index c34afbf8c72..4b25fbf3502 100644 --- a/home/docs/start/postgresql-change.md +++ b/home/docs/start/postgresql-change.md @@ -98,4 +98,4 @@ spring: > Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./postgresql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. -**Start HertzBeat visit on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/docs/start/usecase/linux-os-practice.md b/home/docs/start/usecase/linux-os-practice.md index 4bef512215f..f7fc12d9f05 100644 --- a/home/docs/start/usecase/linux-os-practice.md +++ b/home/docs/start/usecase/linux-os-practice.md @@ -8,9 +8,9 @@ This article describes how to use the Hertzbeat monitoring system to collect and ## What's HertzBeat -Apache HertzBeat™ (incubating) is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, port availability, database, operating system, threshold alarms, alarm notification (email, WeChat, DingTalk, Feishu). +Apache HertzBeat™ is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, port availability, database, operating system, threshold alarms, alarm notification (email, WeChat, DingTalk, Feishu). -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## Install @@ -85,10 +85,10 @@ Finally, you can see the triggered alarm in the alarm center. When the threshold is triggered, we can receive the corresponding alarm message. If there is no notification, you can also view the alarm information in the alarm center. ----- +---- ## Summary The practice of monitoring linux operating system is here. Of course, for Hertzbeat, this function is just the tip of the iceberg. If you think Hertzbeat is a good open source project, please give us a Star on GitHub, thanks for your support. -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/docs/start/usecase/springboot-auto-practice.md b/home/docs/start/usecase/springboot-auto-practice.md index 6b86e159f86..636aa6d95b1 100644 --- a/home/docs/start/usecase/springboot-auto-practice.md +++ b/home/docs/start/usecase/springboot-auto-practice.md @@ -16,7 +16,7 @@ This article introduces an integrated solution using the HertzBeat monitoring sy Apache HertzBeat is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** ## Install HertzBeat @@ -127,8 +127,8 @@ Apache HertzBeat is a real-time monitoring tool with powerful custom monitoring > After starting SpringBoot application, request the following URL: > - > * `http://:/actuator`: Verify the enabled endpoints. - > * `http://:/actuator/prometheus`: Should return metric data in Prometheus format. + > * `http://:`/actuator`: Verify the enabled endpoints. + > * `http://:`/actuator/prometheus`: Should return metric data in Prometheus format. ## Monitor SpringBoot Application @@ -201,7 +201,7 @@ Apache HertzBeat is a real-time monitoring tool with powerful custom monitoring 2. Set Threshold Rule - > For example, to monitor the CPU usage of the SpringBoot application, add a threshold rule like: `system_cpu_usage{job="Jolly_Vulture_43vT"} > 0.01` + > For example, to monitor the CPU usage of the SpringBoot application, add a threshold rule like: `system_cpu_usage{job="Jolly_Vulture_43vT"}` > 0.01` > >You can create many combinations of threshold rules. Users can set up richer alarm rules based on their specific needs. @@ -240,6 +240,6 @@ That concludes this practical guide on monitoring SpringBoot applications with H **Making monitoring simpler, looking forward to building the ecosystem together!** 💝 -**GitHub: ** +**GitHub: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/docs/start/usecase/sslcert-practice.md b/home/docs/start/usecase/sslcert-practice.md index 6c5f7ff74a9..1219bb6e617 100644 --- a/home/docs/start/usecase/sslcert-practice.md +++ b/home/docs/start/usecase/sslcert-practice.md @@ -14,7 +14,7 @@ This article introduces how to use the hertzbeat monitoring tool to detect the v Apache HertzBeat™ is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## Install HertzBeat @@ -25,7 +25,7 @@ github: 2. After the installation is successful, the browser can access `localhost:1157` to start, the default account password is `admin/hertzbeat` :::note -The production environment recommends a complete deployment method, refer +The production environment recommends a complete deployment method, refer [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) ::: ## Monitoring SSL Certificates @@ -78,7 +78,7 @@ The production environment recommends a complete deployment method, refer + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) > Notification -> Notice Policy -> New Notice Policy -> Enable Notification for the Recipient Just Configured @@ -92,4 +92,4 @@ The production environment recommends a complete deployment method, refer ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/docusaurus.config.js b/home/docusaurus.config.js index bdc6d583221..fe9461d2945 100644 --- a/home/docusaurus.config.js +++ b/home/docusaurus.config.js @@ -49,8 +49,8 @@ module.exports = { respectPrefersColorScheme: true, }, prism: { - theme: require('prism-react-renderer/themes/github'), - darkTheme: require('prism-react-renderer/themes/dracula'), + theme: require('prism-react-renderer').themes.github, + darkTheme: require('prism-react-renderer').themes.dracula, additionalLanguages: ['java'], }, algolia: { @@ -303,11 +303,10 @@ module.exports = { remarkPlugins: [ [require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }], ], - lastVersion: 'current', + lastVersion: '1.7.x', versions: { current: { - label: 'current', - path: '', + label: 'dev', }, }, }, @@ -347,7 +346,7 @@ module.exports = { { debug: false, offlineModeActivationStrategies: ['appInstalled', 'queryString'], - // swRegister: false, + swRegister: false, pwaHead: [ { tagName: 'link', diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current.json b/home/i18n/en/docusaurus-plugin-content-docs/current.json index 698e71ebfef..f239e68b5df 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/home/i18n/en/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "v1.7.x", + "message": "dev", "description": "The label for version current" }, "sidebar.docs.category.quickstart": { @@ -55,6 +55,10 @@ "message": "Notification", "description": "The label for category notice in sidebar docs" }, + "sidebar.docs.category.service-discovery": { + "message": "Service Discovery", + "description": "The label for category service-discovery in sidebar docs" + }, "sidebar.docs.category.mid": { "message": "Middleware Monitor", "description": "The label for category mid in sidebar docs" @@ -148,7 +152,7 @@ "description": "The label for category change-db in sidebar docs" }, "sidebar.docs.category.use-case": { - "message": "UseCase", + "message": "Use Case", "description": "The label for category use-case in sidebar docs" }, "sidebar.docs.category.extern-deploy": { diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-01-hertzbeat-v1.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-01-hertzbeat-v1.0.md index 185ca639f3c..bd3e2dd178b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-01-hertzbeat-v1.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-01-hertzbeat-v1.0.md @@ -1,8 +1,8 @@ --- -title: 云监控系统 HertzBeat v1.0 正式发布啦 -author: tom -author_title: tom -author_url: https://github.com/tomsun28 +title: 云监控系统 HertzBeat v1.0 正式发布啦 +author: tom +author_title: tom +author_url: https://github.com/tomsun28 tags: [opensource] --- @@ -16,20 +16,20 @@ tags: [opensource] - - - - - - - + + + + + + + - - - - - + + + + +

tomsun28

💻 📖 🎨

会编程的王学长

💻 📖 🎨

MaxKey

💻 🎨 🤔

观沧海

💻 🎨 🐛

yuye

💻 📖

jx10086

💻 🐛

winnerTimer

💻 🐛

tomsun28

💻 📖 🎨

会编程的王学长

💻 📖 🎨

MaxKey

💻 🎨 🤔

观沧海

💻 🎨 🐛

yuye

💻 📖

jx10086

💻 🐛

winnerTimer

💻 🐛

goo-kits

💻 🐛

brave4Time

💻 🐛

WalkerLee

💻 🐛

jianghang

💻 🐛

ChineseTony

💻

goo-kits

💻 🐛

brave4Time

💻 🐛

WalkerLee

💻 🐛

jianghang

💻 🐛

ChineseTony

💻
@@ -51,15 +51,15 @@ Bug修复. 5. [[collector]bugfix: 修复 warehouse data queue 未消费异常 #153](https://github.com/apache/hertzbeat/pull/153). issue by @daqianxiaoyao 6. [[web-app]bugfix: 修复黑暗主题时页面输入框校验出错时不可见 #157](https://github.com/apache/hertzbeat/pull/157). issue by @ConradWen -Online . +Online: [tancloud](https://console.tancloud.cn) ----------------------- -> [HertzBeat赫兹跳动](https://github.com/apache/hertzbeat) 是由 [Dromara](https://dromara.org) 孵化,[TanCloud](https://tancloud.cn)开源的一个支持网站,API,PING,端口,数据库,操作系统等监控类型,拥有易用友好的可视化操作界面的开源监控告警项目。 -> 当然,我们也提供了对应的[SAAS云监控版本](https://console.tancloud.cn),中小团队和个人无需再为了监控自己的网站资源,而去部署一套繁琐的监控系统,[登录即可免费开始](https://console.tancloud.cn)监控之旅。 +> [HertzBeat赫兹跳动](https://github.com/apache/hertzbeat) 是由 [Dromara](https://dromara.org) 孵化,[TanCloud](https://tancloud.cn)开源的一个支持网站,API,PING,端口,数据库,操作系统等监控类型,拥有易用友好的可视化操作界面的开源监控告警项目。 +> 当然,我们也提供了对应的[SAAS云监控版本](https://console.tancloud.cn),中小团队和个人无需再为了监控自己的网站资源,而去部署一套繁琐的监控系统,[登录即可免费开始](https://console.tancloud.cn)监控之旅。 > HertzBeat 支持自定义监控,只用通过配置YML文件我们就可以自定义需要的监控类型和指标,来满足常见的个性化需求。 > HertzBeat 模块化,`manager, collector, scheduler, warehouse, alerter` 各个模块解耦合,方便理解与定制开发。 -> HertzBeat 支持更自由化的告警配置(计算表达式),支持告警通知,告警模板,邮件钉钉微信飞书等及时通知送达 +> HertzBeat 支持更自由化的告警配置(计算表达式),支持告警通知,告警模板,邮件钉钉微信飞书等及时通知送达 > 欢迎登录 HertzBeat 的 [云环境TanCloud](https://console.tancloud.cn) 试用发现更多。 > 我们正在快速迭代中,欢迎参与加入共建项目开源生态。 > @@ -67,5 +67,5 @@ Online . **仓库地址** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-19-hertzbeat-v1.1.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-19-hertzbeat-v1.1.0.md index 237596528ac..c98fb57726b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-19-hertzbeat-v1.1.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-19-hertzbeat-v1.1.0.md @@ -32,7 +32,7 @@ Bugfix. 3. [[monitor] bugfix: 修复elasticsearch监控在basic认证情况下采集失败 #174](https://github.com/apache/hertzbeat/pull/174) contribute by @weifuqing 4. [修改oracle监控参数[数据库名称]有歧义导致的监控失败 #182](https://github.com/apache/hertzbeat/pull/182) @zklmcookle -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). --- @@ -68,5 +68,5 @@ Have Fun! **仓库地址** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-22-one-step-up.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-22-one-step-up.md index 237596528ac..c98fb57726b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-22-one-step-up.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-06-22-one-step-up.md @@ -32,7 +32,7 @@ Bugfix. 3. [[monitor] bugfix: 修复elasticsearch监控在basic认证情况下采集失败 #174](https://github.com/apache/hertzbeat/pull/174) contribute by @weifuqing 4. [修改oracle监控参数[数据库名称]有歧义导致的监控失败 #182](https://github.com/apache/hertzbeat/pull/182) @zklmcookle -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). --- @@ -68,5 +68,5 @@ Have Fun! **仓库地址** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-07-10-hertzbeat-v1.1.1.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-07-10-hertzbeat-v1.1.1.md index 9f6d0400a09..2bdb07550fd 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-07-10-hertzbeat-v1.1.1.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-07-10-hertzbeat-v1.1.1.md @@ -39,7 +39,7 @@ Bugfix. 8. [[manager] 修改监控页面取消监控功能再启动监控导致多生成jobId,原有监控项目并没有真实取消 #215](https://github.com/apache/hertzbeat/pull/215) contribute by @yangshihui 9. [[warehouse] 修复tdengine对特殊字段建表失败导致数据无法入库问题 #220](https://github.com/apache/hertzbeat/pull/220) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! @@ -57,5 +57,5 @@ Have Fun! **仓库地址** -[Github](https://github.com/apache/hertzbeat) -[Gitee](https://gitee.com/hertzbeat/hertzbeat) +[Github](https://github.com/apache/hertzbeat) [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +[Gitee](https://gitee.com/hertzbeat/hertzbeat) [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-04-hertzbeat-v1.1.3.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-04-hertzbeat-v1.1.3.md index 2ae74dc9fac..e3c2d8ed705 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-04-hertzbeat-v1.1.3.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-04-hertzbeat-v1.1.3.md @@ -30,7 +30,7 @@ Bugfix. 1. [[docs] fix extend-http-jsonpath.md parseScript error #262](https://github.com/apache/hertzbeat/pull/262) contribute by @woshiniusange . 2. [[monitor] update help docs, refactor redis metrics name #264](https://github.com/apache/hertzbeat/pull/264) -3. [[manager] bugfix alert tags is null when tags map key normal value null. #270](https://github.com/apache/hertzbeat/pull/270) issue by -4. [[alert] bugfix: the alert global preset config do not take effect #275](https://github.com/apache/hertzbeat/pull/275) issue by +3. [[manager] bugfix alert tags is null when tags map key normal value null. #270](https://github.com/apache/hertzbeat/pull/270) issue by [https://gitee.com/hello_brother_niu](https://gitee.com/hello_brother_niu) +4. [[alert] bugfix: the alert global preset config do not take effect #275](https://github.com/apache/hertzbeat/pull/275) issue by [https://gitee.com/hello_brother_niu](https://gitee.com/hello_brother_niu) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-10-ssl-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-10-ssl-practice.md index 012c8f46d1e..c188fd9846d 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-10-ssl-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-09-10-ssl-practice.md @@ -16,10 +16,10 @@ tags: [opensource, practice] HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 -**官网: | ** +**官网: [https://hertzbeat.apache.org](https://hertzbeat.apache.org) | [https://tancloud.cn](https://tancloud.cn)** -github: -gitee: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat) #### 安装 HertzBeat @@ -86,8 +86,8 @@ gitee: 钉钉微信飞书等token配置可以参考帮助文档 - - + [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) + [https://tancloud.cn/docs/help/alert_dingtalk](https://tancloud.cn/docs/help/alert_dingtalk) > 告警通知 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知 @@ -101,6 +101,6 @@ gitee: 监控SSL证书的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**gitee: ** +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-10-08-hertzbeat-v1.2.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-10-08-hertzbeat-v1.2.0.md index e812f1a6136..28c0511af2a 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-10-08-hertzbeat-v1.2.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-10-08-hertzbeat-v1.2.0.md @@ -51,7 +51,7 @@ Bugfix. 9. [[web-app] fix echarts y-axis value tip overflow #325](https://github.com/apache/hertzbeat/pull/325) 10. [[webapp] fix interceptor http resp common error-msg when error #329](https://github.com/apache/hertzbeat/pull/329) -Online . +Online [https://console.tancloud.cn](https://console.tancloud.cn). Have Fun! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-12-19-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-12-19-new-committer.md index f44d94b5dd4..a1b1c308224 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-12-19-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2022-12-19-new-committer.md @@ -56,7 +56,7 @@ github:[wang1027-wqh](https://github.com/wang1027-wqh) 现从事:某互联网公司Java开发工程师 -email:<1758619238@qq.com> +email:[1758619238@qq.com](mailto:1758619238@qq.com) Hertzbeat Committer diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-05-monitor-iotdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-05-monitor-iotdb.md index e9fb50e4fa9..f4c7f6eaaad 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-05-monitor-iotdb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-05-monitor-iotdb.md @@ -41,7 +41,7 @@ keywords: [开源监控系统, 开源数据库监控, IotDB数据库监控] - PROMETHEUS ``` -2. 重启 IoTDB, 打开浏览器或者用curl 访问 , 就能看到metric数据了。 +2. 重启 IoTDB, 打开浏览器或者用curl 访问 [http://ip:9091/metrics](http://ip:9091/metrics), 就能看到metric数据了。 #### 二. 在 HertzBeat 监控页面添加 IoTDB 监控 @@ -54,7 +54,7 @@ keywords: [开源监控系统, 开源数据库监控, IotDB数据库监控] 2. 配置监控IoTDB所需参数 在监控页面填写 IoTDB **服务IP**,**监控端口**(默认9091),最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/iotdb/) + 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/iotdb/) [https://hertzbeat.apache.org/docs/help/iotdb/](https://hertzbeat.apache.org/docs/help/iotdb/) ![HertzBeat](/img/blog/monitor-iotdb-2.png) @@ -96,7 +96,7 @@ keywords: [开源监控系统, 开源数据库监控, IotDB数据库监控] 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -123,8 +123,8 @@ keywords: [开源监控系统, 开源数据库监控, IotDB数据库监控] 这篇实践文章带我们体验了如何使用 HertzBeat 监控 IoTDB 数据库指标数据,可以发现将 监控-告警-通知 集一体的 HertzBeat 在操作与使用方面更加的便捷,在页面上简单点一点就能把 IoTDB 纳入监控,再也不需要部署多个组件,写多个有门槛的YML配置文件了。 -IoTDB Github: -HertzBeat Github: +IoTDB Github: [https://github.com/apache/iotdb](https://github.com/apache/iotdb) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **欢迎了解使用Star支持哦!** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-08-monitor-shenyu.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-08-monitor-shenyu.md index b92393c2ffb..21315bf4476 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-08-monitor-shenyu.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-01-08-monitor-shenyu.md @@ -42,11 +42,11 @@ tags: [opensource, practice] 1. 在网关的 `pom.xml` 文件中添加 `metrics插件` 的依赖。 ```xml - - org.apache.shenyu - shenyu-spring-boot-starter-plugin-metrics - ${project.version} - + `` + ``org.apache.shenyu`` + ``shenyu-spring-boot-starter-plugin-metrics`` + ``${project.version}`` + `` ``` 2. `metric`插件 采集默认是关闭的, 在网关的配置`yaml`文件中编辑如下内容: @@ -76,7 +76,7 @@ tags: [opensource, practice] 2. 配置监控 ShenYu 所需参数 在监控页面填写 ShenYu **服务IP**,**监控端口**(默认8090),最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/shenyu/) + 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/shenyu/) [https://hertzbeat.apache.org/docs/help/shenyu/](https://hertzbeat.apache.org/docs/help/shenyu/) ![HertzBeat](/img/blog/monitor-shenyu-1.png) @@ -125,7 +125,7 @@ tags: [opensource, practice] 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -156,8 +156,8 @@ tags: [opensource, practice] 这篇实践文章带我们体验了如何使用 HertzBeat 监控 Apache ShenYu 指标数据,可以发现将 `监控-告警-通知` 集一体的 HertzBeat 在操作与使用方面更加的便捷,在页面上简单点一点就能把 ShenYu 纳入监控,再也不需要部署多个组件,写多个有门槛的YML配置文件了。 ::: -Apache ShenYu Github: -HertzBeat Github: +Apache ShenYu Github: [https://github.com/apache/shenyu](https://github.com/apache/shenyu) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **欢迎了解使用Star支持哦!** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-02-monitor-dynamic-tp.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-02-monitor-dynamic-tp.md index 0f398bc3e48..2b97b48bc8b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-02-monitor-dynamic-tp.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-02-monitor-dynamic-tp.md @@ -88,7 +88,7 @@ tags: [opensource, practice] 2. 配置监控 DynamicTp 所需参数 在监控页面填写 DynamicTp **服务IP**,**监控端口**(默认8080),最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/dynamic_tp/) + 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/dynamic_tp/) [https://hertzbeat.apache.org/docs/help/dynamic_tp/](https://hertzbeat.apache.org/docs/help/dynamic_tp/) ![HertzBeat](/img/blog/monitor-dynamic-tp-2.png) @@ -137,7 +137,7 @@ tags: [opensource, practice] 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -168,8 +168,8 @@ tags: [opensource, practice] 这篇实践文章带我们体验了如何使用 HertzBeat 监控 DynamicTp线程池 指标数据,可以发现集 `监控-告警-通知` 的 HertzBeat 在操作与使用方面更加的便捷,只需页面上简单点一点就能把 DynamicTp线程池 纳入监控并告警通知,再也不需要部署多个组件写YML配置文件那些繁琐操作了。 ::: -DynamicTp Github: -HertzBeat Github: +DynamicTp Github: [https://github.com/dromara/dynamic-tp](https://github.com/dromara/dynamic-tp) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **欢迎了解使用Star支持哦!** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-10-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-10-new-committer.md index b491326b3c5..5150a09169c 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-10-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-10-new-committer.md @@ -106,8 +106,8 @@ github:TJxiaobao > > `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## ⛄ Supported diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-11-monitor-mysql.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-11-monitor-mysql.md index 9b97e21e7dd..ce735d7d195 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-11-monitor-mysql.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-11-monitor-mysql.md @@ -39,7 +39,7 @@ keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] 2. 配置新增监控 Mysql 数据库所需参数 在监控页面填写 Mysql **服务IP**,**监控端口**(默认3306),**账户密码等**,最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/mysql/) + 其他参数如**采集间隔**,**超时时间**等可以参考[帮助文档](https://hertzbeat.apache.org/docs/help/mysql/) [https://hertzbeat.apache.org/docs/help/mysql/](https://hertzbeat.apache.org/docs/help/mysql/) ![HertzBeat](/img/blog/monitor-mysql-2.png) @@ -87,7 +87,7 @@ keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -118,8 +118,8 @@ keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] 这篇实践文章带我们体验了如何使用开源实时监控工具 HertzBeat 来监控 Mysql 数据库指标数据,可以发现集 `监控-告警-通知` 的 HertzBeat 在操作与使用方面更加的便捷,只需页面上简单点一点就能把 Mysql 数据库纳入监控并告警通知,再也不需要部署多个组件编写配置文件那些繁琐操作了。 ::: -Mysql Github: -HertzBeat Github: +Mysql Github: [https://github.com/mysql/mysql-server](https://github.com/mysql/mysql-server) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **欢迎了解使用支持Star哦!** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-15-monitor-linux.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-15-monitor-linux.md index 2acfd3cb82f..838001a3499 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-15-monitor-linux.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-02-15-monitor-linux.md @@ -17,7 +17,7 @@ keywords: [开源监控系统, 操作系统监控, Linux监控] - 其将Http, Jmx, Ssh, Snmp, Jdbc, Prometheus等协议规范可配置化,只需配置YML就能使用这些协议去自定义采集任何您想要采集的指标。您相信只需配置YML就能立刻适配一个K8s或Docker等新的监控类型吗? - HertzBeat 的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ### 在 HertzBeat 5分钟搞定对 Linux 的监控 @@ -36,7 +36,7 @@ Github: 2. 配置新增监控 Linux 所需参数 在监控页面填写 Linux **对端IP**,**SSH端口**(默认22),**账户密码等**,最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考帮助文档 + 其他参数如**采集间隔**,**超时时间**等可以参考帮助文档 [https://hertzbeat.apache.org/docs/help/mysql/](https://hertzbeat.apache.org/docs/help/mysql/) ![HertzBeat](/img/blog/monitor-linux-2.png) @@ -148,7 +148,7 @@ Github: 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -192,8 +192,8 @@ Github: > > `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## ⛄ Supported diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-15-hertzbeat-v1.3.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-15-hertzbeat-v1.3.0.md index 221554dbf10..d011d78df7f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-15-hertzbeat-v1.3.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-15-hertzbeat-v1.3.0.md @@ -19,9 +19,9 @@ keywords: [开源监控系统, 告警系统, Linux监控] > > 您相信只需定义YML就能立刻适配一款K8s或Docker等新的监控类型吗? -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.0 大版本来了 @@ -139,5 +139,5 @@ COMMIT; --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-22-monitor-springboot2.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-22-monitor-springboot2.md index 0efd21fd3f1..3585be3b951 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-22-monitor-springboot2.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-03-22-monitor-springboot2.md @@ -17,7 +17,7 @@ keywords: [开源监控系统, SpringBoot监控, 监控告警] - 其将Http, Jmx, Ssh, Snmp, Jdbc, Prometheus等协议规范可配置化,只需配置YML就能使用这些协议去自定义采集任何您想要采集的指标。您相信只需配置YML就能立刻适配一个K8s或Docker等新的监控类型吗? - HertzBeat 的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ### 在 HertzBeat 5分钟搞定对 SpringBoot2 应用的监控 @@ -89,7 +89,7 @@ Github: 2. 配置新增监控 SpringBoot2 所需参数 在监控页面填写 SpringBoot2应用 **对端IP**,**服务端口**(默认8080),**账户密码等**,最后点击确定添加即可。 - 其他参数如**采集间隔**,**超时时间**等可以参考帮助文档 + 其他参数如**采集间隔**,**超时时间**等可以参考帮助文档 [https://hertzbeat.apache.org/docs/help/](https://hertzbeat.apache.org/docs/help/) ![HertzBeat](/img/blog/monitor-springboot2-2.png) @@ -137,7 +137,7 @@ Github: 消息通知方式支持 **邮件,钉钉,企业微信,飞书,WebHook,短信**等,我们这里以常用的钉钉为例。 - - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 + - 参照此[帮助文档](https://hertzbeat.apache.org/docs/help/alert_dingtalk) [https://hertzbeat.apache.org/docs/help/alert_dingtalk](https://hertzbeat.apache.org/docs/help/alert_dingtalk) 在钉钉端配置机器人,设置安全自定义关键词`HertzBeat`,获取对应`access_token`值。 - 在 HertzBeat 配置接收人参数如下。 【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】 @@ -187,8 +187,8 @@ Github: > > `HertzBeat`的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## ⛄ Supported diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-09-hertzbeat-v1.3.1.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-09-hertzbeat-v1.3.1.md index b2fc6c3cf82..f1cc9c9dcd8 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-09-hertzbeat-v1.3.1.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-09-hertzbeat-v1.3.1.md @@ -19,9 +19,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] > > 您相信只需定义YML就能立刻适配一款K8s或Docker等新的监控类型吗? -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.1 来了 @@ -62,5 +62,5 @@ COMMIT; --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-11-greptimedb-store.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-11-greptimedb-store.md index f0f2a3b5397..d0a2f859897 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-11-greptimedb-store.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-05-11-greptimedb-store.md @@ -77,7 +77,7 @@ Cloud: **[TanCloud](https://console.tancloud.cn/)** 注意⚠️ 本地挂载配置文件 `application.yml` 需提前存在,文件完整内容见项目仓库[/script/application.yml](https://github.com/apache/hertzbeat/raw/master/script/application.yml) -2. 浏览器访问 默认账户密码 admin/hertzbeat,查看 HertzBeat 是否启动成功。 +2. 浏览器访问 [http://ip:1157/](http://ip:1157/) 默认账户密码 admin/hertzbeat,查看 HertzBeat 是否启动成功。 #### 配置使用 GreptimeDB 存储 HertzBeat 监控指标度量数据 @@ -106,7 +106,7 @@ Cloud: **[TanCloud](https://console.tancloud.cn/)** #### 观察验证效果 -1. 浏览器访问 HertzBeat 默认账户密码 admin/hertzbeat +1. 浏览器访问 HertzBeat [http://ip:1157/](http://ip:1157/) 默认账户密码 admin/hertzbeat 2. 使用 HertzBeat 添加应用监控,比如网站监控,Linux监控,Mysql监控 3. 监控采集几个周期之后,查看 GreptimeDB 数据库是否存储指标度量数据,HertzBeat 指标数据图表数据是否展示正常。 @@ -123,8 +123,8 @@ Cloud: **[TanCloud](https://console.tancloud.cn/)** 这篇文章带我们体验了如何使用开源时序数据库 GreptimeDB 存储开源实时监控 HertzBeat 的指标度量数据,总的来看两款开源产品上手是非常简单的,关键是如果嫌麻烦不想部署他俩都还有云服务😂让你折腾。 作为特性 [HertzBeat支持GreptimeDB](https://github.com/apache/hertzbeat/pull/834) 的开发者之一,在实际适配使用过程中,GreptimeDB的丝滑原生SDK和类似关系数据库的SQL,让我们从其它时序数据库 `TDengine, IotDB, InfluxDB` 切换过去还是非常容易,体验丝滑的。 -GreptimeDB Github: -HertzBeat Github: +GreptimeDB Github: [https://github.com/GreptimeTeam/greptimedb](https://github.com/GreptimeTeam/greptimedb) +HertzBeat Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **最后就是欢迎大家一定要多多了解,多多使用,多多提意见,多多ISSUE,多多PR,多多Star支持这俩没出来多久希望得到呵护的开源牛牛不怕困难 一颗小星星哦!做开源,我们是蒸(真)的,爱心💗** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-07-05-hertzbeat-v1.3.2.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-07-05-hertzbeat-v1.3.2.md index 69964710e90..9fa7fdb4a3f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-07-05-hertzbeat-v1.3.2.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-07-05-hertzbeat-v1.3.2.md @@ -20,9 +20,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] > > 我们将`Http, Jmx, Ssh, Snmp, Jdbc, Prometheus`等协议规范可配置化,您只需配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### v1.3.2 来了 @@ -66,5 +66,5 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] **欢迎star三连来支持我们** -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-14-hertzbeat-v1.4.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-14-hertzbeat-v1.4.0.md index f55e8fcab5d..966aa5b186d 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-14-hertzbeat-v1.4.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-14-hertzbeat-v1.4.0.md @@ -25,9 +25,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![hertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### 集群版来啦 @@ -102,53 +102,53 @@ HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采 > 更多版本新功能更新欢迎探索,感谢社区小伙伴们的辛苦贡献,爱心💗! -- [doc] add v1.3.2 publish doc by @tomsun28 in -- remove elasticsearch unused param index by @Ceilzcx in -- feature support monitoring apache airflow by @luoxuanzao in -- add luoxuanzao as a contributor for code by @allcontributors in -- [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in -- bugfix update dashboard alerts cards height not consist by @tomsun28 in -- Feature#serverchan by @zqr10159 in -- bugfix dm database monitoring connect error by @lisongning in -- add lisongning as a contributor for code by @allcontributors in -- update alert rule operator display "<=" to ">=" by @Ceilzcx in -- [doc] add custom monitoring relate document by @tomsun28 in -- add YutingNie as a contributor for code by @allcontributors in -- Remove unreachable status by @YutingNie in -- 139 auto update alert status by @l646505418 in -- feat: aviator fn for str contains, exists & matches by @mikezzb in -- add mikezzb as a contributor for code by @allcontributors in -- bugfix common alarm do not need monitorId tag existed by @tomsun28 in -- bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in -- feature: support apache spark metrics monitoring by @a-little-fool in -- add a-little-fool as a contributor for code by @allcontributors in -- [Feature]Add third report of TenCloud by @zqr10159 in -- [Feature]Add third report of TenCloud (#1113) by @zqr10159 in -- [manager] fix: can query by tags when tagValue is null by @l646505418 in -- bugfix the notification template environment variable display error by @tomsun28 in -- add littlezhongzer as a contributor for code by @allcontributors in -- feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in -- docs: enhance README by @mikezzb in -- Update app-oracle.yml by @ChenXiangxxxxx in -- add ChenXiangxxxxx as a contributor for code by @allcontributors in -- fix alarm silence strategy setting failed by @Ceilzcx in -- support run sql script file in jdbc protocol config by @tomsun28 in -- bugfix return old cache json file when upgrade version by @tomsun28 in -- support ssh protocol config choose if reuse connection by @tomsun28 in -- feat(web): alert threshold UI support matches & contains by @mikezzb in -- support hertzbeat metrics collector cluster by @tomsun28 in -- add collector card in dashboard by @tomsun28 in -- bugfix: linux collect warning: bad syntax, perhaps a bogus '-' by @Mr-zhou315 in -- add Mr-zhou315 as a contributor for code by @allcontributors in -- support config timezone locale language region on web ui by @tomsun28 in -- bugfix monitoring template app name already exists by @tomsun28 in -- bugfix can not startup when error monitoring template yml file by @tomsun28 in -- tags also deleted when the monitor is deleted by @Ceilzcx in -- monitoring param host with http head will not be error reported by @littlezhongzer in -- [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in -- add XimfengYao as a contributor for code by @allcontributors in -- [doc] add collector clusters document by @tomsun28 in -- [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in +- [doc] add v1.3.2 publish doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1075](https://github.com/apache/hertzbeat/pull/1075) +- remove elasticsearch unused param index by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1080](https://github.com/apache/hertzbeat/pull/1080) +- feature support monitoring apache airflow by @luoxuanzao in [https://github.com/apache/hertzbeat/pull/1081](https://github.com/apache/hertzbeat/pull/1081) +- add luoxuanzao as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1083](https://github.com/apache/hertzbeat/pull/1083) +- [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in [https://github.com/apache/hertzbeat/pull/1084](https://github.com/apache/hertzbeat/pull/1084) +- bugfix update dashboard alerts cards height not consist by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1087](https://github.com/apache/hertzbeat/pull/1087) +- Feature#serverchan by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1092](https://github.com/apache/hertzbeat/pull/1092) +- bugfix dm database monitoring connect error by @lisongning in [https://github.com/apache/hertzbeat/pull/1094](https://github.com/apache/hertzbeat/pull/1094) +- add lisongning as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1096](https://github.com/apache/hertzbeat/pull/1096) +- update alert rule operator display display from "<=" to ">=" by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1097](https://github.com/apache/hertzbeat/pull/1097) +- [doc] add custom monitoring relate document by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1098](https://github.com/apache/hertzbeat/pull/1098) +- add YutingNie as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1103](https://github.com/apache/hertzbeat/pull/1103) +- Remove unreachable status by @YutingNie in [https://github.com/apache/hertzbeat/pull/1102](https://github.com/apache/hertzbeat/pull/1102) +- 139 auto update alert status by @l646505418 in [https://github.com/apache/hertzbeat/pull/1104](https://github.com/apache/hertzbeat/pull/1104) +- feat: aviator fn for str contains, exists & matches by @mikezzb in [https://github.com/apache/hertzbeat/pull/1106](https://github.com/apache/hertzbeat/pull/1106) +- add mikezzb as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1107](https://github.com/apache/hertzbeat/pull/1107) +- bugfix common alarm do not need monitorId tag existed by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1108](https://github.com/apache/hertzbeat/pull/1108) +- bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1111](https://github.com/apache/hertzbeat/pull/1111) +- feature: support apache spark metrics monitoring by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1114](https://github.com/apache/hertzbeat/pull/1114) +- add a-little-fool as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1116](https://github.com/apache/hertzbeat/pull/1116) +- [Feature]Add third report of TenCloud by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1113](https://github.com/apache/hertzbeat/pull/1113) +- [Feature]Add third report of TenCloud (#1113) by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1119](https://github.com/apache/hertzbeat/pull/1119) +- [manager] fix: can query by tags when tagValue is null by @l646505418 in [https://github.com/apache/hertzbeat/pull/1118](https://github.com/apache/hertzbeat/pull/1118) +- bugfix the notification template environment variable display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1120](https://github.com/apache/hertzbeat/pull/1120) +- add littlezhongzer as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1127](https://github.com/apache/hertzbeat/pull/1127) +- feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in [https://github.com/apache/hertzbeat/pull/1122](https://github.com/apache/hertzbeat/pull/1122) +- docs: enhance README by @mikezzb in [https://github.com/apache/hertzbeat/pull/1128](https://github.com/apache/hertzbeat/pull/1128) +- Update app-oracle.yml by @ChenXiangxxxxx in [https://github.com/apache/hertzbeat/pull/1129](https://github.com/apache/hertzbeat/pull/1129) +- add ChenXiangxxxxx as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1130](https://github.com/apache/hertzbeat/pull/1130) +- fix alarm silence strategy setting failed by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1131](https://github.com/apache/hertzbeat/pull/1131) +- support run sql script file in jdbc protocol config by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1117](https://github.com/apache/hertzbeat/pull/1117) +- bugfix return old cache json file when upgrade version by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1137](https://github.com/apache/hertzbeat/pull/1137) +- support ssh protocol config choose if reuse connection by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1136](https://github.com/apache/hertzbeat/pull/1136) +- feat(web): alert threshold UI support matches & contains by @mikezzb in [https://github.com/apache/hertzbeat/pull/1138](https://github.com/apache/hertzbeat/pull/1138) +- support hertzbeat metrics collector cluster by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1101](https://github.com/apache/hertzbeat/pull/1101) +- add collector card in dashboard by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1147](https://github.com/apache/hertzbeat/pull/1147) +- bugfix: linux collect warning: bad syntax, perhaps a bogus '-' by @Mr-zhou315 in [https://github.com/apache/hertzbeat/pull/1151](https://github.com/apache/hertzbeat/pull/1151) +- add Mr-zhou315 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1157](https://github.com/apache/hertzbeat/pull/1157) +- support config timezone locale language region on web ui by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1154](https://github.com/apache/hertzbeat/pull/1154) +- bugfix monitoring template app name already exists by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1152](https://github.com/apache/hertzbeat/pull/1152) +- bugfix can not startup when error monitoring template yml file by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1153](https://github.com/apache/hertzbeat/pull/1153) +- tags also deleted when the monitor is deleted by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1159](https://github.com/apache/hertzbeat/pull/1159) +- monitoring param host with http head will not be error reported by @littlezhongzer in [https://github.com/apache/hertzbeat/pull/1155](https://github.com/apache/hertzbeat/pull/1155) +- [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in [https://github.com/apache/hertzbeat/pull/1162](https://github.com/apache/hertzbeat/pull/1162) +- add XimfengYao as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1163](https://github.com/apache/hertzbeat/pull/1163) +- [doc] add collector clusters document by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1161](https://github.com/apache/hertzbeat/pull/1161) +- [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1168](https://github.com/apache/hertzbeat/pull/1168) --- @@ -172,5 +172,5 @@ HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采 欢迎star一波来支持我们哦。 -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-28-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-28-new-committer.md index a8dbb6ae246..1f501dee5e5 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-28-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-08-28-new-committer.md @@ -82,6 +82,6 @@ HertzBeat 赫兹跳动是一个拥有强大自定义监控能力,高性能集 > `HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 -Github: +Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) 欢迎更多的用户参与到`HertzBeat`的开源协作中来,不管是一个错别字还是标点符号我们都非常欢迎。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-09-26-hertzbeat-v1.4.1.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-09-26-hertzbeat-v1.4.1.md index aa50e4b1ea4..f17af9c1197 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-09-26-hertzbeat-v1.4.1.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-09-26-hertzbeat-v1.4.1.md @@ -19,7 +19,7 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] - **功能页面帮助信息模块和阈值表达式增强** 开源之夏和GLCC课题 @YutingNie @mikezzb - **新的控制台登陆界面和欢迎页面** - **监控指标名称国际化** 用户可以看指标的中英文名称啦,欢迎一起完善监控模板里面的i18n国际化资源 -- **支持kubernetes helm charts一键部署** 见 +- **支持kubernetes helm charts一键部署** 见 [https://artifacthub.io/packages/search?repo=hertzbeat](https://artifacthub.io/packages/search?repo=hertzbeat) **更多的特性和BUG修复,稳定性提示** 感谢 @zqr10159 @Carpe-Wang @luxx-lq @l646505418 @LINGLUOJUN @luelueking @qyaaaa @novohit @gcdd1993 @@ -61,9 +61,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![hertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### 尝试部署 @@ -109,5 +109,5 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-11-12-hertzbeat-v1.4.2.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-11-12-hertzbeat-v1.4.2.md index 9d64f188707..37c291f38b1 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-11-12-hertzbeat-v1.4.2.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-11-12-hertzbeat-v1.4.2.md @@ -38,9 +38,9 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] ![hertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### 尝试部署 @@ -86,5 +86,5 @@ keywords: [open source monitoring system, alerting system, Linux monitoring] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-12-11-hertzbeat-v1.4.3.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-12-11-hertzbeat-v1.4.3.md index 5a5c2d72175..d8d677dfed6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-12-11-hertzbeat-v1.4.3.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2023-12-11-hertzbeat-v1.4.3.md @@ -20,9 +20,9 @@ keywords: [open source monitoring system, alerting system] - 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 - 灵活的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` `Server酱` 等方式消息及时送达。 -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.3 新版本发布啦 @@ -81,8 +81,8 @@ keywords: [open source monitoring system, alerting system] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** --- @@ -90,63 +90,63 @@ keywords: [open source monitoring system, alerting system] > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -- update package deploy doc by @tomsun28 in -- bugfix duplicate collect job when update monitor templates by @tomsun28 in -- bugfix number variable in freemarker template display error by @tomsun28 in -- [alerter] Enhanced reporting of external general alert API by @SurryChen in -- [doc] update hertzbeat-mysql-tdengine readme by @jiashu1024 in -- add jiashu1024 as a contributor for doc by @allcontributors in -- app-mysql.yml: Adjust slow query translation by @1036664317 in -- add 1036664317 as a contributor for doc by @allcontributors in -- Bump com.google.guava:guava from 31.0.1-jre to 32.0.0-jre by @dependabot in -- [feature] support auto collect metrics by prometheus task by @tomsun28 in -- [doc] add vinci as new committer by @tomsun28 in -- [feature] add tag word cloud in dashboard by @tomsun28 in -- support custom prometheus endpoint path by @tomsun28 in -- bugfix tdengine query interval history metrics data with instance error by @tomsun28 in -- unlimit Alert.java content field length by @xiaoguolong in -- add xiaoguolong as a contributor for code by @allcontributors in -- update monitor detail table ui layout by @tomsun28 in -- [doc]add star history by @zqr10159 in -- feature: app-mongodb.yml by @a-little-fool in -- alarm threshold support prometheus task metrics by @tomsun28 in -- support victoriametrics as metrics data storage by @tomsun28 in -- Add time type to support query_time of mysql and mariadb by @Clownsw in -- add Clownsw as a contributor for code by @allcontributors in -- Error occured when I followed running steps to start Front-web by @Calvin979 in -- add Calvin979 as a contributor for doc by @allcontributors in -- enriches the cncf landscape by @tomsun28 in -- Fix flaky test in CollectUtilTest by @bbelide2 in -- add bbelide2 as a contributor for code by @allcontributors in -- Fix flaky test replaceSmilingPlaceholder by @bbelide2 in -- add docker-compose script hertzbeat+mysql+victoria-metrics all in one by @tomsun28 in -- Feature: app-jvm.yml support for international name aliases by @Calvin979 in -- add Calvin979 as a contributor for code by @allcontributors in -- feature: support monitoring spring gateway metrics by @a-little-fool in -- update code comment and doc, bugfix concurrent exception by @tomsun28 in -- update windows define and accept snmp leaf by @jinyaoMa in -- add jinyaoMa as a contributor for code by @allcontributors in -- fix exception when sending email has special chars by @Carpe-Wang in -- test: add e2e testing for some basic APIs by @LinuxSuRen in -- add LinuxSuRen as a contributor for code, and test by @allcontributors in -- bugfix auto generate monitor name error when add monitor by @tomsun28 in -- bugfix CalculateAlarm execAlertExpression NPE by @tomsun28 in -- Feature: app-redis.yml support for international name aliases by @Calvin979 in -- test: add more monitor related e2e testing case by @LinuxSuRen in -- chore: update the pr template about the e2e testing by @LinuxSuRen in -- add help header ui when update or add monitors by @tomsun28 in -- [hertzbeat] release hertzbeat version v1.4.3 by @tomsun28 in +- update package deploy doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1330](https://github.com/apache/hertzbeat/pull/1330) +- bugfix duplicate collect job when update monitor templates by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1332](https://github.com/apache/hertzbeat/pull/1332) +- bugfix number variable in freemarker template display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1334](https://github.com/apache/hertzbeat/pull/1334) +- [alerter] Enhanced reporting of external general alert API by @SurryChen in [https://github.com/apache/hertzbeat/pull/1326](https://github.com/apache/hertzbeat/pull/1326) +- [doc] update hertzbeat-mysql-tdengine readme by @jiashu1024 in [https://github.com/apache/hertzbeat/pull/1335](https://github.com/apache/hertzbeat/pull/1335) +- add jiashu1024 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1336](https://github.com/apache/hertzbeat/pull/1336) +- app-mysql.yml: Adjust slow query translation by @1036664317 in [https://github.com/apache/hertzbeat/pull/1337](https://github.com/apache/hertzbeat/pull/1337) +- add 1036664317 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1338](https://github.com/apache/hertzbeat/pull/1338) +- Bump com.google.guava:guava from 31.0.1-jre to 32.0.0-jre by @dependabot in [https://github.com/apache/hertzbeat/pull/1339](https://github.com/apache/hertzbeat/pull/1339) +- [feature] support auto collect metrics by prometheus task by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1342](https://github.com/apache/hertzbeat/pull/1342) +- [doc] add vinci as new committer by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1341](https://github.com/apache/hertzbeat/pull/1341) +- [feature] add tag word cloud in dashboard by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1345](https://github.com/apache/hertzbeat/pull/1345) +- support custom prometheus endpoint path by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1346](https://github.com/apache/hertzbeat/pull/1346) +- bugfix tdengine query interval history metrics data with instance error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1348](https://github.com/apache/hertzbeat/pull/1348) +- unlimit Alert.java content field length by @xiaoguolong in [https://github.com/apache/hertzbeat/pull/1351](https://github.com/apache/hertzbeat/pull/1351) +- add xiaoguolong as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1353](https://github.com/apache/hertzbeat/pull/1353) +- update monitor detail table ui layout by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1352](https://github.com/apache/hertzbeat/pull/1352) +- [doc]add star history by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1356](https://github.com/apache/hertzbeat/pull/1356) +- feature: app-mongodb.yml by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1359](https://github.com/apache/hertzbeat/pull/1359) +- alarm threshold support prometheus task metrics by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1354](https://github.com/apache/hertzbeat/pull/1354) +- support victoriametrics as metrics data storage by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1361](https://github.com/apache/hertzbeat/pull/1361) +- Add time type to support query_time of mysql and mariadb by @Clownsw in [https://github.com/apache/hertzbeat/pull/1364](https://github.com/apache/hertzbeat/pull/1364) +- add Clownsw as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1365](https://github.com/apache/hertzbeat/pull/1365) +- Error occured when I followed running steps to start Front-web by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1366](https://github.com/apache/hertzbeat/pull/1366) +- add Calvin979 as a contributor for doc by @allcontributors in [https://github.com/apache/hertzbeat/pull/1367](https://github.com/apache/hertzbeat/pull/1367) +- enriches the cncf landscape by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1368](https://github.com/apache/hertzbeat/pull/1368) +- Fix flaky test in CollectUtilTest by @bbelide2 in [https://github.com/apache/hertzbeat/pull/1371](https://github.com/apache/hertzbeat/pull/1371) +- add bbelide2 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1372](https://github.com/apache/hertzbeat/pull/1372) +- Fix flaky test replaceSmilingPlaceholder by @bbelide2 in [https://github.com/apache/hertzbeat/pull/1373](https://github.com/apache/hertzbeat/pull/1373) +- add docker-compose script hertzbeat+mysql+victoria-metrics all in one by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1370](https://github.com/apache/hertzbeat/pull/1370) +- Feature: app-jvm.yml support for international name aliases by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1376](https://github.com/apache/hertzbeat/pull/1376) +- add Calvin979 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1377](https://github.com/apache/hertzbeat/pull/1377) +- feature: support monitoring spring gateway metrics by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1374](https://github.com/apache/hertzbeat/pull/1374) +- update code comment and doc, bugfix concurrent exception by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1378](https://github.com/apache/hertzbeat/pull/1378) +- update windows define and accept snmp leaf by @jinyaoMa in [https://github.com/apache/hertzbeat/pull/1379](https://github.com/apache/hertzbeat/pull/1379) +- add jinyaoMa as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1380](https://github.com/apache/hertzbeat/pull/1380) +- fix exception when sending email has special chars by @Carpe-Wang in [https://github.com/apache/hertzbeat/pull/1383](https://github.com/apache/hertzbeat/pull/1383) +- test: add e2e testing for some basic APIs by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1387](https://github.com/apache/hertzbeat/pull/1387) +- add LinuxSuRen as a contributor for code, and test by @allcontributors in [https://github.com/apache/hertzbeat/pull/1389](https://github.com/apache/hertzbeat/pull/1389) +- bugfix auto generate monitor name error when add monitor by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1384](https://github.com/apache/hertzbeat/pull/1384) +- bugfix CalculateAlarm execAlertExpression NPE by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1388](https://github.com/apache/hertzbeat/pull/1388) +- Feature: app-redis.yml support for international name aliases by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1390](https://github.com/apache/hertzbeat/pull/1390) +- test: add more monitor related e2e testing case by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1391](https://github.com/apache/hertzbeat/pull/1391) +- chore: update the pr template about the e2e testing by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1392](https://github.com/apache/hertzbeat/pull/1392) +- add help header ui when update or add monitors by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1399](https://github.com/apache/hertzbeat/pull/1399) +- [hertzbeat] release hertzbeat version v1.4.3 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1400](https://github.com/apache/hertzbeat/pull/1400) ## New Contributors -- @1036664317 made their first contribution in -- @dependabot made their first contribution in -- @xiaoguolong made their first contribution in -- @Clownsw made their first contribution in -- @Calvin979 made their first contribution in -- @bbelide2 made their first contribution in -- @jinyaoMa made their first contribution in -- @LinuxSuRen made their first contribution in +- @1036664317 made their first contribution in [https://github.com/apache/hertzbeat/pull/1337](https://github.com/apache/hertzbeat/pull/1337) +- @dependabot made their first contribution in [https://github.com/apache/hertzbeat/pull/1339](https://github.com/apache/hertzbeat/pull/1339) +- @xiaoguolong made their first contribution in [https://github.com/apache/hertzbeat/pull/1351](https://github.com/apache/hertzbeat/pull/1351) +- @Clownsw made their first contribution in [https://github.com/apache/hertzbeat/pull/1364](https://github.com/apache/hertzbeat/pull/1364) +- @Calvin979 made their first contribution in [https://github.com/apache/hertzbeat/pull/1366](https://github.com/apache/hertzbeat/pull/1366) +- @bbelide2 made their first contribution in [https://github.com/apache/hertzbeat/pull/1371](https://github.com/apache/hertzbeat/pull/1371) +- @jinyaoMa made their first contribution in [https://github.com/apache/hertzbeat/pull/1379](https://github.com/apache/hertzbeat/pull/1379) +- @LinuxSuRen made their first contribution in [https://github.com/apache/hertzbeat/pull/1387](https://github.com/apache/hertzbeat/pull/1387) --- @@ -163,5 +163,5 @@ keywords: [open source monitoring system, alerting system] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-11-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-11-new-committer.md index 08cd48ecb9f..4a8e9e914e9 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-11-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-11-new-committer.md @@ -128,8 +128,8 @@ keywords: [open source monitoring system, alerting system] > `HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。 -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** 欢迎更多小伙伴参与到HertzBeat的开源协作中来,不管是一个错别字还是标点符号我们都非常欢迎,大家一起学习进步,目标做一个世界级开源软件。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-18-hertzbeat-v1.4.4.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-18-hertzbeat-v1.4.4.md index dab07c9596b..3a4d365575f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-18-hertzbeat-v1.4.4.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-01-18-hertzbeat-v1.4.4.md @@ -20,9 +20,9 @@ keywords: [open source monitoring system, alerting system] - 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 - 灵活的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` `Server酱` 等方式消息及时送达。 -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ### HertzBeat's 1.4.4 新版本发布啦 @@ -82,8 +82,8 @@ keywords: [open source monitoring system, alerting system] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** --- @@ -91,76 +91,76 @@ keywords: [open source monitoring system, alerting system] > Welcome to explore more new version updates, thanks to the hard work of the community partners, love 💗! -- bugfix metrics tags value store jpa data-storage error by @tomsun28 in -- add smtp protocol and support smtp monitoring by @ZY945 in -- add ZY945 as a contributor for code by @allcontributors in -- support new parse type 'log' in ssh collect protocol by @tomsun28 in -- add ntp protocol and support ntp monitoring by @ZY945 in -- monitoring the availability of websockets through handshake. by @ZY945 in -- Task-1386 When adding tags in tag management, random colors are given by default. by @prolevel1 in -- add prolevel1 as a contributor for code by @allcontributors in +- bugfix metrics tags value store jpa data-storage error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1403](https://github.com/apache/hertzbeat/pull/1403) +- add smtp protocol and support smtp monitoring by @ZY945 in [https://github.com/apache/hertzbeat/pull/1407](https://github.com/apache/hertzbeat/pull/1407) +- add ZY945 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1409](https://github.com/apache/hertzbeat/pull/1409) +- support new parse type 'log' in ssh collect protocol by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1410](https://github.com/apache/hertzbeat/pull/1410) +- add ntp protocol and support ntp monitoring by @ZY945 in [https://github.com/apache/hertzbeat/pull/1411](https://github.com/apache/hertzbeat/pull/1411) +- monitoring the availability of websockets through handshake. by @ZY945 in [https://github.com/apache/hertzbeat/pull/1413](https://github.com/apache/hertzbeat/pull/1413) +- Task-1386 When adding tags in tag management, random colors are given by default. by @prolevel1 in [https://github.com/apache/hertzbeat/pull/1412](https://github.com/apache/hertzbeat/pull/1412) +- add prolevel1 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1415](https://github.com/apache/hertzbeat/pull/1415) - -## 1397 feature: support for dns monitoring by @Calvin979 in - -- Support monitoring hive metrics by @a-little-fool in -- support legend pageable in history data charts by @tomsun28 in -- update component tip and help tip doc by @tomsun28 in -- feature: support monitoring nginx metrics and add a help doc by @a-little-fool in -- update parser to parse from prometheus txt metrics data by @tomsun28 in -- support monitoring memcached metrics and add a help doc by @ZY945 in -- support all ssh connect key exchange by @tomsun28 in -- doc add code of conduct by @tomsun28 in -- update label structure store in victoria metrics, make it prometheus like by @tomsun28 in -- feature: support monitoring pop3 metrics and add help doc by @a-little-fool in -- Update sidebars.json by @a-little-fool in -- Add zh-cn help doc by @a-little-fool in -- update monitoring state un-manage to unmonitored, update pic by @tomsun28 in -- Add jpa to date type storage by @Clownsw in -- bugfix ^o^ token error, protect metrics api auth by @tomsun28 in -- Add relevant documents for SMTP and NTP by @ZY945 in -- bugfix threshold init error in mysql env by @tomsun28 in -- app-rabbitmq.yml support for international name aliases by @ZY945 in -- fix: error create lru-cache-timeout-cleaner thread by @Clownsw in -- app-rabbitmq.yml Modifying Error Fields. by @ZY945 in -- support monitoring NebulaGraph metrics and add help doc by @ZY945 in -- Fix Nginx Collect validateParams function NPE by @Clownsw in -- feature: add metrics i18n for app-springboot3.yml by @liyin in -- feat: add metrics i18n for app-docker.yml by @liyin in -- update docker-compose script and fix version by @tomsun28 in -- bugfix java.lang.IllegalArgumentException: Illegal character in query… by @tomsun28 in -- bugfix delete monitor error after monitor canceled by @ZhangZixuan1994 in -- add ZhangZixuan1994 as a contributor for code by @allcontributors in -- remove sleep, probably busy-waiting by @tomsun28 in -- doc add new committer ZY945 by @tomsun28 in -- Update app-zookeeper.yml by @hurenjie1 in -- add hurenjie1 as a contributor for code by @allcontributors in -- update dashboard ui, remove ssh custom SignatureFactories, update app name by @tomsun28 in -- Task Monitoring Template Yml Metrics I18n | 监控模板指标国际化任务认领 #1212 by @tslj1024 in -- add tslj1024 as a contributor for code by @allcontributors in -- Add alarm trigger time for alarm restore by @Calvin979 in -- bugfix history range query not work when victoria-metrics store by @tomsun28 in -- bugfix springboot3 translation by @liyin in -- bugfix telegram-notice can not input bot-token by @tomsun28 in -- feat: support hostname target by @ldysdu in -- add ldysdu as a contributor for code by @allcontributors in -- feature support snmp v3 monitoring protocol by @TJxiaobao in -- bugfix alarm trigger-times not work when alarm and recovered trigger cyclically by @tomsun28 in -- update switch monitoring metrics i18n by @tomsun28 in -- fixed: snmpv3 contextName bug by @TJxiaobao in -- Fix npt of webhook notify by @Calvin979 in -- hertzbeat release hertzbeat version v1.4.4 by @tomsun28 in -- bugfix nginx collect http deadlock error by @tomsun28 in -- alarm calculate ignore metrics collect code - TIMEOUT by @tomsun28 in +## 1397 feature: support for dns monitoring by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1416](https://github.com/apache/hertzbeat/pull/1416) + +- Support monitoring hive metrics by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1417](https://github.com/apache/hertzbeat/pull/1417) +- support legend pageable in history data charts by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1414](https://github.com/apache/hertzbeat/pull/1414) +- update component tip and help tip doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1418](https://github.com/apache/hertzbeat/pull/1418) +- feature: support monitoring nginx metrics and add a help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1420](https://github.com/apache/hertzbeat/pull/1420) +- update parser to parse from prometheus txt metrics data by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1421](https://github.com/apache/hertzbeat/pull/1421) +- support monitoring memcached metrics and add a help doc by @ZY945 in [https://github.com/apache/hertzbeat/pull/1423](https://github.com/apache/hertzbeat/pull/1423) +- support all ssh connect key exchange by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1424](https://github.com/apache/hertzbeat/pull/1424) +- doc add code of conduct by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1425](https://github.com/apache/hertzbeat/pull/1425) +- update label structure store in victoria metrics, make it prometheus like by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1426](https://github.com/apache/hertzbeat/pull/1426) +- feature: support monitoring pop3 metrics and add help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1427](https://github.com/apache/hertzbeat/pull/1427) +- Update sidebars.json by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1428](https://github.com/apache/hertzbeat/pull/1428) +- Add zh-cn help doc by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1429](https://github.com/apache/hertzbeat/pull/1429) +- update monitoring state un-manage to unmonitored, update pic by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1430](https://github.com/apache/hertzbeat/pull/1430) +- Add jpa to date type storage by @Clownsw in [https://github.com/apache/hertzbeat/pull/1431](https://github.com/apache/hertzbeat/pull/1431) +- bugfix ^o^ token error, protect metrics api auth by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1434](https://github.com/apache/hertzbeat/pull/1434) +- Add relevant documents for SMTP and NTP by @ZY945 in [https://github.com/apache/hertzbeat/pull/1437](https://github.com/apache/hertzbeat/pull/1437) +- bugfix threshold init error in mysql env by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1435](https://github.com/apache/hertzbeat/pull/1435) +- app-rabbitmq.yml support for international name aliases by @ZY945 in [https://github.com/apache/hertzbeat/pull/1439](https://github.com/apache/hertzbeat/pull/1439) +- fix: error create lru-cache-timeout-cleaner thread by @Clownsw in [https://github.com/apache/hertzbeat/pull/1438](https://github.com/apache/hertzbeat/pull/1438) +- app-rabbitmq.yml Modifying Error Fields. by @ZY945 in [https://github.com/apache/hertzbeat/pull/1440](https://github.com/apache/hertzbeat/pull/1440) +- support monitoring NebulaGraph metrics and add help doc by @ZY945 in [https://github.com/apache/hertzbeat/pull/1441](https://github.com/apache/hertzbeat/pull/1441) +- Fix Nginx Collect validateParams function NPE by @Clownsw in [https://github.com/apache/hertzbeat/pull/1442](https://github.com/apache/hertzbeat/pull/1442) +- feature: add metrics i18n for app-springboot3.yml by @liyin in [https://github.com/apache/hertzbeat/pull/1445](https://github.com/apache/hertzbeat/pull/1445) +- feat: add metrics i18n for app-docker.yml by @liyin in [https://github.com/apache/hertzbeat/pull/1446](https://github.com/apache/hertzbeat/pull/1446) +- update docker-compose script and fix version by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1447](https://github.com/apache/hertzbeat/pull/1447) +- bugfix java.lang.IllegalArgumentException: Illegal character in query… by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1443](https://github.com/apache/hertzbeat/pull/1443) +- bugfix delete monitor error after monitor canceled by @ZhangZixuan1994 in [https://github.com/apache/hertzbeat/pull/1451](https://github.com/apache/hertzbeat/pull/1451) +- add ZhangZixuan1994 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1454](https://github.com/apache/hertzbeat/pull/1454) +- remove sleep, probably busy-waiting by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1456](https://github.com/apache/hertzbeat/pull/1456) +- doc add new committer ZY945 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1453](https://github.com/apache/hertzbeat/pull/1453) +- Update app-zookeeper.yml by @hurenjie1 in [https://github.com/apache/hertzbeat/pull/1458](https://github.com/apache/hertzbeat/pull/1458) +- add hurenjie1 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1459](https://github.com/apache/hertzbeat/pull/1459) +- update dashboard ui, remove ssh custom SignatureFactories, update app name by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1460](https://github.com/apache/hertzbeat/pull/1460) +- Task Monitoring Template Yml Metrics I18n | 监控模板指标国际化任务认领 #1212 by @tslj1024 in [https://github.com/apache/hertzbeat/pull/1461](https://github.com/apache/hertzbeat/pull/1461) +- add tslj1024 as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1462](https://github.com/apache/hertzbeat/pull/1462) +- Add alarm trigger time for alarm restore by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1464](https://github.com/apache/hertzbeat/pull/1464) +- bugfix history range query not work when victoria-metrics store by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1463](https://github.com/apache/hertzbeat/pull/1463) +- bugfix springboot3 translation by @liyin in [https://github.com/apache/hertzbeat/pull/1467](https://github.com/apache/hertzbeat/pull/1467) +- bugfix telegram-notice can not input bot-token by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1465](https://github.com/apache/hertzbeat/pull/1465) +- feat: support hostname target by @ldysdu in [https://github.com/apache/hertzbeat/pull/1455](https://github.com/apache/hertzbeat/pull/1455) +- add ldysdu as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1471](https://github.com/apache/hertzbeat/pull/1471) +- feature support snmp v3 monitoring protocol by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1469](https://github.com/apache/hertzbeat/pull/1469) +- bugfix alarm trigger-times not work when alarm and recovered trigger cyclically by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1468](https://github.com/apache/hertzbeat/pull/1468) +- update switch monitoring metrics i18n by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1472](https://github.com/apache/hertzbeat/pull/1472) +- fixed: snmpv3 contextName bug by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1473](https://github.com/apache/hertzbeat/pull/1473) +- Fix npt of webhook notify by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1474](https://github.com/apache/hertzbeat/pull/1474) +- hertzbeat release hertzbeat version v1.4.4 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1475](https://github.com/apache/hertzbeat/pull/1475) +- bugfix nginx collect http deadlock error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1476](https://github.com/apache/hertzbeat/pull/1476) +- alarm calculate ignore metrics collect code - TIMEOUT by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1478](https://github.com/apache/hertzbeat/pull/1478) ## New Contributors -- @ZY945 made their first contribution in -- @prolevel1 made their first contribution in -- @ZhangZixuan1994 made their first contribution in -- @hurenjie1 made their first contribution in -- @tslj1024 made their first contribution in -- @ldysdu made their first contribution in +- @ZY945 made their first contribution in [https://github.com/apache/hertzbeat/pull/1407](https://github.com/apache/hertzbeat/pull/1407) +- @prolevel1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1412](https://github.com/apache/hertzbeat/pull/1412) +- @ZhangZixuan1994 made their first contribution in [https://github.com/apache/hertzbeat/pull/1451](https://github.com/apache/hertzbeat/pull/1451) +- @hurenjie1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1458](https://github.com/apache/hertzbeat/pull/1458) +- @tslj1024 made their first contribution in [https://github.com/apache/hertzbeat/pull/1461](https://github.com/apache/hertzbeat/pull/1461) +- @ldysdu made their first contribution in [https://github.com/apache/hertzbeat/pull/1455](https://github.com/apache/hertzbeat/pull/1455) --- @@ -177,5 +177,5 @@ keywords: [open source monitoring system, alerting system] --- -**Github: ** -**Gitee: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-04-17-to-apache.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-04-17-to-apache.md index 1922023928c..971229a8244 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-04-17-to-apache.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-04-17-to-apache.md @@ -1,8 +1,8 @@ --- title: 开源实时监控 HertzBeat 捐赠进入 Apache 孵化器。 -author: tom -author_title: tom -author_url: https://github.com/tomsun28 +author: tom +author_title: tom +author_url: https://github.com/tomsun28 tags: [opensource, practice] keywords: [open source monitoring system, alerting system] --- @@ -21,7 +21,7 @@ HertzBeat 于 2022 年 1 月在 Dromara 开源社区正式开源,经过两年 ## 什么是 HertzBeat -[Apache HertzBeat](https://github.com/apache/hertzbeat) (incubating) 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 +[Apache HertzBeat](https://github.com/apache/hertzbeat) 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 ### 特点 @@ -304,16 +304,16 @@ HertzBeat 开源以来主仓库在 GitHub 累计收获 **4.5K+** star, Gitee **2 **项目地址** -**** +**[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** 欢迎 star 我们🐶🐶🐶 **官方网址** -**** +**[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** **邮件列表** -**** +**[dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)** -发送任意内容至 订阅 +发送任意内容至 [dev-subcribe@hertzbeat.apache.org](mailto:dev-subcribe@hertzbeat.apache.org) 订阅 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-05-09-hertzbeat-ospp-subject-introduction.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-05-09-hertzbeat-ospp-subject-introduction.md index d7175dbee5d..c688b561dbb 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-05-09-hertzbeat-ospp-subject-introduction.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-05-09-hertzbeat-ospp-subject-introduction.md @@ -13,9 +13,9 @@ - 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 - 灵活的告警阈值规则,`邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` `Server酱` 等方式消息及时送达。 -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Gitee: ** +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** ## 什么是开源之夏? diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-06-15-hertzbeat-v1.6.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-06-15-hertzbeat-v1.6.0.md index 5bfcbb62d9d..0bbd4516204 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-06-15-hertzbeat-v1.6.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-06-15-hertzbeat-v1.6.0.md @@ -16,9 +16,9 @@ keywords: [open source, monitoring, alerting] **当然,最重要的是给在社区的贡献者们致以最好的感谢!** -下载页面: +下载页面: [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) -升级指南: +升级指南: [https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/](https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/) ## 什么是 HertzBeat? @@ -38,7 +38,7 @@ keywords: [open source, monitoring, alerting] ![hertzBeat](/img/docs/hertzbeat-arch.png) -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** ## HertzBeat's 1.6.0 Version Release @@ -78,292 +78,292 @@ keywords: [open source, monitoring, alerting] ## What's Changed -- bugfix collector can not startup alone by @tomsun28 in -- translate some hertzbeat blog by @TJxiaobao in -- Check class description by @ZY945 in -- translate class description to english by @TJxiaobao in -- support monitor metrics name i18n: ClickHouse by @ZY945 in -- translate blog 20220601 to English by @vinci-897 in -- add a online prometheus parser and a prometheus-like push style. by @vinci-897 in -- translate blog 20220320 to English by @vinci-897 in -- support monitor metrics name i18n: DynamicTp by @ZY945 in -- translate blog 20220228 to English by @vinci-897 in -- translate blog 20220310 to English by @vinci-897 in -- translate blog 20220904 to English by @vinci-897 in -- support monitor metrics name i18n: Airflow by @ZY945 in -- support monitor metrics name i18n: IoTDB by @ZY945 in -- Translate 2022-02-11-hertzbeat document by @wang1027-wqh in -- bugfix The annotation @Transactional specifies rollbackFor. by @handy-git in -- add handy-git as a contributor for code by @allcontributors in -- feature:Translate 2022-02-17-hertzbeat Document by @wang1027-wqh in -- support monitor metrics name i18n: rocketmq by @ZY945 in -- [doc] update relate doc and readme by @tomsun28 in -- bugfix monitoring mongodb not work in springboot3 by @ZY945 in -- [feature] add storm monitor by @starmilkxin in -- [bugfix] fixed the issue in http_sd where services were incorrectly reported as available when they were actually unavailable by @starmilkxin in -- remove mysql-oracle dependency jar from release package lib by @tomsun28 in -- System config theme by @TJxiaobao in -- update webapp menu layout and doc by @tomsun28 in -- bugfix can not find mysql dependency when startup by @tomsun28 in -- support config common aes secret by @tomsun28 in -- [bugfix]fix the issue of add redis cluster node test error report(#1601) by @LiuTianyou in -- add LiuTianyou as a contributor for code by @allcontributors in -- mongodb monitoring support custom connection timeout param by @ZY945 in -- bugfix old data decode error when use new common-secret by @tomsun28 in -- [bugfix] fix bug where reopening pop-up window still retained previously edited data after closing. by @starmilkxin in -- monitor center add search type modal by @tomsun28 in -- fix status page logo overflow by @tomsun28 in -- bugfix npe monitor jobid may be null by @tomsun28 in -- support custom main menus in monitor template by @tomsun28 in -- update home website doc by @tomsun28 in -- [Improve] change package group to org Apache HertzBeat™ by @vinci-897 in -- [improve] initial license clean up by @tomsun28 in -- update manager and collector logback config(#1704) by @handy-git in -- fix(sec): upgrade com.h2database:h2 to by @WinterKi1ler in -- add WinterKi1ler as a contributor for code by @allcontributors in -- update asf branch protected check by @tomsun28 in -- [doc]Update star chart by @zqr10159 in -- [fixed] fixed click collector online offline button error by @miki-hmt in -- [improve] initial doc clean up by @tomsun28 in -- [Improvement]Support multiple receivers. by @zqr10159 in -- [improvement]Add lisence. by @zqr10159 in -- Backend LICENSE Initialize by @wang1027-wqh in -- Back-end dependency upgrade by @TJxiaobao in -- [Improve] run hertzbeat in docker compose support dependen service condition by @gjjjj0101 in -- [bugfix] fix statuspage index exception by @makechoicenow in -- remove unlicensed dependency 'wolfy87 eventemitter' by @alpha951 in -- [improve] auto label when pr, update asf config by @tomsun28 in -- [improve] update asf config set required status checks context by @tomsun28 in -- [improve] home add apache info by @a-little-fool in -- [doc] Change e2e path by @crossoverJie in -- fix : ingress tls inoperative by @PeixyJ in -- [refactor] method improvement rationale by @dukbong in -- [improve] create disclaimer file, add incubating in describe by @tomsun28 in -- [improve] update new hertzbeat brand logo, update doc by @tomsun28 in -- Complete the code comment translation of the common module by @Hi-Mr-Wind in -- Remove unnecessary if-else statement. by @dukbong in -- [doc] remove and translate chinese to english in warehous by @xuziyang in -- Replace deprecated methods with builder pattern for RedisURI construction by @dukbong in -- remove and translate chinese to english in collector,script,push,remoting and manager module by @MananPoojara in -- Added the function of sending SMS messages through Alibaba Cloud. by @lwqzz in -- [improve]Add frontend license. by @zqr10159 in -- [test] Add RedisSingleCollectImplTest by @crossoverJie in -- [refactor] add override annotation by @handy-git in -- '[docs]bugfix: display syntax error of ipmi protocol' by @tomorrowshipyltm in -- [doc] translate alerter moudle code chinese to english by @tomsun28 in -- [refactor] database-related properties class, type changed to record by @xuziyang in -- Fix snmp template unit conversion problem by @TJxiaobao in -- [doc] Add help documentation for clickhouse monitoring by @LiuTianyou in -- [feature:update-checkstyle] Limit the java file header by @YxYL6125 in -- [improve]Add external lib folder to store mysql and oracle driver. by @zqr10159 in -- [Improve]When multiple lines are returned, each alarm is triggered instead of only the first alarm by @15613060203 in -- [doc] add team page in website by @alpha951 in -- [feature] Improve the import checkstyle by @crossoverJie in -- [doc] Add help document for dns monitoring by @LiuTianyou in -- [improve] preventing NPE by @dukbong in -- [refactor] change the warehouse properties the type to record by @xuziyang in -- Refactor: upgrade syntax to jdk17(instanceof & switch) by @Calvin979 in -- [test] Add NginxCollect test by @crossoverJie in -- [website] update team page by @tomsun28 in -- [test] Add RedisClusterCollectImplTest by @crossoverJie in -- [improve] Fix typo ReqStatusResponse by @crossoverJie in -- Comparing N objects for null with Assert.noNullElements(). by @dukbong in -- [doc] Add help document for elasticsearch monitoring and ftp monitoring by @LiuTianyou in -- [doc] add help documentation for huawei switch monitoring by @Alanxtl in -- chore: upgrade the api-testing (e2e) to v0.0.16 by @LinuxSuRen in -- [Remove]\[Improve\]Mail config by @zqr10159 in -- Remove and translate chinese to english in code by @dukbong in -- [feature]Add monitoring for Hbase Master by @zhangshenghang in -- [doc] resolve code conflicts and coverage caused by pr(#1813) merge by @LiuTianyou in -- [doc] Add help document for tidb and nacos monitoring by @Alanxtl in -- [improve] use eclipselink orm replace of hibernate orm by @tomsun28 in -- [improve] Add whitespace checkstyle by @crossoverJie in -- [bugfix] dns monitoring template add query class parameter by @LiuTianyou in -- [Refactor] Preventing Unnecessary Object Creation and Using Utility Methods by @dukbong in -- [doc]Add and modify Doris FE Chinese and English documentation by @zhangshenghang in -- [docs] Optimize: add help docs for UDP port & Springboot3 help doc by @zuobiao-zhou in -- Code Simplification, Structure Changes, and Translation Work, Along with a Question by @dukbong in -- [doc] add help document for mongodb monitoring by @LiuTianyou in -- [collector] fix: inverts the compareTo sort of MetricsCollect run queue by @Pzz-2021 in -- [doc]Doc add debian system by @zhangshenghang in -- [feature] Add Apache Hbase RegionServer monitoring by @zhangshenghang in -- [improve] Optimize websocket monitor by @LiuTianyou in -- [refactor] Split the WarehouseProperties class by @xuziyang in -- [test] Add test for HttpsdImpl by @crossoverJie in -- [fix] Fix the wrong comment by @xuziyang in -- [refactor] trans and use assert by @dukbong in -- [bugfix] modify the command in the mongodb monitoring template by @LiuTianyou in -- [bigfix]Fix Debian system Top10 monitoring bug by @zhangshenghang in -- [cleanup]Delete the corresponding Chinese comments by @hudongdong129 in -- [doc] translates chinese comment to english. by @dukbong in -- [doc] fix error and add help document for prometheus task by @LiuTianyou in -- [feature] Add Linux process monitoring by @zhangshenghang in -- [test] Add test for FtpCollectImpl by @crossoverJie in -- [improve] use apache jexl replace of aviator by @tomsun28 in -- [bugfix] jpa data save logic repair by @zhangshenghang in -- [feature] add influxdb metrics monitoring by @TJxiaobao in -- [doc] add help document for rocketmq by @LiuTianyou in -- [improve] Imporve checkstyle of test code. by @crossoverJie in -- [feature] Support Redfish protocol to monitoring server by @gjjjj0101 in -- Fix debian monitoring template issue about process monitoring by @LLP2333 in -- [bugfix] centos Top10 shows missing one by @zhangshenghang in -- [improve] add website apache incubator footer by @tomsun28 in -- [doc] update help document by @LiuTianyou in -- [featurn] support flyway database migration by @tomsun28 in -- [improve] Delete the timestamp field in the class MetricFamily.Metric by @xuziyang in -- [improve] Use java.lang.AutoCloseable instead of CacheCloseable by @crossoverJie in -- [bugfix]Fix top10 process command. by @zqr10159 in -- [feature] support the VictoriaMetrics cluster by @xuziyang in -- [improve] Refactor common cache code by @crossoverJie in -- Eliminate Unnecessary Unboxing and Generics by @handy-git in -- [bugfix]\[doc\]Add kafka sidebar. by @zqr10159 in -- [doc] I18n for monitoring template yml metrics by @zuobiao-zhou in -- [refactor] StoreProperties is no longer useful, delete it by @xuziyang in -- bugfix statistical metrics data matching fails by @tomsun28 in -- [doc] add help doc for flink monitoring by @HeartLinked in -- [doc] add almalinux documentation by @zhangshenghang in -- [improve] Missing a generic by @crossoverJie in -- [bugfix] Fixed some metrics of Jexlespression not matching in Elasticsearch by @zhangshenghang in -- feat(*): Support Time Type to Tengine Data Storage by @Clownsw in -- [feature] support random jwt secret when not custom by @tomsun28 in -- [doc] add opensuse doc by @zhangshenghang in -- fix when manager restart, collect register error by @Ceilzcx in -- [bugfix] fix can not use empty collection as query params in eclipselink by @tomsun28 in -- [doc] update doc add download page and pic by @tomsun28 in -- [test] Add test for UdpCollectImpl by @crossoverJie in -- fix license by @yqxxgh in -- [improve] refactor code by @Ceilzcx in -- [type:bugfix] fix customized menu invalid bug #1898 by @Aias00 in -- [type:bugfix] fix HTTP API bug #1895 by @Aias00 in -- [test] Add test for WebsocketCollectImpl by @crossoverJie in -- [doc] translates chinese comment to english. by @westboy in -- [doc] Add HIP document and template by @crossoverJie in -- [improve] clean up home webapp unused code by @tomsun28 in -- [feature] support use ngql query metrics from nebulaGraph by @LiuTianyou in -- [doc] Improve the Contribution Documentation. by @crossoverJie in -- [featrue]add apache hdfs monitor by @zhangshenghang in -- [doc] update hbase documentation description by @zhangshenghang in -- [doc] Add documentation for nebulaGraph cluster monitoring and custom monitoring using NGQL, and clean up useless parameters by @LiuTianyou in -- [test] Add test for TelnetCollectImplTest by @crossoverJie in -- fix(*): fix TdEngine Init not found Database by @Clownsw in -- [doc] update contribution and add run-build guide by @tomsun28 in -- bugfix collector startup error can not find JdbcClient by @tomsun28 in -- [doc] add help document for freebsd monitoring by @LiuTianyou in -- [refactoring] Split AbstractHistoryDataStorage class by @xuziyang in -- [fix] fixed name error in monitoring template and improve NGQL protocol by @LiuTianyou in -- [refactoring] Split AbstractRealTimeDataStorage class by @xuziyang in -- [bugfix] fix ssl-cert days_remaining and npe by @tomsun28 in -- [feature] add apache yarn monitor by @zhangshenghang in -- [doc] add help document for redhat monitoring and rocky linux monitoring by @LiuTianyou in -- [test] Add test for NtpCollectImpl by @crossoverJie in -- [bugfix] fix alarm center tags display error by @tomsun28 in -- [improve] prepare for release hertzbeat v1.6.0 by @tomsun28 in -- add:Updated the Open Source Summer Project blog. by @TJxiaobao in -- [feature] Support monitoring of OpenAI accounts by @zuobiao-zhou in -- [refactoring] Inject a single instance of the data store by @xuziyang in -- [refactoring] AbstractHistoryDataStorage implement the DisposableBean by @xuziyang in -- [doc] update iotdb init document by @zhangshenghang in -- [improve] update build script by @tomsun28 in -- [test] add test for NgqlCollectImpl by @LiuTianyou in -- [bugfix]Replace monitors to alert. by @zqr10159 in -- [improve] add llm, server menu and update doc by @tomsun28 in -- [improve]\[HIP\] HIP-01: Refactoring AbstractCollect by @crossoverJie in -- [bugfix] fix ConnectionCommonCache possible npe by @crossoverJie in -- [doc] add help document for eulerOS monitoring by @LiuTianyou in -- [fixbug] Fix the problem of no data for springboot3 monitoring by @zhangshenghang in -- commit:fix the front-end popup cannot exit by @Yanshuming1 in -- [fixbug] expression rule adaptation by @zhangshenghang in -- [doc] add help doc for influxdb-promql and kafka-promql monitoring by @LiuTianyou in -- [doc]: update readme-cn docs by @yuluo-yx in -- [improve]\[HIP\] HIP-01: Implement refactoring AbstractCollect by @crossoverJie in -- [chore] update .gitignore to save .idea/icon.png by @yuluo-yx in -- [improve]\[bugfix\]: fix AlertTemplateUtilTest test exception and update code style by @yuluo-yx in -- [feature] add apache hugegraph monitor by @zhangshenghang in -- [improve] Implement cascading parameter list for SNMP protocol by @zuobiao-zhou in -- [improve] optimize DateUtil and add test case by @yuluo-yx in -- [feature]Hertzbeat custom plugin. by @zqr10159 in -- update login page and status page color by @lwjxy in -- [chore] update code style and add some comment by @yuluo-yx in -- [doc]Hertzbeat plugin doc. by @zqr10159 in -- [doc] update contributors and update status page style by @tomsun28 in -- [feature] Implement cascading parameter list by @zuobiao-zhou in -- [doc]update threshold alarm doc by @zhangshenghang in -- [chore] optimize code style by @yuluo-yx in -- [fix] Compatible with MongoDB versions earlier than 3.6 by @gjjjj0101 in -- [chore] optimize manager code style by @yuluo-yx in -- [doc] Translate part of documentation development.md under `zh-cn` directory from `en` to `zh-cn` by @Thespica in -- [improve] http protocol prometheus parsing optimization by @zhangshenghang in -- [feature] add at function for wechat by @Yanshuming1 in -- [improve] add common util test by @yuluo-yx in -- [improve] update release license notice and package by @tomsun28 in -- [bugfix] fix collector startup error classpath by @tomsun28 in -- [chore] optimize code style by @yuluo-yx in -- [improve] Bump up `eslint-plugin-jsdoc` to 48.2.5 to support node 20+ by @Thespica in -- [doc] fix doc highlighting by @boatrainlsz in -- [web-app]feature: case insensitive search by @JavaProgrammerLB in -- [feature] Support time calculation expressions. by @LiuTianyou in -- [doc] add document for time expression by @LiuTianyou in -- [feature] Add Apache Pulsar monitor by @zhangshenghang in -- [doc] home verify release doc update by @tomsun28 in -- [Improve] Improve clickhouse monitor And Improve Pulsar monitor by @zhangshenghang in -- [doc] translate help document for memcached monitoring by @LiuTianyou in -- [improve] optimize collector httpsd discovery by @yuluo-yx in -- [optimize] optimize code style and logic, add unit test by @yuluo-yx in -- [fix] Fix possible potential thread safe bugs by @gjjjj0101 in -- [improve] add ci for home by @LiuTianyou in -- [bugfix]Tag with empty value Shouldn't transform to Tag: by @JavaProgrammerLB in -- [bugfix] modify popup confirm to clear cache and cancel popup save by @Yanshuming1 in -- [improve] update monitor state desc by @tomsun28 in -- bugfix: fix overflow of integers by @Calvin979 in -- [improve] tips need update initial default password by @tomsun28 in -- [improve] deprecate support iotdb 0.* version by @Ceilzcx in -- [fixbug] required field check by @zhangshenghang in -- [improve] add IcmpCollectImplTest by @zuobiao-zhou in -- [improve] fix code style by @zuobiao-zhou in -- [improve] increase the length limit of the username field by @zuobiao-zhou in -- [improve] Checkstyle include testSource by @crossoverJie in -- [bugfix] fix collector and frontend dependent license error by @tomsun28 in -- [improve] Add test for MemcachedCollectImpl by @zuobiao-zhou in -- [imprve] Remove duplicate indices by @zuobiao-zhou in -- [docs]: fix several typos in docs by @lw-yang in -- Add the missing parts of docs, fix layout, sync the English version with the Chinese version by @xfl12345 in -- [improve] add filename check in home ci by @LiuTianyou in -- [improve] update dependency licenses and remove the aliyun sms depend by @tomsun28 in +- bugfix collector can not startup alone by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1633](https://github.com/apache/hertzbeat/pull/1633) +- translate some hertzbeat blog by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1635](https://github.com/apache/hertzbeat/pull/1635) +- Check class description by @ZY945 in [https://github.com/apache/hertzbeat/pull/1638](https://github.com/apache/hertzbeat/pull/1638) +- translate class description to english by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1641](https://github.com/apache/hertzbeat/pull/1641) +- support monitor metrics name i18n: ClickHouse by @ZY945 in [https://github.com/apache/hertzbeat/pull/1642](https://github.com/apache/hertzbeat/pull/1642) +- translate blog 20220601 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1646](https://github.com/apache/hertzbeat/pull/1646) +- add a online prometheus parser and a prometheus-like push style. by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1644](https://github.com/apache/hertzbeat/pull/1644) +- translate blog 20220320 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1647](https://github.com/apache/hertzbeat/pull/1647) +- support monitor metrics name i18n: DynamicTp by @ZY945 in [https://github.com/apache/hertzbeat/pull/1649](https://github.com/apache/hertzbeat/pull/1649) +- translate blog 20220228 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1648](https://github.com/apache/hertzbeat/pull/1648) +- translate blog 20220310 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1651](https://github.com/apache/hertzbeat/pull/1651) +- translate blog 20220904 to English by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1652](https://github.com/apache/hertzbeat/pull/1652) +- support monitor metrics name i18n: Airflow by @ZY945 in [https://github.com/apache/hertzbeat/pull/1654](https://github.com/apache/hertzbeat/pull/1654) +- support monitor metrics name i18n: IoTDB by @ZY945 in [https://github.com/apache/hertzbeat/pull/1659](https://github.com/apache/hertzbeat/pull/1659) +- Translate 2022-02-11-hertzbeat document by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1660](https://github.com/apache/hertzbeat/pull/1660) +- bugfix The annotation @Transactional specifies rollbackFor. by @handy-git in [https://github.com/apache/hertzbeat/pull/1643](https://github.com/apache/hertzbeat/pull/1643) +- add handy-git as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1661](https://github.com/apache/hertzbeat/pull/1661) +- feature:Translate 2022-02-17-hertzbeat Document by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1662](https://github.com/apache/hertzbeat/pull/1662) +- support monitor metrics name i18n: rocketmq by @ZY945 in [https://github.com/apache/hertzbeat/pull/1663](https://github.com/apache/hertzbeat/pull/1663) +- [doc] update relate doc and readme by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1667](https://github.com/apache/hertzbeat/pull/1667) +- bugfix monitoring mongodb not work in springboot3 by @ZY945 in [https://github.com/apache/hertzbeat/pull/1668](https://github.com/apache/hertzbeat/pull/1668) +- [feature] add storm monitor by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1673](https://github.com/apache/hertzbeat/pull/1673) +- [bugfix] fixed the issue in http_sd where services were incorrectly reported as available when they were actually unavailable by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1678](https://github.com/apache/hertzbeat/pull/1678) +- remove mysql-oracle dependency jar from release package lib by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1680](https://github.com/apache/hertzbeat/pull/1680) +- System config theme by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1636](https://github.com/apache/hertzbeat/pull/1636) +- update webapp menu layout and doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1682](https://github.com/apache/hertzbeat/pull/1682) +- bugfix can not find mysql dependency when startup by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1686](https://github.com/apache/hertzbeat/pull/1686) +- support config common aes secret by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1683](https://github.com/apache/hertzbeat/pull/1683) +- [bugfix]fix the issue of add redis cluster node test error report(#1601) by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1684](https://github.com/apache/hertzbeat/pull/1684) +- add LiuTianyou as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1687](https://github.com/apache/hertzbeat/pull/1687) +- mongodb monitoring support custom connection timeout param by @ZY945 in [https://github.com/apache/hertzbeat/pull/1697](https://github.com/apache/hertzbeat/pull/1697) +- bugfix old data decode error when use new common-secret by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1696](https://github.com/apache/hertzbeat/pull/1696) +- [bugfix] fix bug where reopening pop-up window still retained previously edited data after closing. by @starmilkxin in [https://github.com/apache/hertzbeat/pull/1698](https://github.com/apache/hertzbeat/pull/1698) +- monitor center add search type modal by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1699](https://github.com/apache/hertzbeat/pull/1699) +- fix status page logo overflow by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1700](https://github.com/apache/hertzbeat/pull/1700) +- bugfix npe monitor jobid may be null by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1701](https://github.com/apache/hertzbeat/pull/1701) +- support custom main menus in monitor template by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1703](https://github.com/apache/hertzbeat/pull/1703) +- update home website doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1712](https://github.com/apache/hertzbeat/pull/1712) +- [Improve] change package group to org Apache HertzBeat™ by @vinci-897 in [https://github.com/apache/hertzbeat/pull/1724](https://github.com/apache/hertzbeat/pull/1724) +- [improve] initial license clean up by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1725](https://github.com/apache/hertzbeat/pull/1725) +- update manager and collector logback config(#1704) by @handy-git in [https://github.com/apache/hertzbeat/pull/1723](https://github.com/apache/hertzbeat/pull/1723) +- fix(sec): upgrade com.h2database:h2 to by @WinterKi1ler in [https://github.com/apache/hertzbeat/pull/1718](https://github.com/apache/hertzbeat/pull/1718) +- add WinterKi1ler as a contributor for code by @allcontributors in [https://github.com/apache/hertzbeat/pull/1736](https://github.com/apache/hertzbeat/pull/1736) +- update asf branch protected check by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1738](https://github.com/apache/hertzbeat/pull/1738) +- [doc]Update star chart by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1737](https://github.com/apache/hertzbeat/pull/1737) +- [fixed] fixed click collector online offline button error by @miki-hmt in [https://github.com/apache/hertzbeat/pull/1734](https://github.com/apache/hertzbeat/pull/1734) +- [improve] initial doc clean up by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1741](https://github.com/apache/hertzbeat/pull/1741) +- [Improvement]Support multiple receivers. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1731](https://github.com/apache/hertzbeat/pull/1731) +- [improvement]Add lisence. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1746](https://github.com/apache/hertzbeat/pull/1746) +- Backend LICENSE Initialize by @wang1027-wqh in [https://github.com/apache/hertzbeat/pull/1744](https://github.com/apache/hertzbeat/pull/1744) +- Back-end dependency upgrade by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1743](https://github.com/apache/hertzbeat/pull/1743) +- [Improve] run hertzbeat in docker compose support dependen service condition by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1748](https://github.com/apache/hertzbeat/pull/1748) +- [bugfix] fix statuspage index exception by @makechoicenow in [https://github.com/apache/hertzbeat/pull/1747](https://github.com/apache/hertzbeat/pull/1747) +- remove unlicensed dependency 'wolfy87 eventemitter' by @alpha951 in [https://github.com/apache/hertzbeat/pull/1745](https://github.com/apache/hertzbeat/pull/1745) +- [improve] auto label when pr, update asf config by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1749](https://github.com/apache/hertzbeat/pull/1749) +- [improve] update asf config set required status checks context by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1751](https://github.com/apache/hertzbeat/pull/1751) +- [improve] home add apache info by @a-little-fool in [https://github.com/apache/hertzbeat/pull/1740](https://github.com/apache/hertzbeat/pull/1740) +- [doc] Change e2e path by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1758](https://github.com/apache/hertzbeat/pull/1758) +- fix : ingress tls inoperative by @PeixyJ in [https://github.com/apache/hertzbeat/pull/1760](https://github.com/apache/hertzbeat/pull/1760) +- [refactor] method improvement rationale by @dukbong in [https://github.com/apache/hertzbeat/pull/1757](https://github.com/apache/hertzbeat/pull/1757) +- [improve] create disclaimer file, add incubating in describe by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1764](https://github.com/apache/hertzbeat/pull/1764) +- [improve] update new hertzbeat brand logo, update doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1761](https://github.com/apache/hertzbeat/pull/1761) +- Complete the code comment translation of the common module by @Hi-Mr-Wind in [https://github.com/apache/hertzbeat/pull/1766](https://github.com/apache/hertzbeat/pull/1766) +- Remove unnecessary if-else statement. by @dukbong in [https://github.com/apache/hertzbeat/pull/1770](https://github.com/apache/hertzbeat/pull/1770) +- [doc] remove and translate chinese to english in warehous by @xuziyang in [https://github.com/apache/hertzbeat/pull/1773](https://github.com/apache/hertzbeat/pull/1773) +- Replace deprecated methods with builder pattern for RedisURI construction by @dukbong in [https://github.com/apache/hertzbeat/pull/1772](https://github.com/apache/hertzbeat/pull/1772) +- remove and translate chinese to english in collector,script,push,remoting and manager module by @MananPoojara in [https://github.com/apache/hertzbeat/pull/1774](https://github.com/apache/hertzbeat/pull/1774) +- Added the function of sending SMS messages through Alibaba Cloud. by @lwqzz in [https://github.com/apache/hertzbeat/pull/1768](https://github.com/apache/hertzbeat/pull/1768) +- [improve]Add frontend license. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1776](https://github.com/apache/hertzbeat/pull/1776) +- [test] Add RedisSingleCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1784](https://github.com/apache/hertzbeat/pull/1784) +- [refactor] add override annotation by @handy-git in [https://github.com/apache/hertzbeat/pull/1782](https://github.com/apache/hertzbeat/pull/1782) +- '[docs]bugfix: display syntax error of ipmi protocol' by @tomorrowshipyltm in [https://github.com/apache/hertzbeat/pull/1793](https://github.com/apache/hertzbeat/pull/1793) +- [doc] translate alerter moudle code chinese to english by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1765](https://github.com/apache/hertzbeat/pull/1765) +- [refactor] database-related properties class, type changed to record by @xuziyang in [https://github.com/apache/hertzbeat/pull/1786](https://github.com/apache/hertzbeat/pull/1786) +- Fix snmp template unit conversion problem by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1796](https://github.com/apache/hertzbeat/pull/1796) +- [doc] Add help documentation for clickhouse monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1798](https://github.com/apache/hertzbeat/pull/1798) +- [feature:update-checkstyle] Limit the java file header by @YxYL6125 in [https://github.com/apache/hertzbeat/pull/1799](https://github.com/apache/hertzbeat/pull/1799) +- [improve]Add external lib folder to store mysql and oracle driver. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1783](https://github.com/apache/hertzbeat/pull/1783) +- [Improve]When multiple lines are returned, each alarm is triggered instead of only the first alarm by @15613060203 in [https://github.com/apache/hertzbeat/pull/1797](https://github.com/apache/hertzbeat/pull/1797) +- [doc] add team page in website by @alpha951 in [https://github.com/apache/hertzbeat/pull/1800](https://github.com/apache/hertzbeat/pull/1800) +- [feature] Improve the import checkstyle by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1802](https://github.com/apache/hertzbeat/pull/1802) +- [doc] Add help document for dns monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1804](https://github.com/apache/hertzbeat/pull/1804) +- [improve] preventing NPE by @dukbong in [https://github.com/apache/hertzbeat/pull/1808](https://github.com/apache/hertzbeat/pull/1808) +- [refactor] change the warehouse properties the type to record by @xuziyang in [https://github.com/apache/hertzbeat/pull/1806](https://github.com/apache/hertzbeat/pull/1806) +- Refactor: upgrade syntax to jdk17(instanceof & switch) by @Calvin979 in [https://github.com/apache/hertzbeat/pull/1807](https://github.com/apache/hertzbeat/pull/1807) +- [test] Add NginxCollect test by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1809](https://github.com/apache/hertzbeat/pull/1809) +- [website] update team page by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1803](https://github.com/apache/hertzbeat/pull/1803) +- [test] Add RedisClusterCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1789](https://github.com/apache/hertzbeat/pull/1789) +- [improve] Fix typo ReqStatusResponse by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1811](https://github.com/apache/hertzbeat/pull/1811) +- Comparing N objects for null with Assert.noNullElements(). by @dukbong in [https://github.com/apache/hertzbeat/pull/1814](https://github.com/apache/hertzbeat/pull/1814) +- [doc] Add help document for elasticsearch monitoring and ftp monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1815](https://github.com/apache/hertzbeat/pull/1815) +- [doc] add help documentation for huawei switch monitoring by @Alanxtl in [https://github.com/apache/hertzbeat/pull/1813](https://github.com/apache/hertzbeat/pull/1813) +- chore: upgrade the api-testing (e2e) to v0.0.16 by @LinuxSuRen in [https://github.com/apache/hertzbeat/pull/1817](https://github.com/apache/hertzbeat/pull/1817) +- [Remove]\[Improve\]Mail config by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1819](https://github.com/apache/hertzbeat/pull/1819) +- Remove and translate chinese to english in code by @dukbong in [https://github.com/apache/hertzbeat/pull/1816](https://github.com/apache/hertzbeat/pull/1816) +- [feature]Add monitoring for Hbase Master by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1820](https://github.com/apache/hertzbeat/pull/1820) +- [doc] resolve code conflicts and coverage caused by pr(#1813) merge by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1821](https://github.com/apache/hertzbeat/pull/1821) +- [doc] Add help document for tidb and nacos monitoring by @Alanxtl in [https://github.com/apache/hertzbeat/pull/1823](https://github.com/apache/hertzbeat/pull/1823) +- [improve] use eclipselink orm replace of hibernate orm by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1801](https://github.com/apache/hertzbeat/pull/1801) +- [improve] Add whitespace checkstyle by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1824](https://github.com/apache/hertzbeat/pull/1824) +- [bugfix] dns monitoring template add query class parameter by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1825](https://github.com/apache/hertzbeat/pull/1825) +- [Refactor] Preventing Unnecessary Object Creation and Using Utility Methods by @dukbong in [https://github.com/apache/hertzbeat/pull/1818](https://github.com/apache/hertzbeat/pull/1818) +- [doc]Add and modify Doris FE Chinese and English documentation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1828](https://github.com/apache/hertzbeat/pull/1828) +- [docs] Optimize: add help docs for UDP port & Springboot3 help doc by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1832](https://github.com/apache/hertzbeat/pull/1832) +- Code Simplification, Structure Changes, and Translation Work, Along with a Question by @dukbong in [https://github.com/apache/hertzbeat/pull/1827](https://github.com/apache/hertzbeat/pull/1827) +- [doc] add help document for mongodb monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1834](https://github.com/apache/hertzbeat/pull/1834) +- [collector] fix: inverts the compareTo sort of MetricsCollect run queue by @Pzz-2021 in [https://github.com/apache/hertzbeat/pull/1837](https://github.com/apache/hertzbeat/pull/1837) +- [doc]Doc add debian system by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1842](https://github.com/apache/hertzbeat/pull/1842) +- [feature] Add Apache Hbase RegionServer monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1833](https://github.com/apache/hertzbeat/pull/1833) +- [improve] Optimize websocket monitor by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1838](https://github.com/apache/hertzbeat/pull/1838) +- [refactor] Split the WarehouseProperties class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1830](https://github.com/apache/hertzbeat/pull/1830) +- [test] Add test for HttpsdImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1840](https://github.com/apache/hertzbeat/pull/1840) +- [fix] Fix the wrong comment by @xuziyang in [https://github.com/apache/hertzbeat/pull/1843](https://github.com/apache/hertzbeat/pull/1843) +- [refactor] trans and use assert by @dukbong in [https://github.com/apache/hertzbeat/pull/1841](https://github.com/apache/hertzbeat/pull/1841) +- [bugfix] modify the command in the mongodb monitoring template by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1844](https://github.com/apache/hertzbeat/pull/1844) +- [bigfix]Fix Debian system Top10 monitoring bug by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1846](https://github.com/apache/hertzbeat/pull/1846) +- [cleanup]Delete the corresponding Chinese comments by @hudongdong129 in [https://github.com/apache/hertzbeat/pull/1847](https://github.com/apache/hertzbeat/pull/1847) +- [doc] translates chinese comment to english. by @dukbong in [https://github.com/apache/hertzbeat/pull/1853](https://github.com/apache/hertzbeat/pull/1853) +- [doc] fix error and add help document for prometheus task by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1852](https://github.com/apache/hertzbeat/pull/1852) +- [feature] Add Linux process monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1857](https://github.com/apache/hertzbeat/pull/1857) +- [test] Add test for FtpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1856](https://github.com/apache/hertzbeat/pull/1856) +- [improve] use apache jexl replace of aviator by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1859](https://github.com/apache/hertzbeat/pull/1859) +- [bugfix] jpa data save logic repair by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1863](https://github.com/apache/hertzbeat/pull/1863) +- [feature] add influxdb metrics monitoring by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1730](https://github.com/apache/hertzbeat/pull/1730) +- [doc] add help document for rocketmq by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1874](https://github.com/apache/hertzbeat/pull/1874) +- [improve] Imporve checkstyle of test code. by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1864](https://github.com/apache/hertzbeat/pull/1864) +- [feature] Support Redfish protocol to monitoring server by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1867](https://github.com/apache/hertzbeat/pull/1867) +- Fix debian monitoring template issue about process monitoring by @LLP2333 in [https://github.com/apache/hertzbeat/pull/1868](https://github.com/apache/hertzbeat/pull/1868) +- [bugfix] centos Top10 shows missing one by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1870](https://github.com/apache/hertzbeat/pull/1870) +- [improve] add website apache incubator footer by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1860](https://github.com/apache/hertzbeat/pull/1860) +- [doc] update help document by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1861](https://github.com/apache/hertzbeat/pull/1861) +- [featurn] support flyway database migration by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1875](https://github.com/apache/hertzbeat/pull/1875) +- [improve] Delete the timestamp field in the class MetricFamily.Metric by @xuziyang in [https://github.com/apache/hertzbeat/pull/1878](https://github.com/apache/hertzbeat/pull/1878) +- [improve] Use java.lang.AutoCloseable instead of CacheCloseable by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1879](https://github.com/apache/hertzbeat/pull/1879) +- [bugfix]Fix top10 process command. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1876](https://github.com/apache/hertzbeat/pull/1876) +- [feature] support the VictoriaMetrics cluster by @xuziyang in [https://github.com/apache/hertzbeat/pull/1880](https://github.com/apache/hertzbeat/pull/1880) +- [improve] Refactor common cache code by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1881](https://github.com/apache/hertzbeat/pull/1881) +- Eliminate Unnecessary Unboxing and Generics by @handy-git in [https://github.com/apache/hertzbeat/pull/1882](https://github.com/apache/hertzbeat/pull/1882) +- [bugfix]\[doc\]Add kafka sidebar. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1883](https://github.com/apache/hertzbeat/pull/1883) +- [doc] I18n for monitoring template yml metrics by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1888](https://github.com/apache/hertzbeat/pull/1888) +- [refactor] StoreProperties is no longer useful, delete it by @xuziyang in [https://github.com/apache/hertzbeat/pull/1887](https://github.com/apache/hertzbeat/pull/1887) +- bugfix statistical metrics data matching fails by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1884](https://github.com/apache/hertzbeat/pull/1884) +- [doc] add help doc for flink monitoring by @HeartLinked in [https://github.com/apache/hertzbeat/pull/1893](https://github.com/apache/hertzbeat/pull/1893) +- [doc] add almalinux documentation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1892](https://github.com/apache/hertzbeat/pull/1892) +- [improve] Missing a generic by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1889](https://github.com/apache/hertzbeat/pull/1889) +- [bugfix] Fixed some metrics of Jexlespression not matching in Elasticsearch by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1894](https://github.com/apache/hertzbeat/pull/1894) +- feat(*): Support Time Type to Tengine Data Storage by @Clownsw in [https://github.com/apache/hertzbeat/pull/1890](https://github.com/apache/hertzbeat/pull/1890) +- [feature] support random jwt secret when not custom by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1897](https://github.com/apache/hertzbeat/pull/1897) +- [doc] add opensuse doc by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1902](https://github.com/apache/hertzbeat/pull/1902) +- fix when manager restart, collect register error by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1896](https://github.com/apache/hertzbeat/pull/1896) +- [bugfix] fix can not use empty collection as query params in eclipselink by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1900](https://github.com/apache/hertzbeat/pull/1900) +- [doc] update doc add download page and pic by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1904](https://github.com/apache/hertzbeat/pull/1904) +- [test] Add test for UdpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1906](https://github.com/apache/hertzbeat/pull/1906) +- fix license by @yqxxgh in [https://github.com/apache/hertzbeat/pull/1907](https://github.com/apache/hertzbeat/pull/1907) +- [improve] refactor code by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/1901](https://github.com/apache/hertzbeat/pull/1901) +- [type:bugfix] fix customized menu invalid bug #1898 by @Aias00 in [https://github.com/apache/hertzbeat/pull/1908](https://github.com/apache/hertzbeat/pull/1908) +- [type:bugfix] fix HTTP API bug #1895 by @Aias00 in [https://github.com/apache/hertzbeat/pull/1909](https://github.com/apache/hertzbeat/pull/1909) +- [test] Add test for WebsocketCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1912](https://github.com/apache/hertzbeat/pull/1912) +- [doc] translates chinese comment to english. by @westboy in [https://github.com/apache/hertzbeat/pull/1914](https://github.com/apache/hertzbeat/pull/1914) +- [doc] Add HIP document and template by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1913](https://github.com/apache/hertzbeat/pull/1913) +- [improve] clean up home webapp unused code by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1915](https://github.com/apache/hertzbeat/pull/1915) +- [feature] support use ngql query metrics from nebulaGraph by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1917](https://github.com/apache/hertzbeat/pull/1917) +- [doc] Improve the Contribution Documentation. by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1918](https://github.com/apache/hertzbeat/pull/1918) +- [featrue]add apache hdfs monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1920](https://github.com/apache/hertzbeat/pull/1920) +- [doc] update hbase documentation description by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1921](https://github.com/apache/hertzbeat/pull/1921) +- [doc] Add documentation for nebulaGraph cluster monitoring and custom monitoring using NGQL, and clean up useless parameters by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1923](https://github.com/apache/hertzbeat/pull/1923) +- [test] Add test for TelnetCollectImplTest by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1924](https://github.com/apache/hertzbeat/pull/1924) +- fix(*): fix TdEngine Init not found Database by @Clownsw in [https://github.com/apache/hertzbeat/pull/1891](https://github.com/apache/hertzbeat/pull/1891) +- [doc] update contribution and add run-build guide by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1919](https://github.com/apache/hertzbeat/pull/1919) +- bugfix collector startup error can not find JdbcClient by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1925](https://github.com/apache/hertzbeat/pull/1925) +- [doc] add help document for freebsd monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1928](https://github.com/apache/hertzbeat/pull/1928) +- [refactoring] Split AbstractHistoryDataStorage class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1926](https://github.com/apache/hertzbeat/pull/1926) +- [fix] fixed name error in monitoring template and improve NGQL protocol by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1931](https://github.com/apache/hertzbeat/pull/1931) +- [refactoring] Split AbstractRealTimeDataStorage class by @xuziyang in [https://github.com/apache/hertzbeat/pull/1935](https://github.com/apache/hertzbeat/pull/1935) +- [bugfix] fix ssl-cert days_remaining and npe by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1934](https://github.com/apache/hertzbeat/pull/1934) +- [feature] add apache yarn monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1937](https://github.com/apache/hertzbeat/pull/1937) +- [doc] add help document for redhat monitoring and rocky linux monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1939](https://github.com/apache/hertzbeat/pull/1939) +- [test] Add test for NtpCollectImpl by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1940](https://github.com/apache/hertzbeat/pull/1940) +- [bugfix] fix alarm center tags display error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1938](https://github.com/apache/hertzbeat/pull/1938) +- [improve] prepare for release hertzbeat v1.6.0 by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1929](https://github.com/apache/hertzbeat/pull/1929) +- add:Updated the Open Source Summer Project blog. by @TJxiaobao in [https://github.com/apache/hertzbeat/pull/1943](https://github.com/apache/hertzbeat/pull/1943) +- [feature] Support monitoring of OpenAI accounts by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1947](https://github.com/apache/hertzbeat/pull/1947) +- [refactoring] Inject a single instance of the data store by @xuziyang in [https://github.com/apache/hertzbeat/pull/1944](https://github.com/apache/hertzbeat/pull/1944) +- [refactoring] AbstractHistoryDataStorage implement the DisposableBean by @xuziyang in [https://github.com/apache/hertzbeat/pull/1946](https://github.com/apache/hertzbeat/pull/1946) +- [doc] update iotdb init document by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1948](https://github.com/apache/hertzbeat/pull/1948) +- [improve] update build script by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1949](https://github.com/apache/hertzbeat/pull/1949) +- [test] add test for NgqlCollectImpl by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1953](https://github.com/apache/hertzbeat/pull/1953) +- [bugfix]Replace monitors to alert. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1954](https://github.com/apache/hertzbeat/pull/1954) +- [improve] add llm, server menu and update doc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1955](https://github.com/apache/hertzbeat/pull/1955) +- [improve]\[HIP\] HIP-01: Refactoring AbstractCollect by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1930](https://github.com/apache/hertzbeat/pull/1930) +- [bugfix] fix ConnectionCommonCache possible npe by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1959](https://github.com/apache/hertzbeat/pull/1959) +- [doc] add help document for eulerOS monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1960](https://github.com/apache/hertzbeat/pull/1960) +- [fixbug] Fix the problem of no data for springboot3 monitoring by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1961](https://github.com/apache/hertzbeat/pull/1961) +- commit:fix the front-end popup cannot exit by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/1957](https://github.com/apache/hertzbeat/pull/1957) +- [fixbug] expression rule adaptation by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1963](https://github.com/apache/hertzbeat/pull/1963) +- [doc] add help doc for influxdb-promql and kafka-promql monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/1965](https://github.com/apache/hertzbeat/pull/1965) +- [doc]: update readme-cn docs by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1964](https://github.com/apache/hertzbeat/pull/1964) +- [improve]\[HIP\] HIP-01: Implement refactoring AbstractCollect by @crossoverJie in [https://github.com/apache/hertzbeat/pull/1966](https://github.com/apache/hertzbeat/pull/1966) +- [chore] update .gitignore to save .idea/icon.png by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1971](https://github.com/apache/hertzbeat/pull/1971) +- [improve]\[bugfix\]: fix AlertTemplateUtilTest test exception and update code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1969](https://github.com/apache/hertzbeat/pull/1969) +- [feature] add apache hugegraph monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1972](https://github.com/apache/hertzbeat/pull/1972) +- [improve] Implement cascading parameter list for SNMP protocol by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1976](https://github.com/apache/hertzbeat/pull/1976) +- [improve] optimize DateUtil and add test case by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1974](https://github.com/apache/hertzbeat/pull/1974) +- [feature]Hertzbeat custom plugin. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1973](https://github.com/apache/hertzbeat/pull/1973) +- update login page and status page color by @lwjxy in [https://github.com/apache/hertzbeat/pull/1977](https://github.com/apache/hertzbeat/pull/1977) +- [chore] update code style and add some comment by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1975](https://github.com/apache/hertzbeat/pull/1975) +- [doc]Hertzbeat plugin doc. by @zqr10159 in [https://github.com/apache/hertzbeat/pull/1980](https://github.com/apache/hertzbeat/pull/1980) +- [doc] update contributors and update status page style by @tomsun28 in [https://github.com/apache/hertzbeat/pull/1981](https://github.com/apache/hertzbeat/pull/1981) +- [feature] Implement cascading parameter list by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/1978](https://github.com/apache/hertzbeat/pull/1978) +- [doc]update threshold alarm doc by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1983](https://github.com/apache/hertzbeat/pull/1983) +- [chore] optimize code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1984](https://github.com/apache/hertzbeat/pull/1984) +- [fix] Compatible with MongoDB versions earlier than 3.6 by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/1988](https://github.com/apache/hertzbeat/pull/1988) +- [chore] optimize manager code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1993](https://github.com/apache/hertzbeat/pull/1993) +- [doc] Translate part of documentation development.md under `zh-cn` directory from `en` to `zh-cn` by @Thespica in [https://github.com/apache/hertzbeat/pull/1995](https://github.com/apache/hertzbeat/pull/1995) +- [improve] http protocol prometheus parsing optimization by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/1996](https://github.com/apache/hertzbeat/pull/1996) +- [feature] add at function for wechat by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/1994](https://github.com/apache/hertzbeat/pull/1994) +- [improve] add common util test by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2001](https://github.com/apache/hertzbeat/pull/2001) +- [improve] update release license notice and package by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2003](https://github.com/apache/hertzbeat/pull/2003) +- [bugfix] fix collector startup error classpath by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2004](https://github.com/apache/hertzbeat/pull/2004) +- [chore] optimize code style by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2000](https://github.com/apache/hertzbeat/pull/2000) +- [improve] Bump up `eslint-plugin-jsdoc` to 48.2.5 to support node 20+ by @Thespica in [https://github.com/apache/hertzbeat/pull/2005](https://github.com/apache/hertzbeat/pull/2005) +- [doc] fix doc highlighting by @boatrainlsz in [https://github.com/apache/hertzbeat/pull/2006](https://github.com/apache/hertzbeat/pull/2006) +- [web-app]feature: case insensitive search by @JavaProgrammerLB in [https://github.com/apache/hertzbeat/pull/2007](https://github.com/apache/hertzbeat/pull/2007) +- [feature] Support time calculation expressions. by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2009](https://github.com/apache/hertzbeat/pull/2009) +- [doc] add document for time expression by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2012](https://github.com/apache/hertzbeat/pull/2012) +- [feature] Add Apache Pulsar monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2013](https://github.com/apache/hertzbeat/pull/2013) +- [doc] home verify release doc update by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2014](https://github.com/apache/hertzbeat/pull/2014) +- [Improve] Improve clickhouse monitor And Improve Pulsar monitor by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2015](https://github.com/apache/hertzbeat/pull/2015) +- [doc] translate help document for memcached monitoring by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2019](https://github.com/apache/hertzbeat/pull/2019) +- [improve] optimize collector httpsd discovery by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/1991](https://github.com/apache/hertzbeat/pull/1991) +- [optimize] optimize code style and logic, add unit test by @yuluo-yx in [https://github.com/apache/hertzbeat/pull/2010](https://github.com/apache/hertzbeat/pull/2010) +- [fix] Fix possible potential thread safe bugs by @gjjjj0101 in [https://github.com/apache/hertzbeat/pull/2021](https://github.com/apache/hertzbeat/pull/2021) +- [improve] add ci for home by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2024](https://github.com/apache/hertzbeat/pull/2024) +- [bugfix]Tag with empty value Shouldn't transform to Tag: by @JavaProgrammerLB in [https://github.com/apache/hertzbeat/pull/2025](https://github.com/apache/hertzbeat/pull/2025) +- [bugfix] modify popup confirm to clear cache and cancel popup save by @Yanshuming1 in [https://github.com/apache/hertzbeat/pull/2026](https://github.com/apache/hertzbeat/pull/2026) +- [improve] update monitor state desc by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2028](https://github.com/apache/hertzbeat/pull/2028) +- bugfix: fix overflow of integers by @Calvin979 in [https://github.com/apache/hertzbeat/pull/2029](https://github.com/apache/hertzbeat/pull/2029) +- [improve] tips need update initial default password by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2030](https://github.com/apache/hertzbeat/pull/2030) +- [improve] deprecate support iotdb 0.* version by @Ceilzcx in [https://github.com/apache/hertzbeat/pull/2032](https://github.com/apache/hertzbeat/pull/2032) +- [fixbug] required field check by @zhangshenghang in [https://github.com/apache/hertzbeat/pull/2022](https://github.com/apache/hertzbeat/pull/2022) +- [improve] add IcmpCollectImplTest by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2033](https://github.com/apache/hertzbeat/pull/2033) +- [improve] fix code style by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2034](https://github.com/apache/hertzbeat/pull/2034) +- [improve] increase the length limit of the username field by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2035](https://github.com/apache/hertzbeat/pull/2035) +- [improve] Checkstyle include testSource by @crossoverJie in [https://github.com/apache/hertzbeat/pull/2036](https://github.com/apache/hertzbeat/pull/2036) +- [bugfix] fix collector and frontend dependent license error by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2037](https://github.com/apache/hertzbeat/pull/2037) +- [improve] Add test for MemcachedCollectImpl by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2044](https://github.com/apache/hertzbeat/pull/2044) +- [imprve] Remove duplicate indices by @zuobiao-zhou in [https://github.com/apache/hertzbeat/pull/2045](https://github.com/apache/hertzbeat/pull/2045) +- [docs]: fix several typos in docs by @lw-yang in [https://github.com/apache/hertzbeat/pull/2047](https://github.com/apache/hertzbeat/pull/2047) +- Add the missing parts of docs, fix layout, sync the English version with the Chinese version by @xfl12345 in [https://github.com/apache/hertzbeat/pull/2048](https://github.com/apache/hertzbeat/pull/2048) +- [improve] add filename check in home ci by @LiuTianyou in [https://github.com/apache/hertzbeat/pull/2049](https://github.com/apache/hertzbeat/pull/2049) +- [improve] update dependency licenses and remove the aliyun sms depend by @tomsun28 in [https://github.com/apache/hertzbeat/pull/2058](https://github.com/apache/hertzbeat/pull/2058) ## New Contributors -- @handy-git made their first contribution in -- @LiuTianyou made their first contribution in -- @WinterKi1ler made their first contribution in -- @miki-hmt made their first contribution in -- @gjjjj0101 made their first contribution in -- @makechoicenow made their first contribution in -- @alpha951 made their first contribution in -- @crossoverJie made their first contribution in -- @PeixyJ made their first contribution in -- @dukbong made their first contribution in -- @xuziyang made their first contribution in -- @MananPoojara made their first contribution in -- @lwqzz made their first contribution in -- @tomorrowshipyltm made their first contribution in -- @YxYL6125 made their first contribution in -- @15613060203 made their first contribution in -- @Alanxtl made their first contribution in -- @zhangshenghang made their first contribution in -- @zuobiao-zhou made their first contribution in -- @Pzz-2021 made their first contribution in -- @LLP2333 made their first contribution in -- @HeartLinked made their first contribution in -- @Aias00 made their first contribution in -- @westboy made their first contribution in -- @Yanshuming1 made their first contribution in -- @yuluo-yx made their first contribution in -- @lwjxy made their first contribution in -- @Thespica made their first contribution in -- @boatrainlsz made their first contribution in -- @JavaProgrammerLB made their first contribution in -- @lw-yang made their first contribution in -- @xfl12345 made their first contribution in +- @handy-git made their first contribution in [https://github.com/apache/hertzbeat/pull/1643](https://github.com/apache/hertzbeat/pull/1643) +- @LiuTianyou made their first contribution in [https://github.com/apache/hertzbeat/pull/1684](https://github.com/apache/hertzbeat/pull/1684) +- @WinterKi1ler made their first contribution in [https://github.com/apache/hertzbeat/pull/1718](https://github.com/apache/hertzbeat/pull/1718) +- @miki-hmt made their first contribution in [https://github.com/apache/hertzbeat/pull/1734](https://github.com/apache/hertzbeat/pull/1734) +- @gjjjj0101 made their first contribution in [https://github.com/apache/hertzbeat/pull/1748](https://github.com/apache/hertzbeat/pull/1748) +- @makechoicenow made their first contribution in [https://github.com/apache/hertzbeat/pull/1747](https://github.com/apache/hertzbeat/pull/1747) +- @alpha951 made their first contribution in [https://github.com/apache/hertzbeat/pull/1745](https://github.com/apache/hertzbeat/pull/1745) +- @crossoverJie made their first contribution in [https://github.com/apache/hertzbeat/pull/1758](https://github.com/apache/hertzbeat/pull/1758) +- @PeixyJ made their first contribution in [https://github.com/apache/hertzbeat/pull/1760](https://github.com/apache/hertzbeat/pull/1760) +- @dukbong made their first contribution in [https://github.com/apache/hertzbeat/pull/1757](https://github.com/apache/hertzbeat/pull/1757) +- @xuziyang made their first contribution in [https://github.com/apache/hertzbeat/pull/1773](https://github.com/apache/hertzbeat/pull/1773) +- @MananPoojara made their first contribution in [https://github.com/apache/hertzbeat/pull/1774](https://github.com/apache/hertzbeat/pull/1774) +- @lwqzz made their first contribution in [https://github.com/apache/hertzbeat/pull/1768](https://github.com/apache/hertzbeat/pull/1768) +- @tomorrowshipyltm made their first contribution in [https://github.com/apache/hertzbeat/pull/1793](https://github.com/apache/hertzbeat/pull/1793) +- @YxYL6125 made their first contribution in [https://github.com/apache/hertzbeat/pull/1799](https://github.com/apache/hertzbeat/pull/1799) +- @15613060203 made their first contribution in [https://github.com/apache/hertzbeat/pull/1797](https://github.com/apache/hertzbeat/pull/1797) +- @Alanxtl made their first contribution in [https://github.com/apache/hertzbeat/pull/1813](https://github.com/apache/hertzbeat/pull/1813) +- @zhangshenghang made their first contribution in [https://github.com/apache/hertzbeat/pull/1820](https://github.com/apache/hertzbeat/pull/1820) +- @zuobiao-zhou made their first contribution in [https://github.com/apache/hertzbeat/pull/1832](https://github.com/apache/hertzbeat/pull/1832) +- @Pzz-2021 made their first contribution in [https://github.com/apache/hertzbeat/pull/1837](https://github.com/apache/hertzbeat/pull/1837) +- @LLP2333 made their first contribution in [https://github.com/apache/hertzbeat/pull/1868](https://github.com/apache/hertzbeat/pull/1868) +- @HeartLinked made their first contribution in [https://github.com/apache/hertzbeat/pull/1893](https://github.com/apache/hertzbeat/pull/1893) +- @Aias00 made their first contribution in [https://github.com/apache/hertzbeat/pull/1908](https://github.com/apache/hertzbeat/pull/1908) +- @westboy made their first contribution in [https://github.com/apache/hertzbeat/pull/1914](https://github.com/apache/hertzbeat/pull/1914) +- @Yanshuming1 made their first contribution in [https://github.com/apache/hertzbeat/pull/1957](https://github.com/apache/hertzbeat/pull/1957) +- @yuluo-yx made their first contribution in [https://github.com/apache/hertzbeat/pull/1964](https://github.com/apache/hertzbeat/pull/1964) +- @lwjxy made their first contribution in [https://github.com/apache/hertzbeat/pull/1977](https://github.com/apache/hertzbeat/pull/1977) +- @Thespica made their first contribution in [https://github.com/apache/hertzbeat/pull/1995](https://github.com/apache/hertzbeat/pull/1995) +- @boatrainlsz made their first contribution in [https://github.com/apache/hertzbeat/pull/2006](https://github.com/apache/hertzbeat/pull/2006) +- @JavaProgrammerLB made their first contribution in [https://github.com/apache/hertzbeat/pull/2007](https://github.com/apache/hertzbeat/pull/2007) +- @lw-yang made their first contribution in [https://github.com/apache/hertzbeat/pull/2047](https://github.com/apache/hertzbeat/pull/2047) +- @xfl12345 made their first contribution in [https://github.com/apache/hertzbeat/pull/2048](https://github.com/apache/hertzbeat/pull/2048) ## 一条命令即可开始 @@ -373,14 +373,14 @@ keywords: [open source, monitoring, alerting] ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` -详细参考 HertzBeat 官网文档 +详细参考 HertzBeat 官网文档 [https://hertzbeat.apache.org/docs](https://hertzbeat.apache.org/docs) --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -下载页面: +下载页面: [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) -升级指南: +升级指南: [https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/](https://hertzbeat.apache.org/blog/2024/06/11/hertzbeat-v1.6.0-update/) Have Fun! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-18-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-18-new-committer.md index 702d05fa862..b0bfc00bda7 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-18-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-18-new-committer.md @@ -33,7 +33,7 @@ Apache 软件基金会起初是由开发 [Apache HTTPd](https://httpd.apache.org ### 获得提名,成为 Committer -此次提名是 Apache HertzbeatP(Incubating) 的 PPMC Member [Logic](https://github.com/zqr10159) 举荐的,感谢 Apache HertzBeat™ Team。顺利提名成为了 Hertzbeat Committer,有了自己的 Apache 邮箱。 +此次提名是 Apache Hertzbeat 的 PPMC Member [Logic](https://github.com/zqr10159) 举荐的,感谢 Apache HertzBeat™ Team。顺利提名成为了 Hertzbeat Committer,有了自己的 Apache 邮箱。 ![Apache ID Email](/img/blog/committer/yuluo-yx/3.jpg) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-31-new-committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-31-new-committer.md index e3b3f199e6b..b2d215f6867 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-31-new-committer.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-08-31-new-committer.md @@ -24,7 +24,7 @@ keywords: ## 参与 Apache 社区 -我参与的第一个 Apache 项目是 Apache ShenYu() 。作为一个 API 网关项目,ShenYu 为我提供了深入了解微服务架构和网关技术的机会。通过参与 ShenYu 的开发,我不仅提升了自己的技术能力,还学习到了 Apache 社区的协作方式和开源精神。 +我参与的第一个 Apache 项目是 Apache ShenYu([https://github.com/apache/shenyu](https://github.com/apache/shenyu)) 。作为一个 API 网关项目,ShenYu 为我提供了深入了解微服务架构和网关技术的机会。通过参与 ShenYu 的开发,我不仅提升了自己的技术能力,还学习到了 Apache 社区的协作方式和开源精神。 这次经历让我对 Apache 社区有了更深入的认识,也为我后来参与其他 Apache 项目,如 HertzBeat,奠定了基础。从 ShenYu 到 HertzBeat,我逐步加深了对 Apache 项目的理解和贡献,最终成为了 HertzBeat 的 Committer。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-09-hertzbeat-v1.6.1.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-09-hertzbeat-v1.6.1.md index 95f33e9a718..af0e9250e78 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-09-hertzbeat-v1.6.1.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-09-hertzbeat-v1.6.1.md @@ -13,8 +13,8 @@ keywords: [open source monitoring system, alerting system] ## 下载与文档 -- **Apache HertzBeat™ 1.6.1 下载地址**: -- **Apache HertzBeat™ 文档地址**: +- **Apache HertzBeat™ 1.6.1 下载地址**:[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ 文档地址**:[https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## 主要更新 @@ -68,23 +68,23 @@ keywords: [open source monitoring system, alerting system] **仓库地址:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **网址:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ 下载地址:** - +[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) **Apache HertzBeat™ Docker 镜像版本:** > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 Docker Hub 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **Apache HertzBeat™ 开源社区如何参与?** - +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-24-custom-development.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-24-custom-development.md index bf183c47a4a..0267c6065b9 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-24-custom-development.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2024-11-24-custom-development.md @@ -22,10 +22,10 @@ Collector模块整体结构可以分为四个主要部分,每个部分承担 - **collector-xxx**:这是为不同服务或协议的扩展Collector模块。例如,MongoDB、RocketMQ等特定服务的监控,往往需要引入它们的专有依赖,并在各自模块中进行开发。以下是MongoDB的依赖示例: ```xml - - org.mongodb - mongodb-driver-sync - + `` + ``org.mongodb`` + ``mongodb-driver-sync`` + `` ``` 通过这种模块化设计,Collector可以轻松地扩展并适配多种监控场景。 @@ -46,35 +46,35 @@ Collector模块整体结构可以分为四个主要部分,每个部分承担 - 4.0.0 - - org.apache.hertzbeat - hertzbeat-collector - 2.0-SNAPSHOT - + ``4.0.0`` + `` + ``org.apache.hertzbeat`` + ``hertzbeat-collector`` + ``2.0-SNAPSHOT`` + `` - hertzbeat-collector-kafka - ${project.artifactId} + ``hertzbeat-collector-kafka`` + ``${project.artifactId}`` - + `` 17 17 UTF-8 - - - - - org.apache.hertzbeat - hertzbeat-collector-common - provided - + `` + + `` + `` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-common`` + ``provided`` + `` - - org.apache.kafka - kafka-clients - - - + `` + ``org.apache.kafka`` + ``kafka-clients`` + `` + `` +`
` ``` 此处需要注意的内容: @@ -152,7 +152,7 @@ import org.apache.kafka.clients.admin.KafkaAdminClient; import java.util.Properties; -public class KafkaConnect extends AbstractConnection { +public class KafkaConnect extends AbstractConnection`` { private static AdminClient adminClient; @@ -292,7 +292,7 @@ public class KafkaCollectImpl extends AbstractCollect { */ private void collectTopicOffset(CollectRep.MetricsData.Builder builder, AdminClient adminClient) throws InterruptedException, ExecutionException { ListTopicsResult listTopicsResult = adminClient.listTopics(new ListTopicsOptions().listInternal(true)); - Set names = listTopicsResult.names().get(); + Set`` names = listTopicsResult.names().get(); names.forEach(name -> { try { Map map = adminClient.describeTopics(Collections.singleton(name)).all().get(3L, TimeUnit.SECONDS); @@ -361,7 +361,7 @@ public class KafkaCollectImpl extends AbstractCollect { */ private static void collectTopicList(CollectRep.MetricsData.Builder builder, AdminClient adminClient) throws InterruptedException, ExecutionException { ListTopicsOptions options = new ListTopicsOptions().listInternal(true); - Set names = adminClient.listTopics(options).names().get(); + Set`` names = adminClient.listTopics(options).names().get(); names.forEach(name -> { CollectRep.ValueRow valueRow = CollectRep.ValueRow.newBuilder().addColumns(name).build(); builder.addValues(valueRow); @@ -378,11 +378,11 @@ public class KafkaCollectImpl extends AbstractCollect { ListTopicsOptions options = new ListTopicsOptions(); options.listInternal(true); ListTopicsResult listTopicsResult = adminClient.listTopics(options); - Set names = listTopicsResult.names().get(); + Set`` names = listTopicsResult.names().get(); DescribeTopicsResult describeTopicsResult = adminClient.describeTopics(names); Map map = describeTopicsResult.all().get(); map.forEach((key, value) -> { - List listp = value.partitions(); + List`` listp = value.partitions(); listp.forEach(info -> { CollectRep.ValueRow.Builder valueRowBuilder = CollectRep.ValueRow.newBuilder(); valueRowBuilder.addColumns(value.name()); @@ -418,11 +418,11 @@ org.apache.hertzbeat.collector.collect.kafka.KafkaCollectImpl 最后一步是在`collector/collector/pom.xml`中添加`kafka-collector`模块的依赖: ```xml - - org.apache.hertzbeat - hertzbeat-collector-kafka - ${hertzbeat.version} - +`` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-kafka`` + ``${hertzbeat.version}`` +`` ``` 通过以上步骤,我们就完成了一个Kafka Collector的开发,从协议定义到最终的SPI配置和依赖管理,完整的扩展了一个Kafka监控模块。 @@ -455,9 +455,9 @@ name: en-US: Kafka Message(Client) # The description and help of this monitoring type help: - zh-CN: HertzBeat 使用 Kafka Admin Client 对 Kafka 的通用指标进行采集监控。 - en-US: HertzBeat uses Kafka Admin Client to monitoring kafka general metrics. - zh-TW: HertzBeat 使用 Kafka Admin Client 對 Kafka 的通用指標進行采集監控。 + zh-CN: HertzBeat 使用 Kafka Admin Client`` 对 Kafka 的通用指标进行采集监控。`` + en-US: HertzBeat uses Kafka Admin Client`` to monitoring kafka general metrics. `` + zh-TW: HertzBeat 使用 Kafka Admin Client`` 對 Kafka 的通用指標進行采集監控。`` helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/kafka_client en-US: https://hertzbeat.apache.org/docs/help/kafka_client @@ -610,9 +610,9 @@ metrics: ```xml - - org.apache.hertzbeat - hertzbeat-collector-kafka - ${hertzbeat.version} - + `` + ``org.apache.hertzbeat`` + ``hertzbeat-collector-kafka`` + ``${hertzbeat.version}`` + `` ``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-10-hertzbeat-v1.7.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-10-hertzbeat-v1.7.0.md index ea19be68f67..18d691204c3 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-10-hertzbeat-v1.7.0.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-10-hertzbeat-v1.7.0.md @@ -13,8 +13,8 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.0 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.0 Download Link**: [https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## Major Updates @@ -293,23 +293,23 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] **仓库地址:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **网址:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ 下载地址:** - +[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) **Apache HertzBeat™ Docker 镜像版本:** > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 Docker Hub 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **Apache HertzBeat™ 开源社区如何参与?** - +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md index 31a27b9bf57..e606a42a246 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-upgrade-guide-docker-mode.md @@ -7,8 +7,8 @@ - 备份数据库,将 mysql 数据手动做备份,按需备份 ```bash - mysqldump -h -P -uroot -p"PASSWORD" <库名> hertzbeat_backup-`date +%Y-%m-%d`.sql #单库备份 - mysqldump -h -P -uroot -p"PASSWORD" > hertzbeat_backup-`date +%Y-%m-%d`.sql # 整库备份 + mysqldump -h -P`` -uroot -p"PASSWORD" <库名> hertzbeat_backup-`date +%Y-%m-%d`.sql #单库备份 + mysqldump -h -P`` -uroot -p"PASSWORD" > hertzbeat_backup-`date +%Y-%m-%d`.sql # 整库备份 ``` - 备份配置文件及数据目录 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-v1.7.0-docker-and-helm-upgrade-guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-v1.7.0-docker-and-helm-upgrade-guide.md index 192cb1a006f..a63108597c7 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-v1.7.0-docker-and-helm-upgrade-guide.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-04-23-hertzbeat-v1.7.0-docker-and-helm-upgrade-guide.md @@ -6,8 +6,8 @@ - 备份数据库,将mysql数据库手动做备份,按需备份 ```bash - mysqldump -h -P -uroot -p"PASSWORD" <库名> hertzbeat_backup-`date +%Y-%m-%d`.sql #单库备份 - mysqldump -h -P -uroot -p"PASSWORD" > hertzbeat_backup-`date +%Y-%m-%d`.sql # 整库备份 + mysqldump -h -P`` -uroot -p"PASSWORD" <库名> hertzbeat_backup-`date +%Y-%m-%d`.sql #单库备份 + mysqldump -h -P`` -uroot -p"PASSWORD" > hertzbeat_backup-`date +%Y-%m-%d`.sql # 整库备份 ``` - 备份配置文件及数据目录 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-07-07-hertzbeat-v1.7.2.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-07-07-hertzbeat-v1.7.2.md index 93e711ef877..b5bb8a7c3b2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-07-07-hertzbeat-v1.7.2.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-07-07-hertzbeat-v1.7.2.md @@ -13,8 +13,8 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.2 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.2 Download Link**: [https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## Major Updates @@ -170,23 +170,23 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] **仓库地址:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **网址:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ 下载地址:** - +[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) **Apache HertzBeat™ Docker 镜像版本:** > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 Docker Hub 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **Apache HertzBeat™ 开源社区如何参与?** - +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-09-06-hertzbeat-v1.7.3.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-09-06-hertzbeat-v1.7.3.md index d798047b66c..12b1b08bbb1 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-09-06-hertzbeat-v1.7.3.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-09-06-hertzbeat-v1.7.3.md @@ -13,8 +13,8 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] ## Downloads and Documentation -- **Apache HertzBeat™ 1.7.3 Download Link**: -- **Apache HertzBeat™ Documentation**: +- **Apache HertzBeat™ 1.7.3 Download Link**: [https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) +- **Apache HertzBeat™ Documentation**: [https://hertzbeat.apache.org/zh-cn/docs/](https://hertzbeat.apache.org/zh-cn/docs/) ## Major Updates @@ -218,36 +218,36 @@ keywords: [open source monitoring system, alerting system, Hertzbeat, release] ## New Contributors -- @yy549159265 made their first contribution in -- @cto-huhang made their first contribution in -- @Saramanda9988 made their first contribution in -- @delei made their first contribution in -- @chingjustwe made their first contribution in -- @rowankid made their first contribution in -- @tuzuy made their first contribution in -- @carlpinto25 made their first contribution in +- @yy549159265 made their first contribution in [https://github.com/apache/hertzbeat/pull/3474](https://github.com/apache/hertzbeat/pull/3474) +- @cto-huhang made their first contribution in [https://github.com/apache/hertzbeat/pull/3594](https://github.com/apache/hertzbeat/pull/3594) +- @Saramanda9988 made their first contribution in [https://github.com/apache/hertzbeat/pull/3598](https://github.com/apache/hertzbeat/pull/3598) +- @delei made their first contribution in [https://github.com/apache/hertzbeat/pull/3608](https://github.com/apache/hertzbeat/pull/3608) +- @chingjustwe made their first contribution in [https://github.com/apache/hertzbeat/pull/3622](https://github.com/apache/hertzbeat/pull/3622) +- @rowankid made their first contribution in [https://github.com/apache/hertzbeat/pull/3690](https://github.com/apache/hertzbeat/pull/3690) +- @tuzuy made their first contribution in [https://github.com/apache/hertzbeat/pull/3668](https://github.com/apache/hertzbeat/pull/3668) +- @carlpinto25 made their first contribution in [https://github.com/apache/hertzbeat/pull/3726](https://github.com/apache/hertzbeat/pull/3726) ## Apache Hertzbeat **仓库地址:** - +[https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) **网址:** - +[https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) **Apache HertzBeat™ 下载地址:** - +[https://hertzbeat.apache.org/zh-cn/docs/download](https://hertzbeat.apache.org/zh-cn/docs/download) **Apache HertzBeat™ Docker 镜像版本:** > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 Docker Hub 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) **Apache HertzBeat™ 开源社区如何参与?** - +[https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-5-19-new-pmc.md b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-5-19-new-pmc.md index b57666e7672..588db103328 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-5-19-new-pmc.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-blog/2025-5-19-new-pmc.md @@ -39,11 +39,11 @@ Apache HertzBeat(简称 HertzBeat)是一个开源的实时监控系统,专 ### 如何参与HertzBeat? -欢迎大家为Apache HertzBeat™ 贡献代码,文档,想法。参与开源的经历给我的感受是,参与开源最难的部分是开始和坚持。如果大家有兴趣可以访问 跟着文档开始开源的第一步,也欢迎大家发邮件给我 ,我非常乐意在大家迈出开源第一步上提供更多的帮助。 +欢迎大家为Apache HertzBeat™ 贡献代码,文档,想法。参与开源的经历给我的感受是,参与开源最难的部分是开始和坚持。如果大家有兴趣可以访问 [https://hertzbeat.apache.org/zh-cn/docs/community/contribution](https://hertzbeat.apache.org/zh-cn/docs/community/contribution) 跟着文档开始开源的第一步,也欢迎大家发邮件给我 [liutianyou@apache.org](mailto:liutianyou@apache.org),我非常乐意在大家迈出开源第一步上提供更多的帮助。 -- 官方网站: -- GitHub: -- 邮件列表: +- 官方网站: [https://hertzbeat.apache.org](https://hertzbeat.apache.org) +- GitHub: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) +- 邮件列表: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) ### 致谢 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json index 60b202ac13b..9830d49450b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current.json @@ -1,6 +1,6 @@ { "version.label": { - "message": "v1.7.x", + "message": "dev", "description": "The label for version current" }, "sidebar.docs.category.quickstart": { @@ -59,6 +59,10 @@ "message": "消息通知", "description": "The label for category notice in sidebar docs" }, + "sidebar.docs.category.service-discovery": { + "message": "服务发现", + "description": "The label for category service-discovery in sidebar docs" + }, "sidebar.docs.category.Others": { "message": "其它", "description": "The label for category Others in sidebar docs" @@ -159,8 +163,24 @@ "message": "集成平台部署", "description": "The label for category extern-deploy in sidebar docs" }, + "sidebar.docs.category.quickstart-use-case": { + "message": "使用案例", + "description": "The label for category quickstart-use-case in sidebar docs" + }, + "sidebar.docs.category.guides-use-case": { + "message": "使用案例", + "description": "The label for category guides-use-case in sidebar docs" + }, + "sidebar.docs.category.help-custom": { + "message": "自定义监控", + "description": "The label for category help-custom in sidebar docs" + }, + "sidebar.docs.category.advanced-custom": { + "message": "自定义监控", + "description": "The label for category advanced-custom in sidebar docs" + }, "sidebar.docs.category.log": { - "message": "日志监控", + "message": "日志监控 (Beta)", "description": "The label for category log in sidebar docs" } } diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-default.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-default.md index 546989b75d0..606048ca3bc 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-default.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-default.md @@ -96,9 +96,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-hertzbeat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-hertzbeat.md index 782a49d2b6b..2876819ac71 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-hertzbeat.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-hertzbeat.md @@ -75,9 +75,9 @@ name: en-US: HertzBeat # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -214,4 +214,4 @@ HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-token.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-token.md index 58779b975d0..23e33fe0fb9 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-token.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-example-token.md @@ -53,9 +53,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -120,9 +120,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -258,9 +258,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -397,4 +397,4 @@ HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-xmlpath.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-xmlpath.md index f66f6128a5d..aa966fb791b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-xmlpath.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http-xmlpath.md @@ -34,25 +34,25 @@ HertzBeat 中的 XmlPath 解析方法使用两步 XPath 处理: 36.400002 - - + + 399640 98792 228492 - - + + 1 1000 - + 2 0 - - + + 2025-01-06 10:27:48 87天0时55分59秒 2025-04-03 11:09:18 @@ -64,7 +64,7 @@ HertzBeat 中的 XmlPath 解析方法使用两步 XPath 处理: NTP 34.191.45.101 -
+ ``` 我们想要监控设备状态并提取各种指标。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http.md index 80bdefa49f2..52ce13bffcf 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-http.md @@ -44,9 +44,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-point.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-point.md index fc24e7241c4..d80b459b603 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-point.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-point.md @@ -45,9 +45,9 @@ name: en-US: EXAMPLE WEBSITE # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-tutorial.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-tutorial.md index f922764f776..45e73dd0e92 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-tutorial.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/advanced/extend-tutorial.md @@ -79,9 +79,9 @@ name: en-US: HertzBeat Monitor # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/code-style-and-quality-guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/code-style-and-quality-guide.md index fcdb311fa9e..1c67ee891fb 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/code-style-and-quality-guide.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/code-style-and-quality-guide.md @@ -131,7 +131,7 @@ limitations under the License. 1. 优先为变量命名选择名词,这样更容易区分`变量`或`方法`。 ```java - Cache publicKeyCache; + Cache`` publicKeyCache; ``` 2. 变量的拼音缩写是禁止的(排除地名等名词),例如chengdu。 @@ -212,7 +212,7 @@ limitations under the License. - 被引用的 `package` 或 `resource` 名称不需要提取为常量。 -3. 未被重新分配的变量也必须声明为 final 类型。 +3. 未被重新分配的变量也必须声明为 `` final `` 类型。 4. 关于 `constant/variable` 行的排序顺序 @@ -231,7 +231,7 @@ limitations under the License. 例如,如果参数不能为 null,最好添加一个 `@Nonnull` 注释。如果返回值可以为 null,则应首先添加 `@Nullable` 注释。 - 注意:包名为 javax.validation.requirements + `` 注意:包名为 ``javax.validation.requirements`` `` 3. 如果方法中的代码行数太多,请尝试在适当的点上使用多个子方法来分段方法体。 @@ -247,9 +247,9 @@ limitations under the License. ### 3.4 集合规则 1. 对于返回的 `collection` 值,除非有特殊的 `concurrent` (如线程安全),总是返回 `interface`,例如: - - 如果使用 `ArrayList`,则返回 List - - 如果使用 `HashMap`,则返回 Map - - 如果使用 `HashSet`,则返回 Set + - 如果使用 `ArrayList`,则返回 `` List `` + - 如果使用 `HashMap`,则返回 `` Map `` + - 如果使用 `HashSet`,则返回 `` Set `` 2. 如果存在多线程,可以使用以下声明或返回类型: ```java @@ -278,7 +278,7 @@ limitations under the License. 1. 需要管理 `线程池`,使用统一的入口点获取 `线程池`。 - 注意:在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 + `` 注意:在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 `` 2. `线程池` 需要进行资源约束,以防止因处理不当导致的资源泄露。 @@ -619,7 +619,7 @@ public void process(String input) { ```java // 忽略声明行。 - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); LOG.debug("All users: {}", getAllUserIds(userList)); ``` @@ -629,7 +629,7 @@ public void process(String input) { ```java // 忽略声明行。 - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); if (LOG.isDebugEnabled()) { LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); } @@ -643,8 +643,8 @@ public void process(String input) { ## 参考资料 -- -- -- -- -- +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/contribution.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/contribution.md index d892f7335a1..d2768231e73 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/contribution.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/contribution.md @@ -89,7 +89,7 @@ limitations under the License. 2. 然后 用 git 命令 将代码下载到本地: ```shell - git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended ``` 3. 下载完成后,请参考目标仓库的入门指南或者 README 文件对项目进行初始化。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/document.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/document.md index 1b9beab7555..43bbe4972a6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/document.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/document.md @@ -40,8 +40,8 @@ git clone git@github.com:/hertzbeat.git 1. 下载并安装 nodejs (版本 18.8.0) 2. 将代码克隆到本地 `git clone git@github.com:apache/hertzbeat.git` 3. 在`home`目录下运行 `npm install` 来安装所需的依赖库。 -4. 在`home`目录下运行 `npm run start`,您可以访问 查看站点的英文模式预览 -5. 在`home`目录下运行 `npm run start-zh-cn`,您可以访问 查看站点的中文模式预览 +4. 在`home`目录下运行 `npm run start`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的英文模式预览 +5. 在`home`目录下运行 `npm run start-zh-cn`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的中文模式预览 6. 若要生成静态网站资源文件,请运行 `npm run build`。构建的静态资源位于 build 目录中。 ## 文档格式检验 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-release.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-release.md index 04f89c5cf77..e6e088f0b58 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-release.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-release.md @@ -49,10 +49,10 @@ What keysize do you want? (3072) 4096 # Please enter 4096 here Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire - = key expires in n days -w = key expires in n weeks -m = key expires in n months -y = key expires in n years +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years Key is valid for? (0) 0 # Please enter 0 Key does not expire at all Is this correct? (y/N) y # Please enter y here @@ -63,7 +63,7 @@ Real name: muchunjin # Please enter 'gpg real name' Email address: muchunjin@apache.org # Please enter your apache email address here Comment: apache key # Please enter some comments here You selected this USER-ID: - "muchunjin (apache key) " + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here We need to generate a lot of random bytes. It is a good idea to perform @@ -79,7 +79,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ # Here you need to re-enter the password in the previous step. @@ -88,7 +88,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ gpg: key ACFB69E705016886 marked as ultimately trusted gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' @@ -96,7 +96,7 @@ public and secret key created and signed. pub rsa4096 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid muchunjin (apache key) +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096 2023-05-01 [E] ``` @@ -110,7 +110,7 @@ $ gpg --keyid-format SHORT --list-keys ------------------------ pub rsa4096/05016886 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid [ultimate] muchunjin (apache key) +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096/0C5A4E1C 2023-05-01 [E] # Send public key to keyserver via key id @@ -124,17 +124,17 @@ $ gpg --keyserver keyserver.ubuntu.com --send-key 05016886 ```shell $ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success -gpg: key ACFB69E705016886: "muchunjin (apache key) " not changed +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed gpg: Total number processed: 1 gpg: unchanged: 1 ``` -或者进入 网址,输入密钥的名称,然后点击'Search key' 按钮,查看是否有对应名称的密钥。 +或者进入 [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) 网址,输入密钥的名称,然后点击'Search key' 按钮,查看是否有对应名称的密钥。 #### 2.4 将 gpg 公钥添加到 Apache SVN 项目仓库的 KEYS 文件中 -- Apache HertzBeat Dev 分支 -- Apache HertzBeat Release 分支 +- Apache HertzBeat Dev 分支 [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat Release 分支 [https://dist.apache.org/repos/dist/release/hertzbeat](https://dist.apache.org/repos/dist/release/hertzbeat) ##### 2.4.1 将公钥添加到dev分支的KEYS @@ -170,7 +170,7 @@ $ svn ci -m "add gpg key for muchunjin" ### 准备发布物料 -#### 3.1 基于 master 分支,创建一个名为 release-${release_version}-rcx 的分支,例如 release-1.7.3-rc1。并基于 release-1.7.3-rc1 分支创建一个名为 v1.7.3-rc1 的标签,并将此标签设置为预发布 +#### 3.1 基于 master 分支,创建一个名为 release-`release_version`-rcx 的分支,例如 release-1.7.3-rc1。并基于 release-1.7.3-rc1 分支创建一个名为 v1.7.3-rc1 的标签,并将此标签设置为预发布 ```shell git checkout master @@ -279,19 +279,19 @@ $ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done apache-hertzbeat-1.7.3-bin.tar.gz gpg: Signature made Tue May 2 12:16:35 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-1.7.3-docker-compose.tar.gz gpg: Signature made Tue May 2 12:16:36 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-1.7.3-src.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-collector-1.7.3-bin.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] # 验证 SHA512 $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done @@ -319,7 +319,7 @@ svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat - 复制物料包到 SVN 仓库 -创建一个版本号目录,并以${release_version}-${RC_version}的形式命名。RC_version从1开始,即候选版本从RC1开始。在发布过程中,如果出现导致投票失败的问题,需要进行修正,那么RC版本需要迭代,RC版本号需要+1。例如:为版本1.7.3-RC1投票。如果投票顺利通过,那么RC1版本的资料将作为最终版本的资料发布。如果出现问题并需要纠正,那么修正后重新启动投票,下一次的候选版本为1.7.3-RC2。 +创建一个版本号目录,并以`release_version`-`RC_version`的形式命名。RC_version从1开始,即候选版本从RC1开始。在发布过程中,如果出现导致投票失败的问题,需要进行修正,那么RC版本需要迭代,RC版本号需要+1。例如:为版本1.7.3-RC1投票。如果投票顺利通过,那么RC1版本的资料将作为最终版本的资料发布。如果出现问题并需要纠正,那么修正后重新启动投票,下一次的候选版本为1.7.3-RC2。 ```shell mkdir -p svn/dev/1.7.3-RC1 @@ -345,7 +345,7 @@ svn commit -m "release for HertzBeat 1.7.3-RC1" - 检查 Apache SVN 提交结果 -> 在浏览器中访问 , 检查是否有新的版本内容 +> 在浏览器中访问 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) , 检查是否有新的版本内容 ## 4. 进入社区投票阶段 @@ -353,7 +353,7 @@ svn commit -m "release for HertzBeat 1.7.3-RC1" 发送社区投票邮件需要至少三个`+1`,且无`-1`。 -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat 1.7.3 rc1
> `Body`: @@ -406,7 +406,7 @@ Thanks! 在72小时后,将统计投票结果,并发送投票结果邮件,如下所示。 -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.7.3-rc1
> `Body`: @@ -435,7 +435,7 @@ Best, ChunJin Mu ``` -邮件内容中的一项是`Vote thread`,在 查看获取 +邮件内容中的一项是`Vote thread`,在 [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) 查看获取 ## 4. 完成最终发布步骤 @@ -447,10 +447,10 @@ svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1 https://dist.a ### 4.2 添加新版本下载地址到官网 - - +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) -完成后打开官网地址 查看是否有新版本的下载 +完成后打开官网地址 [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) 查看是否有新版本的下载 > 需要注意的是,下载链接可能需要一个小时后才会生效,请注意。 @@ -483,8 +483,8 @@ release note: xxx ### 4.4 发送新版本公告邮件 -> `Send to`:
-> `cc`:
+> `Send to`: [announce@apache.org](mailto:announce@apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [ANNOUNCE] Apache HertzBeat 1.7.3 released
> `Body`: diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-verify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-verify.md index 3955dd94697..ca568854480 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-verify.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/how-to-verify.md @@ -8,7 +8,7 @@ sidebar_position: 4 详细检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) -在浏览器中可访问版本内容 +在浏览器中可访问版本内容 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) ### 1. 下载候选版本到本地 @@ -16,9 +16,9 @@ sidebar_position: 4 ```shell #如果本地有svn,可以clone到本地 -svn co https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/ +svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ #或者 直接下载物料文件 -wget https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/xxx.xxx +wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx ``` @@ -119,17 +119,17 @@ tar -xzvf apache-hertzbeat-${release.version}-incubating-bin.tar.gz - [ ] 如果依赖的是Apache许可证并且存在`NOTICE`文件,那么这些`NOTICE`文件也需要加入到版本的`NOTICE`文件中 - [ ] ..... -参考: +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) #### 2.5. 源码编译验证 -解压缩 `apache-hertzbeat-${release_version}-incubating-src.tar.gz` +解压缩 `apache-hertzbeat-`release_version`-incubating-src.tar.gz` ```shell -cd apache-hertzbeat-${release_version}-incubating-src +cd apache-hertzbeat-`release_version`-incubating-src ``` -编译源码: +编译源码: [https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) 进行如下检查: @@ -141,7 +141,7 @@ cd apache-hertzbeat-${release_version}-incubating-src - [ ] 能够正确编译 - [ ] ..... -参考: +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) ### 3. 邮件回复 @@ -150,7 +150,7 @@ cd apache-hertzbeat-${release_version}-incubating-src :::caution 注意 回复的邮件一定要带上自己检查了那些项信息,仅仅回复`+1 approve`,是无效的。 -PMC 在 HertzBeat 的社区投票时,请带上 binding 后缀,表示对 HertzBeat 社区中的投票具有约束性投票,方便统计投票结果。 +PMC 在 [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) HertzBeat 的社区投票时,请带上 binding 后缀,表示对 HertzBeat 社区中的投票具有约束性投票,方便统计投票结果。 ::: diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/mailing_lists.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/mailing_lists.md index 64d938005fd..0a2801753b2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/mailing_lists.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/mailing_lists.md @@ -34,7 +34,7 @@ limitations under the License. | 列表名称 | 地址 | 订阅 | 退订 | 归档 | |-----------|--------------------------|-------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------| -| **开发者列表** | | [订阅](mailto:dev-subscribe@hertzbeat.apache.org) | [退订](mailto:dev-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | +| **开发者列表** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [订阅](mailto:dev-subscribe@hertzbeat.apache.org) | [退订](mailto:dev-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | ### 通知列表 @@ -42,16 +42,16 @@ limitations under the License. | 列表名称 | 地址 | 订阅 | 退订 | 归档 | |----------|------------------------------------|-----------------------------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------| -| **通知列表** | | [订阅](mailto:notifications-subscribe@hertzbeat.apache.org) | [退订](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | +| **通知列表** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [订阅](mailto:notifications-subscribe@hertzbeat.apache.org) | [退订](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | ## 订阅步骤 发送订阅邮件即可订阅。步骤如下: - 1、**订阅**:点击上表中的 **订阅** 按钮,它将重定向到您的邮件客户端。主题和内容是任意的。 - 之后,您会从 收到确认邮件(如果没有收到,请确认电子邮件是否被自动分类为垃圾邮件、推广邮件、订阅邮件等)。 + 之后,您会从 [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) 收到确认邮件(如果没有收到,请确认电子邮件是否被自动分类为垃圾邮件、推广邮件、订阅邮件等)。 - 2、**确认**:直接回复确认邮件,或点击邮件中的链接快速回复。主题和内容是任意的。 -- 3、**欢迎**:在完成上述步骤后,您会收到一个主题为 WELCOME to 的欢迎邮件,您已成功订阅 Apache HertzBeat 邮件列表。 +- 3、**欢迎**:在完成上述步骤后,您会收到一个主题为 WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) 的欢迎邮件,您已成功订阅 Apache HertzBeat 邮件列表。 ## 发送纯文本邮件 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/maturity.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/maturity.md index aed59e05c5d..2c54ecac202 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/maturity.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/maturity.md @@ -43,7 +43,7 @@ The following table is filled according to the [Apache Maturity Model](https://c | **ID** | **Description** | **Status** | | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **RE10** | Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term. | **YES** Source release is distributed via [dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/hertzbeat/) and linked from [download page](https://hertzbeat.apache.org/docs/download). | -| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at and , and have at least 3 PPMC member's votes. | +| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) and [general@incubator.apache.org](mailto:general@incubator.apache.org), and have at least 3 PPMC member's votes. | | **RE30** | Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives. | **YES** All releases are signed, and the [KEYS](https://dist.apache.org/repos/dist/release/hertzbeat/KEYS) are available. | | **RE40** | The project can distribute convenience binaries alongside source code, but they are not Apache Releases, they are provided with no guarantee. | **YES** User can easily build binaries from source code, and we do not provide binaries as Apache Releases. | | **RE50** | The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release. | **YES** We can follow the [Release guide](https://hertzbeat.apache.org/docs/community/how_to_release) to make a new Apache HertzBeat release, and so far we had 4 different release managers. | @@ -68,14 +68,14 @@ The following table is filled according to the [Apache Maturity Model](https://c | **CO40** | The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project. | **YES** The community has elected 3 new PPMC members and 13 new committers so far. | | **CO50** | The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently. | **YES** The community has clear docs on nominating committers and PPMC members | | **CO60** | The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects. | **YES** All decisions are made after vote by community members. | -| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use , [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | +| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | ### Consensus | **ID** | **Description** | **Status** | | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |--------------------------------------------------------------------------------------------------------------| | **CS10** | The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors. | **Yes** See [members](https://hertzbeat.apache.org/team/) with all PPMC members and committers. | -| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on , and with at least 3 +1 votes from PPMC. | +| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and with at least 3 +1 votes from PPMC. | | **CS30** | The project uses documented voting rules to build consensus when discussion is not sufficient. | **YES** The project uses the standard ASF voting rules. | | **CS40** | In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30. | **YES** Apache HertzBeat community has not used the veto power yet except for code commits. | | **CS50** | All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel. | **YES** All important discussions and conclusions are recorded in written form. | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_committer_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_committer_process.md index aee05528581..7f932292582 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_committer_process.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_committer_process.md @@ -69,17 +69,17 @@ NEW_COMMITTER_NAME 这须是真实名字,而非 Github 名称或 Id ```text To: private@hertzbeat.apache.org -Subject: [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hi HertzBeat PMC, -This is a formal vote about inviting ${NEW_COMMITTER_NAME} as our community new committer. +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. Work list: https://github.com/apache/hertzbeat/commits?author=xxx -Here is the list of ${NEW_COMMITTER_NAME}'s contributions in HertzBeat Community: +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: > [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) > @@ -96,7 +96,7 @@ Submitted Issues (18 commits) Please vote: -+1: I support this proposal and will welcome ${NEW_COMMITTER_NAME} as a committer. ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. +0: I don't care. -1: I object to this proposal and here are my reasons. @@ -114,7 +114,7 @@ ttt ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text @@ -216,7 +216,7 @@ establishing you as a committer. ### Committer接受模板 ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org Subject: Re: invitation to become HertzBeat committer ``` @@ -266,18 +266,18 @@ The Apache HertzBeat PMC ### Announce New Committer Template ```text -To: dev@hertzbeat.apache.org, ${NEW_COMMITTER_EMAIL} -Subject: [ANNOUNCE] New committer: ${NEW_COMMITTER_NAME} +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hello Community, The Podling Project Management Committee (PMC) for Apache HertzBeat -has invited ${NEW_COMMITTER_NAME} to become a committer and we are pleased to +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to announce that he has accepted. -${NEW_COMMITTER_NAME} is active in the Apache HertzBeat community, hope to see your +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your further interactions with the community! Thanks for your contributions. @@ -405,7 +405,7 @@ hi, i accept. Thanks for invitaion. **发送模板** - 主题:`Accept to become a Hertzbeat(incubating) committer` + 主题:`Accept to become a Hertzbeat committer` 正文: @@ -431,9 +431,9 @@ hi, i accept. Thanks for invitaion. ### 将Apache账号和GitHub账号关联 -访问: +访问: [https://whimsy.apache.org/roster/committer/`APACHE_ID`](https://whimsy.apache.org/roster/committer/`APACHE_ID`) -- `${APACHE_ID}`替换成你的Apache ID +- ``APACHE_ID``替换成你的Apache ID 登录后可以看到这个内容`Link GitHub username to ASF id`,点击跳转 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_pmc_member_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_pmc_member_process.md index c6a0b69378c..b619d16c57d 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_pmc_member_process.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/new_pmc_member_process.md @@ -65,17 +65,17 @@ limitations under the License. ```text To: private@hertzbeat.apache.org -Subject: [VOTE] New PMC member candidate: ${NEW_PMC_NAME} +Subject: [VOTE] New PMC member candidate: `NEW_PMC_NAME` ``` ```text Hi HertzBeat PMC, -This is a formal vote about inviting ${NEW_PMC_NAME} as our new PMC member. +This is a formal vote about inviting `NEW_PMC_NAME` as our new PMC member. ${Work list}[1] -[1] https://github.com/apache/hertzbeat/commits?author=${NEW_PMC_NAME} +[1] https://github.com/apache/hertzbeat/commits?author=`NEW_PMC_NAME` ``` 注意,投票将在今天一周后结束,即 @@ -86,7 +86,7 @@ ${Work list}[1] ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] New PMC member: ${NEW_PMC_NAME} +Subject: [RESULT] [VOTE] New PMC member: `NEW_PMC_NAME` ``` ```text @@ -107,12 +107,12 @@ The vote is ***successful/not successful*** ```text To: board@apache.org -Cc: private@.apache.org -Subject: [NOTICE] ${NEW_PMC_NAME} for HertzBeat PMC member +Cc: private@``.apache.org +Subject: [NOTICE] `NEW_PMC_NAME` for HertzBeat PMC member ``` ```text -HertzBeat proposes to invite ${NEW_PMC_NAME} to join the PMC. +HertzBeat proposes to invite `NEW_PMC_NAME` to join the PMC. The vote result is available here: https://lists.apache.org/... ``` @@ -122,9 +122,9 @@ The vote result is available here: https://lists.apache.org/... ### PMC成员邀请模板 ```text -To: ${NEW_PMC_EMAIL} +To: `NEW_PMC_EMAIL` Cc: private@hertzbeat.apache.org -Subject: Invitation to become HertzBeat PMC member: ${NEW_PMC_NAME} +Subject: Invitation to become HertzBeat PMC member: `NEW_PMC_NAME` ``` ```text @@ -200,7 +200,7 @@ establishing you as a PMC. ### PMC成员接受模板 ```text -To: ${NEW_PMC_EMAIL} +To: `NEW_PMC_EMAIL` Cc: private@hertzbeatv.apache.org Subject: Re: invitation to become HertzBeat PMC member ``` @@ -250,13 +250,13 @@ The Apache HertzBeat PMC ### PMC成员完成模板 ```text -To: private@hertzbeat.apache.org, ${NEW_PMC_EMAIL} -Subject: account request: ${NEW_PMC_NAME} +To: private@hertzbeat.apache.org, `NEW_PMC_EMAIL` +Subject: account request: `NEW_PMC_NAME` ``` ```text -${NEW_PMC_EMAIL}, as you know, the ASF Infrastructure has set up your -committer account with the username '${NEW_PMC_APACHE_NAME}'. +`NEW_PMC_EMAIL`, as you know, the ASF Infrastructure has set up your +committer account with the username '`NEW_PMC_APACHE_NAME`'. Please follow the instructions to set up your SSH, svn password, svn configuration, email forwarding, etc. @@ -285,19 +285,19 @@ A PMC member will announce your election to the dev list soon. ```text To: dev@hertzbeat.apache.org -[ANNONCE] New PMC member: ${NEW_PMC_NAME} +[ANNONCE] New PMC member: `NEW_PMC_NAME` ``` ```text Hi HertzBeat Community, The Podling Project Management Committee (PMC) for Apache HertzBeat -has invited ${NEW_PMC_NAME} to become our PMC member and +has invited `NEW_PMC_NAME` to become our PMC member and we are pleased to announce that he has accepted. ### add specific details here ### -Please join me in congratulating ${NEW_PMC_NAME}! +Please join me in congratulating `NEW_PMC_NAME`! Being a committer enables easier contribution to the project since there is no need to go via the patch diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/submit-code.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/submit-code.md index 7ad649e09d1..ab649c94eaf 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/submit-code.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/community/submit-code.md @@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -* 首先从远程仓库 将代码的一份副本 fork 到您自己的仓库 +* 首先从远程仓库 [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) 将代码的一份副本 fork 到您自己的仓库 * 远程仓库开发合并分支:`master` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md index 04ec4a2a6fe..ce28c7b203f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md @@ -28,8 +28,8 @@ sidebar_label: Download > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 [Docker Hub](https://hub.docker.com/r/apache/hertzbeat) 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) ## 归档版本 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/activemq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/activemq.md index a6c741ba2e7..25ab02b1e49 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/activemq.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/activemq.md @@ -29,8 +29,8 @@ keywords: [开源监控系统, 开源中间件监控, ActiveMQ消息中间件监 ```text # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" @@ -39,8 +39,8 @@ keywords: [开源监控系统, 开源中间件监控, ActiveMQ消息中间件监 更新为如下配置,⚠️注意修改`本机对外IP` ```text - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password" - # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_notification_template.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_notification_template.md index 549c048ddc7..851f99fa496 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_notification_template.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_notification_template.md @@ -50,12 +50,12 @@ HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件 ## 模板变量与语法说明 - **全局变量**: - - `${status}`:告警状态(如告警、恢复等) - - `${groupKey}`:分组唯一标识 + - ``status``:告警状态(如告警、恢复等) + - ``groupKey``:分组唯一标识 - `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:公共标签和注解,可通过 `xxx` 访问具体字段 - **告警明细列表**: - - `${alerts}`:告警明细集合,通常配合 `<#list alerts as alert>` 进行遍历 + - ``alerts``:告警明细集合,通常配合 `<#list alerts as alert>` 进行遍历 - `${alert.labels.xxx}`、`${alert.annotations.xxx}`:单条告警的标签和注解 - `${alert.content}`:告警内容 - `${alert.triggerTimes}`:触发次数 @@ -88,7 +88,7 @@ HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件 "labels": { <#if alert.labels?? && alert.labels?size gt 0> <#list alert.labels?keys as key> - "${key}": "${alert.labels[key]?json_string}"<#if key?has_next>, + "`key`": "${alert.labels[key]?json_string}"<#if key?has_next>, }, @@ -106,7 +106,7 @@ HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件 <#if alert.annotations?? && alert.annotations?size gt 0> "annotations": { <#list alert.annotations?keys as key> - "${key}": "${alert.annotations[key]?json_string}"<#if key?has_next>, + "`key`": "${alert.annotations[key]?json_string}"<#if key?has_next>, } @@ -117,7 +117,7 @@ HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件 "commonAnnotations": { <#if commonAnnotations?? && commonAnnotations?size gt 0> <#list commonAnnotations?keys as key> - "${key}": "${commonAnnotations[key]?json_string}"<#if key?has_next>, + "`key`": "${commonAnnotations[key]?json_string}"<#if key?has_next>, } diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_sms.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_sms.md index fcdfb858707..e0005880905 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_sms.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_sms.md @@ -83,7 +83,7 @@ alerter: - 创建如下格式的模板: ```text - 监控项:${instance},告警级别:${priority}。内容:${content} + 监控项:`instance`,告警级别:`priority`。内容:`content` ``` - 提交模板等待审核 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_telegram.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_telegram.md index 9760660bdff..41bf3bc9b56 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_telegram.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_telegram.md @@ -20,7 +20,7 @@ keywords: [告警 Telegram 通知, 开源告警系统, 开源监控告警系统] 2. 获取接收人的 `User ID` **使用您要通知的接收人账户给刚创建 Bot 账户随便发送一个信息**, - 访问 ```https://api.telegram.org/bot/getUpdates``` , **`使用上一步的 Bot Token 替换其中的`**, 响应`Json`数据中第一个`result.message.from.id` 值即为接收人的 `User ID` + 访问 ```https://api.telegram.org/bot``/getUpdates``` , **`使用上一步的 Bot Token 替换其中的`**, 响应`Json`数据中第一个`result.message.from.id` 值即为接收人的 `User ID` ```json { diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold.md index 03be69e41fa..050ef5d7296 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold.md @@ -1,12 +1,12 @@ --- -id: alert_threshold -title: 告警阈值规则配置 +id: alert_threshold +title: 告警阈值规则配置 sidebar_label: 阈值规则 --- :::tip -告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 -阈值规则支持实时阈值和计划阈值,可应用于**监控指标**和**日志数据**两种数据类型。实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL、SQL 等表达式在指定时间段内计算触发告警。 +告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 +阈值规则支持实时阈值和计划阈值,可应用于**监控指标**和**日志数据**两种数据类型。实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL、SQL 等表达式在指定时间段内计算触发告警。 支持可视化页面配置或更高灵活性的表达式规则配置,支持配置触发次数,告警级别,通知模板,关联指定监控等。通知模板已支持对象嵌套访问,可以更灵活地展示告警信息。 ::: @@ -35,7 +35,7 @@ sidebar_label: 阈值规则 - **关联监控**:应用此阈值规则到指定的监控对象(支持直接绑定和标签关联),若未配置,则应用到所有符合此阈值类型规则的监控对象上。 - **告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency - **触发次数**:设置触发阈值多少次之后才会真正的触发告警 -- **通知模板**:告警触发后发送的通知信息模板,模板环境变量见页面提示,支持对象嵌套访问,例如:`${__instancename__} ${__metric__} 指标的值为 ${responseTime},大于 50 触发告警`,也可以访问对象属性如 `${log.attributes.hostname}` +- **通知模板**:告警触发后发送的通知信息模板,模板环境变量见页面提示,支持对象嵌套访问,例如:`__instancename__` 指标的值为 `responseTime`,大于 50 触发告警,也可以访问对象属性如 `${log.attributes.hostname}` - **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上。 - **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上。 - **启用告警**:此告警阈值配置开启生效或关闭 @@ -56,14 +56,14 @@ sidebar_label: 阈值规则 - **图形界面**:可视化配置日志字段条件,支持 `log.level`、`log.message`、`log.attributes.*`、`log.resource.*` 等字段 - **表达式规则**:使用自定义表达式,支持对象嵌套访问,例如:`equals(log.level,"ERROR")` 或 `contains(log.attributes.hostname,"server-01")` - **时间窗口**:设置日志聚合的时间窗口,单位为秒,最小60秒。在此时间窗口内的日志会被聚合处理 -- **告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency +- **告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency - **告警模式**:选择告警发送方式: - **窗口组模式(group)**:将时间窗口内满足条件的所有日志作为一个告警发送 - **单条模式(individual)**:每条满足条件的日志都单独发送告警 - **触发次数**:设置在时间窗口内满足条件的日志数量达到多少次后才触发告警 - **通知模板**:告警触发后发送的通知信息模板,支持对象嵌套访问: - - 基本变量:`${__instancename__}`、`${__alertname__}` 等 - - 日志字段:`${log.level}`、`${log.message}`、`${log.timestamp}` 等 + - 基本变量:``__instancename__``、``__alertname__`` 等 + - 日志字段:`${log.level}`、`${log.message}`、`${log.timestamp}` 等 - 嵌套属性:`${log.attributes.hostname}`、`${log.resource.service.name}` 等 - **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上 - **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上 @@ -88,7 +88,7 @@ sidebar_label: 阈值规则 ```text cpu_usage - memory{\__field\__="field1"} + memory{__field__="field1"} ``` 2. **比较表达式**: 将值与阈值进行比较 @@ -119,15 +119,15 @@ sidebar_label: 阈值规则 ```sql -- 查询错误日志数量 -SELECT COUNT(*) as error_count -FROM hertzbeat_logs -WHERE level = 'ERROR' +SELECT COUNT(*) as error_count +FROM hertzbeat_logs +WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE -- 按服务分组统计错误数 SELECT service_name, COUNT(*) as error_count -FROM hertzbeat_logs -WHERE level = 'ERROR' +FROM hertzbeat_logs +WHERE level = 'ERROR' GROUP BY service_name HAVING COUNT(*) > 10 ``` @@ -138,7 +138,7 @@ HAVING COUNT(*) > 10 #### 监控指标计划阈值 -针对监控指标配置计划阈值,例如:针对一组 CPU 指标,设定表达式 `cpu_usage{instance="server1"} > 80`,当满足该表达式时触发告警。 +针对监控指标配置计划阈值,例如:针对一组 CPU 指标,设定表达式 `cpu_usage{instance="server1"}` > 80`,当满足该表达式时触发告警。 ![threshold](/img/docs/help/alert-threshold-2.png) @@ -175,7 +175,7 @@ HAVING COUNT(*) > 10 - **日志查询表达式**:使用标准 SQL 语法查询日志数据,支持聚合函数、分组、过滤等操作。例如: ```sql -SELECT COUNT(*) as error_count FROM hertzbeat_logs +SELECT COUNT(*) as error_count FROM hertzbeat_logs WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE ``` @@ -186,8 +186,8 @@ WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE - **单条模式(individual)**:查询结果中的每行数据都单独发送告警 - **触发次数**:查询结果连续满足告警条件的次数,超过该次数后才实际触发告警 - **通知模板**:当告警被触发后发送的通知内容模板,支持访问查询结果中的字段,例如: - - 查询结果字段:`${error_count}`、`${service_name}` 等 - - 基本变量:`${__alertname__}`、`${__severity__}` 等 + - 查询结果字段:``error_count``、``service_name`` 等 + - 基本变量:``__alertname__``、``__severity__`` 等 - **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上 - **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上 - **启用告警**:用于控制该阈值规则是否启用 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold_expr.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold_expr.md index e326a2a7400..7ca4009a472 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold_expr.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_threshold_expr.md @@ -19,9 +19,9 @@ sidebar_label: 阈值触发表达式 | 存在值 | exists(obj) | 字符型、数值型、时间型 | 判断字符是否有值存在 | | | 不存在值 | !exists(obj) | 字符型 、数值型、时间型 | 判断字符是否有值存在 | | | > | obj1 > obj2 | 数值型、时间型 | 判断数值是否大于 | | -| < | obj1 < obj2 | 数值型、时间型 | 判断数值是否小于 | | +| `<` | `obj1 < obj2` | 数值型、时间型 | 判断数值是否小于 | | | >= | obj1 >= obj2 | 数值型、时间型 | 判断数值是否大于等于 | | -| <= | obj1 <= obj2 | 数值型、时间型 | 判断数值是否小于等于 | | +| `<=` | `obj1 <= obj2` | 数值型、时间型 | 判断数值是否小于等于 | | | != | obj1 != obj2 | 数值型、时间型 | 判断数值是否不相等 | | | == | obj1 == obj2 | 数值型、时间型 | 判断数值是否相等 | | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_webhook.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_webhook.md index e07a3e61cce..bb487d788dd 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_webhook.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/alert_webhook.md @@ -26,7 +26,7 @@ keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警 ```json { "alarmId": 76456, - "target": "${target}", + "target": "`target`", "thresholdId": 33455, "priority": 0, "content": "udp_port monitoring availability alert, code is FAIL", @@ -54,7 +54,7 @@ keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警 | status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | | times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | | triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | -| tags | example: {key1:value1} | +| tags | example: `{key1:value1}` | ### webhook通知常见问题 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dolphinscheduler.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dolphinscheduler.md index a8a56dc9306..917dd9478f5 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dolphinscheduler.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dolphinscheduler.md @@ -13,6 +13,7 @@ keywords: [ 开源监控系统, 监控 Apache DolphinScheduler ] 您需在 Apache DolphinScheduler 中创建令牌。 + 可参考 [API 调用](https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/api/open-api) 创建一个新令牌,具体步骤如下: 1. 登录 Apache DolphinScheduler 系统,点击 "安全中心",再点击左侧的 "令牌管理",点击 "令牌管理" 创建令牌。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/grafana_dashboard.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/grafana_dashboard.md index b2a62f85a14..850edf45991 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/grafana_dashboard.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/grafana_dashboard.md @@ -19,7 +19,7 @@ keywords: [Grafana, 历史图表] ### 启用Grafana可嵌入功能, 并配置匿名访问及权限角色 -参考: , +参考: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/), 修改配置文件`grafana.ini`中的配置项参数, 或者通过`docker`运行`Grafana`。 @@ -68,8 +68,8 @@ grafana: ### 在HertzBeat监控中上传Grafana监控模板json文件 在`HertzBeat`新建或编辑`Prometheus`类型监控时,点击启用Grafana模板,选择Grafana模板json文件上传。 -监控模板json文件可以在 下载。 -比如,在`HertzBeat`中新建一个关于`VictoriaMetrics`单节点的监控,然后打开 ,点击右侧 `Download JSON`按钮,下载模板json文件。在`HertzBeat`监控中上传模板json文件,保存。 +监控模板json文件可以在 [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/) 下载。 +比如,在`HertzBeat`中新建一个关于`VictoriaMetrics`单节点的监控,然后打开 [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/) ,点击右侧 `Download JSON`按钮,下载模板json文件。在`HertzBeat`监控中上传模板json文件,保存。 ![grafana-1.png](/img/docs/help/grafana-1.png) ### 查看Grafana历史图表 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/http_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/http_sd.md index 9fdafd2a1a0..20f3830e929 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/http_sd.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/http_sd.md @@ -198,7 +198,7 @@ public class ServiceDiscoveryController { @GetMapping("/services") public Map getServices() { - List targets = Arrays.asList( + List`` targets = Arrays.asList( "192.168.1.10:8080", "192.168.1.11:8080", "192.168.1.12:8080" diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/iotdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/iotdb.md index 88a20e4ab97..a46b3378fdc 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/iotdb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/iotdb.md @@ -41,7 +41,7 @@ keywords: [开源监控系统, 开源数据库监控, IoTDB数据库监控] - FILE ``` -2. 重启 IoTDB, 打开浏览器或者用curl 访问 , 就能看到metric数据了。 +2. 重启 IoTDB, 打开浏览器或者用curl 访问 [http://ip:9091/metrics](http://ip:9091/metrics), 就能看到metric数据了。 3. 在 HertzBeat 添加对应 IoTDB 监控即可。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/issue.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/issue.md index c2f9e36adf8..792264ed0f6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/issue.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/issue.md @@ -19,7 +19,7 @@ sidebar_label: 常见问题 > 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 > docker安装默认启用无此问题 - > 详见 + > 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) 4. 配置了k8s监控,但是实际监控时间并未按照正确间隔时间执行 请参考下面几点排查问题: @@ -47,7 +47,7 @@ sidebar_label: 常见问题 > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` -2. **按照流程部署,访问 无界面** +2. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** 请参考下面几点排查问题: > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 @@ -61,7 +61,7 @@ sidebar_label: 常见问题 ### 安装包部署常见问题 -1. **按照流程部署,访问 无界面** +1. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** 请参考下面几点排查问题: > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jetty.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jetty.md index 5e5603783cc..f564da57219 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jetty.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jetty.md @@ -24,9 +24,9 @@ keywords: [开源监控系统, 开源中间件监控, Jetty应用服务器监控 java -jar $JETTY_HOME/start.jar --add-module=jmx-remote ``` - 命令执行成功会创建出 `${JETTY_BASE}/start.d/jmx-remote.ini` 配置文件 + 命令执行成功会创建出 ``JETTY_BASE`/start.d/jmx-remote.ini` 配置文件 -2. 编辑 `${JETTY_BASE}/start.d/jmx-remote.ini` 配置文件,修改 JMX 的 IP 端口等参数。 +2. 编辑 ``JETTY_BASE`/start.d/jmx-remote.ini` 配置文件,修改 JMX 的 IP 端口等参数。 **`localhost` 需修改为对外暴露 IP** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jvm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jvm.md index 3d9e96e55e1..485363e34e7 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jvm.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/jvm.md @@ -17,7 +17,7 @@ keywords: [开源监控系统, 开源JAVA监控, JVM虚拟机监控] 应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP -参考文档: +参考文档: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) ```shell -Djava.rmi.server.hostname=对外ip地址 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/kafka_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/kafka_promql.md index f75ee33ba77..df3a8c191d2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/kafka_promql.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/kafka_promql.md @@ -36,7 +36,7 @@ keywords: [ 开源监控系统,开源中间件监控, Kafka监控,Kafka-PromQL | 指标名称 | 指标单位 | 指标帮助描述 | |------------|------|---------| -| \_\_name__ | 无 | 指标名称 | +| __name__ | 无 | 指标名称 | | instance | 无 | 指标所属实例 | | timestamp | 无 | 采集指标时间戳 | | value | 无 | 指标值 | @@ -45,7 +45,7 @@ keywords: [ 开源监控系统,开源中间件监控, Kafka监控,Kafka-PromQL | 指标名称 | 指标单位 | 指标帮助描述 | |------------|------|---------| -| \_\_name__ | 无 | 指标名称 | +| __name__ | 无 | 指标名称 | | instance | 无 | 指标所属实例 | | timestamp | 无 | 采集指标时间戳 | | value | 无 | 指标值 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_integration.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_integration.md index 32f192dec3c..8428b035838 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_integration.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_integration.md @@ -1,12 +1,16 @@ --- id: log_integration -title: 日志集成 -sidebar_label: 日志集成 +title: 日志集成 (Beta) +sidebar_label: 日志集成 (Beta) keywords: [开源监控, 日志集成, 日志管理, 多源日志] --- > HertzBeat 的日志集成模块旨在实现对来自不同第三方日志系统和可观测性平台的日志数据进行统一接收、标准化处理。作为一个集中式"日志中心",HertzBeat 能够高效地接入外部系统的日志信息,并提供实时日志监控与分析能力。 +:::warning +日志集成功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + ### 核心能力 - **多源日志接入**:支持从 OpenTelemetry、Filebeat、Vector、Loki 等主流平台接收日志数据 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_manage.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_manage.md index 8e1254d73ab..e5c78a3d994 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_manage.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_manage.md @@ -1,12 +1,16 @@ --- id: log_manage -title: 日志管理 -sidebar_label: 日志管理 +title: 日志管理 (Beta) +sidebar_label: 日志管理 (Beta) keywords: [开源监控, 日志管理, 日志查询, 日志统计, 日志删除] --- > HertzBeat 的日志管理功能提供了完整的日志数据管理能力,包括日志查询、统计分析、批量删除等操作。用户可以通过多种过滤条件精确查找日志,查看详细的统计图表,并对不需要的日志数据进行清理。 +:::warning +日志管理功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + ## 前置要求 **在使用日志管理功能之前,必须先配置支持日志存储的数据库。** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_stream.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_stream.md index e9080cef768..6dfbc2e75dc 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_stream.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/log_stream.md @@ -1,12 +1,16 @@ --- id: log_stream -title: 日志流 -sidebar_label: 日志流 +title: 日志流 (Beta) +sidebar_label: 日志流 (Beta) keywords: [开源监控, 日志流, 实时日志, 日志过滤] --- > HertzBeat 的日志流功能提供了实时查看和过滤日志数据的能力,包括实时日志监控、多维度过滤、日志详情查看等操作。用户可以实时监控系统日志,并根据不同条件进行精确过滤,快速定位问题和分析系统状态。 +:::warning +日志流功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + ## 功能概览 在 HertzBeat 界面中,进入"日志" -> "日志流"页面,你将看到一个功能完整的实时日志监控界面。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mariadb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mariadb.md index e960d620649..dd8b3f7d868 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mariadb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mariadb.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, MariaDB数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/memcached.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/memcached.md index 1066d3934dc..b6aca0c75a2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/memcached.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/memcached.md @@ -30,7 +30,7 @@ STAT version 1.4.15 ... ``` -**帮助文档: ** +**帮助文档: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** ### 配置参数 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mysql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mysql.md index 46046f095c9..82b3f36b564 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mysql.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/mysql.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nacos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nacos.md index f95da705d58..b54fbc611c5 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nacos.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nacos.md @@ -54,41 +54,41 @@ keywords: [开源监控系统, 中间件监控, Nacos分布式监控] | http_server_requests_seconds_sum | 秒 | http请求总耗时,包括多种(url,方法,code) | | nacos_timer_seconds_sum | 秒 | Nacos config水平通知耗时 | | nacos_timer_seconds_count | 无 | Nacos config水平通知次数 | -| nacos_monitor{name='longPolling'} | 无 | Nacos config长连接数 | -| nacos_monitor{name='configCount'} | 无 | Nacos config配置个数 | -| nacos_monitor{name='dumpTask'} | 无 | Nacos config配置落盘任务堆积数 | -| nacos_monitor{name='notifyTask'} | 无 | Nacos config配置水平通知任务堆积数 | -| nacos_monitor{name='getConfig'} | 无 | Nacos config读配置统计数 | -| nacos_monitor{name='publish'} | 无 | Nacos config写配置统计数 | -| nacos_monitor{name='ipCount'} | 无 | Nacos naming ip个数 | -| nacos_monitor{name='domCount'} | 无 | Nacos naming域名个数(1.x 版本) | -| nacos_monitor{name='serviceCount'} | 无 | Nacos naming域名个数(2.x 版本) | -| nacos_monitor{name='failedPush'} | 无 | Nacos naming推送失败数 | -| nacos_monitor{name='avgPushCost'} | 秒 | Nacos naming平均推送耗时 | -| nacos_monitor{name='leaderStatus'} | 无 | Nacos naming角色状态 | -| nacos_monitor{name='maxPushCost'} | 秒 | Nacos naming最大推送耗时 | -| nacos_monitor{name='mysqlhealthCheck'} | 无 | Nacos naming mysql健康检查次数 | -| nacos_monitor{name='httpHealthCheck'} | 无 | Nacos naming http健康检查次数 | -| nacos_monitor{name='tcpHealthCheck'} | 无 | Nacos naming tcp健康检查次数 | +| nacos_monitor`{name="longPolling"}` | 无 | Nacos config长连接数 | +| nacos_monitor`{name="configCount"}` | 无 | Nacos config配置个数 | +| nacos_monitor`{name="dumpTask"}` | 无 | Nacos config配置落盘任务堆积数 | +| nacos_monitor`{name="notifyTask"}` | 无 | Nacos config配置水平通知任务堆积数 | +| nacos_monitor`{name="getConfig"}` | 无 | Nacos config读配置统计数 | +| nacos_monitor`{name="publish"}` | 无 | Nacos config写配置统计数 | +| nacos_monitor`{name="ipCount"}` | 无 | Nacos naming ip个数 | +| nacos_monitor`{name="domCount"}` | 无 | Nacos naming域名个数(1.x 版本) | +| nacos_monitor`{name="serviceCount"}` | 无 | Nacos naming域名个数(2.x 版本) | +| nacos_monitor`{name="failedPush"}` | 无 | Nacos naming推送失败数 | +| nacos_monitor`{name="avgPushCost"}` | 秒 | Nacos naming平均推送耗时 | +| nacos_monitor`{name="leaderStatus"}` | 无 | Nacos naming角色状态 | +| nacos_monitor`{name="maxPushCost"}` | 秒 | Nacos naming最大推送耗时 | +| nacos_monitor`{name="mysqlhealthCheck"}` | 无 | Nacos naming mysql健康检查次数 | +| nacos_monitor`{name="httpHealthCheck"}` | 无 | Nacos naming http健康检查次数 | +| nacos_monitor`{name="tcpHealthCheck"}` | 无 | Nacos naming tcp健康检查次数 | #### 指标集合:Nacos 异常 | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------------------|------|--------------------------------| -| nacos_exception_total{name='db'} | 无 | 数据库异常 | -| nacos_exception_total{name='configNotify'} | 无 | Nacos config水平通知失败 | -| nacos_exception_total{name='unhealth'} | 无 | Nacos config server之间健康检查异常 | -| nacos_exception_total{name='disk'} | 无 | Nacos naming写磁盘异常 | -| nacos_exception_total{name='leaderSendBeatFailed'} | 无 | Nacos naming leader发送心跳异常 | -| nacos_exception_total{name='illegalArgument'} | 无 | 请求参数不合法 | -| nacos_exception_total{name='nacos'} | 无 | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) | +| nacos_exception_total`{name="db"}` | 无 | 数据库异常 | +| nacos_exception_total`{name="configNotify"}` | 无 | Nacos config水平通知失败 | +| nacos_exception_total`{name="unhealth"}` | 无 | Nacos config server之间健康检查异常 | +| nacos_exception_total`{name="disk"}` | 无 | Nacos naming写磁盘异常 | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | 无 | Nacos naming leader发送心跳异常 | +| nacos_exception_total`{name="illegalArgument"}` | 无 | 请求参数不合法 | +| nacos_exception_total`{name="nacos"}` | 无 | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) | #### 指标集合:client | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------|------|--------------------------| -| nacos_monitor{name='subServiceCount'} | 无 | 订阅的服务数 | -| nacos_monitor{name='pubServiceCount'} | 无 | 发布的服务数 | -| nacos_monitor{name='configListenSize'} | 无 | 监听的配置数 | +| nacos_monitor`{name="subServiceCount"}` | 无 | 订阅的服务数 | +| nacos_monitor`{name="pubServiceCount"}` | 无 | 发布的服务数 | +| nacos_monitor`{name="configListenSize"}` | 无 | 监听的配置数 | | nacos_client_request_seconds_count | 无 | 请求的次数,包括多种(url,方法,code) | | nacos_client_request_seconds_sum | 秒 | 请求的总耗时,包括多种(url,方法,code) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nebulagraph.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nebulagraph.md index f570d475444..b1bda5b6cc6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nebulagraph.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nebulagraph.md @@ -18,17 +18,17 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB 1.1、如果只需要获取 nebulaGraph_stats,需要确保可以访问 stats,否则会出现错误。 -默认端口是 19669,访问地址为 +默认端口是 19669,访问地址为 [http://ip:19669/stats](http://ip:19669/stats) 1.2、如果需要获取 rocksdb stats 的附加参数,需要确保可以访问 rocksdb stats,否则会报错。 首次连接 NebulaGraph 时,必须先注册 Storage 服务,以便正确查询数据。 -**有帮助文档:** +**有帮助文档:[https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** -**** +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** -默认端口是 19779,访问地址为: +默认端口是 19779,访问地址为:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) ### 配置参数 @@ -49,7 +49,7 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB #### 指标集:nebulaGraph_stats 指标太多,相关链接如下 -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------------------------------|------|--------| @@ -112,7 +112,7 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB #### 指标集:rocksdb_stats 指标太多,相关链接如下 -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------|------|------------------------| diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nginx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nginx.md index 496f5e285a0..227a9900a95 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nginx.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/nginx.md @@ -109,7 +109,7 @@ keywords: [开源监控工具, 开源Java监控工具, 监控Nginx指标] 4. 在浏览器访问 `http://localhost/req-status` 即可查看 Nginx 监控状态信息。 -**参考文档: ** +**参考文档: [https://blog.csdn.net/weixin_55985097/article/details/116722309](https://blog.csdn.net/weixin_55985097/article/details/116722309)** **⚠️注意监控模块的端点路径为 `/nginx-status` `/req-status`** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/oceanbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/oceanbase.md index 2f319e3c414..edeeaeaf611 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/oceanbase.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/oceanbase.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, OceanBase 数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/openai.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/openai.md index 690a8670ebb..6ec6ff18316 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/openai.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/openai.md @@ -12,8 +12,8 @@ keywords: [开源监控系统, 开源网络监控, OpenAI账户监控] > 1. 打开 Chrome 浏览器的网络请求界面 > `Mac: cmd + option + i` > `Windows: ctrl + shift + i` -> 2. 访问 -> 3. 找到 请求 +> 2. 访问 [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. 找到 [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) 请求 > 4. 找到请求头中 Authorization 字段,并复制 `Bearer` 之后的内容。例如: `sess-123456` ### 注意事项 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/ping.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/ping.md index 59ac237ed34..2c43d17c346 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/ping.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/ping.md @@ -33,4 +33,4 @@ keywords: [开源监控系统, 开源网络监控, 网络PING监控] > 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 > docker安装默认启用无此问题 -> 详见 +> 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/rabbitmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/rabbitmq.md index 7e4ff6383d7..be554adf7aa 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/rabbitmq.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/rabbitmq.md @@ -18,7 +18,7 @@ keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间 rabbitmq-plugins enable rabbitmq_management ``` -2. 浏览器访问 ,默认账户密码 `guest/guest`. 成功登录即开启成功。 +2. 浏览器访问 [http://ip:15672/](http://ip:15672/) ,默认账户密码 `guest/guest`. 成功登录即开启成功。 3. 在 HertzBeat 添加对应 RabbitMQ 监控即可,参数使用 Management 的 IP 端口,默认账户密码。 @@ -106,7 +106,7 @@ keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间 |------------------------------|------|--------------------------------------------------------------------------------------------------------------------------------------| | name | 无 | The name of the queue with non-ASCII characters escaped as in C. | | node | 无 | The queue on the node name | -| state | 无 | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| state | 无 | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | | type | 无 | Queue type, one of: quorum, stream, classic. | | vhost | 无 | vhost path | | auto_delete | 无 | Whether the queue will be deleted automatically when no longer used | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/smtp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/smtp.md index 73e9af9ee13..83647abb126 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/smtp.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/smtp.md @@ -11,7 +11,7 @@ keywords: [ open source monitoring tool, open source SMTP monitoring tool, monit 通过 SMTP 的 hello 命令确定服务器是否可用 ``` -> 详见 +> 详见 [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) **协议使用:SMTP** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/spark.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/spark.md index 837d446f357..783dcdff5b6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/spark.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/spark.md @@ -13,7 +13,7 @@ keywords: [开源监控工具,开源Java spark监控工具,监控spark指标 1. 应用启动时添加Spark参数 ⚠️注意可自定义暴露端口,对外IP -参考文档: +参考文档: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) **监控配置spark的监控主要分为Master、Worker、driver、executor监控。Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要针对某一个app来进行监控。** **如果都要监控,需要根据以下步骤来配置** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/status.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/status.md index 7baab05027b..bbb55bd3c9f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/status.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/status.md @@ -17,9 +17,9 @@ keywords: [开源监控系统, 开源网站监控, 状态页面] |------|----------------------------------------|---------------------------------------------------------------------------------------------------| | 组织名称 | 组织的名称 | HertzBeat | | 组织介绍 | 组织的详细介绍 | Apache HertzBeat™ 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 | -| 网站链接 | 组织网站的 URL,便于访问者获取更多信息 | | -| 标志图片 | 组织官方标志或 Logo 的图片文件路径或 URL,建议使用 .svg 格式 | | -| 反馈地址 | 接收问题反馈的地址 | | +| 网站链接 | 组织网站的 URL,便于访问者获取更多信息 | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| 标志图片 | 组织官方标志或 Logo 的图片文件路径或 URL,建议使用 .svg 格式 | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| 反馈地址 | 接收问题反馈的地址 | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | | 主题颜色 | 状态页面的主色调。 | 在页面中点击选择 | 填写完组织信息后,点击 `确定`。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tidb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tidb.md index b0ea82505ca..69bdd6fd40b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tidb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tidb.md @@ -42,5 +42,5 @@ keywords: [开源监控系统, 开源数据库监控, TiDB数据库监控] | version_compile_machine | 无 | 运行 TiDB 的 CPU 架构的名称 | | version_compile_os | 无 | TiDB 所在操作系统的名称 | | max_connections | 无 | 该变量表示 TiDB 中同时允许的最大客户端连接数,用于资源控制。默认情况下,该变量值为 0 表示不限制客户端连接数。当本变量的值大于 0 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 | -| datadir | 无 | 数据存储的位置,位置可以是本地路径 /tmp/tidb。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 ${pd-ip}:${pd-port},表示 TiDB 在启动时连接到的 PD 服务器。 | +| datadir | 无 | 数据存储的位置,位置可以是本地路径 /tmp/tidb。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 `${pd-ip}:${pd-port}`,表示 TiDB 在启动时连接到的 PD 服务器。 | | port | 无 | 使用 MySQL 协议时 tidb-server 监听的端口。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/time_expression.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/time_expression.md index 8a96425554f..347a1b8d845 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/time_expression.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/time_expression.md @@ -12,7 +12,7 @@ HertzBeat支持使用表达式计算监控采集时的相对时间,支持更 ### 语法 ```shell -${FORMATTER [{ + | - } ]} +${FORMATTER [{ + | - }`` ``]} ``` - `FORMATTER` : 决定表达式计算的结果的格式 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tomcat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tomcat.md index f9d75f4921d..710f9594aab 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tomcat.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/tomcat.md @@ -73,4 +73,4 @@ CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.h ``` -参考: +参考: [https://blog.csdn.net/weixin_41924764/article/details/108694239](https://blog.csdn.net/weixin_41924764/article/details/108694239) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md index 1c321982d39..6c13415f0f6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/introduce.md @@ -7,7 +7,7 @@ slug: / **官网: [hertzbeat.apache.org](https://hertzbeat.apache.org)** -## 🎡 介绍 +## 🎡 介绍 [Apache HertzBeat™](https://github.com/apache/hertzbeat) 是 AI 驱动的下一代开源实时观测系统。指标日志统一收集,告警一站分发,智能管控分析。无需 Agent,高性能集群,提供强大的自定义监控和状态页构建能力。 @@ -310,7 +310,7 @@ Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1 ### 状态页面 -- 基于 HertzBeat 快速构建自己产品的对外状态页,轻松向用户传达您产品服务的实时状态。例如 Github 提供的服务状态页 。 +- 基于 HertzBeat 快速构建自己产品的对外状态页,轻松向用户传达您产品服务的实时状态。例如 Github 提供的服务状态页 [https://www.githubstatus.com](https://www.githubstatus.com)。 - 支持状态页组件状态和监控状态联动同步,故障事件维护管理机制等。提高您的透明度,专业度和用户信任,降低沟通成本。 ![HertzBeat](/img/home/19.png) @@ -323,6 +323,6 @@ Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1 --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**Home: ** +**Home: [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/account-modify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/account-modify.md index cc44d79d52b..9818ff86207 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/account-modify.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/account-modify.md @@ -156,4 +156,4 @@ sureness: dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' ``` -**重启 HertzBeat 浏览器访问 即可探索使用 HertzBeat** +**重启 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可探索使用 HertzBeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-compose-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-compose-deploy.md index 196f06702d8..32e7333b95c 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-compose-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-compose-deploy.md @@ -56,7 +56,7 @@ sidebar_label: Docker Compose方式安装 ``` 3. 开始探索 HertzBeat - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md index 094e668407e..06fa83e496e 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/docker-deploy.md @@ -50,7 +50,7 @@ sidebar_label: Docker方式安装 ::: 2. 开始探索 HertzBeat - 浏览器访问 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 ### 部署 HertzBeat Collector 集群(可选) @@ -93,7 +93,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 ::: 2. 开始探索 HertzBeat Collector - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** @@ -109,7 +109,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` -2. 按照流程部署,访问 无界面 +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 请参考下面几点排查问题: > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/mysql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/mysql-change.md index 388998066c3..ba579d3cedb 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/mysql-change.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/mysql-change.md @@ -55,7 +55,7 @@ mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) ### 添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.0.25.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. ### 修改hertzbeat的配置文件application.yml切换数据源 @@ -113,4 +113,4 @@ spring: > 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./mysql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 -**启动 HertzBeat 浏览器访问 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md index bcd4d8c4ed7..d55c0476cd3 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/package-deploy.md @@ -54,7 +54,7 @@ Apache HertzBeat™ 支持在Linux Windows Mac系统安装运行,CPU支持X86/ ``` 5. 开始探索HertzBeat - 浏览器访问 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 ### 部署 HertzBeat Collector 集群(可选) @@ -107,7 +107,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 ``` 4. 开始探索 HertzBeat Collector - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** @@ -131,7 +131,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 Java HotSpot(TM) 64-Bit Server VM 17.0.9 (build 17.0.9+8-LTS-237, mixed mode) ``` -2. 按照流程部署,访问 无界面 +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 请参考下面几点排查问题: > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/postgresql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/postgresql-change.md index 54afbb00e83..a7e083b9f50 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/postgresql-change.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/postgresql-change.md @@ -100,4 +100,4 @@ spring: > 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./postgresql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 -**启动 HertzBeat 浏览器访问 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/linux-os-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/linux-os-practice.md index 2d1417797c6..fa67cc8fe02 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/linux-os-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/linux-os-practice.md @@ -8,9 +8,9 @@ sidebar_label: Linux 操作系统监控案例 ## HertzBeat 是什么 -Apache HertzBeat (incubating) 一个拥有强大自定义监控能力,无需 Agent 的实时监控工具。网站监测,端口可用性,数据库,操作系统,阈值告警,告警通知(邮件微信钉钉飞书)。 +Apache HertzBeat 一个拥有强大自定义监控能力,无需 Agent 的实时监控工具。网站监测,端口可用性,数据库,操作系统,阈值告警,告警通知(邮件微信钉钉飞书)。 -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## 安装 @@ -85,10 +85,10 @@ github: 当阈值触发后就可以收到对应告警消息,如果没有配置消息通知,也可以在**告警中心**查看告警信息。 ----- +---- ## 总结 监控 Linux 操作系统的实践就到这里,当然对 Hertzbeat 来说这个功能只是冰山一角,如果您觉得 Hertzbeat 这个开源项目不错的话欢迎给我们 Star 哦,非常感谢各位的支持! -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/springboot-auto-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/springboot-auto-practice.md index 3e90e9ed95e..a3f8163eba0 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/springboot-auto-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/springboot-auto-practice.md @@ -16,7 +16,7 @@ sidebar_label: SpringBoot Web应用监控案例 Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** ## 安装 HertzBeat @@ -123,16 +123,16 @@ Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时 .antMatchers("/trace").permitAll() .antMatchers("/heapdump").permitAll() // ... - } - } + \} + \} ``` 2. 验证端点 > SpringBoot 程序启动后,请求URL: > - > - `http://:/actuator`: 验证已启用的端点, - > - `http://:/actuator/prometheus`: 应返回指标数据。 + > - `http://:`/actuator`: 验证已启用的端点, + > - `http://:`/actuator/prometheus`: 应返回指标数据。 ## 监控 SpringBoot 应用 @@ -209,7 +209,7 @@ Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时 2. 设置阈值规则 - > 比如监测 SpringBoot 应用程序的 CPU 占用,添加阈值规则:`system_cpu_usage{job="Jolly_Vulture_43vT"} > 0.01` + > 比如监测 SpringBoot 应用程序的 CPU 占用,添加阈值规则:`system_cpu_usage{job="Jolly_Vulture_43vT"}` > 0.01` > > 可以设置的阈值规则组合有很多,用户可以根据自身需要设置更丰富的告警规则。 @@ -251,6 +251,6 @@ Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时 **让监控更简单,期待与您共建生态!** 💝 -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**gitee: ** +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/sslcert-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/sslcert-practice.md index 909ccbb32bd..c81d0b92402 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/sslcert-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/sslcert-practice.md @@ -14,7 +14,7 @@ sidebar_label: SSL 证书过期监控案例 Apache HertzBeat™ 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## 安装 HertzBeat @@ -25,7 +25,7 @@ github: 2. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` :::note -生产环境建议完整部署方式, 参考 +生产环境建议完整部署方式, 参考 [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) ::: ## 监控 SSL 证书 @@ -77,7 +77,7 @@ github: 钉钉微信飞书等 token 配置可以参考帮助文档 - + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) > 消息通知 -> 通知策略 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知 @@ -91,4 +91,4 @@ github: 监控SSL证书的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/tdengine-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/tdengine-practice.md index d327ef3851b..a13f950d750 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/tdengine-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/start/usecase/tdengine-practice.md @@ -14,7 +14,7 @@ TDengine TSDB 是一款 开源、高性能、云原生 的时序数据库(Time Apache HertzBeat™ 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 -> **github: ** +> **github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** ## 安装 HertzBeat @@ -25,13 +25,13 @@ Apache HertzBeat™ 一个拥有强大自定义监控能力,无需Agent的实 2. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` :::note -生产环境建议完整部署方式, 参考: +生产环境建议完整部署方式, 参考:[https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) ::: ## 启用 TDengine 监控 :::tip -TDengine TSDB 集成了多种监控指标收集机制,并通过 taosKeeper 进行汇总,taosKeeper 是 TDengine TSDB 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine TSDB 的运行状态,参考: +TDengine TSDB 集成了多种监控指标收集机制,并通过 taosKeeper 进行汇总,taosKeeper 是 TDengine TSDB 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine TSDB 的运行状态,参考:[https://docs.taosdata.com/reference/components/taoskeeper/](https://docs.taosdata.com/reference/components/taoskeeper/) ::: ## 监控 TDengine(PromQL) @@ -166,6 +166,6 @@ TDengine TSDB 集成了多种监控指标收集机制,并通过 taosKeeper 进 **让监控更简单,期待与您共建生态!** 💝 -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** -**gitee: ** +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-default.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-default.md similarity index 92% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-default.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-default.md index a22a0c2f949..ccb9d32e8b9 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-default.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-default.md @@ -96,9 +96,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md similarity index 92% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md index 202fc7d7a55..ca260b45dab 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md @@ -75,9 +75,9 @@ name: en-US: HertzBeat # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -214,4 +214,4 @@ HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-token.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-token.md similarity index 89% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-token.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-token.md index 58779b975d0..23e33fe0fb9 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-example-token.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-example-token.md @@ -53,9 +53,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -120,9 +120,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -258,9 +258,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -397,4 +397,4 @@ HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-jsonpath.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-jsonpath.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http-jsonpath.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http-jsonpath.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http.md similarity index 93% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http.md index 80bdefa49f2..52ce13bffcf 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-http.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-http.md @@ -44,9 +44,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-jdbc.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-jdbc.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-jdbc.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-jdbc.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-jmx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-jmx.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-jmx.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-jmx.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-ngql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-ngql.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-ngql.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-ngql.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-point.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-point.md similarity index 92% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-point.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-point.md index fc24e7241c4..d80b459b603 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-point.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-point.md @@ -45,9 +45,9 @@ name: en-US: EXAMPLE WEBSITE # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-push.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-push.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-push.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-push.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-snmp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-snmp.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-snmp.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-snmp.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-ssh.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-ssh.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-ssh.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-ssh.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-telnet.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-telnet.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-telnet.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-telnet.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-tutorial.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-tutorial.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-tutorial.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-tutorial.md index d7d771ae741..3d3c1542d9f 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/advanced/extend-tutorial.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/advanced/extend-tutorial.md @@ -79,9 +79,9 @@ name: en-US: HertzBeat Monitor # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/become_committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/become_committer.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/become_committer.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/become_committer.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/become_pmc_member.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/become_pmc_member.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/become_pmc_member.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/become_pmc_member.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/code-style-and-quality-guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/code-style-and-quality-guide.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/code-style-and-quality-guide.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/code-style-and-quality-guide.md index 52c581a1f64..dcd4abf6fe6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/code-style-and-quality-guide.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/code-style-and-quality-guide.md @@ -131,7 +131,7 @@ limitations under the License. 1. 优先为变量命名选择名词,这样更容易区分`变量`或`方法`。 ```java - Cache publicKeyCache; + Cache`` publicKeyCache; ``` 2. 变量的拼音缩写是禁止的(排除地名等名词),例如chengdu。 @@ -212,7 +212,7 @@ limitations under the License. - 被引用的 `package` 或 `resource` 名称不需要提取为常量。 -3. 未被重新分配的变量也必须声明为 final 类型。 +3. 未被重新分配的变量也必须声明为 `` final `` 类型。 4. 关于 `constant/variable` 行的排序顺序 @@ -231,7 +231,7 @@ limitations under the License. 例如,如果参数不能为 null,最好添加一个 `@Nonnull` 注释。如果返回值可以为 null,则应首先添加 `@Nullable` 注释。 - 注意:包名为 javax.validation.requirements + `` 注意:包名为 ``javax.validation.requirements`` `` 3. 如果方法中的代码行数太多,请尝试在适当的点上使用多个子方法来分段方法体。 @@ -247,9 +247,9 @@ limitations under the License. ### 3.4 集合规则 1. 对于返回的 `collection` 值,除非有特殊的 `concurrent` (如线程安全),总是返回 `interface`,例如: - - 如果使用 `ArrayList`,则返回 List - - 如果使用 `HashMap`,则返回 Map - - 如果使用 `HashSet`,则返回 Set + - 如果使用 `ArrayList`,则返回 `` List `` + - 如果使用 `HashMap`,则返回 `` Map `` + - 如果使用 `HashSet`,则返回 `` Set `` 2. 如果存在多线程,可以使用以下声明或返回类型: ```java @@ -278,7 +278,7 @@ limitations under the License. 1. 需要管理 `线程池`,使用统一的入口点获取 `线程池`。 - 注意:在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 + `` 注意:在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 `` 2. `线程池` 需要进行资源约束,以防止因处理不当导致的资源泄露。 @@ -619,7 +619,7 @@ public void process(String input) { ```java // 忽略声明行。 - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); LOG.debug("All users: {}", getAllUserIds(userList)); ``` @@ -629,7 +629,7 @@ public void process(String input) { ```java // 忽略声明行。 - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); if (LOG.isDebugEnabled()) { LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); } @@ -643,8 +643,8 @@ public void process(String input) { ## 参考资料 -- -- -- -- -- +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/contact.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/contact.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/contact.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/contact.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/contribution.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/contribution.md similarity index 98% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/contribution.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/contribution.md index addc9dfc007..1b8e1c31c75 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/contribution.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/contribution.md @@ -89,7 +89,7 @@ limitations under the License. 2. 然后 用 git 命令 将代码下载到本地: ```shell - git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended ``` 3. 下载完成后,请参考目标仓库的入门指南或者 README 文件对项目进行初始化。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/development.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/development.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/development.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/development.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/document.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/document.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/document.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/document.md index ede6c491427..f6395b03d73 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/document.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/document.md @@ -40,8 +40,8 @@ git clone git@github.com:/hertzbeat.git 1. 下载并安装 nodejs (版本 18.8.0) 2. 将代码克隆到本地 `git clone git@github.com:apache/hertzbeat.git` 3. 在`home`目录下运行 `npm install` 来安装所需的依赖库。 -4. 在`home`目录下运行 `npm run start`,您可以访问 查看站点的英文模式预览 -5. 在`home`目录下运行 `npm run start-zh-cn`,您可以访问 查看站点的中文模式预览 +4. 在`home`目录下运行 `npm run start`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的英文模式预览 +5. 在`home`目录下运行 `npm run start-zh-cn`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的中文模式预览 6. 若要生成静态网站资源文件,请运行 `npm run build`。构建的静态资源位于 build 目录中。 ## 文档格式检验 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-release.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-release.md similarity index 80% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-release.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-release.md index c4c98811e01..e4cc647cc80 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-release.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-release.md @@ -49,10 +49,10 @@ What keysize do you want? (3072) 4096 # Please enter 4096 here Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire - = key expires in n days -w = key expires in n weeks -m = key expires in n months -y = key expires in n years +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years Key is valid for? (0) 0 # Please enter 0 Key does not expire at all Is this correct? (y/N) y # Please enter y here @@ -63,7 +63,7 @@ Real name: muchunjin # Please enter 'gpg real name' Email address: muchunjin@apache.org # Please enter your apache email address here Comment: apache key # Please enter some comments here You selected this USER-ID: - "muchunjin (apache key) " + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here We need to generate a lot of random bytes. It is a good idea to perform @@ -79,7 +79,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ # Here you need to re-enter the password in the previous step. @@ -88,7 +88,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ gpg: key ACFB69E705016886 marked as ultimately trusted gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' @@ -96,7 +96,7 @@ public and secret key created and signed. pub rsa4096 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid muchunjin (apache key) +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096 2023-05-01 [E] ``` @@ -110,7 +110,7 @@ $ gpg --keyid-format SHORT --list-keys ------------------------ pub rsa4096/05016886 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid [ultimate] muchunjin (apache key) +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096/0C5A4E1C 2023-05-01 [E] # Send public key to keyserver via key id @@ -124,17 +124,17 @@ $ gpg --keyserver keyserver.ubuntu.com --send-key 05016886 ```shell $ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success -gpg: key ACFB69E705016886: "muchunjin (apache key) " not changed +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed gpg: Total number processed: 1 gpg: unchanged: 1 ``` -或者进入 网址,输入密钥的名称,然后点击'Search key' 按钮,查看是否有对应名称的密钥。 +或者进入 [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) 网址,输入密钥的名称,然后点击'Search key' 按钮,查看是否有对应名称的密钥。 #### 2.4 将 gpg 公钥添加到 Apache SVN 项目仓库的 KEYS 文件中 -- Apache HertzBeat Dev 分支 -- Apache HertzBeat Release 分支 +- Apache HertzBeat Dev 分支 [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat Release 分支 [https://dist.apache.org/repos/dist/release/incubator/hertzbeat](https://dist.apache.org/repos/dist/release/incubator/hertzbeat) ##### 2.4.1 将公钥添加到dev分支的KEYS @@ -170,7 +170,7 @@ $ svn ci -m "add gpg key for muchunjin" ### 准备发布物料 -#### 3.1 基于 master 分支,创建一个名为 release-${release_version}-rcx 的分支,例如 release-1.6.0-rc1。并基于 release-1.6.0-rc1 分支创建一个名为 v1.6.0-rc1 的标签,并将此标签设置为预发布 +#### 3.1 基于 master 分支,创建一个名为 release-`release_version`-rcx 的分支,例如 release-1.6.0-rc1。并基于 release-1.6.0-rc1 分支创建一个名为 v1.6.0-rc1 的标签,并将此标签设置为预发布 ```shell git checkout master @@ -279,15 +279,15 @@ $ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done apache-hertzbeat-1.6.0-incubating-src.tar.gz gpg: Signature made Tue May 2 12:16:35 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-1.6.0-incubating-bin.tar.gz gpg: Signature made Tue May 2 12:16:36 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat-collector-1.6.0-incubating-bin.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: BAD signature from "muchunjin (apache key) " [ultimate] +gpg: BAD signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] # 验证 SHA512 $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done @@ -315,7 +315,7 @@ svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat - 复制物料包到 SVN 仓库 -创建一个版本号目录,并以${release_version}-${RC_version}的形式命名。RC_version从1开始,即候选版本从RC1开始。在发布过程中,如果出现导致投票失败的问题,需要进行修正,那么RC版本需要迭代,RC版本号需要+1。例如:为版本1.6.0-RC1投票。如果投票顺利通过,那么RC1版本的资料将作为最终版本的资料发布。如果出现问题(当hertzbeat/incubator社区进行投票时,投票者会严格检查各种发布要求和合规问题)并需要纠正,那么修正后重新启动投票,下一次的候选版本为1.6.0-RC2。 +创建一个版本号目录,并以`release_version`-`RC_version`的形式命名。RC_version从1开始,即候选版本从RC1开始。在发布过程中,如果出现导致投票失败的问题,需要进行修正,那么RC版本需要迭代,RC版本号需要+1。例如:为版本1.6.0-RC1投票。如果投票顺利通过,那么RC1版本的资料将作为最终版本的资料发布。如果出现问题(当hertzbeat/incubator社区进行投票时,投票者会严格检查各种发布要求和合规问题)并需要纠正,那么修正后重新启动投票,下一次的候选版本为1.6.0-RC2。 ```shell mkdir -p svn/dev/1.6.0-RC1 @@ -341,7 +341,7 @@ svn commit -m "release for HertzBeat 1.6.0-RC1" - 检查 Apache SVN 提交结果 -> 在浏览器中访问 , 检查是否有新的版本内容 +> 在浏览器中访问 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) , 检查是否有新的版本内容 ## 4. 进入社区投票阶段 @@ -349,7 +349,7 @@ svn commit -m "release for HertzBeat 1.6.0-RC1" 发送社区投票邮件需要至少三个`+1`,且无`-1`。 -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat 1.6.0 rc1
> `Body`: @@ -405,7 +405,7 @@ Thanks! 在72小时后,将统计投票结果,并发送投票结果邮件,如下所示。 -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -434,14 +434,14 @@ Best, ChunJin Mu ``` -邮件内容中的一项是`Vote thread`,在 查看获取 +邮件内容中的一项是`Vote thread`,在 [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) 查看获取 ### 3.2 发送孵化社区投票邮件 发送孵化社区投票邮件需要至少三个`+1`,且无`-1`。 -> `Send to`:
-> `cc`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)、[private@hertzbeat.apache.org](mailto:private@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -495,7 +495,7 @@ ChunJin Mu 如果72小时后没有-1,回复邮件如下 -> `Send to`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
> `Body`: ```text @@ -507,7 +507,7 @@ Chunjin Mu 然后将统计投票结果,并发送投票结果邮件,如下所示。 -> `Send to`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -533,7 +533,7 @@ Best, ChunJin Mu ``` -邮件内容中的一项是`Vote thread`,在 查看获取 +邮件内容中的一项是`Vote thread`,在 [https://lists.apache.org/list.html?general@incubator.apache.org](https://lists.apache.org/list.html?general@incubator.apache.org) 查看获取 等待一天,查看看导师是否有其他意见,如果没有,发送以下公告邮件 @@ -547,10 +547,10 @@ svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.6.0-RC1 https://dist.a ### 4.2 添加新版本下载地址到官网 - - +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) -完成后打开官网地址 查看是否有新版本的下载 +完成后打开官网地址 [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) 查看是否有新版本的下载 > 需要注意的是,下载链接可能需要一个小时后才会生效,请注意。 @@ -583,8 +583,8 @@ release note: xxx ### 4.4 发送新版本公告邮件 -> `Send to`:
-> `cc`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [ANNOUNCE] Apache HertzBeat 1.6.0 released
> `Body`: diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-verify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-verify.md similarity index 76% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-verify.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-verify.md index 02241da1ce8..f7b0e474172 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/how-to-verify.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/how-to-verify.md @@ -8,7 +8,7 @@ sidebar_position: 4 详细检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) -在浏览器中可访问版本内容 +在浏览器中可访问版本内容 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) ### 1. 下载候选版本到本地 @@ -16,9 +16,9 @@ sidebar_position: 4 ```shell #如果本地有svn,可以clone到本地 -svn co https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/ +svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ #或者 直接下载物料文件 -wget https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/xxx.xxx +wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx ``` @@ -119,17 +119,17 @@ tar -xzvf apache-hertzbeat-${release.version}-incubating-bin.tar.gz - [ ] 如果依赖的是Apache许可证并且存在`NOTICE`文件,那么这些`NOTICE`文件也需要加入到版本的`NOTICE`文件中 - [ ] ..... -参考: +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) #### 2.5. 源码编译验证 -解压缩 `apache-hertzbeat-${release_version}-incubating-src.tar.gz` +解压缩 `apache-hertzbeat-`release_version`-incubating-src.tar.gz` ```shell -cd apache-hertzbeat-${release_version}-incubating-src +cd apache-hertzbeat-`release_version`-incubating-src ``` -编译源码: +编译源码: [https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) 进行如下检查: @@ -141,7 +141,7 @@ cd apache-hertzbeat-${release_version}-incubating-src - [ ] 能够正确编译 - [ ] ..... -参考: +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) ### 3. 邮件回复 @@ -150,13 +150,13 @@ cd apache-hertzbeat-${release_version}-incubating-src :::caution 注意 回复的邮件一定要带上自己检查了那些项信息,仅仅回复`+1 approve`,是无效的。 -PPMC 在 HertzBeat 的社区投票时,请带上 binding 后缀,表示对 HertzBeat 社区中的投票具有约束性投票,方便统计投票结果。 +PPMC 在 [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) HertzBeat 的社区投票时,请带上 binding 后缀,表示对 HertzBeat 社区中的投票具有约束性投票,方便统计投票结果。 -IPMC 在 incubator 社区投票,请带上 binding 后缀,表示对 incubator 社区中的投票具有约束性投票,方便统计投票结果。 +IPMC 在 [general@incubator.apache.org](mailto:general@incubator.apache.org) incubator 社区投票,请带上 binding 后缀,表示对 incubator 社区中的投票具有约束性投票,方便统计投票结果。 ::: :::caution 注意 -如果在已经投过票,在incubator社区进行投票回复时,可以直接带过去,需要注意约束性 如: +如果在[dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)已经投过票,在incubator社区进行投票回复时,可以直接带过去,需要注意约束性 如: ```html //incubator社区 投票时,只有IPMC成员才具有约束性 binding,PPMC需要注意约束性的变化 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/mailing_lists.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/mailing_lists.md similarity index 75% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/mailing_lists.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/mailing_lists.md index 64d938005fd..0a2801753b2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/mailing_lists.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/mailing_lists.md @@ -34,7 +34,7 @@ limitations under the License. | 列表名称 | 地址 | 订阅 | 退订 | 归档 | |-----------|--------------------------|-------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------| -| **开发者列表** | | [订阅](mailto:dev-subscribe@hertzbeat.apache.org) | [退订](mailto:dev-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | +| **开发者列表** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [订阅](mailto:dev-subscribe@hertzbeat.apache.org) | [退订](mailto:dev-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | ### 通知列表 @@ -42,16 +42,16 @@ limitations under the License. | 列表名称 | 地址 | 订阅 | 退订 | 归档 | |----------|------------------------------------|-----------------------------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------| -| **通知列表** | | [订阅](mailto:notifications-subscribe@hertzbeat.apache.org) | [退订](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | +| **通知列表** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [订阅](mailto:notifications-subscribe@hertzbeat.apache.org) | [退订](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | ## 订阅步骤 发送订阅邮件即可订阅。步骤如下: - 1、**订阅**:点击上表中的 **订阅** 按钮,它将重定向到您的邮件客户端。主题和内容是任意的。 - 之后,您会从 收到确认邮件(如果没有收到,请确认电子邮件是否被自动分类为垃圾邮件、推广邮件、订阅邮件等)。 + 之后,您会从 [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) 收到确认邮件(如果没有收到,请确认电子邮件是否被自动分类为垃圾邮件、推广邮件、订阅邮件等)。 - 2、**确认**:直接回复确认邮件,或点击邮件中的链接快速回复。主题和内容是任意的。 -- 3、**欢迎**:在完成上述步骤后,您会收到一个主题为 WELCOME to 的欢迎邮件,您已成功订阅 Apache HertzBeat 邮件列表。 +- 3、**欢迎**:在完成上述步骤后,您会收到一个主题为 WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) 的欢迎邮件,您已成功订阅 Apache HertzBeat 邮件列表。 ## 发送纯文本邮件 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/new_committer_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_committer_process.md similarity index 90% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/new_committer_process.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_committer_process.md index a4b0f9ea417..d23d3dbb0b6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/new_committer_process.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_committer_process.md @@ -69,17 +69,17 @@ NEW_COMMITTER_NAME 这须是真实名字,而非 Github 名称或 Id ```text To: private@hertzbeat.apache.org -Subject: [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hi HertzBeat PPMC, -This is a formal vote about inviting ${NEW_COMMITTER_NAME} as our community new committer. +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. Work list: https://github.com/apache/hertzbeat/commits?author=xxx -Here is the list of ${NEW_COMMITTER_NAME}'s contributions in HertzBeat Community: +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: > [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) > @@ -96,7 +96,7 @@ Submitted Issues (18 commits) Please vote: -+1: I support this proposal and will welcome ${NEW_COMMITTER_NAME} as a committer. ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. +0: I don't care. -1: I object to this proposal and here are my reasons. @@ -114,7 +114,7 @@ ttt ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text @@ -134,31 +134,31 @@ The vote is ***successful/not successful*** ### Committer邀请模板 ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org -Subject: Invitation to become HertzBeat committer: ${NEW_COMMITTER_NAME} +Subject: Invitation to become HertzBeat committer: `NEW_COMMITTER_NAME` ``` ```text -Hello ${NEW_COMMITTER_NAME}, +Hello `NEW_COMMITTER_NAME`, -The HertzBeat Project Management Committee (PMC) +The HertzBeat Project Management Committee (PMC) hereby offers you committer privileges to the project. These privileges are offered on the understanding that you'll use them reasonably and with common sense. -We like to work on trust rather than unnecessary constraints. +We like to work on trust rather than unnecessary constraints. -Being a committer enables you to more easily make -changes without needing to go through the patch +Being a committer enables you to more easily make +changes without needing to go through the patch submission process. -Being a committer does not require you to -participate any more than you already do. It does -tend to make one even more committed. You will +Being a committer does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will probably find that you spend more time here. -Of course, you can decline and instead remain as a +Of course, you can decline and instead remain as a contributor, participating as you do now. This personal invitation is a chance for you to accept or decline in private. @@ -213,7 +213,7 @@ establishing you as a committer. ### Committer接受模板 ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org Subject: Re: invitation to become HertzBeat committer ``` @@ -232,10 +232,10 @@ You need to choose a preferred ASF user name and alternatives. In order to ensure it is available you can view a list of taken IDs at https://people.apache.org/committer-index.html -Please notify us when you have submitted the CLA and by what means +Please notify us when you have submitted the CLA and by what means you did so. This will enable us to monitor its progress. -We will arrange for your Apache user account when the CLA has +We will arrange for your Apache user account when the CLA has been recorded. After that is done, please make followup replies to the dev@hertzbeat.apache.org list. @@ -263,18 +263,18 @@ The Apache HertzBeat PPMC ### Announce New Committer Template ```text -To: dev@hertzbeat.apache.org, ${NEW_COMMITTER_EMAIL} -Subject: [ANNOUNCE] New committer: ${NEW_COMMITTER_NAME} +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hello Community, The Podling Project Management Committee (PPMC) for Apache HertzBeat -has invited ${NEW_COMMITTER_NAME} to become a committer and we are pleased to +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to announce that he has accepted. -${NEW_COMMITTER_NAME} is active in the Apache HertzBeat community, hope to see your +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your further interactions with the community! Thanks for your contributions. @@ -402,7 +402,7 @@ hi, i accept. Thanks for invitaion. **发送模板** - 主题:`Accept to become a Hertzbeat(incubating) committer` + 主题:`Accept to become a Hertzbeat committer` 正文: @@ -428,9 +428,9 @@ hi, i accept. Thanks for invitaion. ### 将Apache账号和GitHub账号关联 -访问: +访问: [https://whimsy.apache.org/roster/committer/`APACHE_ID`](https://whimsy.apache.org/roster/committer/`APACHE_ID`) -- `${APACHE_ID}`替换成你的Apache ID +- ``APACHE_ID``替换成你的Apache ID 登录后可以看到这个内容`Link GitHub username to ASF id`,点击跳转 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_pmc_member_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_pmc_member_process.md new file mode 100644 index 00000000000..d81d902b634 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/new_pmc_member_process.md @@ -0,0 +1,285 @@ +--- +id: 'new_pmc_ember_process' +title: '提名新PMC成员流程' +sidebar_position: 5 +--- + + + +这个指南是基于 [apache newcommitter](https://community.apache.org/newcommitter.html#new-committer-process) 的。 + +## 新PMC成员的流程 + +- 在邮件`private@hertzbeat.apache.org`中进行投票 + + 参见 **PMC成员投票模板** + +- 关闭投票 + + 参见 **关闭投票模板** + +- 董事会批准新的PMC成员 + + 参见 **董事会批准新PMC成员** + +- 如果结果是赞成,邀请新的PMC成员 + + 参见 **PMC成员邀请模板** + +- 如果同意,那么:接受PMC成员 + + 参见 **PMC成员接受模板** + +- 通知PMC成员完成 + + 参见 **PMC成员完成模板** + +- 宣布新的PMC成员 + + 参见 **PMC成员公告模板** + +## 模板 + +注意,在使用模板之前,有三个占位符需要被替换 + +- NEW_PMC_NAME +- NEW_PMC_EMAIL +- NEW_PMC_APACHE_NAME + +### PMC成员投票模板 + +```text +To: private@hertzbeat.apache.org +Subject: [VOTE] New PPMC member candidate: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat PPMC, + +This is a formal vote about inviting `NEW_PMC_NAME` as our new PPMC member. + +${Work list}[1] + +[1] https://github.com/apache/hertzbeat/commits?author=`NEW_PMC_NAME` +``` + +注意,投票将在今天一周后结束,即 +[midnight UTC on YYYY-MM-DD](https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD) +[Apache 参考投票指南](https://community.apache.org/newcommitter.html) + +### Close Vote Template + +```text +To: private@hertzbeat.apache.org +Subject: [RESULT] [VOTE] New PPMC member: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat PPMC, + +The vote has now closed. The results are: + +Binding Votes: + ++1 [TOTAL BINDING +1 VOTES] + 0 [TOTAL BINDING +0/-0 VOTES] +-1 [TOTAL BINDING -1 VOTES] + +The vote is ***successful/not successful*** +``` + +### Board Approval of new PPMC member Template + +```text +To: board@apache.org +Cc: private@``.apache.org +Subject: [NOTICE] `NEW_PMC_NAME` for HertzBeat PPMC member +``` + +```text +HertzBeat proposes to invite `NEW_PMC_NAME` to join the PMC. + +The vote result is available here: https://lists.apache.org/... +``` + +[Apache New Pmc Guide](https://www.apache.org/dev/pmc.html#newpmc) + +### PMC成员邀请模板 + +```text +To: `NEW_PMC_EMAIL` +Cc: private@hertzbeat.apache.org +Subject: Invitation to become HertzBeat PPMC member: `NEW_PMC_NAME` +``` + +```text +Hello `NEW_PMC_NAME`, + +The HertzBeat Project Management Committee (PMC) +hereby offers you committer privileges to the project +as well as membership in the PMC. +These privileges are offered on the understanding that +you'll use them reasonably and with common sense. +We like to work on trust rather than unnecessary constraints. + +Being a PPMC member enables you to guide the direction of the project. + +Being a PPMC member does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will +probably find that you spend more time here. + +Of course, you can decline and instead remain as a +contributor, participating as you do now. + +A. This personal invitation is a chance for you to +accept or decline in private. Either way, please +let us know in reply to the private@hertzbeat.apache.org +address only. + +B. If you accept, the next step is to register an iCLA: + 1. Details of the iCLA and the forms are found + through this link: https://www.apache.org/licenses/#clas + + 2. Instructions for its completion and return to + the Secretary of the ASF are found at + https://www.apache.org/licenses/#submitting + + 3. When you transmit the completed iCLA, request + to notify the Apache HertzBeat and choose a + unique Apache ID. Look to see if your preferred + ID is already taken at + https://people.apache.org/committer-index.html + This will allow the Secretary to notify the PPMC + when your iCLA has been recorded. + +When recording of your iCLA is noted, you will +receive a follow-up message with the next steps for +establishing you as a PPMC member. +``` + +### PMC成员接受模板 + +```text +To: `NEW_PMC_EMAIL` +Cc: private@hertzbeatv.apache.org +Subject: Re: invitation to become HertzBeat PPMC member +``` + +```text +Welcome. Here are the next steps in becoming a project PMC. After that +we will make an announcement to the dev@hertzbeat.apache.org list. + +You need to send a Contributor License Agreement to the ASF. +Normally you would send an Individual CLA. If you also make +contributions done in work time or using work resources, +see the Corporate CLA. Ask us if you have any issues. +https://www.apache.org/licenses/#clas. + +You need to choose a preferred ASF user name and alternatives. +In order to ensure it is available you can view a list of taken IDs at +https://people.apache.org/committer-index.html + +Please notify us when you have submitted the CLA and by what means +you did so. This will enable us to monitor its progress. + +We will arrange for your Apache user account when the CLA has +been recorded. + +After that is done, please make followup replies to the dev@hertzbeat.apache.org list. +We generally discuss everything there and keep the +private@hertzbeat.apache.org list for occasional matters which must be private. + +The developer section of the website describes roles within the ASF and provides other +resources: + https://www.apache.org/foundation/how-it-works.html + https://www.apache.org/dev/ + +The incubator also has some useful information for new PMC +in incubating projects: + https://incubator.apache.org/guides/committer.html + https://incubator.apache.org/guides/ppmc.html + +Just as before you became a PPMC member, participation in any ASF community +requires adherence to the ASF Code of Conduct: + https://www.apache.org/foundation/policies/conduct.html + +Yours, +The Apache HertzBeat PPMC +``` + +### PMC成员完成模板 + +```text +To: private@hertzbeat.apache.org, `NEW_PMC_EMAIL` +Subject: account request: `NEW_PMC_NAME` +``` + +```text +`NEW_PMC_EMAIL`, as you know, the ASF Infrastructure has set up your +committer account with the username '`NEW_PMC_APACHE_NAME`'. + +Please follow the instructions to set up your SSH, +svn password, svn configuration, email forwarding, etc. +https://www.apache.org/dev/#committers + +You have commit access to specific sections of the +ASF repository, as follows: + +The general "committers" at: + https://svn.apache.org/repos/private/committers + +If you have any questions during this phase, then please +see the following resources: + +Apache developer's pages: https://www.apache.org/dev/ +Incubator committer guide: https://incubator.apache.org/guides/committer.html + +Naturally, if you don't understand anything be sure to ask us on the dev@hertzbeat.apache.org mailing list. +Documentation is maintained by volunteers and hence can be out-of-date and incomplete - of course +you can now help fix that. + +A PPMC member will announce your election to the dev list soon. +``` + +### PMC成员通知模板 + +```text +To: dev@hertzbeat.apache.org +[ANNONCE] New PPMC member: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat Community, + +The Podling Project Management Committee (PPMC) for Apache HertzBeat +has invited `NEW_PMC_NAME` to become our PPMC member and +we are pleased to announce that he has accepted. + +### add specific details here ### + +Please join me in congratulating `NEW_PMC_NAME`! + +Being a committer enables easier contribution to the +project since there is no need to go via the patch +submission process. This should enable better productivity. +A PPMC member helps manage and guide the direction of the project. + +Thanks, +On behalf of the Apache HertzBeat PPMC +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/submit-code.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/submit-code.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/submit-code.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/submit-code.md index 7ad649e09d1..ab649c94eaf 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/submit-code.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/community/submit-code.md @@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -* 首先从远程仓库 将代码的一份副本 fork 到您自己的仓库 +* 首先从远程仓库 [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) 将代码的一份副本 fork 到您自己的仓库 * 远程仓库开发合并分支:`master` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/download.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/download.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/download.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/download.md index bbde04adc30..590961ff465 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/download.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/download.md @@ -30,8 +30,8 @@ sidebar_label: Download > Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 [Docker Hub](https://hub.docker.com/r/apache/hertzbeat) 拉取使用. -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) ## 归档版本 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/activemq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/activemq.md new file mode 100644 index 00000000000..25ab02b1e49 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/activemq.md @@ -0,0 +1,145 @@ +--- +id: activemq +title: 监控 Apache ActiveMQ 消息中间件 +sidebar_label: ActiveMQ消息中间件 +keywords: [开源监控系统, 开源中间件监控, ActiveMQ消息中间件监控] +--- + +> 对 Apache ActiveMQ 消息中间件的运行状态,节点,Topic等相关指标进行监测。 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 ActiveMQ 开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 ActiveMQ 进行指标采集。 + +1. 修改安装目录下的 `conf/activemq.xml` 文件,开启JMX + + > 在 `broker` 标签中添加 `userJmx="true"` 属性 + + ```xml + + + + ``` + +2. 修改安装目录下的 `bin/env` 文件,配置JMX 端口 IP等 + + 将如下原配置信息 + + ```text + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" + ``` + + 更新为如下配置,⚠️注意修改`本机对外IP` + + ```text + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.authenticate=false" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=本机对外IP" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" + ``` + +3. 重启 ACTIVEMQ 服务,在 HertzBeat 添加对应 ActiveMQ 监控即可,参数使用 JMX 配置的 IP 端口。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| JMX端口 | JMX 对外提供的HTTP端口,默认为 11099。 | +| JMX URL | 可选,自定义 JMX URL 连接 | +| 用户名 | 认证时使用的用户名 | +| 密码 | 认证时使用的密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:broker + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------------------------------------------------------------------| +| BrokerName | 无 | The name of the broker. | +| BrokerVersion | 无 | The version of the broker. | +| Uptime | 无 | Uptime of the broker. | +| UptimeMillis | ms | Uptime of the broker in milliseconds. | +| Persistent | 无 | Messages are synchronized to disk. | +| MemoryPercentUsage | % | Percent of memory limit used. | +| StorePercentUsage | % | Percent of store limit used. | +| TempPercentUsage | % | Percent of temp limit used. | +| CurrentConnectionsCount | 无 | Attribute exposed for management | +| TotalConnectionsCount | 无 | Attribute exposed for management | +| TotalEnqueueCount | 无 | Number of messages that have been sent to the broker. | +| TotalDequeueCount | 无 | Number of messages that have been acknowledged on the broker. | +| TotalConsumerCount | 无 | Number of message consumers subscribed to destinations on the broker. | +| TotalProducerCount | 无 | Number of message producers active on destinations on the broker. | +| TotalMessageCount | 无 | Number of unacknowledged messages on the broker. | +| AverageMessageSize | 无 | Average message size on this broker | +| MaxMessageSize | 无 | Max message size on this broker | +| MinMessageSize | 无 | Min message size on this broker | + +#### 指标集合:topic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|-------------------------------------------------------------------------------------------| +| Name | 无 | Name of this destination. | +| MemoryLimit | MB | Memory limit, in bytes, used by undelivered messages before paging to temporary storage. | +| MemoryPercentUsage | 无 | The percentage of the memory limit used | +| ProducerCount | 无 | Number of producers attached to this destination | +| ConsumerCount | 无 | Number of consumers subscribed to this destination. | +| EnqueueCount | 无 | Number of messages that have been sent to the destination. | +| DequeueCount | 无 | Number of messages that has been acknowledged (and removed) from the destination. | +| ForwardCount | 无 | Number of messages that have been forwarded (to a networked broker) from the destination. | +| InFlightCount | 无 | Number of messages that have been dispatched to, but not acknowledged by, consumers. | +| DispatchCount | 无 | Number of messages that has been delivered to consumers, including those not acknowledged | +| ExpiredCount | 无 | Number of messages that have been expired. | +| StoreMessageSize | B | The memory size of all messages in this destination's store. | +| AverageEnqueueTime | ms | Average time a message was held on this destination. | +| MaxEnqueueTime | ms | The longest time a message was held on this destination | +| MinEnqueueTime | ms | The shortest time a message was held on this destination | +| TotalBlockedTime | ms | Total time (ms) messages have been blocked by flow control | +| AverageMessageSize | B | Average message size on this destination | +| MaxMessageSize | B | Max message size on this destination | +| MinMessageSize | B | Min message size on this destination | + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------| +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ai_config.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ai_config.md similarity index 78% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ai_config.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ai_config.md index d79888149e9..359a74dbbfd 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ai_config.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ai_config.md @@ -23,15 +23,15 @@ keywords: [人工智能 AI] |---------|-----------------------------------------------------|-----------------------------------------------------------------| | type | zhiPu(必须和示例完全相同) | 无 | | model | glm-4-0520、glm-4 、glm-4-air、glm-4-airx、 glm-4-flash | 无 | -| api-key | xxxxx.xxxxxx | | +| api-key | xxxxx.xxxxxx | [https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys](https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys) | #### 阿里巴巴AI | 参数名称 | 示例 | 链接 | |---------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| | type | alibabaAi(必须和示例完全相同) | 无 | -| model | qwen-turbo、qwen-plus、qwen-max、qwen-max-0428、qwen-max-0403、qwen-max-0107、qwen-max-longcontext | | -| api-key | xxxxxxxxxxx | | +| model | qwen-turbo、qwen-plus、qwen-max、qwen-max-0428、qwen-max-0403、qwen-max-0107、qwen-max-longcontext | [https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH) | +| api-key | xxxxxxxxxxx | [https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10](https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10) | #### 月之暗面AI @@ -39,18 +39,18 @@ keywords: [人工智能 AI] |---------|-------------------------------------------------|-----------------------------------------------| | type | kimiAi(必须和示例完全相同) | 无 | | model | moonshot-v1-8k、moonshot-v1-32k、moonshot-v1-128k | 无 | -| api-key | xxxxxxxxxxx | | +| api-key | xxxxxxxxxxx | [https://platform.moonshot.cn/console/api-keys](https://platform.moonshot.cn/console/api-keys) | #### 科大讯飞AI -快速入门: +快速入门:[https://www.xfyun.cn/doc/platform/quickguide.html](https://www.xfyun.cn/doc/platform/quickguide.html) | 参数名称 | 示例 | 链接 | |------------|--------------------------------------------------|---------------------------------------| | type | sparkDesk (must be exactly the same as example) | | | model | general、generalv2、generalv3、generalv3.5、4.0Ultra | | -| api-key | xxxxxxxxxxx | | -| api-secret | xxxxxxxxxxx | | +| api-key | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | +| api-secret | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | | 模型版本 | 模型类型(application.yml的model参数) | |-----------------|-------------------------------| diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/airflow.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/airflow.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/airflow.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/airflow.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alarm_center.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alarm_center.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alarm_center.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alarm_center.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_console.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_console.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_console.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_console.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_dingtalk.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_dingtalk.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_dingtalk.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_dingtalk.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_discord.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_discord.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_discord.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_discord.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_email.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_email.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_email.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_email.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_enterprise_wechat_app.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_enterprise_wechat_app.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_enterprise_wechat_app.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_enterprise_wechat_app.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_feishu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_feishu.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_feishu.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_feishu.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_slack.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_slack.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_slack.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_slack.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_smn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_smn.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_smn.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_smn.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_sms.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_sms.md similarity index 99% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_sms.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_sms.md index 28267829a60..7477eeaedd1 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_sms.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_sms.md @@ -83,7 +83,7 @@ alerter: - 创建如下格式的模板: ```text - 监控项:${instance},告警级别:${priority}。内容:${content} + 监控项:`instance`,告警级别:`priority`。内容:`content` ``` - 提交模板等待审核 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_telegram.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_telegram.md new file mode 100644 index 00000000000..41bf3bc9b56 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_telegram.md @@ -0,0 +1,67 @@ +--- +id: alert_telegram +title: 告警 Telegram 机器人通知 +sidebar_label: 告警 Telegram 机器人通知 +keywords: [告警 Telegram 通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Telegram 机器人通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Telegram 创建机器人, 获取 Bot Token 和 UserId + +1. 使用 [@BotFather](https://t.me/BotFather) 创建自己的机器人并获取访问令牌`Token` + + ![telegram-bot](/img/docs/help/telegram-bot-1.png) + +2. 获取接收人的 `User ID` + + **使用您要通知的接收人账户给刚创建 Bot 账户随便发送一个信息**, + 访问 ```https://api.telegram.org/bot``/getUpdates``` , **`使用上一步的 Bot Token 替换其中的`**, 响应`Json`数据中第一个`result.message.from.id` 值即为接收人的 `User ID` + + ```json + { + "ok":true, + "result":[ + { + "update_id":632299191, + "message":{ + "from":{ + "id": "User ID" + }, + "chat":{ + }, + "date":1673858065, + "text":"111" + } + } + ] + } + ``` + +3. 记录保存我们获得的 `Token` 和 `User Id` + +### 在 HertzBeat 新增告警通知人,通知方式为 Telegram Bot + +1. **【告警通知】->【新增接收人】 ->【选择 Telegram 机器人通知方式】->【设置机器人Token和UserId】-> 【确定】** + + ![email](/img/docs/help/telegram-bot-2.png) + +2. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-policy.png) + +### Telegram 机器人通知常见问题 + +1. Telegram 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人Token, UserId,是否已配置告警策略关联 +> UserId 应为消息接收对象的UserId + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold.md similarity index 90% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold.md index b2880bd32ff..26db47db07b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold.md @@ -5,8 +5,8 @@ sidebar_label: 阈值规则 --- :::tip -告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 -阈值规则支持实时阈值和计划阈值,实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL 等表达式在指定时间段内计算触发告警。 +告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 +阈值规则支持实时阈值和计划阈值,实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL 等表达式在指定时间段内计算触发告警。 支持可视化页面配置或更高灵活性的表达式规则配置,支持配置触发次数,告警级别,通知模板,关联指定监控等。 ::: @@ -32,7 +32,7 @@ sidebar_label: 阈值规则 - **关联监控**:应用此阈值规则到指定的监控对象(支持直接绑定和标签关联),若未配置,则应用到所有符合此阈值类型规则的监控对象上。 - **告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency - **触发次数**:设置触发阈值多少次之后才会真正的触发告警 -- **通知模板**:告警触发后发送的通知信息模板,模板环境变量见页面提示,例如:`${__instancename__} ${__metric__} 指标的值为 ${responseTime},大于 50 触发告警` +- **通知模板**:告警触发后发送的通知信息模板,模板环境变量见页面提示,例如:`__instancename__` `__metric__` 指标的值为 `responseTime`,大于 50 触发告警` - **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上。 - **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上。 - **启用告警**:此告警阈值配置开启生效或关闭 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold_expr.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold_expr.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold_expr.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold_expr.md index e326a2a7400..7ca4009a472 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_threshold_expr.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_threshold_expr.md @@ -19,9 +19,9 @@ sidebar_label: 阈值触发表达式 | 存在值 | exists(obj) | 字符型、数值型、时间型 | 判断字符是否有值存在 | | | 不存在值 | !exists(obj) | 字符型 、数值型、时间型 | 判断字符是否有值存在 | | | > | obj1 > obj2 | 数值型、时间型 | 判断数值是否大于 | | -| < | obj1 < obj2 | 数值型、时间型 | 判断数值是否小于 | | +| `<` | `obj1 < obj2` | 数值型、时间型 | 判断数值是否小于 | | | >= | obj1 >= obj2 | 数值型、时间型 | 判断数值是否大于等于 | | -| <= | obj1 <= obj2 | 数值型、时间型 | 判断数值是否小于等于 | | +| `<=` | `obj1 <= obj2` | 数值型、时间型 | 判断数值是否小于等于 | | | != | obj1 != obj2 | 数值型、时间型 | 判断数值是否不相等 | | | == | obj1 == obj2 | 数值型、时间型 | 判断数值是否相等 | | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_webhook.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_webhook.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_webhook.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_webhook.md index e07a3e61cce..bb487d788dd 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_webhook.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_webhook.md @@ -26,7 +26,7 @@ keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警 ```json { "alarmId": 76456, - "target": "${target}", + "target": "`target`", "thresholdId": 33455, "priority": 0, "content": "udp_port monitoring availability alert, code is FAIL", @@ -54,7 +54,7 @@ keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警 | status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | | times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | | triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | -| tags | example: {key1:value1} | +| tags | example: `{key1:value1}` | ### webhook通知常见问题 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_wework.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_wework.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_wework.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/alert_wework.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/almalinux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/almalinux.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/almalinux.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/almalinux.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/api.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/api.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/api.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/api.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/bulletin.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/bulletin.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/bulletin.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/bulletin.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/centos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/centos.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/centos.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/centos.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/clickhouse.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/clickhouse.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/clickhouse.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/clickhouse.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/debian.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/debian.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/debian.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/debian.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/deepseek.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/deepseek.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/deepseek.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/deepseek.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dm.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dm.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dm.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dns.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dns.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dns.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dns.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/docker.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/docker.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/docker.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/docker.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/doris_be.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/doris_be.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/doris_be.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/doris_be.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/doris_fe.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/doris_fe.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/doris_fe.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/doris_fe.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dynamic_tp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dynamic_tp.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/dynamic_tp.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/dynamic_tp.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/elasticsearch.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/elasticsearch.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/elasticsearch.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/elasticsearch.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/euleros.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/euleros.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/euleros.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/euleros.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/flink.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/flink.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/flink.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/flink.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/flink_on_yarn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/flink_on_yarn.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/flink_on_yarn.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/flink_on_yarn.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/freebsd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/freebsd.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/freebsd.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/freebsd.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ftp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ftp.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ftp.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ftp.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/fullsite.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/fullsite.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/fullsite.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/fullsite.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/grafana_dashboard.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/grafana_dashboard.md similarity index 74% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/grafana_dashboard.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/grafana_dashboard.md index 6126f0db950..b085d7dcce1 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/grafana_dashboard.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/grafana_dashboard.md @@ -19,7 +19,7 @@ keywords: [Grafana, 历史图表] ### 启用Grafana 可嵌入功能, 并开启匿名访问 -参考: +参考: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/) 修改配置文件`grafana.ini`中的`allow_embedding = true` 修改配置文件`grafana.ini`中的`[auth.anonymous]` 为 `true` @@ -45,8 +45,8 @@ grafana: ### 在HertzBeat监控中上传Grafana监控模板json文件 在`HertzBeat`新建或编辑`Prometheus`类型监控时,点击启用Grafana模板,选择Grafana模板json文件上传。 -监控模板json文件可以在 下载。 -比如,在`HertzBeat`中新建一个关于`VictoriaMetrics`单节点的监控,然后打开 ,点击右侧 `Download JSON`按钮,下载模板json文件。在`HertzBeat`监控中上传模板json文件,保存。 +监控模板json文件可以在 [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/) 下载。 +比如,在`HertzBeat`中新建一个关于`VictoriaMetrics`单节点的监控,然后打开 [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/) ,点击右侧 `Download JSON`按钮,下载模板json文件。在`HertzBeat`监控中上传模板json文件,保存。 ![grafana-1.png](/img/docs/help/grafana-1.png) ### 查看Grafana历史图表 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/greenplum.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/greenplum.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/greenplum.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/greenplum.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/guide.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/guide.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/guide.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hadoop.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hadoop.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hadoop.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hadoop.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hbase_master.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hbase_master.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hbase_master.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hbase_master.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hbase_regionserver.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hbase_regionserver.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hbase_regionserver.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hbase_regionserver.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hdfs_datanode.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hdfs_datanode.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hdfs_datanode.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hdfs_datanode.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hdfs_namenode.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hdfs_namenode.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hdfs_namenode.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hdfs_namenode.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hive.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hive.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hive.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hive.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/huawei_switch.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/huawei_switch.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/huawei_switch.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/huawei_switch.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hugegraph.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hugegraph.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/hugegraph.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/hugegraph.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/iceberg.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/iceberg.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/iceberg.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/iceberg.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/imap.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/imap.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/imap.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/imap.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/influxdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/influxdb.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/influxdb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/influxdb.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/influxdb_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/influxdb_promql.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/influxdb_promql.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/influxdb_promql.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/iotdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/iotdb.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/iotdb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/iotdb.md index 88a20e4ab97..a46b3378fdc 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/iotdb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/iotdb.md @@ -41,7 +41,7 @@ keywords: [开源监控系统, 开源数据库监控, IoTDB数据库监控] - FILE ``` -2. 重启 IoTDB, 打开浏览器或者用curl 访问 , 就能看到metric数据了。 +2. 重启 IoTDB, 打开浏览器或者用curl 访问 [http://ip:9091/metrics](http://ip:9091/metrics), 就能看到metric数据了。 3. 在 HertzBeat 添加对应 IoTDB 监控即可。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ipmi.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ipmi.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ipmi.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ipmi.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/issue.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/issue.md similarity index 92% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/issue.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/issue.md index 27e9c63b3ba..12128ae3ff4 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/issue.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/issue.md @@ -19,7 +19,7 @@ sidebar_label: 常见问题 > 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 > docker安装默认启用无此问题 - > 详见 + > 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) 4. 配置了k8s监控,但是实际监控时间并未按照正确间隔时间执行 请参考下面几点排查问题: @@ -38,7 +38,7 @@ sidebar_label: 常见问题 > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` -2. **按照流程部署,访问 无界面** +2. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** 请参考下面几点排查问题: > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 @@ -52,7 +52,7 @@ sidebar_label: 常见问题 ### 安装包部署常见问题 -1. **按照流程部署,访问 无界面** +1. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** 请参考下面几点排查问题: > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jetty.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jetty.md new file mode 100644 index 00000000000..f564da57219 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jetty.md @@ -0,0 +1,94 @@ +--- +id: jetty +title: 监控:Jetty应用服务器 +sidebar_label: Jetty应用服务器 +keywords: [开源监控系统, 开源中间件监控, Jetty应用服务器监控] +--- + +> 对Jetty应用服务器的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 JVM 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 JVM 进行指标采集。 + +#### Jetty应用服务器开启JMX协议步骤 + +[参考官方文档](https://www.eclipse.org/jetty/documentation/jetty-10/operations-guide/index.html#og-jmx-remote) + +1. 在 Jetty 启动 JMX JMX-REMOTE 模块 + + ```shell + java -jar $JETTY_HOME/start.jar --add-module=jmx + java -jar $JETTY_HOME/start.jar --add-module=jmx-remote + ``` + + 命令执行成功会创建出 ``JETTY_BASE`/start.d/jmx-remote.ini` 配置文件 + +2. 编辑 ``JETTY_BASE`/start.d/jmx-remote.ini` 配置文件,修改 JMX 的 IP 端口等参数。 + + **`localhost` 需修改为对外暴露 IP** + + ```text + ## The host/address to bind the RMI server to. + # jetty.jmxremote.rmiserverhost=localhost + + ## The port the RMI server listens to (0 means a random port is chosen). + # jetty.jmxremote.rmiserverport=1099 + + ## The host/address to bind the RMI registry to. + # jetty.jmxremote.rmiregistryhost=localhost + + ## The port the RMI registry listens to. + # jetty.jmxremote.rmiregistryport=1099 + + ## The host name exported in the RMI stub. + -Djava.rmi.server.hostname=localhost + ``` + +3. 重启 Jetty Server 即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------| +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/jvm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jvm.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/jvm.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jvm.md index 3d9e96e55e1..485363e34e7 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/jvm.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/jvm.md @@ -17,7 +17,7 @@ keywords: [开源监控系统, 开源JAVA监控, JVM虚拟机监控] 应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP -参考文档: +参考文档: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) ```shell -Djava.rmi.server.hostname=对外ip地址 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka_client.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka_client.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka_client.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka_client.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka_promql.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka_promql.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka_promql.md index f75ee33ba77..df3a8c191d2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kafka_promql.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kafka_promql.md @@ -36,7 +36,7 @@ keywords: [ 开源监控系统,开源中间件监控, Kafka监控,Kafka-PromQL | 指标名称 | 指标单位 | 指标帮助描述 | |------------|------|---------| -| \_\_name__ | 无 | 指标名称 | +| __name__ | 无 | 指标名称 | | instance | 无 | 指标所属实例 | | timestamp | 无 | 采集指标时间戳 | | value | 无 | 指标值 | @@ -45,7 +45,7 @@ keywords: [ 开源监控系统,开源中间件监控, Kafka监控,Kafka-PromQL | 指标名称 | 指标单位 | 指标帮助描述 | |------------|------|---------| -| \_\_name__ | 无 | 指标名称 | +| __name__ | 无 | 指标名称 | | instance | 无 | 指标所属实例 | | timestamp | 无 | 采集指标时间戳 | | value | 无 | 指标值 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kingbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kingbase.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kingbase.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kingbase.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kubernetes.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kubernetes.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/kubernetes.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/kubernetes.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/linux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/linux.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/linux.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/linux.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/linux_script.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/linux_script.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/linux_script.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/linux_script.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mariadb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mariadb.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mariadb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mariadb.md index e960d620649..dd8b3f7d868 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mariadb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mariadb.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, MariaDB数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/memcached.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/memcached.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/memcached.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/memcached.md index 1066d3934dc..b6aca0c75a2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/memcached.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/memcached.md @@ -30,7 +30,7 @@ STAT version 1.4.15 ... ``` -**帮助文档: ** +**帮助文档: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** ### 配置参数 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/modbus.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/modbus.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/modbus.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/modbus.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mongodb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mongodb.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mongodb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mongodb.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mongodb_atlas.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mongodb_atlas.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mongodb_atlas.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mongodb_atlas.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mqtt.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mqtt.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mqtt.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mqtt.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mysql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mysql.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mysql.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mysql.md index 46046f095c9..82b3f36b564 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/mysql.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/mysql.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nacos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nacos.md similarity index 57% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nacos.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nacos.md index f95da705d58..b54fbc611c5 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nacos.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nacos.md @@ -54,41 +54,41 @@ keywords: [开源监控系统, 中间件监控, Nacos分布式监控] | http_server_requests_seconds_sum | 秒 | http请求总耗时,包括多种(url,方法,code) | | nacos_timer_seconds_sum | 秒 | Nacos config水平通知耗时 | | nacos_timer_seconds_count | 无 | Nacos config水平通知次数 | -| nacos_monitor{name='longPolling'} | 无 | Nacos config长连接数 | -| nacos_monitor{name='configCount'} | 无 | Nacos config配置个数 | -| nacos_monitor{name='dumpTask'} | 无 | Nacos config配置落盘任务堆积数 | -| nacos_monitor{name='notifyTask'} | 无 | Nacos config配置水平通知任务堆积数 | -| nacos_monitor{name='getConfig'} | 无 | Nacos config读配置统计数 | -| nacos_monitor{name='publish'} | 无 | Nacos config写配置统计数 | -| nacos_monitor{name='ipCount'} | 无 | Nacos naming ip个数 | -| nacos_monitor{name='domCount'} | 无 | Nacos naming域名个数(1.x 版本) | -| nacos_monitor{name='serviceCount'} | 无 | Nacos naming域名个数(2.x 版本) | -| nacos_monitor{name='failedPush'} | 无 | Nacos naming推送失败数 | -| nacos_monitor{name='avgPushCost'} | 秒 | Nacos naming平均推送耗时 | -| nacos_monitor{name='leaderStatus'} | 无 | Nacos naming角色状态 | -| nacos_monitor{name='maxPushCost'} | 秒 | Nacos naming最大推送耗时 | -| nacos_monitor{name='mysqlhealthCheck'} | 无 | Nacos naming mysql健康检查次数 | -| nacos_monitor{name='httpHealthCheck'} | 无 | Nacos naming http健康检查次数 | -| nacos_monitor{name='tcpHealthCheck'} | 无 | Nacos naming tcp健康检查次数 | +| nacos_monitor`{name="longPolling"}` | 无 | Nacos config长连接数 | +| nacos_monitor`{name="configCount"}` | 无 | Nacos config配置个数 | +| nacos_monitor`{name="dumpTask"}` | 无 | Nacos config配置落盘任务堆积数 | +| nacos_monitor`{name="notifyTask"}` | 无 | Nacos config配置水平通知任务堆积数 | +| nacos_monitor`{name="getConfig"}` | 无 | Nacos config读配置统计数 | +| nacos_monitor`{name="publish"}` | 无 | Nacos config写配置统计数 | +| nacos_monitor`{name="ipCount"}` | 无 | Nacos naming ip个数 | +| nacos_monitor`{name="domCount"}` | 无 | Nacos naming域名个数(1.x 版本) | +| nacos_monitor`{name="serviceCount"}` | 无 | Nacos naming域名个数(2.x 版本) | +| nacos_monitor`{name="failedPush"}` | 无 | Nacos naming推送失败数 | +| nacos_monitor`{name="avgPushCost"}` | 秒 | Nacos naming平均推送耗时 | +| nacos_monitor`{name="leaderStatus"}` | 无 | Nacos naming角色状态 | +| nacos_monitor`{name="maxPushCost"}` | 秒 | Nacos naming最大推送耗时 | +| nacos_monitor`{name="mysqlhealthCheck"}` | 无 | Nacos naming mysql健康检查次数 | +| nacos_monitor`{name="httpHealthCheck"}` | 无 | Nacos naming http健康检查次数 | +| nacos_monitor`{name="tcpHealthCheck"}` | 无 | Nacos naming tcp健康检查次数 | #### 指标集合:Nacos 异常 | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------------------|------|--------------------------------| -| nacos_exception_total{name='db'} | 无 | 数据库异常 | -| nacos_exception_total{name='configNotify'} | 无 | Nacos config水平通知失败 | -| nacos_exception_total{name='unhealth'} | 无 | Nacos config server之间健康检查异常 | -| nacos_exception_total{name='disk'} | 无 | Nacos naming写磁盘异常 | -| nacos_exception_total{name='leaderSendBeatFailed'} | 无 | Nacos naming leader发送心跳异常 | -| nacos_exception_total{name='illegalArgument'} | 无 | 请求参数不合法 | -| nacos_exception_total{name='nacos'} | 无 | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) | +| nacos_exception_total`{name="db"}` | 无 | 数据库异常 | +| nacos_exception_total`{name="configNotify"}` | 无 | Nacos config水平通知失败 | +| nacos_exception_total`{name="unhealth"}` | 无 | Nacos config server之间健康检查异常 | +| nacos_exception_total`{name="disk"}` | 无 | Nacos naming写磁盘异常 | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | 无 | Nacos naming leader发送心跳异常 | +| nacos_exception_total`{name="illegalArgument"}` | 无 | 请求参数不合法 | +| nacos_exception_total`{name="nacos"}` | 无 | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) | #### 指标集合:client | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------|------|--------------------------| -| nacos_monitor{name='subServiceCount'} | 无 | 订阅的服务数 | -| nacos_monitor{name='pubServiceCount'} | 无 | 发布的服务数 | -| nacos_monitor{name='configListenSize'} | 无 | 监听的配置数 | +| nacos_monitor`{name="subServiceCount"}` | 无 | 订阅的服务数 | +| nacos_monitor`{name="pubServiceCount"}` | 无 | 发布的服务数 | +| nacos_monitor`{name="configListenSize"}` | 无 | 监听的配置数 | | nacos_client_request_seconds_count | 无 | 请求的次数,包括多种(url,方法,code) | | nacos_client_request_seconds_sum | 秒 | 请求的总耗时,包括多种(url,方法,code) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nebulagraph.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nebulagraph.md similarity index 89% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nebulagraph.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nebulagraph.md index f570d475444..b1bda5b6cc6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nebulagraph.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nebulagraph.md @@ -18,17 +18,17 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB 1.1、如果只需要获取 nebulaGraph_stats,需要确保可以访问 stats,否则会出现错误。 -默认端口是 19669,访问地址为 +默认端口是 19669,访问地址为 [http://ip:19669/stats](http://ip:19669/stats) 1.2、如果需要获取 rocksdb stats 的附加参数,需要确保可以访问 rocksdb stats,否则会报错。 首次连接 NebulaGraph 时,必须先注册 Storage 服务,以便正确查询数据。 -**有帮助文档:** +**有帮助文档:[https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** -**** +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** -默认端口是 19779,访问地址为: +默认端口是 19779,访问地址为:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) ### 配置参数 @@ -49,7 +49,7 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB #### 指标集:nebulaGraph_stats 指标太多,相关链接如下 -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------------------------------------------|------|--------| @@ -112,7 +112,7 @@ nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB #### 指标集:rocksdb_stats 指标太多,相关链接如下 -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** | 指标名称 | 指标单位 | 指标帮助描述 | |----------------------------|------|------------------------| diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nebulagraph_cluster.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nebulagraph_cluster.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nebulagraph_cluster.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nebulagraph_cluster.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nginx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nginx.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nginx.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nginx.md index 496f5e285a0..227a9900a95 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nginx.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nginx.md @@ -109,7 +109,7 @@ keywords: [开源监控工具, 开源Java监控工具, 监控Nginx指标] 4. 在浏览器访问 `http://localhost/req-status` 即可查看 Nginx 监控状态信息。 -**参考文档: ** +**参考文档: [https://blog.csdn.net/weixin_55985097/article/details/116722309](https://blog.csdn.net/weixin_55985097/article/details/116722309)** **⚠️注意监控模块的端点路径为 `/nginx-status` `/req-status`** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ntp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ntp.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ntp.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ntp.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nvidia.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nvidia.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/nvidia.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/nvidia.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/oceanbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/oceanbase.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/oceanbase.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/oceanbase.md index 2f319e3c414..edeeaeaf611 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/oceanbase.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/oceanbase.md @@ -9,7 +9,7 @@ keywords: [开源监控系统, 开源数据库监控, OceanBase 数据库监控] ### 注意,必须添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. - 重启 HertzBeat 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/openai.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/openai.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/openai.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/openai.md index 690a8670ebb..6ec6ff18316 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/openai.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/openai.md @@ -12,8 +12,8 @@ keywords: [开源监控系统, 开源网络监控, OpenAI账户监控] > 1. 打开 Chrome 浏览器的网络请求界面 > `Mac: cmd + option + i` > `Windows: ctrl + shift + i` -> 2. 访问 -> 3. 找到 请求 +> 2. 访问 [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. 找到 [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) 请求 > 4. 找到请求头中 Authorization 字段,并复制 `Bearer` 之后的内容。例如: `sess-123456` ### 注意事项 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/opengauss.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/opengauss.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/opengauss.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/opengauss.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/opensuse.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/opensuse.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/opensuse.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/opensuse.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/oracle.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/oracle.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/oracle.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/oracle.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ping.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ping.md similarity index 91% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ping.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ping.md index 59ac237ed34..2c43d17c346 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ping.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ping.md @@ -33,4 +33,4 @@ keywords: [开源监控系统, 开源网络监控, 网络PING监控] > 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 > docker安装默认启用无此问题 -> 详见 +> 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/plugin.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/plugin.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/plugin.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/plugin.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/pop3.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/pop3.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/pop3.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/pop3.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/port.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/port.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/port.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/port.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/postgresql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/postgresql.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/postgresql.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/postgresql.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/prestodb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/prestodb.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/prestodb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/prestodb.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/process.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/process.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/process.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/prometheus.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/prometheus.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/prometheus.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/prometheus.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/pulsar.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/pulsar.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/pulsar.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/pulsar.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rabbitmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rabbitmq.md similarity index 98% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rabbitmq.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rabbitmq.md index 7e4ff6383d7..be554adf7aa 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rabbitmq.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rabbitmq.md @@ -18,7 +18,7 @@ keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间 rabbitmq-plugins enable rabbitmq_management ``` -2. 浏览器访问 ,默认账户密码 `guest/guest`. 成功登录即开启成功。 +2. 浏览器访问 [http://ip:15672/](http://ip:15672/) ,默认账户密码 `guest/guest`. 成功登录即开启成功。 3. 在 HertzBeat 添加对应 RabbitMQ 监控即可,参数使用 Management 的 IP 端口,默认账户密码。 @@ -106,7 +106,7 @@ keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间 |------------------------------|------|--------------------------------------------------------------------------------------------------------------------------------------| | name | 无 | The name of the queue with non-ASCII characters escaped as in C. | | node | 无 | The queue on the node name | -| state | 无 | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| state | 无 | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | | type | 无 | Queue type, one of: quorum, stream, classic. | | vhost | 无 | vhost path | | auto_delete | 无 | Whether the queue will be deleted automatically when no longer used | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redhat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redhat.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redhat.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redhat.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redis.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redis.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redis.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redis.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redis_cluster.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redis_cluster.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/redis_cluster.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/redis_cluster.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rocketmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rocketmq.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rocketmq.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rocketmq.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rockylinux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rockylinux.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/rockylinux.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/rockylinux.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/seatunnel.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/seatunnel.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/seatunnel.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/seatunnel.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/security_model.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/security_model.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/security_model.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/security_model.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/shenyu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/shenyu.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/shenyu.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/shenyu.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/smtp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/smtp.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/smtp.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/smtp.md index 73e9af9ee13..83647abb126 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/smtp.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/smtp.md @@ -11,7 +11,7 @@ keywords: [ open source monitoring tool, open source SMTP monitoring tool, monit 通过 SMTP 的 hello 命令确定服务器是否可用 ``` -> 详见 +> 详见 [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) **协议使用:SMTP** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/spark.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/spark.md similarity index 97% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/spark.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/spark.md index 837d446f357..783dcdff5b6 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/spark.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/spark.md @@ -13,7 +13,7 @@ keywords: [开源监控工具,开源Java spark监控工具,监控spark指标 1. 应用启动时添加Spark参数 ⚠️注意可自定义暴露端口,对外IP -参考文档: +参考文档: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) **监控配置spark的监控主要分为Master、Worker、driver、executor监控。Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要针对某一个app来进行监控。** **如果都要监控,需要根据以下步骤来配置** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/spring_gateway.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/spring_gateway.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/spring_gateway.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/spring_gateway.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/springboot2.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/springboot2.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/springboot2.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/springboot2.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/springboot3.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/springboot3.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/springboot3.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/springboot3.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/sqlserver.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/sqlserver.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/sqlserver.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/sqlserver.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ssl_cert.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ssl_cert.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ssl_cert.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ssl_cert.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/starrocks_be.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/starrocks_be.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/starrocks_be.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/starrocks_be.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/starrocks_fe.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/starrocks_fe.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/starrocks_fe.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/starrocks_fe.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/status.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/status.md similarity index 89% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/status.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/status.md index 200b9c60d0c..dc688d023b8 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/status.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/status.md @@ -17,9 +17,9 @@ keywords: [开源监控系统, 开源网站监控, 状态页面] |------|----------------------------------------|---------------------------------------------------------------------------------------------------| | 组织名称 | 组织的名称 | HertzBeat | | 组织介绍 | 组织的详细介绍 | Apache HertzBeat 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 | -| 网站链接 | 组织网站的 URL,便于访问者获取更多信息 | | -| 标志图片 | 组织官方标志或 Logo 的图片文件路径或 URL,建议使用 .svg 格式 | | -| 反馈地址 | 接收问题反馈的地址 | | +| 网站链接 | 组织网站的 URL,便于访问者获取更多信息 | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| 标志图片 | 组织官方标志或 Logo 的图片文件路径或 URL,建议使用 .svg 格式 | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| 反馈地址 | 接收问题反馈的地址 | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | | 主题颜色 | 状态页面的主色调。 | 在页面中点击选择 | 填写完组织信息后,点击 `确定`。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tidb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tidb.md similarity index 98% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tidb.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tidb.md index b0ea82505ca..69bdd6fd40b 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tidb.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tidb.md @@ -42,5 +42,5 @@ keywords: [开源监控系统, 开源数据库监控, TiDB数据库监控] | version_compile_machine | 无 | 运行 TiDB 的 CPU 架构的名称 | | version_compile_os | 无 | TiDB 所在操作系统的名称 | | max_connections | 无 | 该变量表示 TiDB 中同时允许的最大客户端连接数,用于资源控制。默认情况下,该变量值为 0 表示不限制客户端连接数。当本变量的值大于 0 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 | -| datadir | 无 | 数据存储的位置,位置可以是本地路径 /tmp/tidb。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 ${pd-ip}:${pd-port},表示 TiDB 在启动时连接到的 PD 服务器。 | +| datadir | 无 | 数据存储的位置,位置可以是本地路径 /tmp/tidb。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 `${pd-ip}:${pd-port}`,表示 TiDB 在启动时连接到的 PD 服务器。 | | port | 无 | 使用 MySQL 协议时 tidb-server 监听的端口。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/time_expression.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/time_expression.md new file mode 100644 index 00000000000..347a1b8d845 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/time_expression.md @@ -0,0 +1,65 @@ +--- +id: time_expression +title: 时间表达式 +sidebar_label: 时间表达式 +keywords: [ 动态时间,时间表达式 ] +--- + +### 简介 + +HertzBeat支持使用表达式计算监控采集时的相对时间,支持更加灵活的在监控模板中定义时间。 + +### 语法 + +```shell +${FORMATTER [{ + | - }`` ``]} +``` + +- `FORMATTER` : 决定表达式计算的结果的格式 +- `DURATION` : 时间段大小,正整数 +- `TIME_UNIT` : 时间段单位 + +### 支持的格式化类型 + +> 示例输出以当前时间为 `2022-04-24 02:40:00.123` + +| 名称 | 描述 | 示例 | +|--------------|----------------------------|---------------------| +| @now | 格式化为 `yyyy-MM-dd HH:mm:ss` | 2022-04-24 02:40:00 | +| @date | 格式化为 `yyyy-MM-dd` | 2022-04-24 | +| @timestamp10 | 返回10位时间戳 | 1650768000 | +| @timestamp | 返回13位时间戳 | 1650768000000 | +| @time | 格式化为 `HH:mm:ss` | 02:40:00 | +| @year | 格式化为 `yyyy` | 2022 | +| @month | 格式化为 `MM` | 04 | +| @day | 格式化为 `dd` | 24 | +| @hour | 格式化为 `HH` | 02 | +| @minute | 格式化为 `mm` | 40 | +| @millisecond | 格式化为 `SSS` | 123 | +| @second | 格式化为 `ss` | 00 | + +### 支持的时间单位 + +| 名称 | 描述 | +|----|----| +| y | 年 | +| M | 月 | +| d | 日 | +| H | 小时 | +| m | 分钟 | +| s | 秒 | +| w | 周 | + +#### 在哪里可以使用 + +- HTTP协议监控类型的请求参数 +- HTTP协议监控类型的请求体 + +#### 使用示例 + +1. 简单表达式 + - `${@now}` 获取当前时间,并格式化为 `yyyy-MM-dd HH:mm:ss` + - `${@time+1H}` 计算当前时间一小时之后的时间,并格式化为 `HH:mm:ss` + - `${@time+1H+15m+30s}` 计算当前时间一小时15分钟30秒之后的时间,并格式化为 `HH:mm:ss` +2. 复杂表达式模板(如果内置的格式化器无法满足需要,可以组合使用多个表达式) + - `${@year}年${@month}月${@day}日`,获取当前日期并按照 yyyy年MM月dd日格式返回 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tomcat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tomcat.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tomcat.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tomcat.md index f9d75f4921d..710f9594aab 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/tomcat.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/tomcat.md @@ -73,4 +73,4 @@ CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.h ``` -参考: +参考: [https://blog.csdn.net/weixin_41924764/article/details/108694239](https://blog.csdn.net/weixin_41924764/article/details/108694239) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ubuntu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ubuntu.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/ubuntu.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/ubuntu.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/udp_port.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/udp_port.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/udp_port.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/udp_port.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/valkey.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/valkey.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/valkey.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/valkey.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/vastbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/vastbase.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/vastbase.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/vastbase.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/website.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/website.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/website.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/website.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/websocket.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/websocket.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/websocket.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/websocket.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/windows.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/windows.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/windows.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/windows.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/windows_script.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/windows_script.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/windows_script.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/windows_script.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/yarn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/yarn.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/yarn.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/yarn.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/zookeeper.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/zookeeper.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/zookeeper.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/help/zookeeper.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/introduce.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/introduce.md similarity index 98% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/introduce.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/introduce.md index 2b703452b5e..c34ae7e20b8 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/introduce.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/introduce.md @@ -1,6 +1,6 @@ --- -id: introduce -title: Apache HertzBeat™ +id: introduce +title: Apache HertzBeat™ sidebar_label: 介绍 slug: / --- @@ -16,9 +16,9 @@ slug: / [![QQ](https://img.shields.io/badge/QQ-1035688434-orange)](https://qm.qq.com/q/FltGGGIX2m) [![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCri75zfWX0GHqJFPENEbLow?logo=youtube&label=YouTube%20Channel)](https://www.youtube.com/channel/UCri75zfWX0GHqJFPENEbLow) -## 🎡 介绍 +## 🎡 介绍 -[Apache HertzBeat](https://github.com/apache/hertzbeat) (incubating) 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 +[Apache HertzBeat](https://github.com/apache/hertzbeat) 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 ### 特点 @@ -126,7 +126,7 @@ HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可 - `HertzBeat` 支持部署边缘采集器集群,与主 `HertzBeat` 服务云边协同提升采集能力。 -在多个网络不相通的隔离网络中,在以往方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 +在多个网络不相通的隔离网络中,在以往方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 `HertzBeat` 提供的云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主服务统一调度管理展示。 ![HertzBeat](/img/docs/cluster-arch.png) @@ -304,4 +304,4 @@ Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1 --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/others/design.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/others/design.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/others/design.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/others/design.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/others/resource.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/others/resource.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/others/resource.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/others/resource.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/account-modify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/account-modify.md similarity index 98% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/account-modify.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/account-modify.md index cc44d79d52b..9818ff86207 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/account-modify.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/account-modify.md @@ -156,4 +156,4 @@ sureness: dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' ``` -**重启 HertzBeat 浏览器访问 即可探索使用 HertzBeat** +**重启 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可探索使用 HertzBeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/baota-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/baota-deploy.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/baota-deploy.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/baota-deploy.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/custom-config.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/custom-config.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/custom-config.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/custom-config.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-compose-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-compose-deploy.md similarity index 93% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-compose-deploy.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-compose-deploy.md index 3d5a5ba0011..ba23651045e 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-compose-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-compose-deploy.md @@ -56,7 +56,7 @@ sidebar_label: Docker Compose方式安装 ``` 3. 开始探索 HertzBeat - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-deploy.md similarity index 96% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-deploy.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-deploy.md index 094e668407e..06fa83e496e 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/docker-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/docker-deploy.md @@ -50,7 +50,7 @@ sidebar_label: Docker方式安装 ::: 2. 开始探索 HertzBeat - 浏览器访问 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 ### 部署 HertzBeat Collector 集群(可选) @@ -93,7 +93,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 ::: 2. 开始探索 HertzBeat Collector - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** @@ -109,7 +109,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` -2. 按照流程部署,访问 无界面 +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 请参考下面几点排查问题: > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/greptime-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/greptime-init.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/greptime-init.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/greptime-init.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/influxdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/influxdb-init.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/influxdb-init.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/influxdb-init.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/iotdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/iotdb-init.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/iotdb-init.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/iotdb-init.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/mysql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/mysql-change.md similarity index 92% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/mysql-change.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/mysql-change.md index 42fb45f75cf..7411de4ca88 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/mysql-change.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/mysql-change.md @@ -55,7 +55,7 @@ mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) ### 添加 MYSQL jdbc 驱动 jar -- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.0.25.jar. +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) - 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. ### 修改hertzbeat的配置文件application.yml切换数据源 @@ -113,4 +113,4 @@ spring: > 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./mysql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 -**启动 HertzBeat 浏览器访问 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/package-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/package-deploy.md similarity index 94% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/package-deploy.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/package-deploy.md index 1e2f035fb8b..b94f36b04a2 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/package-deploy.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/package-deploy.md @@ -54,7 +54,7 @@ Apache HertzBeat 支持在Linux Windows Mac系统安装运行,CPU支持X86/ARM ``` 5. 开始探索HertzBeat - 浏览器访问 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 ### 部署 HertzBeat Collector 集群(可选) @@ -107,7 +107,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 ``` 4. 开始探索 HertzBeat Collector - 浏览器访问 即可开始探索使用,默认账户密码 admin/hertzbeat。 + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 **HAVE FUN** @@ -131,7 +131,7 @@ HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数 Java HotSpot(TM) 64-Bit Server VM 17.0.9 (build 17.0.9+8-LTS-237, mixed mode) ``` -2. 按照流程部署,访问 无界面 +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 请参考下面几点排查问题: > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/postgresql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/postgresql-change.md similarity index 95% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/postgresql-change.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/postgresql-change.md index 20b48dc1b73..ca3a83366ec 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/postgresql-change.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/postgresql-change.md @@ -100,4 +100,4 @@ spring: > 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./postgresql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 -**启动 HertzBeat 浏览器访问 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/quickstart.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/quickstart.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/quickstart.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/quickstart.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/rainbond-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/rainbond-deploy.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/rainbond-deploy.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/rainbond-deploy.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/sslcert-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/sslcert-practice.md similarity index 88% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/sslcert-practice.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/sslcert-practice.md index d864d9cb82f..7015867c0fe 100644 --- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/sslcert-practice.md +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/sslcert-practice.md @@ -14,7 +14,7 @@ sidebar_label: SSL证书过期监控使用案例 Apache HertzBeat™ 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## 安装 HertzBeat @@ -25,7 +25,7 @@ github: 2. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` :::note -生产环境建议完整部署方式, 参考 +生产环境建议完整部署方式, 参考 [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) ::: ## 监控 SSL 证书 @@ -77,7 +77,7 @@ github: 钉钉微信飞书等 token 配置可以参考帮助文档 - + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) > 消息通知 -> 通知策略 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知 @@ -91,4 +91,4 @@ github: 监控SSL证书的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/tdengine-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/tdengine-init.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/tdengine-init.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/tdengine-init.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/update-1.6.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/update-1.6.0.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/update-1.6.0.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/update-1.6.0.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/upgrade.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/upgrade.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/upgrade.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/upgrade.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/victoria-metrics-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/victoria-metrics-init.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/start/victoria-metrics-init.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/start/victoria-metrics-init.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/template.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/template.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/template.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.6.x/template.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x.json b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x.json new file mode 100644 index 00000000000..cacc01db48b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x.json @@ -0,0 +1,186 @@ +{ + "version.label": { + "message": "1.7.x", + "description": "The label for version 1.7.x" + }, + "sidebar.docs.category.quickstart": { + "message": "快速开始", + "description": "The label for category quickstart in sidebar docs" + }, + "sidebar.docs.category.custom": { + "message": "自定义监控", + "description": "The label for category custom in sidebar docs" + }, + "sidebar.docs.category.http": { + "message": "HTTP协议", + "description": "The label for category http in sidebar docs" + }, + "sidebar.docs.category.jdbc": { + "message": "JDBC协议", + "description": "The label for category jdbc in sidebar docs" + }, + "sidebar.docs.category.ssh": { + "message": "SSH协议", + "description": "The label for category ssh in sidebar docs" + }, + "sidebar.docs.category.telnet": { + "message": "TELNET协议", + "description": "The label for category telnet in sidebar docs" + }, + "sidebar.docs.category.guides": { + "message": "使用指南", + "description": "The label for category guides in sidebar docs" + }, + "sidebar.docs.category.service": { + "message": "应用服务监控", + "description": "The label for category service in sidebar docs" + }, + "sidebar.docs.category.database": { + "message": "数据库监控", + "description": "The label for category database in sidebar docs" + }, + "sidebar.docs.category.os": { + "message": "操作系统监控", + "description": "The label for category os in sidebar docs" + }, + "sidebar.docs.category.server": { + "message": "服务器监控", + "description": "The label for category server in sidebar docs" + }, + "sidebar.docs.category.mid": { + "message": "中间件监控", + "description": "The label for category mid in sidebar docs" + }, + "sidebar.docs.category.alert": { + "message": "阈值告警", + "description": "The label for category alert in sidebar docs" + }, + "sidebar.docs.category.notice": { + "message": "消息通知", + "description": "The label for category notice in sidebar docs" + }, + "sidebar.docs.category.service-discovery": { + "message": "服务发现", + "description": "The label for category service-discovery in sidebar docs" + }, + "sidebar.docs.category.Others": { + "message": "其它", + "description": "The label for category Others in sidebar docs" + }, + "sidebar.docs.category.cloud-native": { + "message": "云原生监控", + "description": "The label for category cloud-native in sidebar docs" + }, + "sidebar.docs.link.Install via HuaweiCloud": { + "message": "华为云方式部署", + "description": "The label for link Install via HuaweiCloud in sidebar docs, linking to https://marketplace.huaweicloud.com/contents/0477015c-ad63-4522-a308-816861769f0a#productid=OFFI863735781612109824" + }, + "sidebar.docs.category.jmx": { + "message": "JMX协议", + "description": "The label for category jmx in sidebar docs" + }, + "sidebar.docs.category.snmp": { + "message": "SNMP协议", + "description": "The label for category snmp in sidebar docs" + }, + "sidebar.docs.link.Install via Helm": { + "message": "Helm方式安装", + "description": "The label for link Install via Helm in sidebar docs, linking to https://artifacthub.io/packages/helm/hertzbeat/hertzbeat" + }, + "sidebar.docs.category.push": { + "message": "Push", + "description": "The label for category push in sidebar docs" + }, + "sidebar.docs.category.program": { + "message": "应用程序监控", + "description": "The label for category program in sidebar docs" + }, + "sidebar.docs.category.cache": { + "message": "缓存监控", + "description": "The label for category cache in sidebar docs" + }, + "sidebar.docs.category.bigdata": { + "message": "大数据监控", + "description": "The label for category bigdata in sidebar docs" + }, + "sidebar.docs.category.webserver": { + "message": "Web服务器监控", + "description": "The label for category webserver in sidebar docs" + }, + "sidebar.docs.category.Community": { + "message": "社区", + "description": "The label for category Community in sidebar docs" + }, + "sidebar.docs.category.contribution": { + "message": "贡献指南", + "description": "The label for category contribution in sidebar docs" + }, + "sidebar.docs.category.submit": { + "message": "提交指南", + "description": "The label for category submit in sidebar docs" + }, + "sidebar.docs.category.release": { + "message": "发布指南", + "description": "The label for category release in sidebar docs" + }, + "sidebar.docs.category.network": { + "message": "网络监控", + "description": "The label for category network in sidebar docs" + }, + "sidebar.docs.category.NGQL": { + "message": "NGQL", + "description": "The label for category NGQL in sidebar docs" + }, + "sidebar.docs.category.llm": { + "message": "AI大模型监控", + "description": "The label for category llm in sidebar docs" + }, + "sidebar.docs.category.aiConfig": { + "message": "AI大模型配置", + "description": "The label for category aiConfig in sidebar docs" + }, + "sidebar.docs.category.install": { + "message": "安装", + "description": "The label for category install in sidebar docs" + }, + "sidebar.docs.category.upgrade": { + "message": "升级", + "description": "The label for category upgrade in sidebar docs" + }, + "sidebar.docs.category.setting": { + "message": "配置", + "description": "The label for category setting in sidebar docs" + }, + "sidebar.docs.category.change-db": { + "message": "数据库切换", + "description": "The label for category change-db in sidebar docs" + }, + "sidebar.docs.category.use-case": { + "message": "使用案例", + "description": "The label for category use-case in sidebar docs" + }, + "sidebar.docs.category.extern-deploy": { + "message": "集成平台部署", + "description": "The label for category extern-deploy in sidebar docs" + }, + "sidebar.docs.category.quickstart-use-case": { + "message": "使用案例", + "description": "The label for category quickstart-use-case in sidebar docs" + }, + "sidebar.docs.category.guides-use-case": { + "message": "使用案例", + "description": "The label for category guides-use-case in sidebar docs" + }, + "sidebar.docs.category.help-custom": { + "message": "自定义监控", + "description": "The label for category help-custom in sidebar docs" + }, + "sidebar.docs.category.advanced-custom": { + "message": "自定义监控", + "description": "The label for category advanced-custom in sidebar docs" + }, + "sidebar.docs.category.log": { + "message": "日志监控 (Beta)", + "description": "The label for category log in sidebar docs" + } +} diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-default.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-default.md new file mode 100644 index 00000000000..606048ca3bc --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-default.md @@ -0,0 +1,285 @@ +--- +id: extend-http-default +title: HTTP协议系统默认解析方式 +sidebar_label: 系统默认解析方式 +--- + +> HTTP接口调用获取响应数据后,用 Apache HertzBeat™ 默认的解析方式去解析响应数据。 + +**此需接口响应数据结构符合HertzBeat指定的数据结构规则** + +### HertzBeat数据格式规范 + +注意⚠️ 响应数据为JSON + +单层格式:key-value + +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` + +多层格式:数组里面套key-value + +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +样例: +查询自定义系统的CPU信息,其暴露接口为 `/metrics/cpu`,我们需要其中的`hostname,core,useage`指标 +若只有一台虚拟机,其单层格式为: + +```json +{ + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 +} +``` + +若有多台虚拟机,其多层格式为: + +```json +[ + { + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 + }, + { + "hostname": "linux-2", + "core": 3, + "usage": 78.0, + "allTime": 566, + "runningTime": 34 + }, + { + "hostname": "linux-3", + "core": 4, + "usage": 38.0, + "allTime": 500, + "runningTime": 20 + } +] +``` + +**对应的监控模板YML可以配置为如下** + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: a_example +# The monitoring i18n name +name: + zh-CN: 模拟应用 + en-US: EXAMPLE APP +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # param field input placeholder + placeholder: 'Please Input Port' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 50 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 用户密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + # required-true or false + required: false + # field-param field key + - field: method + # name-param field display i18n name + name: + zh-CN: 请求方式 + en-US: Method + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: GET + value: GET + - label: POST + value: POST + - label: PUT + value: PUT + - label: DELETE + value: DELETE + # field-param field key + - field: headers + # name-param field display i18n name + name: + zh-CN: 请求Headers + en-US: Headers + # type-param field type(key-value mapping the html key-value input tags) + type: key-value + # required-true or false + required: false + # when type is key-value, use keyAlias to config key alias name + keyAlias: Header Name + # when type is key-value, use valueAlias to config value alias name + valueAlias: Header Value +# collect metrics config list +metrics: + # metrics - cpu + - name: cpu + # metrics name i18n label + i18n: + zh-CN: CPU 信息 + en-US: CPU Info + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, i18n-metric name i18n label, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Host Name + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: cores + type: 0 + i18n: + zh-CN: 核数 + en-US: Cores + - field: waitTime + type: 0 + unit: s + i18n: + zh-CN: 主机名称 + en-US: Host Name + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /metrics/cpu + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: false + # http request header content + headers: + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + param1: param1 + param2: param2 + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$' +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md new file mode 100644 index 00000000000..2876819ac71 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md @@ -0,0 +1,217 @@ +--- +id: extend-http-example-hertzbeat +title: 教程一:适配一款基于HTTP协议的监控类型 +sidebar_label: 教程一:适配一款HTTP协议监控 +--- + +通过此教程我们一步一步描述如何在 Apache HertzBeat™ 监控系统下新增适配一款基于http协议的监控类型。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + +### HTTP协议解析通用响应结构体,获取指标数据 + +> 很多场景我们需要对提供的 HTTP API 接口进行监控,获取接口返回的指标值。这篇文章我们通过http自定义协议来解析我们常见的http接口响应结构,获取返回体中的字段作为指标数据。 + +```json +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` + +如上,通常我们的后台API接口会设计这这样一个通用返回。hertzbeat系统的后台也是如此,我们今天就用hertzbeat的 API 做样例,新增适配一款新的监控类型 **hertzbeat**,监控采集它的系统摘要统计API +`http://localhost:1157/api/summary`, 其响应数据为: + +```json +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**我们这次获取其app下的 `category`,`app`,`status`,`size`,`availableSize`等指标数据。** + +### 新增自定义监控模板YML + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +> 监控模板YML用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个监控模板,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为`hertzbeat`的自定义监控类型,其使用HTTP协议采集指标数据。 + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat +name: + zh-CN: HertzBeat + en-US: HertzBeat +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat +params: + - field: host + name: + zh-CN: 目标Host + en-US: Target Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, instance-if is metrics, unit-metric unit('%','ms','MB') + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + protocol: http + # the config content when protocol is http + http: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + method: GET + # if enabled https, default value is false + ssl: ^_^ssl^_^ + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**新增完毕,现在我们重启hertzbeat系统。我们可以看到系统页面已经多了一个`hertzbeat`监控类型了。** + +![HertzBeat](/img/docs/advanced/extend-http-example-1.png) + +### 系统页面添加对`hertzbeat`监控类型的监控 + +> 我们点击新增 `HertzBeat监控系统`,配置监控IP,端口,采集周期,高级设置里的账户密码等, 点击确定添加监控。 + +![HertzBeat](/img/docs/advanced/extend-http-example-2.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-3.png) + +> 过一定时间(取决于采集周期)我们就可以在监控详情看到具体的指标数据和历史图表啦! + +![HertzBeat](/img/docs/advanced/extend-http-example-4.png) + +### 设置阈值告警通知 + +> 接下来我们就可以正常的设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + +---- + +#### 完 + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数headers,params等,我们可以像用postman一样去定义它,可玩性也非常高! + +如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-token.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-token.md new file mode 100644 index 00000000000..23e33fe0fb9 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-example-token.md @@ -0,0 +1,400 @@ +--- +id: extend-http-example-token +title: 教程二:基于HTTP协议获取TOKEN指标值,给后续采集认证使用 +sidebar_label: 教程二:获取TOKEN后续认证使用 +--- + +通过此教程我们一步一步描述如何在教程一的基础上改造,新增一个监控指标,先调用认证接口获取TOKEN后,使用TOKEN作为参数供后面的监控指标采集认证使用。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + +### 请求流程 + +【**认证信息监控指标(优先级最高)**】【**HTTP接口携带账户密码调用**】->【**响应数据解析**】->【**解析签发TOKEN-accessToken作为指标**】->【**将accessToken作为变量参数赋值给其他采集监控指标**】 + +> 这里我们依然用教程一的hertzbeat监控举例!hertzbeat后台接口不仅仅支持教程一使用的basic直接账户密码认证,也支持token认证。 + +**我们需要`POST`调用登录接口`/api/account/auth/form`获取`accessToken`,请求body(json格式)如下**: + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +**响应结构数据如下**: + +```json +{ + "data": { + "token": "xxxx", + "refreshToken": "xxxx" + }, + "msg": null, + "code": 0 +} +``` + +### 新增自定义监控类型`hertzbeat_token` + +1. 自定义监控类型需新增配置监控模板YML,我们直接复用教程一的 `hertzbeat` 监控类型,在其基础上修改 + +监控配置定义文件是用来定义采集类型是啥,需要用哪种协议采集方式,采集的指标是啥,协议的配置参数等。 +我们直接复用 app-hertzbeat.yml 里面的定义内容,修改为我们当前的监控类型`hertzbeat_auth`配置参数, 比如 `app, category等`。 + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +``` + +### 定义监控指标`auth`登录请求获取`token` + +1. 在`app-hertzbeat_token.yml`新增一个监控指标定义 `auth`, 设置采集优先级为最高0,采集指标 `token`. + +```yaml + +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# collect metrics config list +metrics: + # metrics - auth + - name: auth + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: token + type: 1 + - field: refreshToken + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /api/account/auth/form + # http method: GET POST PUT DELETE PATCH + method: POST + # if enabled https + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # http request header content + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + ^_^params^_^: ^_^params^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$.data' + +``` + +**此时,重启hertzbeat系统,在系统页面上添加 `hertzbeat_token` 类型监控,配置输入参数,`content-type`填`application/json` , `请求Body`填账户密码json如下:** + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +![HertzBeat](/img/docs/advanced/extend-http-example-5.png) + +**新增成功后我们就可以在详情页面看到我们采集的 `token`, `refreshToken`指标数据。** + +![HertzBeat](/img/docs/advanced/extend-http-example-6.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-7.png) + +### 将`token`作为变量参数给后面的监控指标采集使用 + +**在`app-hertzbeat_token.yml`新增一个监控指标定义 `summary` 同教程一中的`summary`相同, 设置采集优先级为1** +**设置此监控指标的HTTP协议配置中认证方式为 `Bearer Token` 将上一个监控指标`auth`采集的指标`token`作为参数给其赋值,使用`^o^`作为内部替换符标识,即`^o^token^o^`。如下:** + +```yaml + - name: summary +# 当protocol为http协议时具体的采集配置 + http: + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ +``` + +**最终`app-hertzbeat_token.yml`定义如下:** + +```yaml + +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# collect metrics config list +metrics: + # metrics - auth + - name: auth + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: token + type: 1 + - field: refreshToken + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /api/account/auth/form + # http method: GET POST PUT DELETE PATCH + method: POST + # if enabled https + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # http request header content + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + ^_^params^_^: ^_^params^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$.data' + + + - name: summary + priority: 1 + fields: + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /api/summary + method: GET + ssl: ^_^ssl^_^ + authorization: + type: Bearer Token + # ^o^xxx^o^ ^o^ substitution represents the value of the acquisition metric xxx of the previous priority + bearerTokenToken: ^o^token^o^ + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**配置完成后,再次重启 `hertzbeat` 系统,查看监控详情页面** + +![HertzBeat](/img/docs/advanced/extend-http-example-8.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-9.png) + +### 设置阈值告警通知 + +> 接下来我们就可以正常设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + +---- + +#### 完 + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数headers,params等,我们可以像用postman一样去定义它,可玩性也非常高! + +如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-jsonpath.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-jsonpath.md new file mode 100644 index 00000000000..50fcecc0b74 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-jsonpath.md @@ -0,0 +1,176 @@ +--- +id: extend-http-jsonpath +title: HTTP协议JsonPath解析方式 +sidebar_label: JsonPath解析方式 +--- + +> HTTP接口调用获取响应数据后,用JsonPath脚本解析的解析方式去解析响应数据。 + +注意⚠️ 响应数据为JSON格式 + +**使用JsonPath脚本将响应数据解析成符合 Apache HertzBeat 指定的数据结构规则的数据** + +#### JsonPath操作符 + +[JSONPath在线验证](https://www.jsonpath.cn) + +| JSONPATH | 帮助描述 | +|------------------|-----------------------------------| +| $ | 根对象或元素 | +| @ | 当前对象或元素 | +| . or [] | 子元素操作符 | +| .. | 递归匹配所有子元素 | +| * | 通配符. 匹配所有对象或元素. | +| [] | 下标运算符,JsonPath索引从0开始 | +| [,] | 连接运算符,将多个结果拼成数组返回,JSONPath允许使用别名. | +| [start:end:step] | 数组切片运算符 | +| ?() | 过滤器(脚本)表达式. | +| () | 脚本表达式. | + +#### HertzBeat数据格式规范 + +单层格式:key-value + +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` + +多层格式:数组里面套key-value + +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +#### 样例 + +查询自定义系统的数值信息,其暴露接口为 `/metrics/person`,我们需要其中的`type,num`指标 +接口返回的原始数据如下: + +```json +{ + "firstName": "John", + "lastName" : "doe", + "age" : 26, + "address" : { + "streetAddress": "naist street", + "city" : "Nara", + "postalCode" : "630-0192" + }, + "number": [ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } + ] +} +``` + +我们使用JsonPath脚本解析,对应的脚本为: `$.number[*]` ,解析后的数据结构如下: + +```json +[ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } +] +``` + +此数据结构符合HertzBeat的数据格式规范,成功提取指标`type,num`值。 + +**对应的监控模板YML可以配置为如下** + +```yaml +category: custom +# 监控应用类型 eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - cpu + # 监控指标 - cpu + - name: cpu + # 指标调度优先级(0-127)越小优先级越高,优先级低的指标会等优先级高的指标采集完成后才会被调度,相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # 具体监控指标列表 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: type + type: 1 + label: true + - field: num + type: 0 +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /metrics/person + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: false + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # 这里使用jsonPath解析 + parseType: jsonPath + parseScript: '$.number[*]' +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-xmlpath.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-xmlpath.md new file mode 100644 index 00000000000..aa966fb791b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http-xmlpath.md @@ -0,0 +1,326 @@ +--- +id: extend-http-xmlpath +title: HTTP 协议 XmlPath 解析方法 +sidebar_label: XmlPath 解析方法 +--- + +> 调用 HTTP API 获取响应数据后,使用 XmlPath 脚本解析方法解析响应数据。 + +注意⚠️ 响应数据必须是 XML 格式。 + +**使用 XPath 脚本将响应数据解析为符合 HertzBeat 指定的数据结构规则的数据。** + +### XmlPath 解析逻辑 + +HertzBeat 中的 XmlPath 解析方法使用两步 XPath 处理: + +1. **主 XPath 表达式 (`parseScript`)**: 此 XPath 表达式在 `http` 配置部分的 `parseScript` 中定义。它用于从响应中选择一个或多个主要的 XML 节点。每个选中的节点将对应 HertzBeat 中的一行指标数据。 +2. **相对字段 XPath 表达式 (`xpath`)**: 对于在 `fields` 列表中定义的每个指标字段,您可以指定一个相对的 `xpath`。此 XPath 表达式是*相对于*步骤 1 中 `parseScript` 选择的每个主节点进行评估的。它从当前主节点中提取该指标字段的具体值。 + +这使您可以轻松地解析包含多个记录或项目的结构化 XML 数据。 + +**特殊指标**: + +* `responseTime`: 这个内置指标代表 HTTP 请求的响应时间,是自动收集的。它不需要 `xpath`。 + +* `keyword`: 这个内置指标计算原始响应体中指定关键字(在 `http.keyword` 中配置)的出现次数。它不需要 `xpath`。 + +### 示例 + +假设 HTTP API 返回以下 XML 数据: + +```xml + + + + 36.400002 + + + + + 399640 + 98792 + 228492 + + + + + 1 + 1000 + + + 2 + 0 + + + 2025-01-06 10:27:48 + 87天0时55分59秒 + 2025-04-03 11:09:18 + 1 + + 16 + 23 + 12 + + NTP + 34.191.45.101 + +``` + +我们想要监控设备状态并提取各种指标。 + +以下是您将如何配置监控模板 YML: + +```yaml +category: server +# The monitoring type eg: linux windows tomcat mysql aws... +app: hikvision_isapi +# The monitoring i18n name +name: + zh-CN: 海康威视 ISAPI + en-US: Hikvision ISAPI +# The description and help of this monitoring type +help: + zh-CN: 通过ISAPI接口监控海康威视设备状态,获取设备健康数据。 + en-US: Monitor Hikvision devices through ISAPI interface to collect health data. + +# Input params define for monitoring(render web ui by the definition) +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + range: '[1000,60000]' + required: true + defaultValue: 5000 + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: SSL + type: boolean + required: false + defaultValue: false + +# collect metrics config list +metrics: + - name: system_info + i18n: + zh-CN: 系统信息 + en-US: System Info + priority: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + ssl: ^_^ssl^_^ + url: /ISAPI/System/deviceInfo + method: GET + timeout: ^_^timeout^_^ + authorization: + type: Digest Auth + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + parseType: xmlPath + parseScript: //DeviceInfo + fields: + - field: deviceName + type: 1 + i18n: + zh-CN: 设备名称 + en-US: Device Name + - field: deviceID + type: 1 + i18n: + zh-CN: 设备ID + en-US: Device ID + - field: firmwareVersion + type: 1 + i18n: + zh-CN: 固件版本 + en-US: Firmware Version + - field: model + type: 1 + i18n: + zh-CN: 设备型号 + en-US: Device Model + - field: macAddress + type: 1 + i18n: + zh-CN: mac地址 + en-US: Mac Address + - name: status + i18n: + zh-CN: 设备状态 + en-US: Status + priority: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + ssl: ^_^ssl^_^ + url: /ISAPI/System/status + method: GET + timeout: ^_^timeout^_^ + authorization: + type: Digest Auth + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + parseType: xmlPath + parseScript: //DeviceStatus + fields: + - field: CPU_utilization + i18n: + zh-CN: CPU 利用率 + en-US: CPU Utilization + type: 0 + unit: '%' + - field: memory_usage + i18n: + zh-CN: 内存使用量 + en-US: Memory Usage + type: 0 + unit: MB + - field: memory_available + i18n: + zh-CN: 可用内存 + en-US: Memory Available + type: 0 + unit: MB + - field: cache_size + i18n: + zh-CN: 缓存大小 + en-US: Cache Size + type: 0 + unit: MB + - field: net_port_1_speed + i18n: + zh-CN: 网口1速度 + en-US: Net Port 1 Speed + type: 0 + unit: Mbps + - field: net_port_2_speed + i18n: + zh-CN: 网口2速度 + en-US: Net Port 2 Speed + type: 0 + unit: Mbps + - field: boot_time + i18n: + zh-CN: 启动时间 + en-US: Boot Time + type: 1 + - field: device_uptime + i18n: + zh-CN: 运行时长 + en-US: Device Uptime + type: 1 + - field: last_calibration_time + i18n: + zh-CN: 上次校时时间 + en-US: Last Calibration Time + type: 1 + - field: last_calibration_time_diff + i18n: + zh-CN: 上次校时时间差 + en-US: Last Calibration Time Diff + type: 0 + unit: s + - field: avg_upload_time + i18n: + zh-CN: 平均上传耗时 + en-US: Avg Upload Time + type: 0 + unit: ms + - field: max_upload_time + i18n: + zh-CN: 最大上传耗时 + en-US: Max Upload Time + type: 0 + unit: ms + - field: min_upload_time + i18n: + zh-CN: 最小上传耗时 + en-US: Min Upload Time + type: 0 + unit: ms + - field: last_calibration_mode + i18n: + zh-CN: 上次校时模式 + en-US: Last Calibration Mode + type: 1 + - field: last_calibration_address + i18n: + zh-CN: 上次校时地址 + en-US: Last Calibration Address + type: 1 + - field: response_time + i18n: + zh-CN: 响应时间 + en-US: Response Time + type: 0 + unit: ms + aliasFields: + - CPUList/CPU/cpuUtilization + - MemoryList/Memory/memoryUsage + - MemoryList/Memory/memoryAvailable + - MemoryList/Memory/cacheSize + - NetPortStatusList/NetPortStatus[id='1']/workSpeed + - NetPortStatusList/NetPortStatus[id='2']/workSpeed + - bootTime + - deviceUpTime + - lastCalibrationTime + - lastCalibrationTimeDiff + - uploadTimeConsumingList/avgTime + - uploadTimeConsumingList/maxTime + - uploadTimeConsumingList/minTime + - lastCalibrationTimeMode + - lastCalibrationTimeAddress + - responseTime + calculates: + - CPU_utilization=CPUList/CPU/cpuUtilization + - memory_usage=MemoryList/Memory/memoryUsage + - memory_available=MemoryList/Memory/memoryAvailable + - cache_size=MemoryList/Memory/cacheSize + - net_port_1_speed=NetPortStatusList/NetPortStatus[id='1']/workSpeed + - net_port_2_speed=NetPortStatusList/NetPortStatus[id='2']/workSpeed + - boot_time=bootTime + - device_uptime=deviceUpTime + - last_calibration_time=lastCalibrationTime + - last_calibration_time_diff=lastCalibrationTimeDiff + - avg_upload_time=uploadTimeConsumingList/avgTime + - max_upload_time=uploadTimeConsumingList/maxTime + - min_upload_time=uploadTimeConsumingList/minTime + - last_calibration_mode=lastCalibrationTimeMode + - last_calibration_address=lastCalibrationTimeAddress + - response_time=responseTime + units: + - memory_usage=KB->MB + - memory_available=KB->MB + - cache_size=KB->MB diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http.md new file mode 100644 index 00000000000..52ce13bffcf --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-http.md @@ -0,0 +1,279 @@ +--- +id: extend-http +title: HTTP协议自定义监控 +sidebar_label: HTTP协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用HTTP协议自定义指标监控。 + +### HTTP协议采集流程 + +【**HTTP接口调用**】->【**响应校验**】->【**响应数据解析**】->【**默认方式解析|JsonPath脚本解析 | XmlPath解析(todo) | Prometheus解析**】->【**指标数据提取**】 + +由流程可见,我们自定义一个HTTP协议的监控类型,需要配置HTTP请求参数,配置获取哪些指标,对响应数据配置解析方式和解析脚本。 +HTTP协议支持我们自定义HTTP请求路径,请求header,请求参数,请求方式,请求体等。 + +**系统默认解析方式**:http接口返回hertzbeat规定的json数据结构,即可用默认解析方式解析数据提取对应的指标数据,详细介绍见 [**系统默认解析**](extend-http-default) +**JsonPath脚本解析方式**:用JsonPath脚本对响应的json数据进行解析,返回系统指定的数据结构,然后提供对应的指标数据,详细介绍见 [**JsonPath脚本解析**](extend-http-jsonpath) + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下监控模板YML的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控模板YML用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个监控模板,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_http的自定义监控类型,其使用HTTP协议采集指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: a_example +# The monitoring i18n name +name: + zh-CN: 模拟应用 + en-US: EXAMPLE APP +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # param field input placeholder + placeholder: 'Please Input Port' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 50 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 用户密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + # required-true or false + required: false + # field-param field key + - field: method + # name-param field display i18n name + name: + zh-CN: 请求方式 + en-US: Method + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: GET + value: GET + - label: POST + value: POST + - label: PUT + value: PUT + - label: DELETE + value: DELETE + # field-param field key + - field: headers + # name-param field display i18n name + name: + zh-CN: 请求Headers + en-US: Headers + # type-param field type(key-value mapping the html key-value input tags) + type: key-value + # required-true or false + required: false + # when type is key-value, use keyAlias to config key alias name + keyAlias: Header Name + # when type is key-value, use valueAlias to config value alias name + valueAlias: Header Value +# collect metrics config list +metrics: + # metrics - cpu + - name: cpu + # metrics name i18n label + i18n: + zh-CN: CPU 信息 + en-US: CPU Info + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, i18n-metric name i18n label, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Host Name + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: cores + type: 0 + i18n: + zh-CN: 核数 + en-US: Cores + - field: waitTime + type: 0 + unit: s + i18n: + zh-CN: 主机名称 + en-US: Host Name + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /metrics/cpu + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: false + # http request header content + headers: + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + param1: param1 + param2: param2 + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$' + + - name: memory + i18n: + zh-CN: 内存信息 + en-US: Memory Info + priority: 1 + fields: + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Hostname + - field: total + type: 0 + unit: kb + i18n: + zh-CN: 总量 + en-US: Total + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: speed + type: 0 + i18n: + zh-CN: 速率 + en-US: Speed + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /metrics/memory + method: GET + headers: + apiVersion: v1 + params: + param1: param1 + param2: param2 + authorization: + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + parseType: default +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jdbc.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jdbc.md new file mode 100644 index 00000000000..67f24e840a0 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jdbc.md @@ -0,0 +1,245 @@ +--- +id: extend-jdbc +title: JDBC协议自定义监控 +sidebar_label: JDBC协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用JDBC(目前支持mysql,mariadb,postgresql,sqlserver)自定义指标监控。 +> JDBC协议自定义监控可以让我们很方便的通过写SQL查询语句就能监控到我们想监控的指标 + +### JDBC协议采集流程 + +【**系统直连MYSQL**】->【**运行SQL查询语句**】->【**响应数据解析:oneRow, multiRow, columns**】->【**指标数据提取**】 + +由流程可见,我们自定义一个JDBC协议的监控类型,需要配置JDBC请求参数,配置获取哪些指标,配置查询SQL语句。 + +### 数据解析方式 + +SQL查询回来的数据字段和我们需要的指标映射,就能获取对应的指标数据,目前映射解析方式有三种:oneRow, multiRow, columns + +#### **oneRow** + +> 查询一行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: +查询的指标字段为:one tow three four +查询SQL:select one, tow, three, four from book limit 1; +这里指标字段就能和响应数据一一映射为一行采集数据。 + +#### **multiRow** + +> 查询多行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: +查询的指标字段为:one tow three four +查询SQL:select one, tow, three, four from book; +这里指标字段就能和响应数据一一映射为多行采集数据。 + +#### **columns** + +> 采集一行指标数据, 通过查询的两列数据(key-value),key和查询的字段匹配,value为查询字段的值 + +例如: +查询字段:one tow three four +查询SQL:select key, value from book; +SQL响应数据: + +| key | value | +|-------|-------| +| one | 243 | +| two | 435 | +| three | 332 | +| four | 643 | + +这里指标字段就能和响应数据的key映射,获取对应的value为其采集监控数据。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_sql的自定义监控类型,其使用JDBC协议采集指标数据。 + +```yaml +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: db +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_sql +name: + zh-CN: 模拟MYSQL应用类型 + en-US: MYSQL EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + placeholder: '请输入端口' + - field: database + name: + zh-CN: 数据库名称 + en-US: Database + type: text + required: false + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: url + name: + zh-CN: Url + en-US: Url + type: text + required: false +# 采集指标配置列表 +metrics: + - name: basic + # 指标调度优先级(0-127)越小优先级越高,优先级低的指标会等优先级高的指标采集完成后才会被调度,相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # 具体监控指标列表 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: version + type: 1 + label: true + - field: port + type: 1 + - field: datadir + type: 1 + - field: max_connections + type: 0 + # (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - version + - version_compile_os + - version_compile_machine + - port + - datadir + - max_connections + # (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - port=port + - datadir=datadir + - max_connections=max_connections + - version=version+"_"+version_compile_os+"_"+version_compile_machine + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global variables where Variable_name like 'version%' or Variable_name = 'max_connections' or Variable_name = 'datadir' or Variable_name = 'port'; + url: ^_^url^_^ + + - name: status + priority: 1 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: threads_created + type: 0 + - field: threads_connected + type: 0 + - field: threads_cached + type: 0 + - field: threads_running + type: 0 + # (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - threads_created + - threads_connected + - threads_cached + - threads_running + # (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - threads_created=threads_created + - threads_connected=threads_connected + - threads_cached=threads_cached + - threads_running=threads_running + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'thread%' or Variable_name = 'com_commit' or Variable_name = 'com_rollback' or Variable_name = 'questions' or Variable_name = 'uptime'; + url: ^_^url^_^ + + - name: innodb + priority: 2 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: innodb_data_reads + type: 0 + unit: 次数 + - field: innodb_data_writes + type: 0 + unit: 次数 + - field: innodb_data_read + type: 0 + unit: kb + - field: innodb_data_written + type: 0 + unit: kb + protocol: jdbc + jdbc: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL查询方式: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'innodb%'; + url: ^_^url^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jmx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jmx.md new file mode 100644 index 00000000000..d0b658de81e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-jmx.md @@ -0,0 +1,238 @@ +--- +id: extend-jmx +title: JMX协议自定义监控 +sidebar_label: JMX协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用JMX协议自定义指标监控。 +> JMX协议自定义监控可以让我们很方便的通过配置 JMX Mbean Object 就能监控采集到我们想监控的 Mbean 指标 + +### JMX协议采集流程 + +【**对端JAVA应用暴露JMX服务**】->【**HertzBeat直连对端JMX服务**】->【**获取配置的 Mbean Object 数据**】->【**指标数据提取**】 + +由流程可见,我们自定义一个JMX协议的监控类型,需要配置JMX请求参数,配置获取哪些指标,配置查询Object信息。 + +### 数据解析方式 + +通过配置监控模板YML的指标`field`, `aliasFields`, `jmx` 协议的 `objectName` 来和对端系统暴露的 `Mbean`对象信息映射解析。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下监控模板的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为 `example_jvm` 的自定义监控类型,其使用JMX协议采集指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: service +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: example_jvm +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: 自定义JVM虚拟机 + en-US: CUSTOM JVM +# Input params define for monitoring(render web ui by the definition) +# 监控所需输入参数定义(根据定义渲染页面UI) +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 端口默认值 + defaultValue: 9999 + # field-param field key + # field-变量字段标识符 + - field: url + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: JMX URL + en-US: JMX URL + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + # param field input placeholder + # 参数输入框提示信息 + placeholder: 'service:jmx:rmi:///jndi/rmi://host:port/jmxrmi' + # field-param field key + # field-变量字段标识符 + - field: username + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 50 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + # field-param field key + # field-变量字段标识符 + - field: password + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 密码 + en-US: Password + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: password + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - basic + # 监控指标 - basic + - name: basic + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), label-是否是指标集合唯一标识符字段 + - field: VmName + type: 1 + - field: VmVendor + type: 1 + - field: VmVersion + type: 1 + - field: Uptime + type: 0 + unit: ms + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 用于监控的协议,例: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: jmx + # the config content when protocol is jmx + jmx: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + # jmx mbean object name + # jmx mbean 对象名称 + objectName: java.lang:type=Runtime + url: ^_^url^_^ + + - name: memory_pool + priority: 1 + fields: + - field: name + type: 1 + label: true + - field: committed + type: 0 + unit: MB + - field: init + type: 0 + unit: MB + - field: max + type: 0 + unit: MB + - field: used + type: 0 + unit: MB + units: + - committed=B->MB + - init=B->MB + - max=B->MB + - used=B->MB + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + # (可选)监控指标别名, 做为中间字段与采集数据字段和指标字段映射转换 + aliasFields: + - Name + - Usage->committed + - Usage->init + - Usage->max + - Usage->used + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # (可选)指标映射转换计算表达式,与上面的别名一起作用,计算出最终需要的指标值 + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - name=Name + - committed=Usage->committed + - init=Usage->init + - max=Usage->max + - used=Usage->used + protocol: jmx + jmx: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + objectName: java.lang:type=MemoryPool,name=* + url: ^_^url^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ngql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ngql.md new file mode 100644 index 00000000000..08e37f4111b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ngql.md @@ -0,0 +1,174 @@ +--- +id: extend-ngql +title: NQGL自定义监控 +sidebar_label: NGQL自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用NGQL自定义指标监控。 +> NGQL自定义监控可以让我们很方便的使用NGQL或者OpenCypher从NebulaGraph图数据库中查询指标数据,支持NebulaGraph 3.X版本。 + +### 数据解析方式 + +NGQL查询回来的数据字段和我们需要的指标映射,就能获取对应的指标数据,目前映射解析方式有四种: filterCount, oneRow, multiRow, columns + +#### **filterCount** + +> 对查询返回的结果按照指定字段进行过滤后,统计数量,通常用于 `SHOW ...` 语句中,如果可以使用NGQL语句直接返回数量的,建议使用NGQL语句统计数量。 +> commands字段语法格式: aliasField#NGQL#filterName#filterValue +> `aliasField`: 对应监控模板中的`aliasFields`中的值 +> `NGQL`: 查询语句 +> `filterName`: 过滤属性名称(可选) +> `filterValue`: 过滤属性值(可选) + +例如: + +- online_meta_count#SHOW HOSTS META#Status#ONLINE +对 `SHOW HOSTS META` 返回的结果中统计滤Status==ONLINE的数量 +- online_meta_count#SHOW HOSTS META## +统计 `SHOW HOSTS META` 返回的行数 + +#### **oneRow** + +> 查询一行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: + +- 查询的指标字段为:a,b +- 查询NGQL:match (v:metrics) return v.metrics.a as a,v.metrics.b as b; + +这里指标字段就能和响应数据一一映射为一行采集数据。 + +注意事项: + +- 使用 `oneRow` 方式时单条查询语句返回多行结果时只会使用第一行结果映射到指标字段; +- 当 `commands` 字段包含两条及两条以上查询语句时,如果多条查询语句返回的字段相同时,后一条语句返回的字段会覆盖前一条; +- 定义 `commands` 时建议使用 limit 语句限制返回结果集的行数; + +#### **multiRow** + +> 查询多行数据, 通过查询返回结果集的列名称,和查询的字段映射 + +例如: + +- 查询的指标字段为:a,b +- 查询NGQL:match (v:metrics) return v.metrics.a as a,v.metrics.b as b; +这里指标字段就能和响应数据一一映射为多行采集数据。 + +注意事项: + +- 使用 `multiRow` 方式时,`commands` 字段只能包含一条查询语句 + +#### **columns** + +> 采集一行指标数据, 通过查询的两列数据(key-value),key和查询的字段匹配,value为查询字段的值 + +注意事项: + +- 使用 `columns` 方式时,会默认使用结果集的前两列映射采集数据,第一列数据对应指标名称,第二列对应指标值; +- 当 `commands` 字段包含两条及两条以上查询语句时,如果多条查询语句返回的第一列数据有重复,会使用保留最后一条的结果; + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_ngql的自定义监控类型,其使用NGQL采集指标数据。 + +```yaml +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: db +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_ngql +name: + zh-CN: NGQL自定义监控应用 + en-US: NGQL Custom APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 这个部分通常不用修改 +params: + # field-param field key + - field: host + name: + zh-CN: 目标Host + en-US: Target Host + type: host + required: true + - field: graphPort + name: + zh-CN: graph端口 + en-US: graphPort + type: number + range: '[0,65535]' + required: true + defaultValue: 9669 + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true + - field: spaceName + name: + zh-CN: 图空间 + en-US: Space Name + type: text + required: false + - field: timeout + name: + zh-CN: 连接超时时间(ms) + en-US: Connect Timeout(ms) + type: number + unit: ms + range: '[0,100000]' + required: true + defaultValue: 6000 +# 采集指标配置列表 +metrics: + - name: base_info + i18n: + zh-CN: 节点统计 + en-US: Vertex statistics + priority: 0 + fields: + - field: tag1 + type: 1 + i18n: + zh-CN: tag1 + en-US: tag1 + - field: tag1 + type: 1 + i18n: + zh-CN: tag2 + en-US: tag2 + aliasFields: + - tag1 + - tag2 + protocol: ngql + ngql: + host: ^_^host^_^ + username: ^_^username^_^ + password: ^_^password^_^ + port: ^_^graphPort^_^ + spaceName: ^_^spaceName^_^ + parseType: columns + # 定义采集数据使用的查询语句 + commands: + - match (v:tag1) return "tag1" as name ,count(v) as cnt + - match (v:tag2) return "tag2" as name ,count(v) as cnt + timeout: ^_^timeout^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-point.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-point.md new file mode 100644 index 00000000000..d80b459b603 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-point.md @@ -0,0 +1,185 @@ +--- +id: extend-point +title: 自定义监控 +sidebar_label: 自定义监控 +--- + +> HertzBeat拥有自定义监控能力,您只需配置监控模板YML就能适配一款自定义的监控类型。 +> 目前自定义监控支持[HTTP协议](extend-http),[JDBC协议](extend-jdbc),[SSH协议](extend-ssh),[JMX协议](extend-jmx),[SNMP协议](extend-snmp),后续会支持更多通用协议。 + +### 自定义流程 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +### 自定义监控指标刷新时间 + +现在,HertzBeat支持为每组监控指标设置不同的刷新时间。您可以在监控模板的 `metrics` 部分通过设置 `interval` 字段来实现,单位为秒。若不进行设置,则使用创建监控时设置的默认刷新时间。 + +------- + +### 监控模板YML + +**HertzBeat的设计是一个监控模板对应一个监控类型,所有监控类型都是由监控模板来定义的**。 + +> 监控模板YML定义了 *监控类型的名称(国际化), 配置参数映射, 采集指标信息, 采集协议配置* 等。 + +下面使用样例详细介绍下这监控模板YML的配置用法。 + +样例:自定义一个 `app` 名称为 `example2` 的自定义监控类型,其使用HTTP协议采集指标数据。 + +[监控模板] -> [新增监控类型] -> [右边配置如下监控模板YML] -> [保存并应用] + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: example2 +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: 模拟网站监测 + en-US: EXAMPLE WEBSITE +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# 监控所需输入参数定义(根据定义渲染页面UI) +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + # field-变量字段标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 默认值 + defaultValue: 80 + # field-param field key + # field-变量字段标识符 + - field: uri + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 相对路径 + en-US: URI + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 200 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # 参数输入框提示信息 + # param field input placeholder + placeholder: 'Website uri path(no ip port) EG:/console' + # field-param field key + # field-变量字段标识符 + - field: ssl + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 启用HTTPS + en-US: HTTPS + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: boolean + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input tag) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide param-true or false + # 是否隐藏字段 true or false + hide: true + +metrics: + # metrics - summary, inner monitoring metrics (responseTime - response time, keyword - number of keywords) + # 监控指标 - summary, 内置监控指标有 (responseTime - 响应时间, keyword - 关键字数量) + - name: summary + # 指标调度优先级(0-127)越小优先级越高,优先级低的指标会等优先级高的指标采集完成后才会被调度,相同优先级的指标会并行调度采集 + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # refresh interval for this metrics group + # 该指标组刷新时间 + interval: 10 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), label-是否是指标集合唯一标识符字段 + - field: responseTime + type: 0 + unit: ms + - field: keyword + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: ^_^uri^_^ + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: ^_^ssl^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + # http 响应数据解析方式: default-系统规则, jsonPath-jsonPath脚本, website-网站可用性指标监控, prometheus-Prometheus数据规则 + parseType: website + +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-push.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-push.md new file mode 100644 index 00000000000..267881c8ca4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-push.md @@ -0,0 +1,26 @@ +--- +id: extend-push +title: Push Style Custom Monitoring +sidebar_label: Push Style Custom Monitoring +--- + +> 推送方式监控是一种特殊的监控,允许用户配置数据格式并编写代码将指标推送到 Hertzbeat。 +> 下面我们将介绍如何使用这一功能。 + +### 推送方式监控的采集流程 + +【用户开始推送数据】->【HertzBeat推送模块暂存数据】->【HertzBeat采集模块定期采集数据】 + +### 数据解析方式 + +HertzBeat会使用用户添加新监控时配置的格式来解析数据。 + +### 创建监控步骤 + +HertzBeat页面 -> 应用服务监控 -> 推送方式监控 -> 新建推送方式监视器 -> 设置推送模块主机(Hertzbeat服务器ip,通常为127.0.0.1或localhost) -> 设置推送模块端口(hertzbeat服务器端口,通常为1157) -> 配置数据字段(单位:字符串表示,类型:0表示数字/1表示字符串)-> 结束 + +--- + +### 监控配置示例 + +![HertzBeat](/img/docs/advanced/extend-push-example-1.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-snmp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-snmp.md new file mode 100644 index 00000000000..fc368828b90 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-snmp.md @@ -0,0 +1,209 @@ +--- +id: extend-snmp +title: SNMP协议自定义监控 +sidebar_label: SNMP协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用 SNMP 协议自定义指标监控。 +> SNMP 协议自定义监控可以让我们很方便的通过配置 Mib OID信息 就能监控采集到我们想监控的OID指标 + +### SNMP协议采集流程 + +【**对端开启SNMP服务**】->【**HertzBeat直连对端SNMP服务**】->【**根据配置抓取对端OID指标信息**】->【**指标数据提取**】 + +由流程可见,我们自定义一个SNMP协议的监控类型,需要配置SNMP请求参数,配置获取哪些指标,配置查询OID信息。 + +### 数据解析方式 + +通过配置监控模板YML的指标`field`, `aliasFields`, `snmp` 协议下的 `oids`来抓取对端指定的数据并解析映射。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为 example_windows 的自定义监控类型,其使用 SNMP 协议采集指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring mid-middleware custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: os +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: windows +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Windows操作系统 + en-US: OS Windows +# 监控所需输入参数定义(根据定义渲染页面UI) +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + # field-变量字段标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 默认值 + defaultValue: 161 + # field-param field key + # field-变量字段标识符 + - field: version + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: SNMP 版本 + en-US: SNMP Version + # type-param field type(radio mapping the html radio tag) + # type-当type为radio时,前端用radio展示开关 + type: radio + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + # 当type为radio单选框, checkbox复选框时, option表示可选项值列表 {name1:value1,name2:value2} + options: + - label: SNMPv1 + value: 0 + - label: SNMPv2c + value: 1 + # field-param field key + # field-变量字段标识符 + - field: community + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: SNMP 团体字 + en-US: SNMP Community + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: text + # when type is text, use limit to limit string length + # 当type为text时,用limit表示字符串限制大小 + limit: 100 + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # 参数输入框提示信息 + # param field input placeholder + placeholder: 'Snmp community for v1 v2c' + # field-param field key + # field-变量字段标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,100000]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # hide-是否隐藏此参数将其放入高级设置中 + hide: true + # default value + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - system + # 监控指标 - system + - name: system + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + # field-指标名称, type-指标类型(0-number数字,1-string字符串), unit-指标单位('%','ms','MB'), label-是否是指标集合唯一标识符字段 + - field: name + type: 1 + - field: descr + type: 1 + - field: uptime + type: 1 + - field: numUsers + type: 0 + - field: services + type: 0 + - field: processes + type: 0 + - field: responseTime + type: 0 + unit: ms + - field: location + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: snmp + # the config content when protocol is snmp + snmp: + # server host: ipv4 ipv6 domain + host: ^_^host^_^ + # server port + port: ^_^port^_^ + # snmp connect timeout + timeout: ^_^timeout^_^ + # snmp community + # snmp 团体字 + community: ^_^community^_^ + # snmp version + version: ^_^version^_^ + # snmp operation: get, walk + operation: get + # metrics oids: metric_name - oid_value + oids: + name: 1.3.6.1.2.1.1.5.0 + descr: 1.3.6.1.2.1.1.1.0 + uptime: 1.3.6.1.2.1.25.1.1.0 + numUsers: 1.3.6.1.2.1.25.1.5.0 + services: 1.3.6.1.2.1.1.7.0 + processes: 1.3.6.1.2.1.25.1.6.0 + location: 1.3.6.1.2.1.1.6.0 +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ssh.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ssh.md new file mode 100644 index 00000000000..9233de5c57a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-ssh.md @@ -0,0 +1,218 @@ +--- +id: extend-ssh +title: SSH协议自定义监控 +sidebar_label: SSH协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用SSH协议自定义指标监控。 +> SSH协议自定义监控可以让我们很方便的通过写sh命令脚本就能监控采集到我们想监控的Linux指标 + +### SSH协议采集流程 + +【**系统直连Linux**】->【**运行SHELL命令脚本语句**】->【**响应数据解析:oneRow, multiRow**】->【**指标数据提取**】 + +由流程可见,我们自定义一个SSH协议的监控类型,需要配置SSH请求参数,配置获取哪些指标,配置查询脚本语句。 + +### 数据解析方式 + +SHELL脚本查询回来的数据字段和我们需要的指标映射,就能获取对应的指标数据,目前映射解析方式有两种:oneRow, multiRow,能满足绝大部分指标需求。 + +#### **oneRow** + +> 查询出一列数据, 通过查询返回结果集的字段值(一行一个值)与字段映射 + +例如: +需要查询Linux的指标 hostname-主机名称,uptime-启动时间 +主机名称原始查询命令:`hostname` +启动时间原始查询命令:`uptime | awk -F "," '{print $1}'` +则在hertzbeat对应的这两个指标的查询脚本为(用`;`将其连接到一起): +`hostname; uptime | awk -F "," '{print $1}'` +终端响应的数据为: + +```shell +tombook +14:00:15 up 72 days +``` + +则最后采集到的指标数据一一映射为: +hostname值为 `tombook` +uptime值为 `14:00:15 up 72 days` + +这里指标字段就能和响应数据一一映射为一行采集数据。 + +#### **multiRow** + +> 查询多行数据, 通过查询返回结果集的列名称,和查询的指标字段映射 + +例如: +查询的Linux内存相关指标字段:total-内存总量 used-已使用内存 free-空闲内存 buff-cache-缓存大小 available-可用内存 +内存指标原始查询命令为:`free -m`, 控制台响应: + +```shell + total used free shared buff/cache available +Mem: 7962 4065 333 1 3562 3593 +Swap: 8191 33 8158 +``` + +在hertzbeat中multiRow格式解析需要响应数据列名称和指标值一一映射,则对应的查询SHELL脚本为: +`free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}'` +控制台响应为: + +```shell +total used free buff_cache available +7962 4066 331 3564 3592 +``` + +这里指标字段就能和响应数据一一映射为采集数据。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为example_linux的自定义监控类型,其使用SSH协议采集指标数据。 + +```yaml +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: os +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example_linux +name: + zh-CN: 模拟LINUX应用类型 + en-US: LINUX EXAMPLE APP +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 22 + placeholder: '请输入端口' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true +# collect metrics config list +# 采集指标配置列表 +metrics: + # 第一个监控指标 basic + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: basic + # 指标调度优先级(0-127)越小优先级越高,优先级低的指标会等优先级高的指标采集完成后才会被调度,相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # 具体监控指标列表 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: hostname + type: 1 + label: true + - field: version + type: 1 + - field: uptime + type: 1 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: (uname -r ; hostname ; uptime | awk -F "," '{print $1}' | sed "s/ //g") | sed ":a;N;s/\n/^/g;ta" | awk -F '^' 'BEGIN{print "version hostname uptime"} {print $1, $2, $3}' + # 响应数据解析方式:oneRow, multiRow + parseType: multiRow + + - name: cpu + priority: 1 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: info + type: 1 + - field: cores + type: 0 + unit: 核数 + - field: interrupt + type: 0 + unit: 个数 + - field: load + type: 1 + - field: context_switch + type: 0 + unit: 个数 + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: "LANG=C lscpu | awk -F: '/Model name/ {print $2}';awk '/processor/{core++} END{print core}' /proc/cpuinfo;uptime | sed 's/,/ /g' | awk '{for(i=NF-2;i<=NF;i++)print $i }' | xargs;vmstat 1 1 | awk 'NR==3{print $11}';vmstat 1 1 | awk 'NR==3{print $12}'" + parseType: oneRow + + - name: memory + priority: 2 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: total + type: 0 + unit: Mb + - field: used + type: 0 + unit: Mb + - field: free + type: 0 + unit: Mb + - field: buff_cache + type: 0 + unit: Mb + - field: available + type: 0 + unit: Mb + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # 当protocol为http协议时具体的采集配置 + ssh: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}' + parseType: multiRow +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-telnet.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-telnet.md new file mode 100644 index 00000000000..de1e0573eee --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-telnet.md @@ -0,0 +1,299 @@ +--- +id: extend-telnet +title: Telnet协议自定义监控 +sidebar_label: Telnet协议自定义监控 +--- + +> 从[自定义监控](extend-point)了解熟悉了怎么自定义类型,指标,协议等,这里我们来详细介绍下用Telnet协议自定义指标监控。 +> 使用 Telnet 协议自定义监控可以让我们通过编写 Telnet 命令脚本来监控和采集我们想要监控的 Linux 指标 + +### Telnet协议采集流程 + +【**系统直连Linux**】->【**运行TELNET命令脚本语句**】->【**响应数据解析**】->【**指标数据提取**】 + +由流程可见,我们自定义一个Telnet协议的监控类型,需要配置Telnet请求参数,配置获取哪些指标,配置查询脚本语句。 + +### 数据解析方式 + +通过配置监控模板YML的指标field, aliasFields, telnet 协议下的获取数据映射。 + +### 自定义步骤 + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** -> **点击保存应用** -> **使用新监控类型添加监控** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +下面详细介绍下文件的配置用法,请注意看使用注释。 + +### 监控模板YML + +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数结构定义(前端页面根据配置自动渲染UI), 采集指标信息, 采集协议配置* 等。 +> 即我们通过自定义这个YML,配置定义什么监控类型,前端页面需要输入什么参数,采集哪些性能指标,通过什么协议去采集。 + +样例:自定义一个名称为zookeeper的自定义监控类型,其使用telnet协议采集指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: mid +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: zookeeper +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Zookeeper服务 + en-US: Zookeeper Server +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-字段名称标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # default + # 默认值 + defaultValue: 2181 + # param field input placeholder + # 参数输入框提示信息 + placeholder: '请输入端口' + # field-param field key + # field-字段名称标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 查询超时时间(ms) + en-US: Query Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # 隐藏是隐藏这个字段,并把它放在高级布局 + hide: true + # default + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - conf + # 第一个监控指标 conf + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: conf + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: clientPort + type: 0 + i18n: + zh-CN: 客户端端口 + en-US: Client Port + - field: dataDir + type: 1 + i18n: + zh-CN: 数据目录 + en-US: Data Directory + - field: dataDirSize + type: 0 + unit: kb + i18n: + zh-CN: 数据目录大小 + en-US: Data Directory Size + - field: dataLogDir + type: 1 + i18n: + zh-CN: 日志目录 + en-US: Data Log Directory + - field: dataLogSize + type: 0 + unit: kb + i18n: + zh-CN: 日志目录大小 + en-US: Data Log Size + - field: tickTime + type: 0 + unit: ms + i18n: + zh-CN: 心跳间隔时间 + en-US: Tick Time + - field: maxClientCnxns + type: 1 + i18n: + zh-CN: 最大客户端连接数 + en-US: Max Client Connections + - field: minSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最小会话超时 + en-US: Min Session Timeout + - field: maxSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最大会话超时 + en-US: Max Session Timeout + - field: serverId + type: 0 + i18n: + zh-CN: 服务器ID + en-US: Server ID + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: telnet + # the config content when protocol is telnet + # 当protocol为telnet协议时具体的采集配置 + telnet: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + # timeout + # 超时时间 + timeout: ^_^timeout^_^ + # telnet instruction + # telnet指令 + cmd: conf + + - name: stats + priority: 1 + fields: + - field: zk_version + type: 1 + i18n: + zh-CN: ZooKeeper版本 + en-US: ZooKeeper Version + - field: zk_server_state + type: 1 + i18n: + zh-CN: 服务器状态 + en-US: Server State + - field: zk_num_alive_connections + type: 0 + unit: 个 + i18n: + zh-CN: 存活连接数 + en-US: Number of Alive Connections + - field: zk_avg_latency + type: 0 + unit: ms + i18n: + zh-CN: 平均延迟 + en-US: Average Latency + - field: zk_outstanding_requests + type: 0 + unit: 个 + i18n: + zh-CN: 未完成请求数 + en-US: Outstanding Requests + - field: zk_znode_count + type: 0 + unit: 个 + i18n: + zh-CN: ZNode数量 + en-US: ZNode Count + - field: zk_packets_sent + type: 0 + unit: 个 + i18n: + zh-CN: 发送数据包数 + en-US: Packets Sent + - field: zk_packets_received + type: 0 + unit: 个 + i18n: + zh-CN: 接收数据包数 + en-US: Packets Received + - field: zk_watch_count + type: 0 + unit: 个 + i18n: + zh-CN: Watch数量 + en-US: Watch Count + - field: zk_max_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 最大文件描述符数量 + en-US: Max File Descriptor Count + - field: zk_approximate_data_size + type: 0 + unit: kb + i18n: + zh-CN: 大致数据大小 + en-US: Approximate Data Size + - field: zk_open_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 打开的文件描述符数量 + en-US: Open File Descriptor Count + - field: zk_max_latency + type: 0 + unit: ms + i18n: + zh-CN: 最大延迟 + en-US: Max Latency + - field: zk_ephemerals_count + type: 0 + unit: 个 + i18n: + zh-CN: 临时节点数量 + en-US: Ephemerals Count + - field: zk_min_latency + type: 0 + unit: ms + i18n: + zh-CN: 最小延迟 + en-US: Min Latency + protocol: telnet + telnet: + host: ^_^host^_^ + port: ^_^port^_^ + timeout: ^_^timeout^_^ + cmd: mntr + + +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-tutorial.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-tutorial.md new file mode 100644 index 00000000000..45e73dd0e92 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/advanced/extend-tutorial.md @@ -0,0 +1,252 @@ +--- +id: extend-tutorial +title: 自定义适配一款基于HTTP协议的新监控类型 +sidebar_label: 教程案例 +--- + +通过此教程我们一步一步描述如何在 Apache HertzBeat™ 系统下自定义新增适配一款基于 http 协议的监控类型。 + +阅读此教程前我们希望您已经从[自定义监控](extend-point)和[http协议自定义](extend-http)了解熟悉了怎么自定义类型,指标,协议等。 + +### HTTP协议解析通用响应结构体,获取指标数据 + +> 很多场景我们需要对提供的 HTTP API 接口进行监控,获取接口返回的指标值。这篇文章我们通过http自定义协议来解析我们常见的http接口响应结构,获取返回体中的字段作为指标数据。 + +```json +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` + +如上,通常我们的后台API接口会设计这这样一个通用返回。hertzbeat系统的后台也是如此,我们今天就用hertzbeat的 API 做样例,新增适配一款新的监控类型 **hertzbeat**,监控采集它的系统摘要统计API +`http://localhost:1157/api/summary`, 其响应数据为: + +```json +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**我们这次获取其app下的 `category`,`app`,`status`,`size`,`availableSize`等指标数据。** + +### 新增配置监控模板YML + +**HertzBeat页面** -> **监控模板菜单** -> **新增监控类型** -> **配置自定义监控模板YML** + +定义我们在页面上需要输入哪些参数,一般的HTTP协议参数主要有ip, port, headers, params, uri, 账户密码等,我们直接复用 `api`监控模板 里面的参数定义内容,删除其中的我们不需要输入的uri参数和keyword关键字等参数即可。 + +定义采集类型是啥,需要用哪种协议采集方式,采集的指标是啥,协议的配置参数等。我们直接复用 `api`监控模板 里面的定义内容,修改为我们当前的监控类型`hertzbeat`配置参数即可,如下:注意⚠️我们这次获取接口响应数据中的`category`,`app`,`status`,`size`,`availableSize`等字段作为指标数据。 + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +# 监控类型 eg: linux windows tomcat mysql aws... +app: hertzbeat +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat +# Input params define for monitoring(render web ui by the definition) +# 监控所需输入参数定义(根据定义渲染页面UI) +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-变量字段标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # required-是否是必输项 true-必填 false-可选 + required: true + # default value + # 端口默认值 + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标调度优先级(0-127)越小优先级越高,优先级低的指标会等优先级高的指标采集完成后才会被调度,相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, label-if is metrics label, unit-metric unit('%','ms','MB') + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk, 我们这里使用HTTP协议 + protocol: http + # the config content when protocol is http + # 当protocol为http协议时具体的采集配置 + http: + # http host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # http port + # 端口 + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + # url请求接口路径,我们这里不需要输入传参,写死为 /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + # 请求方式 GET POST PUT DELETE PATCH,写死为 GET + method: GET + # if enabled https, default value is false + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + # http auth + # 认证 + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控,我们这里使用jsonpath来解析响应数据 + parseType: jsonPath + parseScript: '$.data.apps.*' +``` + +**点击保存并应用。我们可以看到系统页面的自定义监控菜单已经多了一个`hertzbeat`监控类型了。** + +![HertzBeat](/img/docs/advanced/extend-http-example-1.png) + +### 页面添加对`hertzbeat`监控类型的监控 + +> 我们点击新增 `HertzBeat监控系统`,配置监控IP,端口,采集周期,高级设置里的账户密码等, 点击确定添加监控。 + +![HertzBeat](/img/docs/advanced/extend-http-example-2.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-3.png) + +> 过一定时间(取决于采集周期)我们就可以在监控详情看到具体的指标数据和历史图表啦! + +![HertzBeat](/img/docs/advanced/extend-http-example-4.png) + +### 设置阈值告警通知 + +> 接下来我们就可以正常设置阈值,告警触发后可以在告警中心查看,也可以新增接收人,设置告警通知等,Have Fun!!! + +---- + +#### 完 + +HTTP协议的自定义监控的实践就到这里,HTTP协议还带其他参数 `headers,params` 等,我们可以像用postman一样去定义它,可玩性也非常高! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_committer.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_committer.md new file mode 100644 index 00000000000..aa7928afa7e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_committer.md @@ -0,0 +1,58 @@ +--- +id: 'become_committer' +title: '成为Committer' +sidebar_position: 2 +--- + + + +## 成为 Apache HertzBeat™ 的 Committer + +任何支持社区并在 CoPDoC 领域中工作的人都可以成为 Apache HertzBeat™ 的 Committer。CoPDoC 是 ASF 的缩写,用来描述我们如何不仅仅通过代码来认识到您的贡献。 + +- **Community** - 你可以通过我们的邮件列表、问题追踪器、讨论页面与社区成员互动,并分享愿景和知识。 +- **Project** - 需要明确的愿景和共识。 +- **Documentation** - 没有它,内容只会停留在作者的头脑中。 +- **Code** - 没有代码,讨论就毫无意义。 + +Apache HertzBeat™ 社区努力追求基于功绩的原则。因此,一旦有人在 CoPDoC 的任何领域有了足够的贡献,他们就可以成为 Committer 的候选人,最终被投票选为 HertzBeat 的 Committer。成为 Apache HertzBeat™ 的 Committer 并不一定意味着你必须使用你的提交权限向代码库提交代码;它意味着你致力于 HertzBeat 项目并为我们社区的成功做出了积极的贡献。 + +## Committer 的要求 + +没有成为 Committer 或 PMC 成员的严格规则。新的 Committer 的候选人通常是积极的贡献者和社区成员。但是,如果能稍微明确一些规则,就可以在一定程度上消除贡献者的疑虑,使社区更加透明、合理和公平。 + +### 持续的贡献 + +Committer 的候选人应该持续参与并为 HertzBeat 做出大量的贡献(例如修复漏洞、添加新功能、编写文档、维护问题板、代码审查或回答社区问题)。 + +- 3+ months 的活动和参与。 +- 20+ pr 的代码,文档,测试等贡献。 + +### 贡献的质量 + +- 对项目有深入的理解。 +- 经过充分测试、良好设计、遵循 Apache HertzBeat™ 的编码标准,及简单的修复补丁。 +- 井井有条的面向用户的详细文档。 + +### 社区参与 + +- 在开发邮件列表上保持积极、礼貌与尊重,并帮助指导新的贡献者和用户。 +- 在项目维护的问题跟踪器上积极、有礼貌与尊重。 +- 对于拉取请求审查保持积极、有礼貌与尊重。 +- 即使存在分歧,也要以专业和外交的态度参与技术路线图的讨论。 +- 通过撰写文章或举办活动来推广项目。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_pmc_member.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_pmc_member.md new file mode 100644 index 00000000000..3829bf75b19 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/become_pmc_member.md @@ -0,0 +1,57 @@ +--- +id: 'become_pmc_member' +title: '成为PMC member' +sidebar_position: 3 +--- + + + +## 成为 Apache HertzBeat™ 的 PMC 成员 + +任何支持社区并在 CoPDoC 领域中工作的人都可以成为 Apache HertzBeat™ 的PMC 成员。CoPDoC 是 ASF 的缩写,用来描述我们如何不仅仅通过代码来认识到您的贡献。 + +- **Community** - 您可以通过我们的邮件列表、问题追踪器、讨论页面与社区成员互动,并分享愿景和知识。 +- **Project** - 需要明确的愿景和共识。 +- **Documentation** - 没有它,内容只会停留在作者的头脑中。 +- **Code** - 没有代码,讨论就毫无意义。 + +Apache HertzBeat™ 社区努力追求基于功绩的原则。因此,一旦有人在 CoPDoC 的任何领域有了足够的贡献,他们就可以成为 PMC 成员资格的候选人,最终被投票选为 HertzBeat 的 PMC 成员。成为 Apache HertzBeat™ 的 PMC 成员并不一定意味着您必须使用您的提交权限向代码库提交代码;它意味着您致力于 HertzBeat 项目并为我们社区的成功做出了积极的贡献。 + +## PMC 成员的要求 + +没有成为 Committer 或 PMC 成员的严格规则。新的 PMC 成员的候选人通常是积极的贡献者和社区成员。但是,如果能稍微明确一些规则,就可以在一定程度上消除贡献者的疑虑,使社区更加透明、合理和公平。 + +### 持续的贡献 + +PMC 成员的候选人应该持续参与并为 HertzBeat 做出大量的贡献(例如修复漏洞、添加新功能、编写文档、维护问题板、代码审查或回答社区问题)。 + +- 12+ months 的活动和参与。 + +### 贡献的质量 + +- 对项目有深入的理解。 +- 经过充分测试、良好设计、遵循 Apache HertzBeat™ 的编码标准,及简单的修复补丁。 +- 井井有条的面向用户的详细文档。 + +### 社区参与 + +- 在开发邮件列表上保持积极、礼貌与尊重,并帮助指导新的贡献者和用户。 +- 在项目维护的问题跟踪器上积极、有礼貌与尊重。 +- 对于拉取请求审查保持积极、有礼貌与尊重。 +- 即使存在分歧,也要以专业和外交的态度参与技术路线图的讨论。 +- 通过撰写文章或举办活动来推广项目。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/code-style-and-quality-guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/code-style-and-quality-guide.md new file mode 100644 index 00000000000..1c67ee891fb --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/code-style-and-quality-guide.md @@ -0,0 +1,650 @@ +--- +id: 'code_style_and_quality_guide' +title: '代码风格和质量指南' +sidebar_position: 3 +--- + + + +## 1 拉取请求与变更规则 + +1. `ISSUE`/`PR`(拉取请求) 的引导和命名 + + - 新建 `PR` 后需要在 `PR` 页面的 Github Development 按钮处关联已存在的对应 `ISSUE`(若无建议新建对应ISSUE) + + - 标题命名格式(英文,小写) + `[feature/bugfix/doc/improve/refactor/bug/cleanup] title` + +2. 添加描述信息 + + - 新建 `PR` 时请仔细描述此贡献,描述文档和代码同样重要。审阅者可以从描述中,而不仅仅是从代码中,了解问题和解决方案。 + - 勾选是否完成了对应的 Checklist。 +3. 建议一次 `PR` 只包含一个功能/一种修复/一类改进/一种重构/一次清理/一类文档等 +4. 提交消息(英文,小写,无特殊字符) + 消息的提交应遵循与 `PR` 类似的模式:`[feature/bugfix/doc/improve/refactor/bug/cleanup] title` + +## 2 代码检查样式 + +### 2.1 配置 Checkstyle + +1. 安装 Checkstyle-IDEA 插件. +2. 打开 Checkstyle 设置. 点击 **Settings** → **Tools** → **Checkstyle**。 +3. 设置 **Checkstyle version** 的版本为: **10.14.2**。 +4. 设置 **Scan scope** 为 **Only Java sources (including tests)**。 +5. 点击 **+** 按钮在 **Configuration** 部分打开一个对话框选择 checkstyle 配置文件。 + 1. 输入描述名称,比如:hertzbeat。 + 2. 选择 **Use a local checkstyle file**。 + 3. 设置 **File** 路径为: **script/checkstyle/checkstyle.xml**。 + 4. 选择 **Store relative to project location**。 + 5. 点击 **Next** → **Next** → **Finish**。 +6. 激活刚才的 **Checkstyle** 配置。 +7. 点击 **OK**。 + +- 后端代码规范 Maven 插件:`checkstyle` + 后端运行 `mvn checkstyle:checkstyle` + +- 前端代码格式化插件 `eslint` + 前端运行 `npm run lint:fix` + +### 2.2 文档样式检查 + +1. 安装`markdownlint-cli2`,运行`npm install markdownlint-cli2 --global` +2. 在项目中运行`markdownlint-cli2 "home/**/*.md"`,会执行Markdown文件格式自动检测。 +3. 在项目中运行`markdownlint-cli2 --fix "home/**/*.md"`,会执行Markdown文件格式自动格式化,以确保所有文档都符合规范。 + +> 提示: 修复只能修复部分问题,根据检查后的错误信息,手动调整。 + +错误码说明: + +| 错误代码 |说明 | +|---------------------------------------| ------------------------| +| **MD001 heading-increment** | 标题级别应一次只递增一个级别 | +| **MD003 heading-style** | 标题样式 | +| **MD004 ul-style** | 无序列表样式 | +| **MD005 list-indent** | 同一层级的列表项缩进不一致 | +| **MD007 ul-indent** | 无序列表缩进 | +| **MD009 no-trailing-spaces** | 行尾空格 | +| **MD010 no-hard-tabs** | 硬制表符 | +| **MD011 no-reversed-links** | 链接语法反转 | +| **MD012 no-multiple-blanks** | 多个连续空行 | +| **MD013 line-length** | 行长度 | +| **MD014 commands-show-output** | 命令前使用 `$` 符号但未显示输出 | +| **MD018 no-missing-space-atx** | ATX 样式标题符号后缺少空格 | +| **MD019 no-multiple-space-atx** | ATX 样式标题符号后有多个空格 | +| **MD020 no-missing-space-closed-atx** | 闭合 ATX 样式标题符号内部缺少空格 | +| **MD021 no-multiple-space-closed-atx** | 闭合 ATX 样式标题符号内部有多个空格 | +| **MD022 blanks-around-headings** | 标题周围应有空行 | +| **MD023 heading-start-left** | 标题必须从行首开始 | +| **MD024 no-duplicate-heading** | 存在多个内容相同的标题 | +| **MD025 single-title/single-h1** | 同一文档中有多个一级标题 | +| **MD026 no-trailing-punctuation** | 标题中有尾随标点符号 | +| **MD027 no-multiple-space-blockquote** | 引用符号后有多个空格 | +| **MD028 no-blanks-blockquote** | 引用块内有空行 | +| **MD029 ol-prefix** | 有序列表项前缀 | +| **MD030 list-marker-space** | 列表标记后的空格 | +| **MD031 blanks-around-fences** | 围栏代码块应被空行包围 | +| **MD032 blanks-around-lists** | 列表应被空行包围 | +| **MD033 no-inline-html** | 内联 HTML | +| **MD034 no-bare-urls** | 使用了裸露的 URL | +| **MD035 hr-style** | 水平分割线样式 | +| **MD036 no-emphasis-as-heading** | 不应使用强调样式代替标题 | +| **MD037 no-space-in-emphasis** | 强调标记内有空格 | +| **MD038 no-space-in-code** | 代码片段元素内有空格 | +| **MD039 no-space-in-links** | 链接文本内有空格 | +| **MD040 fenced-code-language** | 围栏代码块应指定语言 | +| **MD041 first-line-heading/first-line-h1** | 文件的第一行应为一级标题 | +| **MD042 no-empty-links** | 链接不可为空 | +| **MD043 required-headings** | 必须的标题结构 | +| **MD044 proper-names** | 专有名词应正确大写 | +| **MD045 no-alt-text** | 图片应有替代文字(alt 文本) | +| **MD046 code-block-style** | 代码块样式 | +| **MD047 single-trailing-newline** | 文件应以单个换行符结尾 | +| **MD048 code-fence-style** | 代码围栏样式 | +| **MD049 emphasis-style** | 强调样式 | +| **MD050 strong-style** | 粗体样式 | +| **MD051 link-fragments** | 链接片段应有效 | +| **MD052 reference-links-images** | 引用链接和图片应使用已定义的标签 | +| **MD053 link-image-reference-definitions** | 链接和图片引用定义应是必要的 | +| **MD054 link-image-style** | 链接和图片样式 | +| **MD055 table-pipe-style** | 表格管道样式 | +| **MD056 table-column-count** | 表格列数 | + +## 3 编程规范 + +### 3.1 命名风格 + +1. 优先为变量命名选择名词,这样更容易区分`变量`或`方法`。 + + ```java + Cache`` publicKeyCache; + ``` + +2. 变量的拼音缩写是禁止的(排除地名等名词),例如chengdu。 +3. 推荐的变量名以 `类型` 结尾。 + 对于 `Collection/List` 类型的变量,取 `xxxx` (复数表示多个元素)或以 `xxxList` (特定类型)结束。 + 对于 `map` 类型的变量,清晰地描述 `key` 和 `value`: + + ```java + Map idUserMap; + Map userIdNameMap; + ``` + +4. 通过其名称直观地知道变量的类型和含义。 + 方法名称应首先以动词开始,如下所示: + + ```java + void computeVcores(Object parameter1); + ``` + + > 注意:在 `Builder` 工具类中不必严格遵循这项规则。 + +### 3.2 常量变量定义 + +1. 多余的字符串应提取为常量 + + > 如果一个常量被硬编码两次或多次,请直接提取它为常量并更改相应的引用。 + > 通常,`log` 中的常量可以忽略提取。 + + - 负面示例: + + ```java + public static RestResponse success(Object data) { + RestResponse resp = new RestResponse(); + resp.put("status", "success"); + resp.put("code", ResponseCode.CODE_SUCCESS); + resp.put("data", data); + return resp; + } + + public static RestResponse error() { + RestResponse resp = new RestResponse(); + resp.put("status", "error"); + resp.put("code", ResponseCode.CODE_FAIL); + resp.put("data", null); + return resp; + } + ``` + + - 正面示例: + + > 字符串提取为常量引用。 + + ```java + public static final String STATUS = "status"; + public static final String CODE = "code"; + public static final String DATA = "data"; + + public static RestResponse success(Object data) { + RestResponse resp = new RestResponse(); + resp.put(STATUS, "success"); + resp.put(CODE, ResponseCode.CODE_SUCCESS); + resp.put(DATA, data); + return resp; + } + + public static RestResponse error() { + RestResponse resp = new RestResponse(); + resp.put(STATUS, "error"); + resp.put(CODE, ResponseCode.CODE_FAIL); + resp.put(DATA, null); + return resp; + } + ``` + +2. 确保代码的可读性和直观性 + + - `annotation` 符号中的字符串不需要提取为常量。 + + - 被引用的 `package` 或 `resource` 名称不需要提取为常量。 + +3. 未被重新分配的变量也必须声明为 `` final `` 类型。 + +4. 关于 `constant/variable` 行的排序顺序 + + 按以下顺序对类中的变量行进行排序: + 1. `public static final V`, `static final V`,`protected static final V`, `private static final V` + 2. `public static v`, `static v`,`protected static v`, `private static v` + 3. `public v`, `v`, `protected v`, `private v` + +### 3.3 方法规则 + +1. 按照 `public`、`protected`、`private` 的顺序对类中的方法进行排序。 + + 类的静态方法可以放在非静态方法之后,并根据一致的方法可见性进行排序。 + +2. 当方法有限制时,方法的参数和返回值需要用 `@Nonnull` 或 `@Nullable` 注释和约束进行注释。 + + 例如,如果参数不能为 null,最好添加一个 `@Nonnull` 注释。如果返回值可以为 null,则应首先添加 `@Nullable` 注释。 + + `` 注意:包名为 ``javax.validation.requirements`` `` + +3. 如果方法中的代码行数太多,请尝试在适当的点上使用多个子方法来分段方法体。 + + 一般来说,需要坚持以下原则: + - 便于测试 + - 有好的语义 + - 易于阅读 + + 此外,还需要考虑在组件、逻辑、抽象和场景等方面的切割是否合理。 + + > 然而,目前还没有明确的演示定义。在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 + +### 3.4 集合规则 + +1. 对于返回的 `collection` 值,除非有特殊的 `concurrent` (如线程安全),总是返回 `interface`,例如: + - 如果使用 `ArrayList`,则返回 `` List `` + - 如果使用 `HashMap`,则返回 `` Map `` + - 如果使用 `HashSet`,则返回 `` Set `` +2. 如果存在多线程,可以使用以下声明或返回类型: + + ```java + private CurrentHashMap map; + public CurrentHashMap funName(); + ``` + +3. 使用 `isEmpty()` 而不是 `length() == 0` 或者 `size() == 0` + - 负面示例: + + ```java + if (pathPart.length() == 0) { + return; + } + ``` + + - 正面示例: + + ```java + if (pathPart.isEmpty()) { + return; + } + ``` + +### 3.5 并发处理 + +1. 需要管理 `线程池`,使用统一的入口点获取 `线程池`。 + + `` 注意:在演变过程中,我们将为开发者提供更多的示例,以便他们有更清晰的参考和理解。 `` + +2. `线程池` 需要进行资源约束,以防止因处理不当导致的资源泄露。 + +### 3.6 控制/条件语句 + +1. 避免因不合理的 `条件/控制` 分支顺序导致: + - 多个代码行的 `深度` 为 `n+1` + - 多余的行 + +一般来说,如果一个方法的代码行深度由于连续嵌套的 `if... else..` 超过了 `2+ Tabs`,那么应该考虑试图 + +- `合并分支`, +- `反转分支条件` +- `提取私有方法` + +以减少代码行深度并提高可读性,例如: + +- 联合或将逻辑合并到下一级调用中 + - 负面示例: + + ```java + if (isInsert) { + save(platform); + } else { + updateById(platform); + } + ``` + + - 正面示例: + + ```java + saveOrUpdate(platform); + ``` + +- 合并条件 + - 负面示例: + + ```java + if (expression1) { + if(expression2) { + // ...... + } + } + ``` + + - 正面示例: + + ```java + if (expression1 && expression2) { + // ...... + } + ``` + +- 反转条件 + - 负面示例: + + ```java + public void doSomething() { + // 忽略更深的代码块行 + // ..... + if (condition1) { + // ... + } else { + // ... + } + } + ``` + + - 正面示例: + + ```java + public void doSomething() { + // 忽略更深的代码块行 + // ..... + if (!condition1) { + // ... + return; + } + // ... + } + ``` + +- 使用单一变量或方法减少复杂的条件表达式 + - 负面示例: + + ```java + if (dbType.indexOf("sqlserver") >= 0 || dbType.indexOf("sql server") >= 0) { + // ... + } + ``` + + - 正面示例: + + ```java + if (containsSqlServer(dbType)) { + // .... + } + //..... + // containsSqlServer的定义 + ``` + +> 在未来,使用 `sonarlint` 和 `better highlights` 检查代码深度看起来是个不错的选择。 + +### 3.7 代码注释规则 + +1. 方法缺少注释: + + - `When`:该方法何时可以被调用 + - `How`:如何使用此方法以及如何传递参数等 + - `What`:此方法实现了哪些功能 + - `Note`:在调用此方法时开发人员应注意什么 + +2. 缺少必要的类头部描述注释。 + + 添加 `What`,`Note` 等,如上述 `1` 中提到的。 + +3. 在接口中的方法声明必须被注释。 + + - 如果实现的语义和接口声明的注释内容不一致,则具体的实现方法也需要用注释重写。 + + - 如果方法实现的语义与接口声明的注释内容一致,则建议不写注释以避免重复的注释。 + +4. 在注释行中的第一个词需要大写,如 `param` 行,`return` 行。 + 如果特殊引用作为主题不需要大写,需要注意特殊符号,例如引号。 + +### 3.8 Java Lambda 表达式 + +1. 更倾向于使用 `non-capturing` lambda(不包含对外部范围的引用的lambda)。 + Capturing lambda 在每次调用时都需要创建一个新的对象实例。`Non-capturing` lambda 可以为每次调用使用相同的实例。 + + - 负面示例: + + ```java + map.computeIfAbsent(key, x -> key.toLowerCase()) + ``` + + - 正面示例: + + ```java + map.computeIfAbsent(key, k -> k.toLowerCase()); + ``` + +2. 考虑使用方法引用而不是内联lambda + + - 负面示例: + + ```java + map.computeIfAbsent(key, k-> Loader.load(k)); + ``` + + - 正面示例: + + ```java + map.computeIfAbsent(key, Loader::load); + ``` + +### 3.9 Java Streams + +- 在任何对性能敏感的代码中避免使用 Java Streams。 + +- 使用 Java Streams 的主要动机是为了提高代码的可读性。因此,它们可以在代码的某些部分中很好地匹配,这些部分不是数据密集型的,而是处理协调。 + +- 即使在后一种情况下,也试图限制范围到一个方法,或者一个内部类中的几个私有方法。 + +### 3.10 前置条件检查 + +1. 使用统一的 `Utils.requireXXX` 来完成前提的验证,如果可能的话,用新的前置条件检查替换 `AlertXXException.throwIfXXX`。 + +### 3.11 StringUtils + +1. 使用 `StringUtils.isBlank` 而不是 `StringUtils.isEmpty` + + - 负面示例: + + ```java + if (StringUtils.isEmpty(name)) { + return; + } + ``` + + - 正面示例: + + ```java + if (StringUtils.isBlank(name)) { + return; + } + ``` + +2. 使用 `StringUtils.isNotBlank` 而不是 `StringUtils.isNotEmpty` + + - 负面示例: + + ```java + if (StringUtils.isNotEmpty(name)) { + return; + } + ``` + + - 正面示例: + + ```java + if (StringUtils.isNotBlank(name)) { + return; + } + ``` + +3. 使用 `StringUtils.isAllBlank` 而不是 `StringUtils.isAllEmpty` + + - 负面示例: + + ```java + if (StringUtils.isAllEmpty(name, age)) { + return; + } + ``` + + - 正面示例: + + ```java + if (StringUtils.isAllBlank(name, age)) { + return; + } + ``` + +### 3.12 `Enum` 类 + +1. 枚举值比较 + + - 负面示例: + + ```java + if (status.equals(JobStatus.RUNNING)) { + return; + } + ``` + + - 正面示例: + + ```java + if (status == JobStatus.RUNNING) { + return; + } + ``` + +2. 枚举类不需要实现 Serializable + + - 负面示例: + + ```java + public enum JobStatus implements Serializable { + // ... + } + ``` + + - 正面示例: + + ```java + public enum JobStatus { + // ... + } + ``` + +3. 使用 `Enum.name()` 而不是 `Enum.toString()` + + - 负面示例: + + ```java + System.out.println(JobStatus.RUNNING.toString()); + ``` + + - 正面示例: + + ```java + System.out.println(JobStatus.RUNNING.name()); + ``` + +4. 枚举类名称统一使用 Enum 后缀 + + - 负面示例: + + ```java + public enum JobStatus { + // ... + } + ``` + + - 正面示例: + + ```java + public enum JobStatusEnum { + // ... + } + ``` + +### 3.13 `Deprecated` 注解 + +- 负面示例: + +```java +@deprecated +public void process(String input) { + // ... +} +``` + +- 正面示例: + +```java +@Deprecated +public void process(String input) { + // ... +} +``` + +## 4 日志 + +1. 使用 `占位符` 进行日志输出: + + - 负面示例 + + ```java + log.info("Deploy cluster request " + deployRequest); + ``` + + - 正面示例 + + ```java + log.info("load plugin:{} to {}", file.getName(), appPlugins); + ``` + +2. 打印日志时,注意选择 `日志级别` + + 当打印日志内容时,如果传递了日志占位符的实际参数,必须避免过早评估,以避免由日志级别导致的不必要评估。 + + - 负面示例: + + 假设当前日志级别为 `INFO`: + + ```java + // 忽略声明行。 + List`` userList = getUsersByBatch(1000); + LOG.debug("All users: {}", getAllUserIds(userList)); + ``` + + - 正面示例: + + 在这种情况下,我们应该在进行实际的日志调用之前提前确定日志级别,如下所示: + + ```java + // 忽略声明行。 + List`` userList = getUsersByBatch(1000); + if (LOG.isDebugEnabled()) { + LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); + } + ``` + +## 5 测试 + +1. 建议使用 `JUnit5` 进行测试用例的准备。 + +2. 实现的接口需在`e2e`模块下编写`e2e`测试用例脚本。 + +## 参考资料 + +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contact.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contact.md new file mode 100644 index 00000000000..6fc0fdc7197 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contact.md @@ -0,0 +1,25 @@ +--- +id: contact +title: 交流联系 +sidebar_label: 交流联系 +--- + +> 如果您在使用过程有任何需要帮助或者想交流建议,可以通过 群 ISSUE 讨论交流。 + +[订阅邮件列表](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) : 发送邮件至 `dev-subscribe@hertzbeat.apache.org` 来订阅邮件列表. + +[Chat On Discord](https://discord.gg/Fb6M73htGr) + +微信交流群 : 加 `ahertzbeat` 好友邀请进群. + +微信公众号 : 搜索 ID `usthecom`. + +[QQ交流群](https://qm.qq.com/q/xxqecSC2cw) : 群号 `1035688434` + +[Github Discussion](https://github.com/apache/hertzbeat/discussions) + +[Reddit Community](https://www.reddit.com/r/hertzbeat/) + +[Follow Us Twitter](https://x.com/hertzbeat1024) + +[Subscribe YouTube](https://www.youtube.com/channel/UCri75zfWX0GHqJFPENEbLow) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contribution.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contribution.md new file mode 100644 index 00000000000..d2768231e73 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/contribution.md @@ -0,0 +1,178 @@ +--- +id: contribution +title: 贡献指南 +sidebar_position: 0 +--- + + + +> 非常欢迎参与项目贡献,我们致力于维护一个互相帮助的快乐社区。 + +### 贡献方式 + +> 在 Apache HertzBeat™ 社区,贡献方式有很多: + +- 💻**代码**:可以帮助社区完成一些任务、编写新的 feature 或者是修复一些 bug; + +- ⚠️**测试**:可以来参与测试代码的编写,包括了单元测试、集成测试、e2e 测试; + +- 📖**文档**:可以编写或完善文档,来帮助用户更好地了解和使用 HertzBeat; + +- 📝**博客**:可以撰写 HertzBeat 的相关文章,来帮助社区更好地推广; + +- 🤔**讨论**:可以参与 HertzBeat 新的 feature 的讨论,将您的想法跟 HertzBeat 融合; + +- 💡**布道**:可以帮助宣传或推广 HertzBeat 社区,在 meetup 或 summit 中演讲; + +- 💬**建议**:也可以对项目或者社区提出一些建议,促进社区的良性发展; + +更多贡献方式参见 [Contribution Types](https://allcontributors.org/emoji-key) + +即便是小到错别字的修正我们也都非常欢迎 :) + +### 让 HertzBeat 运行起来 + +> 让 HertzBeat 的代码在您的开发工具上运行起来,并且能够断点调试。 +> 此为前后端分离项目,本地代码启动需将后端 [manager](https://github.com/apache/hertzbeat/tree/master/hertzbeat-manager) 和前端 [web-app](https://github.com/apache/hertzbeat/tree/master/web-app) 分别启动生效。 + +#### 后端启动 + +1. 需要 `maven3+`, `java17` 和 `lombok` 环境 + +2. (可选)修改配置文件配置信息-`hertzbeat-startup/src/main/resources/application.yml` + +3. 在项目根目录运行编译: `mvn clean install -DskipTests` + +4. 在 `jvm` 加入参数 `--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED` + +5. 启动`springboot startup`服务 `hertzbeat-startup/src/main/java/org/apache/hertzbeat/startup/HertzBeatApplication.java` + +#### 前端启动 + +1. 需要 `nodejs pnpm` 环境, 确保 `Node.js >= 18` + +2. 进入 `web-app` 目录: `cd web-app` + +3. 安装 pnpm: `npm install -g pnpm` + +4. 在前端工程目录 `web-app` 下执行: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` + +5. 待本地后端启动后,在 web-app 目录下启动本地前端 `pnpm start` + +6. 浏览器访问 localhost:4200 即可开始,默认账号密码 **admin/hertzbeat** + +### 寻找任务 + +寻找您感兴趣的 Issue!在我们的 GitHub 仓库和邮件列表中,我们经常会发布一些带有 good first issue 或者 status: volunteer wanted 标签的 issue,这些issue都欢迎贡献者的帮助。 +其中 good first issue 往往门槛较低、适合新手。 + +当然,如果您有好的想法,也可以直接在 GitHub Discussion 中提出或者联系社区。 + +### 提交 Pull Request + +1. 首先您需要 Fork 目标仓库 [hertzbeat repository](https://github.com/apache/hertzbeat). +2. 然后 用 git 命令 将代码下载到本地: + + ```shell + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended + ``` + +3. 下载完成后,请参考目标仓库的入门指南或者 README 文件对项目进行初始化。 +4. 接着,您可以参考如下命令进行代码的提交, 切换新的分支, 进行开发: + + ```shell + git checkout -b a-feature-branch #Recommended + ``` + +5. 提交 commit, commit 描述信息需要符合约定格式: [module name or type name]feature or bugfix or doc: custom message. + + ```shell + git add + git commit -m '[docs]feature: necessary instructions' #Recommended + ``` + +6. 推送到远程仓库 + + ```shell + git push origin a-feature-branch + ``` + +7. 然后您就可以在 GitHub 上发起新的 PR (Pull Request)。 + + 请注意 PR 的标题需要符合我们的规范,并且在 PR 中写上必要的说明,来方便 Committer 和其他贡献者进行代码审查。 + +### 等待PR代码被合并 + +在提交了 PR 后,Committer 或者社区的小伙伴们会对您提交的代码进行审查(Code Review),会提出一些修改建议,或者是进行一些讨论,请及时关注您的PR。 + +若后续需要改动,不需要发起一个新的 PR,在原有的分支上提交 commit 并推送到远程仓库后,PR会自动更新。 + +另外,我们的项目有比较规范和严格的 CI 检查流程,在提交 PR 之后会触发 CI,请注意是否通过 CI 检查。 + +最后,Committer 可以将 PR 合并入 master 主分支。 + +### 代码被合并后 + +在代码被合并后,您就可以在本地和远程仓库删除这个开发分支了: + +```shell +git branch -d a-dev-branch +git push origin --delete a-dev-branch +``` + +在主分支上,您可以执行以下操作来同步上游仓库: + +```shell +git remote add upstream https://github.com/apache/hertzbeat.git #Bind the remote warehouse, if it has been executed, it does not need to be executed again +git checkout master +git pull upstream master +``` + +### 领取贡献者证书 + +在您的 PR 被合并后,您可以发送如下内容邮件到 `dev@hertzbeat.apache.org` 来申请领取属于您的 Apache HertzBeat™ 贡献者电子证书。 + +```text +Title: [Contributor] Request for a Contributor Certificate: +Body: +Hello, +I would like to request a Contributor Certificate for my contributions to the Apache HertzBeat™ project. + +- Full Name: # The Full Name will be printed on the certificate, any name you want. +- GitHub Username: +- Pull Request Links: +- Email Address: + +Best regards, + +``` + +在几个工作日内,您会收到携带电子证书的回复,您的名字也会出现在贡献者列表中。 +注意贡献者的证书是电子的,待您成为 `Committer` 或者 `PMC` 的证书是实体的。 + +证书样例: + +![cert](/img/docs/hertzbeat-cert.png) + +### 如何成为 Committer? + +通过上述步骤,您就是 HertzBeat 的贡献者了。重复前面的步骤,在社区中保持活跃,坚持下去,您就能成为 Committer! + +### 加入讨论交流 + +[讨论交流](contact) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/development.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/development.md new file mode 100644 index 00000000000..30a1c479cc2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/development.md @@ -0,0 +1,72 @@ +--- +id: development +title: 如何将 HertzBeat 运行编译? +sidebar_label: 运行编译 +--- + +## 让 HertzBeat 运行起来 + +> 让 HertzBeat 的代码在您的开发工具上运行起来,并且能够断点调试。 +> 此为前后端分离项目,本地代码启动需将后端 [manager](https://github.com/apache/hertzbeat/tree/master/hertzbeat-manager) 和前端 [web-app](https://github.com/apache/hertzbeat/tree/master/web-app) 分别启动生效。 + +### 后端启动 + +1. 需要 `maven3+`, `java17` 和 `lombok` 环境 + +2. (可选)修改配置文件配置信息-`hertzbeat-startup/src/main/resources/application.yml` + +3. 在项目根目录运行编译: `mvn clean install -DskipTests` + +4. 在 `jvm` 加入参数 `--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED` + +5. 启动`springboot startup`服务 `hertzbeat-startup/src/main/java/org/apache/hertzbeat/startup/HertzBeatApplication.java` + +### 前端启动 + +1. 需要 `nodejs pnpm` 环境, 版本要求 `Node.js >= 18` + +2. 进入 `web-app` 目录: `cd web-app` + +3. 安装pnpm: `npm install -g pnpm` + +4. 在前端工程目录 `web-app` 下执行: `pnpm install` 或者 `pnpm install --registry=https://registry.npmmirror.com` + +5. 待本地后端启动后,在web-app目录下启动本地前端 `pnpm start` + +6. 浏览器访问 localhost:4200 即可开始,默认账号密码 admin/hertzbeat + +## 生成二进制包 + +> 需要 `maven3+`, `java17`, `node` 和 `pnpm` 环境. + +### 前端打包 + +1. 需要 `Node pnpm` 环境, 版本要求 `Node.js >= 18` + +2. 切换到 `web-app` 目录: `cd web-app` + +3. 安装 pnpm: `npm install -g pnpm` + +4. 安装本项目依赖: `pnpm install` 或 `pnpm install --registry=https://registry.npmmirror.com` + +5. 打包: `pnpm package` + +### 后端打包 + +1. 需要 `maven3+`, `java17` 环境 + +2. 在项目根目录运行: `mvn clean package -Prelease` + +HertzBeat 包将生成为 `dist/hertzbeat-{version}.tar.gz` + +### 采样器打包 + +1. 需要 `maven3+`, `java17` 环境 + +2. 在项目根目录运行: `mvn clean install` + +3. 切换到 `hertzbeat-collector` 目录: `cd hertzbeat-collector` + +4. 在 `hertzbeat-collector` 目录下执行: `mvn clean package -Pcluster` + +HertzBeat 采样器包将生成为 `dist/hertzbeat-collector-{version}.tar.gz` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/document.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/document.md new file mode 100644 index 00000000000..43bbe4972a6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/document.md @@ -0,0 +1,113 @@ +--- +id: 'document' +title: '文档说明' +sidebar_position: 1 +--- + + + +对于任何类型的软件来说,良好的文档都是至关重要的。任何能够改进 HertzBeat 文档的贡献都是受欢迎的。 + +## 获取文档项目 + +HertzBeat 项目的文档在 [git 仓库 home 目录](https://github.com/apache/hertzbeat/tree/master/home) 中维护。 + +首先,您需要将文档项目 fork 到您自己的 github 仓库,然后将文`clone`到您的本地计算机。 + +```shell +git clone git@github.com:/hertzbeat.git +``` + +## 预览和生成静态文件 + +此网站使用 node 进行编译,使用 Docusaurus 框架组件。 + +1. 下载并安装 nodejs (版本 18.8.0) +2. 将代码克隆到本地 `git clone git@github.com:apache/hertzbeat.git` +3. 在`home`目录下运行 `npm install` 来安装所需的依赖库。 +4. 在`home`目录下运行 `npm run start`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的英文模式预览 +5. 在`home`目录下运行 `npm run start-zh-cn`,您可以访问 [http://localhost:3000](http://localhost:3000) 查看站点的中文模式预览 +6. 若要生成静态网站资源文件,请运行 `npm run build`。构建的静态资源位于 build 目录中。 + +## 文档格式检验 + +在 Apache Hertzbeat 中,所有的 MD 文章都要通过 MD 的 [CI](https://github.com/apache/hertzbeat/blob/master/.github/workflows/doc-build-test.yml) 检测才能够合并,目的是为了保持文档官网的美观和文章格式的一致性。 + +在您编写了相关 MD 文章之后,您可以在本地执行以下命令,预先检查 MD 的文章内容是否符合要求,减少 review 的工作量,节省您的时间: + +```shell +cd home && pnpm install + +pnpm md-lint + +# 如果文档错误,您可以使用 pnpm md-lint-fix 修复 +pnpm md-lint-fix +``` + +MD 文章的相关格式规则您可以参考:[Markdown-lint-rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md) +项目中的 MD 格式配置文件:[.markdownlint-cli2.jsonc](https://github.com/apache/hertzbeat/blob/master/.markdownlint-cli2.jsonc) + +## 目录结构 + +```html +|-- docs +|-- blog +|-- i18n +| `-- zh-CN // 中文国际化 +| |-- code.json +| |-- docusaurus-plugin-content-blog +| |-- docusaurus-plugin-content-docs +| `-- docusaurus-theme-classic +|-- resource // 静态资源文件 +|-- src +| |-- theme +| |-- css +| |-- js +| |-- pages +| | |-- components +| | |-- index.js +| |-- constants.js +|-- static // 图片静态资源 +| |-- img // +| | |-- blog // 博客图片 +| | |-- docs // 文档图片 +| | |-- home // 产品图片 +| | |-- icons // 图标 +|-- docusaurus.config.js +|-- sidebars.js // 文档侧边栏菜单配置 +``` + +## 规范 + +### 文件的命名规范 + +全部由小写,数字,下划线和破折号组成。 + +正例:`render-dom.js / signup.css / index.html / company-logo.png / hertz_beat.md` + +反例:`renderDom.js / UserManagement.html` + +### 资源路径 + +图片资源统一放在 `static/img/{模块名称}` 下 + +css 和其他样式文件放在 `src/css` 目录中。 + +### 页面内容修改 + +> 所有页面文档都可以通过底部的'编辑此页面'按钮直接跳转到相应的 github 资源修改页面。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-release.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-release.md new file mode 100644 index 00000000000..e6e088f0b58 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-release.md @@ -0,0 +1,522 @@ +--- +id: 'how_to_release' +title: 如何进行版本发布 +sidebar_position: 4 +--- + +本教程详细描述了如何发布Apache HertzBeat,并以 v1.7.3 版本的发布为例。 + +## 1. 环境要求 + +此发布过程在 UbuntuOS(可在 Windows Mac) 中进行操作,并需要以下环境: + +- JDK 17 +- Node18 pnpm +- Apache Maven 3.x +- GnuPG 2.x +- Git +- SVN (Apache使用svn来托管项目发布) + +> 注意需要设置环境变量 `export GPG_TTY=$(tty)` + +## 2. 准备发布 + +> 首先整理帐户信息以更好地了解操作过程,稍后会多次使用。 +> +> - apache id: `muchunjin (APACHE LDAP 用户名)` +> - apache passphrase: `APACHE LDAP 密钥` +> - apache email: `muchunjin@apache.org` +> - gpg real name: `muchunjin (任何名称均可用, 在这里我将其设置为与apache id相同的名称)` +> - gpg key passphrase: `创建gpg密钥时设置的密码,你需要记住此密码` + +### 2.1 生成密钥 + +```shell +$ gpg --full-gen-key +gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Please select what kind of key you want: +(1) RSA and RSA (default) +(2) DSA and Elgamal +(3) DSA (sign only) +(4) RSA (sign only) +(14) Existing key from card +Your selection? 1 # Please enter 1 +RSA keys may be between 1024 and 4096 bits long. +What keysize do you want? (3072) 4096 # Please enter 4096 here +Requested keysize is 4096 bits +Please specify how long the key should be valid. +0 = key does not expire +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years +Key is valid for? (0) 0 # Please enter 0 +Key does not expire at all +Is this correct? (y/N) y # Please enter y here + +GnuPG needs to construct a user ID to identify your key. + +Real name: muchunjin # Please enter 'gpg real name' +Email address: muchunjin@apache.org # Please enter your apache email address here +Comment: apache key # Please enter some comments here +You selected this USER-ID: + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" + +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here +We need to generate a lot of random bytes. It is a good idea to perform +some other action (type on the keyboard, move the mouse, utilize the +disks) during the prime generation; this gives the random number +generator a better chance to gain enough entropy. + +# At this time, a dialog box will pop up, asking you to enter the key for this gpg. +# you need to remember that it will be used in subsequent steps. +┌─────────────────────────────────────────────────────┐ +│ Please enter this passphrase to │ +│ protect your new key │ +│ │ +│ Passphrase: _______________________________________ │ +│ │ +│ `` `` │ +└─────────────────────────────────────────────────────┘ + +# Here you need to re-enter the password in the previous step. +┌─────────────────────────────────────────────────────┐ +│ Please re-enter this passphrase │ +│ │ +│ Passphrase: _______________________________________ │ +│ │ +│ `` `` │ +└─────────────────────────────────────────────────────┘ +gpg: key ACFB69E705016886 marked as ultimately trusted +gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' +public and secret key created and signed. + +pub rsa4096 2023-05-01 [SC] + 85778A4CE4DD04B7E07813ABACFB69E705016886 +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) +sub rsa4096 2023-05-01 [E] +``` + +密钥可以通过`gpg --list-signatures`命令查看 + +### 2.2 将生成的密钥上传到公共服务器 + +```shell +$ gpg --keyid-format SHORT --list-keys +/root/.gnupg/pubring.kbx +------------------------ +pub rsa4096/05016886 2023-05-01 [SC] + 85778A4CE4DD04B7E07813ABACFB69E705016886 +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) +sub rsa4096/0C5A4E1C 2023-05-01 [E] + +# Send public key to keyserver via key id +$ gpg --keyserver keyserver.ubuntu.com --send-key 05016886 +# Among them, keyserver.ubuntu.com is the selected keyserver, it is recommended to use this, because the Apache Nexus verification uses this keyserver +``` + +#### 2.3 检查密钥是否创建成功 + +验证是否已经同步到公共网络,需要一分钟左右才能知道答案,如果不成功,您可以多次上传并重试。 + +```shell +$ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed +gpg: Total number processed: 1 +gpg: unchanged: 1 +``` + +或者进入 [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) 网址,输入密钥的名称,然后点击'Search key' 按钮,查看是否有对应名称的密钥。 + +#### 2.4 将 gpg 公钥添加到 Apache SVN 项目仓库的 KEYS 文件中 + +- Apache HertzBeat Dev 分支 [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat Release 分支 [https://dist.apache.org/repos/dist/release/hertzbeat](https://dist.apache.org/repos/dist/release/hertzbeat) + +##### 2.4.1 将公钥添加到dev分支的KEYS + +```shell +$ mkdir -p svn/dev +$ cd svn/dev + +$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat +$ cd svn/dev/hertzbeat + +# 将生成的KEY追加到KEYS文件中,检查是否添加正确 +$ (gpg --list-sigs muchunjin@apache.org && gpg --export --armor muchunjin@apache.org) >> KEYS + +$ svn ci -m "add gpg key for muchunjin" +``` + +##### 2.4.2 将公钥添加到release分支的KEYS + +```shell +$ mkdir -p svn/release +$ cd svn/release + +$ svn co https://dist.apache.org/repos/dist/release/hertzbeat +$ cd svn/release/hertzbeat + +# 将生成的KEY追加到KEYS文件中,检查是否添加正确 +$ (gpg --list-sigs muchunjin@apache.org && gpg --export --armor muchunjin@apache.org) >> KEYS + +$ svn ci -m "add gpg key for muchunjin" +``` + +## 3. 准备物料 & 发布 + +### 准备发布物料 + +#### 3.1 基于 master 分支,创建一个名为 release-`release_version`-rcx 的分支,例如 release-1.7.3-rc1。并基于 release-1.7.3-rc1 分支创建一个名为 v1.7.3-rc1 的标签,并将此标签设置为预发布 + +```shell +git checkout master +git checkout -b release-1.7.3-rc1 +``` + +#### 3.2 本地切换到待发布分支 + +```shell +git checkout release-1.7.3-rc1 +``` + +#### 3.3 编译二进制包 + +> HertzBeat 编译打包,在项目`web-app`目录下执行以下命令, + +```shell +pnpm install + +pnpm package +``` + +> 在项目根目录下执行以下命令 + +```shell +mvn clean package -Prelease +``` + +然后 + +```shell +mvn clean install +``` + +> HertzBeat-Collector 编译打包,在项目`collector`目录下执行以下命令 + +```shell +mvn clean package -Pcluster +``` + +生成的二进制包在: + +- `dist/apache-hertzbeat-{version}-bin.tar.gz` +- `dist/apache-hertzbeat-collector-{version}-bin.tar.gz` +- `dist/apache-hertzbeat-{version}-docker-compose.tar.gz` + +#### 3.4 打包项目源代码 + +> 打包项目源码 + +```shell +git archive \ +--format=tar.gz \ +--output="dist/apache-hertzbeat-1.7.3-src.tar.gz" \ +--prefix=apache-hertzbeat-1.7.3-src/ \ +release-1.7.3-rc1 +``` + +生成的代码归档文件在 `dist/apache-hertzbeat-1.7.3-src.tar.gz` + +### 签名发布物料 + +#### 3.5 对二进制和源码包进行签名 + +将上步骤生成的三个文件包放到`dist`目录下(若无则新建目录),然后对文件包进行签名和SHA512校验和生成。 + +> 其中 `gpg -u 33545C76` 的 `33545C76` 是你的 GPG 密钥 ID,可以通过 `gpg --keyid-format SHORT --list-keys` 查看。 + +```shell +cd dist + +# sign +for i in *.tar.gz; do echo $i; gpg -u 33545C76 --armor --output $i.asc --detach-sig $i ; done + +# SHA512 +for i in *.tar.gz; do echo $i; sha512sum $i > $i.sha512 ; done + +# if macos sha512sum not found, you can install by brew install coreutils +``` + +> 最终文件列表如下 + +```text +apache-hertzbeat-1.7.3-src.tar.gz +apache-hertzbeat-1.7.3-src.tar.gz.asc +apache-hertzbeat-1.7.3-src.tar.gz.sha512 +apache-hertzbeat-1.7.3-bin.tar.gz +apache-hertzbeat-1.7.3-bin.tar.gz.asc +apache-hertzbeat-1.7.3-bin.tar.gz.sha512 +apache-hertzbeat-1.7.3-docker-compose.tar.gz +apache-hertzbeat-1.7.3-docker-compose.tar.gz.asc +apache-hertzbeat-1.7.3-docker-compose.tar.gz.sha512 +apache-hertzbeat-collector-1.7.3-bin.tar.gz +apache-hertzbeat-collector-1.7.3-bin.tar.gz.asc +apache-hertzbeat-collector-1.7.3-bin.tar.gz.sha512 +``` + +#### 3.6 验证签名 + +```shell +$ cd dist + +# 验证签名 +$ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done + +apache-hertzbeat-1.7.3-bin.tar.gz +gpg: Signature made Tue May 2 12:16:35 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-1.7.3-docker-compose.tar.gz +gpg: Signature made Tue May 2 12:16:36 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-1.7.3-src.tar.gz +gpg: Signature made Tue May 2 12:16:37 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-collector-1.7.3-bin.tar.gz +gpg: Signature made Tue May 2 12:16:37 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] + +# 验证 SHA512 +$ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done + +apache-hertzbeat-1.7.3-src.tar.gz +apache-hertzbeat-1.7.3-src.tar.gz: OK +apache-hertzbeat-1.7.3-bin.tar.gz +apache-hertzbeat-1.7.3-bin.tar.gz: OK +apache-hertzbeat-1.7.3-docker-compose.tar.gz +apache-hertzbeat-1.7.3-docker-compose.tar.gz: OK +apache-hertzbeat-collector-1.7.3-bin.tar.gz +apache-hertzbeat-collector-1.7.3-bin.tar.gz: OK +``` + +#### 3.7 发布 Apache SVN 仓库中 dev 目录的物料包 + +- 检出仓库 + +```shell +# 检出 Apache SVN 仓库中的 dev/incubator/hertzbeat 目录到 Apache HertzBeat™ 项目根目录下的 svn/dev 目录下 +svn co https://dist.apache.org/repos/dist/dev/hertzbeat svn/dev + +svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat +``` + +- 复制物料包到 SVN 仓库 + +创建一个版本号目录,并以`release_version`-`RC_version`的形式命名。RC_version从1开始,即候选版本从RC1开始。在发布过程中,如果出现导致投票失败的问题,需要进行修正,那么RC版本需要迭代,RC版本号需要+1。例如:为版本1.7.3-RC1投票。如果投票顺利通过,那么RC1版本的资料将作为最终版本的资料发布。如果出现问题并需要纠正,那么修正后重新启动投票,下一次的候选版本为1.7.3-RC2。 + +```shell +mkdir -p svn/dev/1.7.3-RC1 +cp -f dist/* svn/dev/1.7.3-RC1 +``` + +- 提交到SVN + +```shell +cd svn/dev + +# 1. 检查svn状态 +svn status + +# 2. 添加到svn +svn add 1.7.3-RC1 + +svn status + +# 3. 提交到svn远端服务器 +svn commit -m "release for HertzBeat 1.7.3-RC1" +``` + +- 检查 Apache SVN 提交结果 + +> 在浏览器中访问 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) , 检查是否有新的版本内容 + +## 4. 进入社区投票阶段 + +### 4.1 发送社区投票邮件 + +发送社区投票邮件需要至少三个`+1`,且无`-1`。 + +> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [VOTE] Release Apache HertzBeat 1.7.3 rc1
+> `Body`: + +```text +Hello HertzBeat Community: + +This is a call for vote to release Apache HertzBeat version release-1.7.3-RC1. + +Apache HertzBeat - a real-time observability system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities. + +Release notes: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3-rc1 + +The release candidates: +https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1/ + +Git tag for the release: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3-rc1 + +The artifacts signed with PGP key [33545C76], corresponding to [muchunjin@apache.org], that can be found in keys file: +https://downloads.apache.org/hertzbeat/KEYS + +The vote will be open for at least 72 hours or until the necessary number of votes are reached. + +Please vote accordingly: + +[ ] +1 approve +[ ] +0 no opinion +[ ] -1 disapprove with the reason + +*Valid check is a requirement for a vote. *Checklist for reference: + +[ ] Download HertzBeat are valid. +[ ] Checksums and PGP signatures are valid. +[ ] Source code distributions have correct names matching the current +release. +[ ] LICENSE and NOTICE files are correct for each HertzBeat repo. +[ ] All files have license headers if necessary. +[ ] No compiled archives bundled in source archive. +[ ] Can compile from source. + +Steps to validate the release,Please refer to: +https://hertzbeat.apache.org/docs/community/how_to_verify_release + +How to Build: +https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package + +Thanks! +``` + +在72小时后,将统计投票结果,并发送投票结果邮件,如下所示。 + +> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.7.3-rc1
+> `Body`: + +```text +Dear HertzBeat community, + +Thanks for your review and vote for "Release Apache HertzBeat 1.7.3-rc1" +I'm happy to announce the vote has passed: +--- +4 binding +1, from: + +- cc + +1 non-binding +1, from: + +- Roc Marshal +--- +no 0 or -1 votes. + +Vote thread: +https://lists.apache.org/thread/t01b2lbtqzyt7j4dsbdp5qjc3gngjsdq +--- +Thank you to everyone who helped us to verify and vote for this release. +--- +Best, +ChunJin Mu +``` + +邮件内容中的一项是`Vote thread`,在 [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) 查看获取 + +## 4. 完成最终发布步骤 + +### 4.1 迁移源代码和二进制包 + +```shell +svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1 https://dist.apache.org/repos/dist/release/hertzbeat/1.7.3 -m "transfer packages for 1.7.3-RC1" +``` + +### 4.2 添加新版本下载地址到官网 + +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) + +完成后打开官网地址 [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) 查看是否有新版本的下载 + +> 需要注意的是,下载链接可能需要一个小时后才会生效,请注意。 + +### 4.3 Github 生成 Release + +基于 release-1.7.3-rc1 分支修改创建一个名为 v1.7.3 的标签,并将此标签设置为 latest release。 + +:::tip +在原有的 Release 上面修改,无需重新创建 Release。 +::: + +然后输入发版标题和描述 + +- 发版标题: + +```text +v1.7.3 +``` + +- 描述: + +```text +xxx +release note: xxx +``` + +然后点击`Publish release`按钮。 + +然后将 release-1.7.3-rc1 分支重命名 为 release-1.7.3。 + +### 4.4 发送新版本公告邮件 + +> `Send to`: [announce@apache.org](mailto:announce@apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [ANNOUNCE] Apache HertzBeat 1.7.3 released
+> `Body`: + +```text +Hi Community, + +We are glad to announce the release of Apache HertzBeat 1.7.3. +Thanks again for your help. + +Apache HertzBeat (https://hertzbeat.apache.org/) - a real-time observability system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities. + +Download Link: +https://hertzbeat.apache.org/docs/download/ + +Release Note: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3 + +Website: +https://hertzbeat.apache.org/ + +HertzBeat Resources: +- Issue: https://github.com/apache/hertzbeat/issues +- Mailing list: dev@hertzbeat.apache.org +--- +Apache HertzBeat Team + +Best, +ChunJin Mu +``` + +该版本的发布顺利结束。 + +--- + +This doc refer from [Apache StreamPark](https://streampark.apache.org/) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-verify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-verify.md new file mode 100644 index 00000000000..ca568854480 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/how-to-verify.md @@ -0,0 +1,183 @@ +--- +id: how_to_verify_release +title: 版本物料的验证 +sidebar_position: 4 +--- + +## 验证候选版本 + +详细检查列表请参考官方的[check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) + +在浏览器中可访问版本内容 [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) + +### 1. 下载候选版本到本地 + +> 需要依赖gpg工具,如果没有,建议安装gpg2 + +```shell +#如果本地有svn,可以clone到本地 +svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ +#或者 直接下载物料文件 +wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx + +``` + +### 2. 验证上传的版本是否合规 + +> 开始验证环节,验证包含但不局限于以下内容和形式 + +#### 2.1 查看发布包是否完整 + +> 上传到dist的包必须包含源码包,二进制包可选 + +1. 是否包含源码包 +2. 是否包含源码包的签名 +3. 是否包含源码包的sha512 +4. 如果上传了二进制包,则同样检查(2)-(4)所列的内容 + +#### 2.2 检查gpg签名 + +首先导入发布人公钥。从svn仓库导入KEYS到本地环境。(发布版本的人不需要再导入,帮助做验证的人需要导入,用户名填发版人的即可) + +##### 2.2.1 导入公钥 + +```shell +curl https://downloads.apache.org/hertzbeat/KEYS > KEYS # 下载KEYS +gpg --import KEYS # 导入KEYS到本地 +``` + +##### 2.2.2 信任公钥 + +> 信任此次版本所使用的KEY + +```shell +$ gpg --edit-key xxxxxxxxxx #此次版本所使用的KEY用户 +gpg (GnuPG) 2.2.21; Copyright (C) 2020 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Secret key is available. +gpg> trust #信任 +Please decide how far you trust this user to correctly verify other users' keys +(by looking at passports, checking fingerprints from different sources, etc.) + + 1 = I don't know or won't say + 2 = I do NOT trust + 3 = I trust marginally + 4 = I trust fully + 5 = I trust ultimately + m = back to the main menu + +Your decision? 5 #选择5 +Do you really want to set this key to ultimate trust? (y/N) y #选择y + +gpg> + +``` + +##### 2.2.3 检查签名 + +```shell +for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done +``` + +检查结果 + +> 出现类似以下内容则说明签名正确,关键字:**`Good signature`** + +```shell +apache-hertzbeat-xxx-incubating-src.tar.gz +gpg: Signature made XXXX +gpg: using RSA key XXXXX +gpg: Good signature from "xxx @apache.org>" +``` + +#### 2.3 检查sha512哈希 + +> 本地计算sha512哈希后,验证是否与dist上的一致,如果上传二进制包,则同样需要检查二进制包的sha512哈希 + +```shell +for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done +``` + +#### 2.4 检查二进制包 + +解压缩 `apache-hertzbeat-${release.version}-incubating-bin.tar.gz` + +```shell +tar -xzvf apache-hertzbeat-${release.version}-incubating-bin.tar.gz +``` + +进行如下检查: + +- [ ] 存在`LICENSE`和`NOTICE`文件 +- [ ] `NOTICE`文件中的年份正确 +- [ ] 所有文本文件开头都有ASF许可证 +- [ ] 检查第三方依赖许可证: +- [ ] 第三方依赖的许可证兼容 +- [ ] 所有第三方依赖的许可证都在`LICENSE`文件中声名 +- [ ] 如果依赖的是Apache许可证并且存在`NOTICE`文件,那么这些`NOTICE`文件也需要加入到版本的`NOTICE`文件中 +- [ ] ..... + +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) + +#### 2.5. 源码编译验证 + +解压缩 `apache-hertzbeat-`release_version`-incubating-src.tar.gz` + +```shell +cd apache-hertzbeat-`release_version`-incubating-src +``` + +编译源码: [https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) + +进行如下检查: + +- [ ] 检查源码包是否包含由于包含不必要文件,致使tar包过于庞大 +- [ ] 存在`LICENSE`和`NOTICE`文件 +- [ ] `NOTICE`文件中的年份正确 +- [ ] 只存在文本文件,不存在二进制文件 +- [ ] 所有文件的开头都有ASF许可证 +- [ ] 能够正确编译 +- [ ] ..... + +参考: [https://apache.org/legal/resolved.html](https://apache.org/legal/resolved.html) + +### 3. 邮件回复 + +如果发起了发布投票,验证后,可以参照此回复示例进行邮件回复 + +:::caution 注意 +回复的邮件一定要带上自己检查了那些项信息,仅仅回复`+1 approve`,是无效的。 + +PMC 在 [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) HertzBeat 的社区投票时,请带上 binding 后缀,表示对 HertzBeat 社区中的投票具有约束性投票,方便统计投票结果。 + +::: + +非PMC成员 + +```html ++1 (non-binding) +I checked: + 1. All download links are valid + 2. Checksum and signature are OK + 3. LICENSE and NOTICE are exist + 4. Build successfully on macOS(Big Sur) + 5. .... +``` + +PMC成员 + +```html ++1 (binding) +I checked: + 1. All download links are valid + 2. Checksum and signature are OK + 3. LICENSE and NOTICE are exist + 4. Build successfully on macOS(Big Sur) + 5. .... +``` + +--- + +This doc refer from [Apache StreamPark](https://streampark.apache.org/) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/mailing_lists.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/mailing_lists.md new file mode 100644 index 00000000000..0a2801753b2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/mailing_lists.md @@ -0,0 +1,61 @@ +--- +id: 'mailing_lists' +title: '邮件列表' +sidebar_position: 1 +--- + + + +[开发者邮件列表](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) 是社区推荐的沟通和获取最新信息的方式。 + +在您向邮件列表发送任何内容之前,请确保您已经**订阅**了它们。 + +## 用途 + +### 开发者列表 + +- 使用此列表提出您对 HertzBeat 的问题 +- 由 HertzBeat 贡献者用来讨论 HertzBeat 的开发 + +| 列表名称 | 地址 | 订阅 | 退订 | 归档 | +|-----------|--------------------------|-------------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------| +| **开发者列表** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [订阅](mailto:dev-subscribe@hertzbeat.apache.org) | [退订](mailto:dev-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | + +### 通知列表 + +- 关于 HertzBeat 代码库的更改的通知,频繁通知 + +| 列表名称 | 地址 | 订阅 | 退订 | 归档 | +|----------|------------------------------------|-----------------------------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------| +| **通知列表** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [订阅](mailto:notifications-subscribe@hertzbeat.apache.org) | [退订](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [归档](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | + +## 订阅步骤 + +发送订阅邮件即可订阅。步骤如下: + +- 1、**订阅**:点击上表中的 **订阅** 按钮,它将重定向到您的邮件客户端。主题和内容是任意的。 + 之后,您会从 [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) 收到确认邮件(如果没有收到,请确认电子邮件是否被自动分类为垃圾邮件、推广邮件、订阅邮件等)。 +- 2、**确认**:直接回复确认邮件,或点击邮件中的链接快速回复。主题和内容是任意的。 +- 3、**欢迎**:在完成上述步骤后,您会收到一个主题为 WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) 的欢迎邮件,您已成功订阅 Apache HertzBeat 邮件列表。 + +## 发送纯文本邮件 + +在发送邮件列表时,请使用纯文本邮件。 +**不要使用 HTML 邮件**。 +HTML 邮件更有可能被视为垃圾邮件并被拒绝。 +通过不同的邮件客户端,它可能会出现格式错误,并且其他人不容易阅读。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/maturity.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/maturity.md new file mode 100644 index 00000000000..2c54ecac202 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/maturity.md @@ -0,0 +1,88 @@ +--- +id: maturity +title: Maturity +sidebar_position: 0 +--- + +## Maturity Assessment for Apache HertzBeat™ + +The goals of this maturity model are to describe how Apache projects operate in a concise and high-level way, and to provide a basic framework that projects may choose to use to evaluate themselves. + +More details can be found in the [Apache Project Maturity Model](https://community.apache.org/apache-way/apache-project-maturity-model.html). + +## Status of this assessment + +This assessment is evaluated during HertzBeat's Incubating. + +## Maturity model assessment + +The following table is filled according to the [Apache Maturity Model](https://community.apache.org/apache-way/apache-project-maturity-model.html). Mentors and community members are welcome to comment and modify it. + +### CODE + +| **ID** | **Description** | **Status** | +| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **CD10** | The project produces Open Source software for distribution to the public, at no charge. | **YES** The project source code is licensed under the `Apache License 2.0`. | +| **CD20** | Anyone can easily discover and access the project's code.. | **YES** The [official website](https://hertzbeat.apache.org/) includes `GitHub` link which can access the project's repository on GitHub directly. | +| **CD30** | Anyone using standard, widely-available tools, can build the code in a reproducible way. | **YES** Apache HertzBeat provide `how-to-build` document for every component to tell user how to compile on bare metal, such as the [core's](https://hertzbeat.apache.org/docs/community/development). | +| **CD40** | The full history of the project's code is available via a source code control system, in a way that allows anyone to recreate any released version. | **YES** It depends on git, and anyone can view the full history of the project via commit logs. | +| **CD50** | The source code control system establishes the provenance of each line of code in a reliable way, based on strong authentication of the committer. When third parties contribute code, commit messages provide reliable information about the code provenance. | **YES** The project uses GitHub and managed by Apache Infra, it ensuring provenance of each line of code to a committer. And the third-party contributions are accepted in accordance with the contributing guides. | + +### LICENSE + +| **ID** | **Description** | **Status** | +| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **LC10** | The Apache License, version 2.0, covers the released code. | **YES** The [LICENSE](https://github.com/apache/hertzbeat/blob/master/LICENSE) is in GitHub repository. And all source files are with APLv2 header, checked by Github Action. | +| **LC20** | Libraries that are mandatory dependencies of the project's code do not create more restrictions than the Apache License does. | **YES** All dependencies are listed. | +| **LC30** | The libraries mentioned in LC20 are available as Open Source software. | **YES** All dependencies are listed are available as Open Source software | +| **LC40** | Committers are bound by an Individual Contributor Agreement (the "Apache iCLA") that defines which code they may commit and how they need to identify code that is not their own. | **YES** All committers have iCLAs. | +| **LC50** | The project clearly defines and documents the copyright ownership of everything that the project produces. | **YES** And all source files are with APLv2 header, checked by GitHub Action. | + +### Releases + +| **ID** | **Description** | **Status** | +| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **RE10** | Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term. | **YES** Source release is distributed via [dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/hertzbeat/) and linked from [download page](https://hertzbeat.apache.org/docs/download). | +| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) and [general@incubator.apache.org](mailto:general@incubator.apache.org), and have at least 3 PPMC member's votes. | +| **RE30** | Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives. | **YES** All releases are signed, and the [KEYS](https://dist.apache.org/repos/dist/release/hertzbeat/KEYS) are available. | +| **RE40** | The project can distribute convenience binaries alongside source code, but they are not Apache Releases, they are provided with no guarantee. | **YES** User can easily build binaries from source code, and we do not provide binaries as Apache Releases. | +| **RE50** | The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release. | **YES** We can follow the [Release guide](https://hertzbeat.apache.org/docs/community/how_to_release) to make a new Apache HertzBeat release, and so far we had 4 different release managers. | + +### Quality + +| **ID** | **Description** | **Status** | +| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **QU10** | The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated. | **YES** We encourage user to [report issues](https://github.com/apache/hertzbeat/issues). | +| **QU20** | The project puts a very high priority on producing secure software. | **YES** All security reports are actively handled. | +| **QU30** | The project provides a well-documented, secure and private channel to report security issues, along with a documented way of responding to them. | **Yes** The official Github Repo provides a [security doc](https://github.com/apache/hertzbeat/blob/master/SECURITY.md) | +| **QU40** | The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features. | **Yes** We follow semantic versions. As long as it's within one major version, it's backward compatible. And when any breaking changes added, we provide corresponding upgrade guides. | +| **QU50** | The project strives to respond to documented bug reports in a timely manner. | **YES** The project has resolved 743+ issues and 2348+ pull requests so far, with very prompt response. | + +### Community + +| **ID** | **Description** | **Status** | +| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **CO10** | The project has a well-known homepage that points to all the information required to operate according to this maturity model. | **YES** The [official website](https://hertzbeat.apache.org/) includes all information user need to run Apache HertzBeat. | +| **CO20** | The community welcomes contributions from anyone who acts in good faith and in a respectful manner, and who adds value to the project. | **Yes** We provide contributing guides for every component. And we also have a [general contributing guide](https://hertzbeat.apache.org/docs/community/contribution) | +| **CO30** | Contributions include source code, documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project. | **YES** All good contributions including code and non-code are welcomed. | +| **CO40** | The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project. | **YES** The community has elected 3 new PPMC members and 13 new committers so far. | +| **CO50** | The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently. | **YES** The community has clear docs on nominating committers and PPMC members | +| **CO60** | The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects. | **YES** All decisions are made after vote by community members. | +| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | + +### Consensus + +| **ID** | **Description** | **Status** | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |--------------------------------------------------------------------------------------------------------------| +| **CS10** | The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors. | **Yes** See [members](https://hertzbeat.apache.org/team/) with all PPMC members and committers. | +| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and with at least 3 +1 votes from PPMC. | +| **CS30** | The project uses documented voting rules to build consensus when discussion is not sufficient. | **YES** The project uses the standard ASF voting rules. | +| **CS40** | In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30. | **YES** Apache HertzBeat community has not used the veto power yet except for code commits. | +| **CS50** | All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel. | **YES** All important discussions and conclusions are recorded in written form. | + +### Independence + +| **ID** | **Description** | **Status** | +| -------- | ---------------------------------------------------------------------------------------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **IN10** | The project is independent from any corporate or organizational influence. | **YES** The PPMC members and committer of Apache HertzBeat are from several different companies, and majority of them are NOT From the company that donated this project. | +| **IN20** | Contributors act as themselves, not as representatives of a corporation or organization. | **YES** The contributors act on their own initiative without representing a corporation or organization. | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/new_committer_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/new_committer_process.md new file mode 100644 index 00000000000..7f932292582 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/new_committer_process.md @@ -0,0 +1,505 @@ +--- +id: 'new_committer_process' +title: '提名新Committer流程' +sidebar_position: 4 +--- + + + +[官方指南](https://community.apache.org/newcommitter.html#new-committer-process) + +## 提名新Committer的流程 + +- 在邮件`private@hertzbeat.apache.org`中发起投票 + + 参见 **Committer投票模板** + +- 关闭投票 + + 参见 **关闭投票模板** + +- 如果结果是赞成,邀请新的Committer + + 参见 **Committer邀请模板** + +- 如果同意,那么:接受Committer + + 参见 **Committer接受模板** + +- 新Committer签署CLA,等待CLA的接收记录 + +- 请求创建Committer账户 + + 参见 **Committer账户创建模板** + + - 等待root告诉我们已经完成 + - [Roster](https://whimsy.apache.org/roster/ppmc/hertzbeat) 添加新的 committer +- Announce New Committer + + 参见 **Announce New Committer Template** + +## 模板 + +请注意,模板中有三个占位符在使用之前应该替换: + +- NEW_COMMITTER_NAME 这须是真实名字,而非 Github 名称或 Id +- NEW_COMMITTER_EMAIL +- NEW_COMMITTER_APACHE_NAME + +### Committer投票模板 + +:::note +NEW_COMMITTER_NAME 这须是真实名字,而非 Github 名称或 Id +::: + +```text +To: private@hertzbeat.apache.org +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hi HertzBeat PMC, + +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. + +Work list: https://github.com/apache/hertzbeat/commits?author=xxx + +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: + +> [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) +> +> 7,495 ++ 627 -- + +Submitted PR (27 commits) +- [ISSUE #4534] [feature] add new feature in hertzbeat #3445 +- xxx + +Submitted Issues (18 commits) + +- [bug] find some bugs in hertzbeat nodes #6565 +- xxx + +Please vote: + ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. ++0: I don't care. +-1: I object to this proposal and here are my reasons. + +This vote will be open for at least 7 days. + +Best Wishes, +ttt +``` + +注意,投票将在今天一周后结束,即 +[midnight UTC on YYYY-MM-DD](https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD) +[Apache投票指南](https://community.apache.org/newcommitter.html) + +### 关闭投票模板 + +```text +To: private@hertzbeat.apache.org +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hi HertzBeat PMC, + +The vote has now closed. The results are: + +Binding Votes: + ++1 [TOTAL BINDING +1 VOTES] + 0 [TOTAL BINDING +0/-0 VOTES] +-1 [TOTAL BINDING -1 VOTES] + +The vote is ***successful/not successful*** +``` + +### Committer邀请模板 + +```text +To: NewCommiter@domain.com +Cc: private@hertzbeat.apache.org +Subject: Invitation to become HertzBeat committer: [Candidate Name] + +``` + +```text +Hello [Candidate Name], + +The HertzBeat Project Management Committee (PMC) +hereby offers you committer privileges to the project + +These privileges are offered on the understanding that you'll use them +reasonably and with common sense. We like to work on trust +rather than unnecessary constraints. + +Being a committer enables you to more easily make +changes without needing to go through the patch +submission process. + +Being a committer does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will +probably find that you spend more time here. + +Of course, you can decline and instead remain as a +contributor, participating as you do now. + +This personal invitation is a chance for you to accept or decline in private. +Please let us know in reply to this message whether you accept or decline. +Also, please refrain from sharing that you were invited before the official +announcement by the PMC. + +If you accept, you will need an Apache account (id) with privileges. +Please follow these instructions. + +A. If you already have an ICLA on file: + + 1. If you already have an Apache account, let us know your id and we +will grant you privileges on the project repositories. + + 2. If you have previously sent an ICLA, let us know the email address +and public name used on the ICLA and your preferred Apache id, and +we will request your account. + + 3. If the email address on the previously submitted ICLA is no longer +valid, let us know the email address and public name used on the new ICLA, +and your preferred Apache id. Continue to step B below and file your new ICLA. + +Look to see if your preferred ID is already taken at +https://people.apache.org/committer-index.html + +B. If there is not already an ICLA on file, you need to submit an ICLA: + + 1. Details of the ICLA and the forms are found + through this link: https://www.apache.org/licenses/#clas + + 2. Instructions for its completion and return to + the Secretary of the ASF are found at + https://www.apache.org/licenses/contributor-agreements.html#submitting + + Do not copy the project or any other individual on your message + to Secretary, as the form contains Personally Identifiable Information + that should be kept private. + + 3. When you complete the ICLA form, be sure to include in the form + the Apache HertzBeat project and choose a + unique Apache ID. Look to see if your preferred + ID is already taken at + https://people.apache.org/committer-index.html + This will allow the Secretary to notify the PMC + when your ICLA has been recorded. + +When recording of your ICLA is noted, you will +receive a follow-up message with the next steps for +establishing you as a committer. + +``` + +### Committer接受模板 + +```text +To: `NEW_COMMITTER_EMAIL` +Cc: private@hertzbeat.apache.org +Subject: Re: invitation to become HertzBeat committer +``` + +```text +Welcome. Here are the next steps in becoming a project committer. After that +we will make an announcement to the dev@hertzbeat.apache.org list. + +You need to send a Contributor License Agreement to the ASF. +Normally you would send an Individual CLA. If you also make +contributions done in work time or using work resources, +see the Corporate CLA. Ask us if you have any issues. +https://www.apache.org/licenses/#clas. + +You need to choose a preferred ASF user name and alternatives. +In order to ensure it is available you can view a list of taken IDs at +https://people.apache.org/committer-index.html + +Please notify us when you have submitted the CLA and by what means +you did so. This will enable us to monitor its progress. + +We will arrange for your Apache user account when the CLA has +been recorded. + +After that is done, please make followup replies to the dev@hertzbeat.apache.org list. +We generally discuss everything there and keep the +private@hertzbeat.apache.org list for occasional matters which must be private. + +The developer section of the website describes roles within the ASF and provides other +resources: + https://www.apache.org/foundation/how-it-works.html + https://www.apache.org/dev/ + +The incubator also has some useful information for new committers +in incubating projects: + https://incubator.apache.org/guides/committer.html + https://incubator.apache.org/guides/ppmc.html + +Just as before you became a committer, participation in any ASF community +requires adherence to the ASF Code of Conduct: + https://www.apache.org/foundation/policies/conduct.html + +Yours, +The Apache HertzBeat PMC +``` + +### Announce New Committer Template + +```text +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hello Community, + +The Podling Project Management Committee (PMC) for Apache HertzBeat +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to +announce that he has accepted. + +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your +further interactions with the community! +Thanks for your contributions. + +Best Wishes! +``` + +## 详细步骤 + +### 接受邀请 + +当通过PMC内部投票后,PMC会向您索要个人邮箱,之后您会收到一封邮件,邮件会指引您进行下一步操作,内容为: + +```text +Hello xxxx, + +The HertzBeat Project Management Committee (PMC) +hereby offers you committer privileges to the project. +These privileges are offered on the understanding that +you'll use them reasonably and with common sense. +We like to work on trust rather than unnecessary constraints. + +Being a committer enables you to more easily make +changes without needing to go through the patch +submission process. + +Being a committer does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will +probably find that you spend more time here. + +Of course, you can decline and instead remain as a +contributor, participating as you do now. + +A. This personal invitation is a chance for you to +accept or decline in private. Either way, please +let us know in reply to the private@hertzbeat.apache.org +address only. + +B. If you accept, the next step is to register an iCLA: + 1. Details of the iCLA and the forms are found + through this link: https://www.apache.org/licenses/#clas + + 2. Instructions for its completion and return to + the Secretary of the ASF are found at + https://www.apache.org/licenses/#submitting + + 3. When you transmit the completed iCLA, request + to notify the Apache HertzBeat and choose a + unique Apache ID. Look to see if your preferred + ID is already taken at + https://people.apache.org/committer-index.html + This will allow the Secretary to notify the PMC + when your iCLA has been recorded. + +When recording of your iCLA is noted, you will +receive a follow-up message with the next steps for +establishing you as a committer. +``` + +如果您接受邀请,请回复该邮件,记住要**回复全部**,回复内容为: + +```text +hi, i accept. Thanks for invitaion. +``` + +随后您会收到一封邮件,里面描述这如何具体步骤,也可以根据我们的文档继续进行操作。 + +### ICLA签署流程 + +接受邀请后,会收到邮件,邮件会指引签署iCLA。 + +1. 下载iCLA申请表 + + 打开访问:[https://www.apache.org/licenses/#clas](https://www.apache.org/licenses/#clas) + + 找到`CLAs`点击进入页面 + + ![HertzBeat](/img/docs/community/clas-web.png) + + 找到`ICLA(个人贡献者许可协议)`,点击[Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf) + + ![HertzBeat](/img/docs/community/icla-web.png) + + 跳转后,会显示需要签署的协议,这里可以在网页上直接填写,也可以下载后填写。 + + ![HertzBeat](/img/docs/community/icla-pdf.png) + +2. 填写iCLA + + > tips: 签名时需要手写签名,其他的可以直接填写后打印。 + + 需要填写的内容: + + ![HertzBeat](/img/docs/community/icla-content-1.png) + ![HertzBeat](/img/docs/community/icla-content-2.png) + + 在PDF中需要填写的字段: + + - `Full name` + - `Public name` + - `Postal Address` + - `Country` + - `E-Mail` + - `(optional) preferred Apache id(s)` + - `(optional) notify project` + - `Date` + + > 填写样例 + > ![HertzBeat](/img/docs/community/icla-content-3.png) + > ![HertzBeat](/img/docs/community/icla-content-4.png) + +3. 打印并签署 + + ![HertzBeat](/img/docs/community/icla-content-5.png) + + `Please sign`字段需要将文件打印出来然后手写签名,内容为自己姓名的全拼。 + +4. 将签名后的文件拍照或扫描转为PDF,并重命名为`姓名拼音-icla.pdf` + +5. 发送邮件到指定邮箱 + + 邮件发送到`secretary@apache.org`,抄送到`private@hertzbeat.apache.org`。 + + 注意⚠️此邮件内容需要附加上之前的 committer 邀请邮件信息, 建议在之前的往来邮件点击回复然后修改标题和收件人等。 + + **发送模板** + + 主题:`Accept to become a Hertzbeat committer` + + 正文: + + ```text + Hello Apache, + I am willing contribute to the ASF. The attachment is my ICLA information. My Github account is : https://github.com/xxxx. + Thanks ! + ``` + + 大概1-5个工作日你就会收到一封来自`root@apache.org`的邮件。 + + 当您收到邮件标题为:`Welcome to the Apache Software Foundation`的邮件,恭喜你,你已经获取到Apache ID了! + +### 设置Apache密码 + +在网站 [https://id.apache.org/reset/enter](https://id.apache.org/reset/enter) 输入您的Apache ID + +![HertzBeat](/img/docs/community/account-1.png) + +点击`Send Email`后会提示发送成功。 + +在您提供给PMC的邮箱中会收到一封来自`root@apache.org`重置密码的邮件,标题为`Password reset request for xxx from Apache ID`,在邮件正文中会有重置密码的链接,我们点击链接设置密码。 + +### 将Apache账号和GitHub账号关联 + +访问: [https://whimsy.apache.org/roster/committer/`APACHE_ID`](https://whimsy.apache.org/roster/committer/`APACHE_ID`) + +- ``APACHE_ID``替换成你的Apache ID + +登录后可以看到这个内容`Link GitHub username to ASF id`,点击跳转 + +![HertzBeat](/img/docs/community/account-2.png) + +输入您的Apache的账号和密码并登录 + +![HertzBeat](/img/docs/community/account-3.png) + +点击 `Authenticate with GitHub` + +![HertzBeat](/img/docs/community/account-4.png) + +点击`Authorize apache`授权给Apache + +![HertzBeat](/img/docs/community/account-5.png) + +点击`Send GitHub Invitation!` 发送GitHub邀请邮件 + +![HertzBeat](/img/docs/community/account-6.png) + +邮箱中会收到一封邮件,点击`Join @apache` + +> 这里邮箱指的是您提供给PMC的那个邮箱地址 + +![HertzBeat](/img/docs/community/account-7.png) + +点击`Join The Apache Software Foundation`,加入GitHub加入Apache组织,会自动跳转到GitHub页面 + +![HertzBeat](/img/docs/community/account-8.png) +![HertzBeat](/img/docs/community/account-9.png) + +回到Apache页面,提示GitHub启用多重身份认证,在GitHub页面启用双重身份认证 + +> GitHub双重身份认证介绍,[点击跳转官方文档](https://docs.github.com/zh/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication) + +![HertzBeat](/img/docs/community/account-10.png) + +启动完成之后等几分钟,提示已经绑定完成 + +![HertzBeat](/img/docs/community/account-11.png) + +至此您的GitHub账号与Apache账号就绑定完成了。 + +最后一步,联系PMC主席开启svn和其他访问权限。 + +## 邮箱绑定 + +### GMail邮箱绑定 + +邮箱地址:[https://mail.google.com/](https://mail.google.com/) + +进入设置页面,并点击`添加其他电子邮件地址`` + +![HertzBeat](/img/docs/community/email-1.png) + +填写您的apache邮箱,按照指引点击下一步 + +![HertzBeat](/img/docs/community/email-2.png) +![HertzBeat](/img/docs/community/email-3.png) +![HertzBeat](/img/docs/community/email-4.png) + +设置为默认发送邮箱(可选) + +![HertzBeat](/img/docs/community/email-5.png) + +配置完成。 + +最后一步,别忘了订阅[开发者邮箱列表](./mailing_lists.md)。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/new_pmc_member_process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/new_pmc_member_process.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/community/new_pmc_member_process.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/new_pmc_member_process.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/submit-code.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/submit-code.md new file mode 100644 index 00000000000..ab649c94eaf --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/community/submit-code.md @@ -0,0 +1,72 @@ +--- +id: 'submit_code' +title: '提交代码' +sidebar_position: 2 +--- + + +* 首先从远程仓库 [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) 将代码的一份副本 fork 到您自己的仓库 + +* 远程仓库开发合并分支:`master` + +* 将您fork仓库clone到您的本地设备 + + ```shell + git clone git@github.com:<您的账户名>/hertzbeat.git + ``` + +* 添加远程仓库地址,命名为 upstream + + ```shell + git remote add upstream git@github.com:apache/hertzbeat.git + ``` + +* 查看仓库 + + ```shell + git remote -v + ``` + + > 此时会有两个仓库:origin(您自己的仓库)和 upstream(远程仓库) + +* 获取/更新远程仓库代码 + + ```shell + git fetch upstream + ``` + +* 将远程仓库代码同步到本地仓库 + + ```shell + git checkout origin/master + git merge --no-ff upstream/master + ``` + +* **⚠️注意一定要新建分支开发特性 `git checkout -b feature-xxx`,不建议使用master分支直接开发** +* 在本地修改代码后,提交到自己的仓库: + **注意提交信息为英文,不包含特殊字符** + + ```shell + git commit -m '[docs]necessary instructions' + git push + ``` + +* 将更改提交到远程仓库后,您可以在您的仓库页面上看到一个绿色的按钮“Compare & pull request”,点击它。 +* 这会弹出新建 Pull Request 页面,您需要这里仔细填写信息(英文),描述和代码同样重要,然后点击“Create pull request”按钮。 +* 然后社区的 Committers 将进行 CodeReview,并与您讨论一些细节(包括设计、实现、性能等),之后您可以根据建议直接在这个分支更新代码(无需新建PR)。当社区 Committer approve之后,提交将被合并到 master 分支。 +* 最后,恭喜您,您已经成为 HertzBeat 的官方贡献者,您会被加在贡献者墙上,您可以联系社区获取贡献者证书! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/download.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/download.md new file mode 100644 index 00000000000..ce28c7b203f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/download.md @@ -0,0 +1,36 @@ +--- +id: download +title: 下载 Apache HertzBeat +sidebar_label: Download +--- + +> **这里是 Apache HertzBeat™ 官方下载页面。** +> **请在下方表中选择版本下载,推荐使用最新版本。** + +:::tip + +- 验证下载版本,请使用相应的哈希(sha512)、签名和[项目发布KEYS](https://downloads.apache.org/hertzbeat/KEYS)。 +- 检查哈希和签名的方法参考 [如何验证](https://www.apache.org/dyn/closer.cgi#verify)。 + +::: + +## 最新版本 + +:::tip +以前版本的 HertzBeat 可能会受到安全问题的影响,请考虑使用最新版本。 +::: + +| 版本 | 日期 | 下载 | Release | +|--------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| +| v1.7.3 | 2025.09.05 | [apache-hertzbeat-1.7.3-bin.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz) (Server) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz.sha512) )
[apache-hertzbeat-collector-1.7.3-bin.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz) (Collector) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz.sha512) )
[apache-hertzbeat-1.7.3-src.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz) (Source Code) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz.sha512) )
[apache-hertzbeat-1.7.3-docker-compose.tar.gz](https://github.com/apache/hertzbeat/releases/download/v1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz) (Docker Compose) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz.sha512) ) | [note](https://github.com/apache/hertzbeat/releases/tag/v1.7.3) | + +## Docker 镜像版本 + +> Apache HertzBeat™ 为每个版本制作了 Docker 镜像. 你可以从 [Docker Hub](https://hub.docker.com/r/apache/hertzbeat) 拉取使用. + +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) + +## 归档版本 + +在这里查看所有历史已归档版本:[archive](https://archive.apache.org/dist/incubator/hertzbeat/). diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/activemq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/activemq.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/activemq.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/activemq.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_agent.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_agent.md new file mode 100644 index 00000000000..9def604995a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_agent.md @@ -0,0 +1,357 @@ +--- +id: ai_agent +title: HertzBeat AI 智能助手用户指南 +sidebar_label: HertzBeat AI +keywords: [AI, 聊天, 智能助手, 监控, AI Agent, OpenAI] +--- + +> HertzBeat AI 智能助手是一个智能监控 AI 助手,通过自然语言对话帮助您管理监控器、配置告警并优化基础设施监控。 + +## 概述 + +HertzBeat AI 智能助手功能提供了一个交互式聊天界面,您可以: + +**监控器管理:** + +- 🔍 按状态、类型、主机和标签查询和过滤现有监控器 +- ➕ 为网站、API、数据库和服务添加新的监控器 +- 📊 获取可用监控器类型及其参数的详细信息 +- ⚡ 检查监控器状态并排除监控问题 + +**告警管理:** + +- 🚨 通过综合过滤(类型、状态、搜索)查询活跃告警 +- 📈 获取告警摘要统计和分布 +- 🔔 查看单个和分组告警 +- 📋 分析告警模式和趋势 + +**指标分析:** + +- 📊 检索任何监控器的实时指标数据 +- 📈 访问可自定义时间范围的历史指标 +- 💾 检查仓库存储系统状态 +- 🔍 查询特定指标字段和标签 + +**告警规则管理:** + +- ⚙️ 配置告警规则和阈值 +- 📝 管理不同监控器类型的告警定义 +- 🎯 设置自定义告警条件 + +## 先决条件 + +在使用 AI 智能助手之前,请确保: + +1. **OpenAI 配置**:必须配置有效的 OpenAI API 密钥。可选地,您可以在 `application.yml` 中的 `spring.ai.openai.chat.options.model` 下更改模型(默认为 `gpt-4.1-nano`)。 +2. **数据库连接**:HertzBeat 数据库必须可访问以进行监控器操作 + +## 配置 + +### OpenAI API 密钥设置 + +AI 智能助手使用 OpenAI 的 GPT 模型。您需要通过以下方式配置 OpenAI API 密钥: + +#### 通过 UI 进行数据库配置 + +1. 导航到 AI 智能助手界面 +2. 如果未配置 API 密钥,您将看到配置对话框 +3. 输入您的 OpenAI API 密钥 +4. 点击 **保存配置** + +### 配置优先级 + +- **数据库配置** 优先于 YAML 配置 +- 配置更改立即生效,无需重启 +- 保存前会自动验证无效的 API 密钥 + +## 使用 AI 智能助手 + +### 访问聊天界面 + +1. 在 HertzBeat Web 界面中导航到 **AI 智能助手** 部分 +2. 您将看到 HertzBeat 监控 AI 助手欢迎屏幕 +3. 在聊天输入框中开始输入您的问题 + +### 示例对话 + +#### 添加新监控器 + +```text +您:为我的网站 https://example.com 添加一个新的 HTTP 监控器 +AI 助手:我将帮助您为 https://example.com 添加一个 HTTP 监控器。 +让我使用以下配置创建该监控器: +- 名称:example.com 网站监控器 +- 类型:HTTP +- 主机:example.com +- 端口:443 (HTTPS) +- 路径:/ +- 间隔:60 秒 + +监控器创建成功,ID:12345 +``` + +#### 列出现有监控器 + +```text +您:显示我所有当前的监控器 +AI 助手:以下是您当前的监控器: + +1. **Linux 服务器** (ID: 1001) + - 状态:✅ 在线 + - 主机:192.168.1.100 + - 最后检查:2 分钟前 + +2. **MySQL 数据库** (ID: 1002) + - 状态:⚠️ 警告 + - 主机:db.example.com + - 最后检查:30 秒前 + +3. **网站监控器** (ID: 1003) + - 状态:✅ 在线 + - 主机:https://example.com + - 最后检查:1 分钟前 + +您想了解任何特定监控器的详细信息吗? +``` + +#### 获取监控器类型信息 + +```text +您:监控 PostgreSQL 数据库需要哪些参数? +AI 助手:要监控 PostgreSQL 数据库,您需要这些参数: + +**必需参数:** +- **主机**:数据库服务器 IP/主机名 +- **端口**:PostgreSQL 端口(默认:5432) +- **数据库**:要连接的数据库名称 +- **用户名**:数据库用户名 +- **密码**:数据库密码 + +**可选参数:** +- **超时**:连接超时(默认:6000ms) +- **查询超时**:SQL 查询超时(默认:3000ms) +- **SSL**:启用 SSL 连接(默认:false) + +您想让我帮助您添加一个 PostgreSQL 监控器吗? +``` + +#### 告警管理 + +```text +您:显示过去 24 小时内的所有严重告警 +AI 助手:以下是过去 24 小时内的严重告警: + +🚨 **活跃告警(3 个触发中)** +1. **高 CPU 使用率** - Linux 服务器 (ID: 1001) + - 状态:🔥 触发中 + - 触发时间:2 小时前 + - 严重程度:严重 + - 消息:CPU 使用率 95% > 阈值 90% + +2. **数据库连接失败** - MySQL 数据库 (ID: 1002) + - 状态:🔥 触发中 + - 触发时间:45 分钟前 + - 严重程度:严重 + - 消息:10 秒后连接超时 + +3. **网站响应时间** - 网站监控器 (ID: 1003) + - 状态:⚠️ 警告 + - 触发时间:15 分钟前 + - 严重程度:警告 + - 消息:响应时间 5.2s > 阈值 3s + +**告警摘要:** +- 总告警数:12 +- 触发中:3(2 个严重,1 个警告) +- 已解决:9 + +您想让我帮助调查任何特定的告警吗? +``` + +#### 指标分析 + +```text +您:显示我的 Linux 服务器过去 6 小时的 CPU 使用率 +AI 助手:以下是您的 Linux 服务器(监控器 ID:1001)过去 6 小时的 CPU 使用率数据: + +📊 **CPU 使用率指标 - 过去 6 小时** + +时间 | 使用率 (%) | 负载平均 | 进程数 +14:00-15:00 | 45.2% | 1.2 | 156 +15:00-16:00 | 67.8% | 2.1 | 178 +16:00-17:00 | 89.4% | 3.8 | 195 +17:00-18:00 | 92.1% | 4.2 | 203 +18:00-19:00 | 94.7% | 4.8 | 210 +19:00-20:00 | 88.3% | 3.5 | 188 + +**分析:** +- 峰值使用率:19:00 时 94.7% +- 平均使用率:79.6% +- 趋势:高使用率持续 3+ 小时 +- 当前状态:下降中(88.3%) + +**实时指标:** +- 当前 CPU:76.2% +- 内存使用率:82.1% +- 磁盘 I/O:正常 + +您想让我检查历史数据进行比较或调查高使用率的原因吗? +``` + +#### 告警规则配置 + +```text +您:当我的网站响应时间超过 5 秒时设置告警规则 +AI 助手:我将帮助您创建网站响应时间监控的告警规则。 + +**告警规则配置:** +- **监控器类型**:HTTP/网站 +- **指标**:响应时间 +- **条件**:大于 5 秒 +- **严重程度**:警告 +- **评估**:每 60 秒检查一次 +- **通知**:邮件 + 仪表板 + +**建议规则:** +```yaml +name: "网站响应时间告警" +condition: "response_time > 5000ms" +severity: "warning" +description: "当网站响应时间超过 5 秒时告警" +evaluation_interval: 60s +for: 2m # 条件持续 2 分钟后告警 +``` + +此规则将: + +1. 每分钟监控响应时间 +2. 如果响应时间 > 5s 持续 2+ 分钟则触发告警 +3. 通过配置的渠道发送通知 +4. 在仪表板中显示警告状态 + +您想让我应用此配置还是修改任何设置? + +``` text + +### 聊天功能 + +#### 消息历史 + +- 所有对话都会自动保存 +- 从侧边栏访问以前的对话 +- 搜索对话历史 +- 导出对话日志 + +#### 实时响应 + +- 流式响应提供即时反馈 +- 输入指示器显示助手正在处理时 +- 如需要可取消正在进行的请求 + +#### 对话管理 + +- 为不同主题创建新对话 +- 重命名对话以便更好地组织 +- 删除旧对话以保持整洁 +注意:对话不会保存在数据库中 + +## 故障排除 + +### 常见问题 + +#### 聊天界面无法加载 + +**症状**:聊天界面无限显示加载旋转器 +**解决方案**: + +1. 检查浏览器控制台中的 JavaScript 错误 +2. 确保与 HertzBeat 服务器的网络连接 + +#### "服务不可用"消息 + +**症状**:聊天显示"HertzBeat AI 监控服务不可用" +**解决方案**: +1. 验证 OpenAI API 密钥配置 +2. 检查应用程序日志中的错误 +3. 确保数据库连接 + +#### 无效 API 密钥错误 + +**症状**:配置对话框显示"无效 API 密钥"错误 +**解决方案**: + +1. 验证您的 OpenAI API 密钥以 `sk-` 开头 +2. 检查 API 密钥是否有足够的积分/配额 +3. 直接使用 OpenAI API 测试 API 密钥 +4. 确保 API 密钥中没有多余的空格 + +#### 监控器创建失败 + +**症状**:AI 建议监控器配置但创建失败 +**解决方案**: + +1. 验证您有创建监控器的权限 +2. 检查是否已存在同名监控器 +3. 确保目标主机/服务可访问 +4. 查看监控器参数验证错误 + +### 调试模式 + +通过设置日志级别为 DEBUG 来启用调试日志: + +```yaml +logging: + level: + org.apache.hertzbeat.ai.agent: DEBUG +``` + +## 最佳实践 + +### 有效的聊天使用 + +1. **具体明确**:"为 api.example.com 端口 8080 添加 HTTP 监控器" vs "添加一个监控器" +2. **提供上下文**:说明您想要生产环境还是测试环境监控器 +3. **询问后续问题**:如需要请求配置详细信息 +4. **使用自然语言**:AI 理解对话式请求 + +### 监控器管理 + +1. **命名约定**:使用描述性的监控器名称 +2. **文档记录**:要求 AI 记录复杂配置 + +### 安全考虑 + +1. **API 密钥安全**:安全存储 OpenAI API 密钥 +2. **访问控制**:限制 AI 聊天访问给授权用户 +3. **数据隐私**:注意聊天日志中的敏感信息 +4. **网络安全**:确保与 OpenAI API 的安全连接 + +## 高级功能 + +### 批量操作 + +```text +您:为我的预发布环境中的所有服务添加 HTTP 监控器: +- api-staging.example.com:8080 +- web-staging.example.com:80 +- admin-staging.example.com:3000 +``` + +## 限制 + +- 需要活跃的互联网连接访问 OpenAI API +- OpenAI API 使用会根据令牌消耗产生费用 +- 复杂的多步骤操作可能需要多次交互 +- 某些高级配置可能需要手动设置 +- 可能会根据 OpenAI 计划应用速率限制 + +## 支持 + +对于 AI 智能助手的问题: + +1. 首先查看此文档 +2. 查看应用程序日志中的错误 +3. 独立测试 OpenAI API 连接 +4. 联系 HertzBeat 支持并提供具体错误消息 + +--- diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_config.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_config.md new file mode 100644 index 00000000000..f71bd8239b7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ai_config.md @@ -0,0 +1,81 @@ +--- +id: ai_config +title: AI 快速入门 +sidebar_label: AI 快速入门 +keywords: [人工智能 AI] +--- + +> 通过配置application.yml文件里面的aiConfig实现与人工智能的对话 + +### 配置参数说明 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------| +| type | 选择AI大模型(如智普、通义千问...) | +| model | 选择模型,默认为GLM-4 | +| api-key | 获取api_key,如果没有该配置,无法与大模型进行对话 | + +### 大模型选项与配置详解 + +#### 智普AI + +| 参数名称 | 示例 | 链接 | +|---------|-----------------------------------------------------|-----------------------------------------------------------------| +| type | zhiPu(必须和示例完全相同) | 无 | +| model | glm-4-0520、glm-4 、glm-4-air、glm-4-airx、 glm-4-flash | 无 | +| api-key | xxxxx.xxxxxx | [https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys](https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys) | + +#### 阿里巴巴AI + +| 参数名称 | 示例 | 链接 | +|---------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| +| type | alibabaAi(必须和示例完全相同) | 无 | +| model | qwen-turbo、qwen-plus、qwen-max、qwen-max-0428、qwen-max-0403、qwen-max-0107、qwen-max-longcontext | [https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH) | +| api-key | xxxxxxxxxxx | [https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10](https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10) | + +#### 月之暗面AI + +| 参数名称 | 示例 | 链接 | +|---------|-------------------------------------------------|-----------------------------------------------| +| type | kimiAi(必须和示例完全相同) | 无 | +| model | moonshot-v1-8k、moonshot-v1-32k、moonshot-v1-128k | 无 | +| api-key | xxxxxxxxxxx | [https://platform.moonshot.cn/console/api-keys](https://platform.moonshot.cn/console/api-keys) | + +#### 科大讯飞AI + +快速入门:[https://www.xfyun.cn/doc/platform/quickguide.html](https://www.xfyun.cn/doc/platform/quickguide.html) + +| 参数名称 | 示例 | 链接 | +|------------|--------------------------------------------------|---------------------------------------| +| type | sparkDesk (must be exactly the same as example) | | +| model | general、generalv2、generalv3、generalv3.5、4.0Ultra | | +| api-key | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | +| api-secret | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | + +| 模型版本 | 模型类型(application.yml的model参数) | +|-----------------|-------------------------------| +| Spark4.0 Ultra | 4.0Ultra | +| Spark Max | generalv3.5 | +| Spark Pro | generalv3 | +| Spark V2.0 | generalv2 | +| Spark Lite(免费版) | general | + +#### Ollama AI + +快速入门: [https://github.com/ollama/ollama/tree/main/docs](https://github.com/ollama/ollama/tree/main/docs) + +| 参数名称 | 示例 | 链接 | +|-----------------------|--------------------------------------------------|---------------------------------------| +| type | ollama (必须和示例完全相同) | | +| model | deepseek-r1:latest、qwen3:latest、llama4:16x17b | [https://ollama.com/search](https://ollama.com/search) | +| api-url | [http://127.0.0.1:11434/v1/chat/completions](http://127.0.0.1:11434/v1/chat/completions) | | + +#### OpenRouter + +快速入门: [https://openrouter.ai/docs/quickstart](https://openrouter.ai/docs/quickstart) + +| 参数名称 | 示例 | 链接 | +|---------|------------------------------------------|----------------------------------------------------| +| type | openRouter (必须和示例完全相同) | | +| model | openai/gpt-4o, anthropic/claude-sonnet-4 | [https://openrouter.ai/models](https://openrouter.ai/models) | +| api-key | xxxxxxxxxxx | [https://openrouter.ai/settings/provisioning-keys](https://openrouter.ai/settings/provisioning-keys) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/airflow.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/airflow.md new file mode 100644 index 00000000000..a7f77f7f5b6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/airflow.md @@ -0,0 +1,38 @@ +--- +id: airflow +title: 监控:Apache Airflow监控 +sidebar_label: Apache Airflow +keywords: [开源监控系统, 开源数据库监控, Apache Airflow监控] +--- + +> 对Apache Airflow通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-----------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8080 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认3000毫秒 | +| HTTPS | 是否启用HTTPS | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:airflow_health + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|------------------| +| metadatabase | 无 | metadatabase健康情况 | +| scheduler | 无 | scheduler健康情况 | +| triggerer | 无 | triggerer健康情况 | + +#### 指标集合:airflow_version + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|---------------| +| value | 无 | Airflow版本 | +| git_version | 无 | Airflow git版本 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_center.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_center.md new file mode 100644 index 00000000000..09bc1dc8589 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_center.md @@ -0,0 +1,56 @@ +--- +id: alarm_center +title: 告警中心 +sidebar_label: 告警中心 +keywords: [开源监控系统, 告警中心, 告警管理,告警显示] +--- + +> 告警中心是一个展示平台,用于显示所有经过分组、收敛、抑制、静默等处理的告警,包括由内部系统阈值触发的告警和第三方接入告警。 + +## 告警来源 + +HertzBeat 的告警中心管理来自两个主要来源的告警: + +1. 系统内部阈值触发的告警 + - 当监控指标超过预定义阈值时生成 + - 与系统中配置的监控任务和阈值规则直接相关 + - 可以通过调整监控任务和阈值设置进行控制 +2. 第三方接入告警 + - 通过 API 接口从外部系统接收 + - 支持与其他监控系统或告警平台集成 + - 与内部告警一样经过相同的处理流程 + +## 告警处理机制 + +在显示到告警中心之前,所有告警都会经过几个处理步骤: + +1. 分组 + - 基于来源、类型、严重程度和其他属性(标签)对相关告警进行分类 + - 帮助高效管理大量告警 + - 支持针对不同场景的自定义分组规则 +2. 收敛 + - 减少短时间内发生的多个类似告警产生的干扰 + - 以更简洁的方式呈现收敛后的告警,避免信息冗余 +3. 抑制 + - 处理告警之间的依赖关系 + - 当关键告警触发时,可以抑制相关的次要告警 + - 支持配置定义告警依赖关系的抑制规则 +4. 静默 + - 在特定时间段内暂时屏蔽某些告警 + - 适用于系统维护、已知问题处理等场景 + - 可以基于时间设置静默规则 + +## 告警中心界面 + +![alarm_center](/img/docs/help/alarm-center-1.png) + +告警中心提供了系统所有告警的全面视图: + +1. 告警显示 + - 列出所有告警,包含告警状态、来源、标签和时间等关键信息 + - 提供详细视图功能,显示完整的告警信息和上下文 +2. 搜索功能 + - 帮助快速定位特定告警 + - 支持多种搜索(标签、注解、告警状态等) +3. 告警管理 + - 告警删除:移除不再需要关注的告警 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_group.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_group.md new file mode 100644 index 00000000000..4bdea01d927 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_group.md @@ -0,0 +1,24 @@ +--- +id: alarm_group +title: 分组收敛 +sidebar_label: 分组收敛 +keywords: [ 开源监控系统, 告警收敛, 告警分组 ] +--- + +> 分组收敛支持对指定分组标签的告警进行分组合并,对时间段的相同重复告警去重收敛。 当阈值规则触发告警或外部告警上报后,会进入到分组收敛进行告警分组,告警去重,以避免大量告警消息导致告警风暴。 + +## 分组策略参数配置 + +- 策略名称:唯一标识分组策略的名称 +- 分组标签:告警分组标签,最多支持添加10个标签 + + > 标签来源:监控,阈值规则,外部告警携带的标签 + +- 等待时间:新告警产生后等待时间,在此时间内收到的相同告警将被分组,默认30秒 + + > 当一条新(无法加入已有分组)的告警产生,分组收敛将按照 `等待时间` 等待,在此期间,相同告警或满足分组条件的告警将被分组。直到当前时间与该分组第一条告警产生时间间隔超过 `等待时间`,分组后的告警才被发送到告警抑制模块进行后续处理。 + +- 间隔时间:发送分组告警通知的最小时间间隔,避免告警通知过于频繁,默认5分钟 +- 重复间隔:重复告警的最小通知间隔,对于持续触发的告警,避免重复发送通知,默认4小时 + +**注意**:只有分组后的告警才能使用抑制规则进行告警抑制。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_inhibit.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_inhibit.md new file mode 100644 index 00000000000..9fe651ec4a9 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_inhibit.md @@ -0,0 +1,38 @@ +--- +id: alarm_inhibit +title: 告警抑制 +sidebar_label: 告警抑制 +keywords: [ 开源监控系统, 告警收敛, 告警抑制 ] +--- + +> 告警抑制用于配置告警之间的抑制关系。当某个告警发生时,可以抑制其他告警的产生,可以理解为“重要”告警抑制“不重要”告警的产生,例如一台服务器宕机产生的告警抑制这台服务器上其他服务产生的告警。 + +## 前置条件 + +- 正确配置分组收敛规则 + +## 抑制规则配置 + +- 抑制规则名称: 唯一标识抑制规则的名称; +- 源标签: 当告警包含这些标签时,将会抑制目标告警,支持添加多个标签; + > 识别“重要”告警的标签,告警标签需要包含全部源标签才会抑制被目标标签标记的告警。 +- 目标标签: 匹配这些标签的告警将被抑制; + > 识别“不重要”告警的标签,告警标签需要包含全部目标标签才会被抑制。 +- 相等标签: 判断告警相关性的标签。支持最多10个标签; +- 启用状态: 启用或禁用该抑制规则。 + +## 示例 + +场景: 使用 Hertzbeat 监控 两个 Centos 服务器 192.168.1.1 和 192.168.1.2,和部署在两个服务器上的 Redis 服务 Redis-1 和 Redis-2。 +并配置如下阈值规则: + +- 监控 Centos Linux /监控可用性。绑定标签 `server-status:down` +- 监控 Redis数据库 /监控可用性。绑定标签 `redis-status:down` + +如果需要实现当Centos 宕机告警产生后,Redis 告警不再产生,则可以配置如下告警抑制规则: + +- 源标签: `server-status:down` +- 目标标签: `redis-status:down` +- 相等标签: `instancehost` + +当 Centos 192.168.1.1 宕机告警产生时,通知Redis-1 不可用的告警将不再产生。且同时 Centos 192.168.1.2 运行正常且 Redis-2 不可用时,通知 Redis-2 不可用的告警将正常产生。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_silence.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_silence.md new file mode 100644 index 00000000000..9929c6c6038 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alarm_silence.md @@ -0,0 +1,29 @@ +--- +id: alarm_silence +title: 告警静默 +sidebar_label: 告警静默 +keywords: [ 开源监控系统, 告警静默 ] +--- + +> 告警静默管理用于您在系统维护期间或夜晚周末不想受到告警打扰时,可以配置系统静默策略,设置指定时间段内屏蔽告警通知。告警静默规则支持一次性时间段或周期性时间段,支持标签匹配和告警级别匹配部分告警。 + +## 一次性时间段静默配置 + +- 策略名称:唯一标识静默策略的名称; +- 应用所有:是否对所有告警启用该静默策略; +- 匹配标签:当 `应用所有` 配置关闭时,可根据匹配标签匹配需要静默的告警; +- 静默类型:选择 `一次性静默` ; +- 静默时段:选择 `一次性静默` 类型后,静默时段设置如下图所示,可自行配置 + ![alarm_silence](/img/docs/help/alert-silence-1.png) +- 启用状态:启用或禁用该静默策略。 + +## 周期性时间段静默配置 + +- 策略名称:唯一标识静默策略的名称; +- 应用所有:是否对所有告警启用该静默策略; +- 匹配标签:当 `应用所有` 配置关闭时,可根据匹配标签匹配需要静默的告警; +- 静默类型:选择 `周期性静默` ; +- 选择日期: 选择 `周期性静默` 类型后,可以配置需要静默的日期; +- 静默时段:选择 `周期性静默` 类型后,静默时段设置如下图所示,可自行配置,比如在周末时间静默 + ![alarm_silence](/img/docs/help/alert-silence-2.png) +- 启用状态:启用或禁用该静默策略。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_console.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_console.md new file mode 100644 index 00000000000..5198b961b66 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_console.md @@ -0,0 +1,18 @@ +--- +id: alert_console +title: 告警模板中自定义的控制台地址 +sidebar_label: 告警模板登录台地址 +--- + +> 阈值触发后发送告警信息,通过钉钉/企业微信/飞书机器人通知或者使用邮箱通知的时候,告警内容中有登录控制台的详情链接 + +### 自定义设置 + +在我们的启动配置文件application.yml中,找到下面的配置 + +```yml +alerter: + console-url: #这里就是我们的自定义控制台地址 +``` + +默认值是赫兹跳动的官方控制台地址 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_dingtalk.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_dingtalk.md new file mode 100644 index 00000000000..44e78f392da --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_dingtalk.md @@ -0,0 +1,41 @@ +--- +id: alert_dingtalk +title: 告警钉钉机器人通知 +sidebar_label: 告警钉钉机器人通知 +keywords: [告警钉钉机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过钉钉机器人通知到接收人。 + +### 操作步骤 + +1. **【钉钉桌面客户端】-> 【群设置】-> 【智能群助手】-> 【添加新建机器人-选自定义】-> 【设置机器人名称头像】-> 【注意⚠️设置自定义关键字: HertzBeat】 ->【添加成功后复制其WebHook地址】** + + > 注意⚠️ 新增机器人时需在安全设置块需设置其自定义关键字: HertzBeat ,其它安全设置加签或IP段不填写 + + ![email](/img/docs/help/alert-notice-8.png) + +2. **【保存机器人的WebHook地址access_token值】** + + > 例如: webHook地址:`https://oapi.dingtalk.com/robot/send?access_token=43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + > 其机器人access_token值为 `43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + +3. **【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】** + + ![email](/img/docs/help/alert-notice-9.png) + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 钉钉机器人通知常见问题 + +1. 钉钉群未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查钉钉机器人是否配置了安全自定义关键字:HertzBeat +> 请排查是否配置正确机器人ACCESS_TOKEN,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_discord.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_discord.md new file mode 100644 index 00000000000..469b9596cbe --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_discord.md @@ -0,0 +1,70 @@ +--- +id: alert_discord +title: 告警 Discord 机器人通知 +sidebar_label: 告警 Discord 机器人通知 +keywords: [告警 Discord 机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Discord 机器人通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Discord 创建应用, 应用下创建机器人, 获取机器人 Token + +1. 访问 [https://discord.com/developers/applications](https://discord.com/developers/applications) 创建应用 + + ![bot](/img/docs/help/discord-bot-1.png) + +2. 在应用下创建机器人,获取机器人 Token + + ![bot](/img/docs/help/discord-bot-2.png) + + ![bot](/img/docs/help/discord-bot-3.png) + +3. 授权机器人到聊天服务器 + + > 在 OAuth2 菜单下给此机器人授权,`SCOPES` 范围选 `bot`, `BOT PERMISSIONS` 选发送消息 `Send Messages` + + ![bot](/img/docs/help/discord-bot-4.png) + + > 获取到最下方生成的 URL, 浏览器访问此 URL 给机器人正式授权,即设置将机器人加入哪个聊天服务器。 + +4. 查看您的聊天服务器是否已经加入机器人成员 + + ![bot](/img/docs/help/discord-bot-5.png) + +### 开启开发者模式,获取频道 Channel ID + +1. 个人设置 -> 高级设置 -> 开启开发者模式 + + ![bot](/img/docs/help/discord-bot-6.png) + +2. 获取频道 Channel ID + +> 右键选中您想要发送机器人消息的聊天频道,点击 COPY ID 按钮获取 Channel ID + +![bot](/img/docs/help/discord-bot-7.png) + +### 在 HertzBeat 新增告警通知人,通知方式为 Discord Bot + +1. **【告警通知】->【新增接收人】 ->【选择 Discord 机器人通知方式】->【设置机器人Token和ChannelId】-> 【确定】** + + ![email](/img/docs/help/discord-bot-8.png) + +2. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-policy.png) + +### Discord 机器人通知常见问题 + +1. Discord 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人Token, ChannelId,是否已配置告警策略关联 +> 请排查机器人是否被 Discord聊天服务器正确赋权 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_email.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_email.md new file mode 100644 index 00000000000..7e4f59e7900 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_email.md @@ -0,0 +1,39 @@ +--- +id: alert_email +title: 告警邮件通知 +sidebar_label: 告警邮件通知 +keywords: [告警邮件通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过邮件通知到接收人。 + +### 操作步骤 + +1. **【告警通知】->【新增接收人】 ->【选择邮件通知方式】** + + ![email](/img/docs/help/alert-notice-1.png) + +2. **【获取验证码】-> 【输入邮箱验证码】-> 【确定】** + ![email](/img/docs/help/alert-notice-2.png) + + ![email](/img/docs/help/alert-notice-3.png) + +3. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 邮件通知常见问题 + +1. 自己内网部署的HertzBeat无法接收到邮件通知 + + > HertzBeat需要自己配置邮件服务器,TanCloud无需,请确认是否在application.yml配置了自己的邮件服务器 + +2. 云环境TanCloud无法接收到邮件通知 + + > 请排查在告警中心是否已有触发的告警信息 + > 请排查是否配置正确邮箱,是否已配置告警策略关联 + > 请查询邮箱的垃圾箱里是否把告警邮件拦截 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_enterprise_wechat_app.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_enterprise_wechat_app.md new file mode 100644 index 00000000000..03bed60a8ed --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_enterprise_wechat_app.md @@ -0,0 +1,34 @@ +--- +id: alert_enterprise_wechat_app +title: 企业微信应用告警通知 +sidebar_label: 告警企业微信应用通知 +keywords: [开源告警系统, 开源监控告警系统, 企业微信应用告警通知] +--- + +> 阈值触发后发送告警信息,通过企业微信应用通知到接收人. + +### Operation steps + +1. **【企业微信后台管理】-> 【App管理】-> 【创建一个新的应用】-> 【设置应用信息】->【添加成功后复制应用的AgentId和Secret】** + + ![email](/img/docs/help/alert-wechat-1.jpg) + +2. **【告警通知】->【新增接收人】 ->【选择企业微信应用通知方式】->【设置企业ID,企业应用id和应用的secret 】-> 【确定】** + + ![email](/img/docs/help/alert-wechat-2.jpg) + +3. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人。** + + ![email](/img/docs/help/alert-wechat-3.jpg) + +### 企业微信应用通知常见问题 + +1. 企业微信应用未收到告警通知. + +> 请检查用户是否具有应用程序权限. +> 请检查企业应用程序回调地址设置是否正常. +> 请检查服务器IP是否在企业应用程序白名单上. + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu.md new file mode 100644 index 00000000000..31b0bd63861 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu.md @@ -0,0 +1,39 @@ +--- +id: alert_feishu +title: 告警飞书机器人通知 +sidebar_label: 告警飞书机器人通知 +keywords: [告警飞书机器人通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过飞书机器人通知到接收人。 + +### 操作步骤 + +1. **【飞书客户端】-> 【群设置】-> 【群机器人】-> 【添加机器人】 -> 【自定义机器人】 -> 【设置机器人名称头像】-> 【添加成功后复制其WebHook地址】** + +2. **【保存机器人的WebHook地址的KEY值】** + + > 例如: webHook地址:`https://open.feishu.cn/open-apis/bot/v2/hook/3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + > + > 其机器人KEY值为 `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【告警通知】->【新增接收人】 ->【选择飞书机器人通知方式】->【设置飞书机器人KEY】-> 【确定】** + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 飞书机器人通知常见问题 + +1. 飞书群未收到机器人告警通知 + + > 请排查在告警中心是否已有触发的告警信息 + > 请排查是否配置正确机器人KEY,是否已配置告警策略关联 + +2. 如何在告警通知中@某人 + + > 在新增接收人的表单中,填写 `用户ID` 。如果需要 @所有人,可以在 `用户ID` 字段中填入 `all`。同时支持填写多个用户id,用逗号 `,` 分隔。获取飞书用户id的具体方法,请参考:[获取飞书用户ID](https://open.feishu.cn/document/faq/trouble-shooting/how-to-get-internal-user-id) + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu_app.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu_app.md new file mode 100644 index 00000000000..3c3c2492321 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_feishu_app.md @@ -0,0 +1,75 @@ +--- +id: alert_feishu_app +title: 告警飞书自建应用通知 +sidebar_label: 告警飞书自建应用通知 +keywords: [告警飞书自建应用通知 , 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过飞书自建应用通知到接收人。 + +### 操作步骤 + +1. **【[飞书开放平台](https://open.feishu.cn/)】->【创建企业自建应用】->【创建】->【添加应用能力:机器人】** + +2. **【开发配置】->【权限配置】:不同的通知对象类型所需要的API权限不同,可按需开通** + + | 权限名称 | 权限代码 | 指定用户 | 指定群聊 | 指定部门 | 所有用户 | + |------------------------|-----------------------------------|:----:|:----:|:----:|:----:| + | 获取用户 user ID | contact:user.employee_id:readonly | ✓ | | | ✓ | + | 以应用的身份发消息 | im:message:send_as_bot | ✓ | ✓ | ✓ | ✓ | + | 获取飞书人事(标准版)应用中的员工花名册信息 | ehr:employee:readonly | | | | ✓ | + | 给一个或多个部门的成员批量发消息 | im:message:send_multi_depts | | | ✓ | | + | 给多个用户批量发消息 | im:message:send_multi_users | | | | ✓ | + + > 注意⚠️:在指定群聊的通知类型中,应用需作为机器人添加进群聊里,若要@某人需要开通`获取用户 user ID`权限 + > + > 批量导入权限 + > + > ```json + > { + > "scopes": { + > "tenant": [ + > "contact:user.employee_id:readonly", + > "im:message:send_as_bot", + > "ehr:employee:readonly", + > "im:message:send_multi_depts", + > "im:message:send_multi_users" + > ], + > "user": [] + > } + > } + > ``` + +3. **【应用发布】->【版本发布与管理】->【创建版本】->【保存】->【发布】** + +4. **【基础信息】->【凭证与基础信息】->【复制保存App ID和App Secret】** + +5. **【告警通知】->【新增接收人】 ->【选择飞书自建应用通知方式】->【设置应用ID、应用secret】-> 【选择通知对象类型】-> 【设置对应的ID】** + +6. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 飞书自建应用通知常见问题 + +1. 飞书未收到告警通知 + + > 请排查在告警中心是否已有触发的告警信息 + > 请排查是否配置正确App ID和App Secret,是否已配置告警策略关联 + > 请排查应用发布时该用户是否在可用范围内 + +2. 如何在指定群聊中@某人 + + > 在新增接收人的表单中,填写 `用户ID` 。如果需要 @所有人,可以在 `用户ID` 字段中填入 `all`。同时支持填写多个用户id,用逗号 `,` 分隔。获取飞书用户id的具体方法,请参考:[如何获取用户的 User ID](https://open.feishu.cn/document/faq/trouble-shooting/how-to-obtain-user-id#529e21a9) + +3. 如何获取群聊ID + + 请参考:[群ID获取方式](https://open.feishu.cn/document/server-docs/group/chat/chat-id-description#394516c9) + +4. 如何获取部门ID + + 请参考:[部门资源介绍](https://open.feishu.cn/document/server-docs/contact-v3/department/field-overview#9c02ed7a) + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_integration.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_integration.md new file mode 100644 index 00000000000..498fb5bd355 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_integration.md @@ -0,0 +1,32 @@ +--- +id: alert_integration +title: 告警集成 +sidebar_label: 告警集成 +keywords: [开源监控, 告警集成, 告警管理, 多源告警] +--- + +> HertzBeat 的告警集成模块旨在实现对来自不同第三方监控与可观测性平台的告警进行统一接收、标准化处理与智能分发。作为一个集中式“告警中心”,HertzBeat 能够高效地接入外部系统的告警信息,并执行灵活的告警管理策略。 + +### 核心能力 + +- **多源告警接入**:支持从 Webhook、Prometheus、Alertmanager、SkyWalking、腾讯云等主流平台接收告警消息 +- **告警格式标准化**:将来自不同平台的告警数据转换为 HertzBeat 内部统一格式,便于后续处理 +- **丰富的告警处理机制**,包括: + - **分组收敛**:根据标签对告警进行分组管理,对时间段的相同重复告警去重收敛 + - **抑制**:在满足特定条件时自动屏蔽次要告警 + - **静默**:在系统维护或已知异常期间临时关闭告警通知,避免干扰 + +### 已支持的告警来源 + +HertzBeat 当前已支持以下第三方监控平台的告警接入: + +- **Webhook**:通用接入方式,支持自定义告警格式推送。 +- **Prometheus**:可以在 Prometheus Server 的 Alertmanager 配置中直接配置 HertzBeat 的服务地址,使用 HertzBeat 替换 Alertmanager 直接来接收处理 Prometheus Server 的告警信息。 +- **Alertmanager**:支持将 Prometheus AlertManager 的告警发送到 HertzBeat 告警平台。 +- **SkyWalking**:将 SkyWalking 的告警通过 Webhook 方式发送到 HertzBeat 告警平台。 +- **腾讯云监控**:将腾讯云的告警通过 Webhook 方式发送到 HertzBeat 告警平台。 +- **更多**:HertzBeat 正在积极扩展其集成支持。如果暂时没有找到你需要的集成,活跃的社区也可以协助你添加。 + +你可以通过 HertzBeat 的“集成接入”界面查看具体的接入方式和配置示例。 + +![integration](/img/docs/help/alert_integration_cn.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_notification_template.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_notification_template.md new file mode 100644 index 00000000000..549c048ddc7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_notification_template.md @@ -0,0 +1,124 @@ +--- +id: alert_notification_template +title: 通知模板 +sidebar_label: 通知模板 +keywords: [模板, 告警模板, 通知模板,消息通知, 告警 Webhook 回调通知] +--- + +> HertzBeat 支持自定义通知模板,模板采用占位符变量进行渲染,系统会在推送时自动将变量替换为实际告警数据。 + +## 模板配置 + +【消息通知】->【通知模板】->【模板配置】 + +![模板管理](/img/docs/help/alert-notification-template-1.png) + +## 模板渲染 + +HertzBeat 通知模板基于 FreeMarker 语法,支持变量占位符、条件判断、循环、格式化等高级用法。模板渲染时,系统会将告警数据对象(如 GroupAlert、SingleAlert)注入模板,变量会被自动替换为实际值。 + +## 可用变量与数据结构 + +### GroupAlert 结构体字段 + +[GroupAlert定义](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/GroupAlert.java) + +- `id`:告警分组主键 +- `groupKey`:分组唯一标识 +- `status`:分组状态(如 firing、resolved) +- `groupLabels`:分组标签(Map) +- `commonLabels`:公共标签(Map) +- `commonAnnotations`:公共注解(Map) +- `alertFingerprints`:告警指纹列表 +- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:元数据 +- `alerts`:告警明细列表(`List`) + +### SingleAlert 结构体字段 + +[SingleAlert定义](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/SingleAlert.java) + +- `id`:明细主键 +- `fingerprint`:唯一指纹 +- `labels`:标签(Map) +- `annotations`:注解(Map) +- `content`:告警内容 +- `status`:状态(firing|resolved) +- `triggerTimes`:触发次数 +- `startAt`、`activeAt`、`endAt`:时间戳 +- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:元数据 + +## 模板变量与语法说明 + +- **全局变量**: + - `${status}`:告警状态(如告警、恢复等) + - `${groupKey}`:分组唯一标识 + - `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:公共标签和注解,可通过 `xxx` 访问具体字段 + +- **告警明细列表**: + - `${alerts}`:告警明细集合,通常配合 `<#list alerts as alert>` 进行遍历 + - `${alert.labels.xxx}`、`${alert.annotations.xxx}`:单条告警的标签和注解 + - `${alert.content}`:告警内容 + - `${alert.triggerTimes}`:触发次数 + - `${alert.startAt}`:首次触发时间 + +- **模板语法支持**: + - 支持 FreeMarker 语法,包括条件判断 `<#if>`、循环 `<#list>`、JSON 字符串化 `?json_string`、时间格式化 `?number_to_datetime`、字符串格式化 `?string('yyyy-MM-dd HH:mm:ss')` 等 + - 可灵活组合变量与模板语法,实现复杂的消息定制 + - 更多语法请参考 [FreeMarker 官方文档](https://freemarker.apache.org/) + +## 模板示例 + +```json +{ + "title": "🔔 HertzBeat Alert Notification", + "status": "${status!"UNKNOWN"}", + "commonLabels": { + <#if commonLabels?? && commonLabels.severity??> + "severity": "${commonLabels.severity?switch("critical", "❤️ Critical", "warning", "💛 Warning", "info", "💚 Info", "Unknown")}"<#if commonLabels.alertname??>, + + <#if commonLabels?? && commonLabels.alertname??> + "alertName": "${commonLabels.alertname}" + + }, + "alerts": [ + <#if alerts?? && alerts?size gt 0> + <#list alerts as alert> + { + "index": ${alert?index + 1}, + "labels": { + <#if alert.labels?? && alert.labels?size gt 0> + <#list alert.labels?keys as key> + "${key}": "${alert.labels[key]?json_string}"<#if key?has_next>, + + + }, + <#if alert.content?? && alert.content != ""> + "content": "${alert.content?json_string}", + + "triggerTimes": ${alert.triggerTimes!0}, + "startAt": "${((alert.startAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}", + <#if alert.activeAt?? && alert.activeAt gt 0> + "activeAt": "${((alert.activeAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}", + + <#if alert.endAt?? && alert.endAt gt 0> + "endAt": "${(alert.endAt?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}"<#if alert.annotations?? && alert.annotations?size gt 0>, + + <#if alert.annotations?? && alert.annotations?size gt 0> + "annotations": { + <#list alert.annotations?keys as key> + "${key}": "${alert.annotations[key]?json_string}"<#if key?has_next>, + + } + + }<#if alert?has_next>, + + + ], + "commonAnnotations": { + <#if commonAnnotations?? && commonAnnotations?size gt 0> + <#list commonAnnotations?keys as key> + "${key}": "${commonAnnotations[key]?json_string}"<#if key?has_next>, + + + } +} diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_slack.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_slack.md new file mode 100644 index 00000000000..f4ef1913fcd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_slack.md @@ -0,0 +1,37 @@ +--- +id: alert_slack +title: 告警 Slack Webhook 通知 +sidebar_label: 告警 Slack Webhook 通知 +keywords: [告警 Slack Webhook 通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过 Slack Webhook 通知到接收人。 + +## 操作步骤 + +> 部署网络本身需支持科学上网,不支持设置代理 + +### 在 Slack 开启 Webhook, 获取 Webhook URL + +参考官网文档 [Sending messages using Incoming Webhooks](https://api.slack.com/messaging/webhooks) + +### 在 HertzBeat 新增告警通知人,通知方式为 Slack Webhook + +1. **【告警通知】->【新增接收人】 ->【选择 Slack Webhook 通知方式】->【设置 Webhook URL】-> 【确定】** + + ![email](/img/docs/help/slack-bot-1.png) + +2. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-policy.png) + +### Slack 机器人通知常见问题 + +1. Slack 未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确 Slack Webhook URL,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_smn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_smn.md new file mode 100644 index 00000000000..bcfe5d71a79 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_smn.md @@ -0,0 +1,43 @@ +--- +id: alert_smn +title: 华为云SMN通知 +sidebar_label: 告警华为云SMN通知 +keywords: [ 告警华为云SMN通知, 开源告警系统, 开源监控告警系统 ] +--- + +> 阈值触发后发送告警信息,通过华为云SMN通知到接收人。 + +### 操作步骤 + +1. **按照[华为云SMN官方文档](https://support.huaweicloud.com/qs-smn/smn_json.html)开通SMN服务并配置SMN** + + ![alert-notice-10](/img/docs/help/alert-notice-10.png) + +2. **保存SMN的主题URN** + + ![alert-notice-11](/img/docs/help/alert-notice-11.png) + +3. **按照[华为云签名文档](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html)获取AK、SK和项目ID** + + ![alert-notice-12](/img/docs/help/alert-notice-12.png) + + ![alert-notice-13](/img/docs/help/alert-notice-13.png) + +4. **【告警通知】->【新增接收人】 ->【选择华为云SMN通知方式】->【设置华为云SMN AK、SK等配置】-> 【确定】** + + ![alert-notice-14](/img/docs/help/alert-notice-14.png) + +5. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 华为云SMN通知常见问题 + +1. 华为云SMN群未收到告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否正确配置华为云SMN AK、SK等配置,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_sms.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_sms.md new file mode 100644 index 00000000000..fcdfb858707 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_sms.md @@ -0,0 +1,235 @@ +--- +id: alert_sms +title: 告警短信通知 +sidebar_label: 告警短信通知 +keywords: [开源监控系统, 开源告警系统, 开源短信告警通知] +--- + +> 当阈值触发后发送告警信息,通过短信方式通知接收人。 + +## 短信服务配置 + +只有成功配置了您自己的短信服务,监控系统内触发的告警短信才会正常发送。 +hertzbeat有两种方式配置短信服务,一种是直接修改`application.yml`配置文件,另一种是通过hertzbeat前端界面(系统设置 > 消息服务配置)配置。 +> 注意⚠️:两种方式配置的短信服务只能选择一种生效,当两种方式都配置并且开启时,hertzbeat将会优先使用前端界面配置的短信服务。 + +### 腾讯云短信配置 + +在`application.yml`新增/填写如下腾讯平台短信服务器配置(参数需替换为您的短信服务器配置) + +```yaml +alerter: + sms: + enable: true # 是否启用 + type: tencent # 短信服务商类型,支持tencent、 + tencent: # 腾讯云短信配置 + secret-id: AKIDbQ4VhdMr89wDedFrIcgU2PaaMvOuBCzY + secret-key: PaXGl0ziY9UcWFjUyiFlCPMr77rLkJYlyA + app-id: 1435441637 + sign-name: 赫兹跳动 + template-id: 1343434 +``` + +1. 腾讯云短信创建签名(sign-name) + ![image](/img/docs/help/alert-sms-tencent-cloud-signature.png) + +2. 腾讯云短信创建正文模板(template-id) + + ```text + 监控:{1},告警级别:{2}。内容:{3} + ``` + + ![image](/img/docs/help/alert-sms-tencent-cloud-template.png) + +3. 腾讯云短信创建应用(app-id) + ![image](/img/docs/help/alert-sms-tencent-cloud-app.png) + +4. 腾讯云访问管理(secret-id、secret-key) + ![image](/img/docs/help/alert-sms-tencent-cloud-access.png) + +### 阿里云短信配置 + +开通使用阿里云短信服务,您可参考阿里云官方文档:[短信新手操作指引](https://help.aliyun.com/zh/sms/getting-started/get-started-with-sms) + +您可以使用图形化界面配置阿里云短信服务,也可以在`application.yml`中配置阿里云短信服务。 +使用`application.yml`需要新增/填写如下阿里云短信配置(参数需替换为您的短信服务器配置) + +```yaml +alerter: + sms: + enable: true # 启用配置 + type: alibaba # 短信服务商类型,设置为alibaba + alibaba: # 填写阿里云短信配置 + access-key-id: # 您的AccessKey ID + access-key-secret: # 您的AccessKey Secret + sign-name: # 短信签名 + template-code: # 短信模板CODE +``` + +1. 创建阿里云账号并开通短信服务 + - 访问[阿里云短信服务控制台](https://dysms.console.aliyun.com/) + - 开通短信服务 + +2. 创建短信签名(sign-name) + - 登录[短信服务控制台](https://dysms.console.aliyun.com/) + - 选择国内/国际短信服务 + - 进入"签名管理"页面,点击"添加签名" + - 填写签名信息并提交审核 + - 等待签名审核通过 + +3. 创建短信模板(template-code) + - 进入"模板管理"页面 + - 点击"添加模板" + - 创建如下格式的模板: + + ```text + 监控项:${instance},告警级别:${priority}。内容:${content} + ``` + + - 提交模板等待审核 + +4. 获取访问密钥(access-key-id、access-key-secret) + :::tip + 阿里云官方建议使用 RAM 用户 AccessKey,并进行最小化授权。 + ::: + - 进入[RAM访问控制](https://ram.console.aliyun.com/users)管理RAM用户 + - 创建用户并选择"使用永久 AccessKey 访问" + - 安全保存AccessKey ID和AccessKey Secret + - 为用户授权短信服务权限"AliyunDysmsFullAccess" + +现在您可以把这些信息配置到您的hertzbeat应用中。 + +### uni-sms配置 + +uni-sms是一个聚合短信服务平台,您可以参考[UniSMS合一短信文档](https://unisms.apistd.com/docs/tutorials)进行配置。 + +在`application.yml`新增/填写如下uni-sms短信服务配置(参数需替换为您的短信服务器配置) + +```yaml +alerter: + sms: + enable: true # 启用配置 + type: unisms # 短信服务商类型,设置为unisms + unisms: # 填写uni-sms短信配置 + # auth-mode: simple or hmac + auth-mode: simple + access-key-id: YOUR_ACCESS_KEY_ID + # hmac mode need to fill in access-key-secret + access-key-secret: YOUR_ACCESS_KEY_SECRET + signature: YOUR_SMS_SIGNATURE + template-id: YOUR_TEMPLATE_ID +``` + +1. 注册uni-sms账号 + - 访问[uni-sms官网](https://unisms.apistd.com/) + +2. 创建短信签名(signature) + - 登录[uni-sms控制台](https://unisms.apistd.com/console/) + - 进入"短信报备-签名管理"页面 + - 点击"添加签名" + - 填写签名信息并提交审核 + - 等待签名审核通过 + +3. 创建短信模板(template-id) + - 进入"短信报备-模板管理"页面 + - 点击"添加模板" + - 创建如下格式的模板: + + ```text + 监控项:{instance},告警级别:{priority}。内容:{content} + ``` + + - 提交模板等待审核 + +4. 获取`access-key-id`和`access-key-secret` + - 登录[uni-sms控制台](https://unisms.apistd.com/console/) + - 进入"凭证管理"页面 + - 获取AccessKey ID和AccessKey Secret + - 安全保存AccessKey ID和AccessKey Secret + + :::note + UniSMS 提供以下两种鉴权方式共开发者选择,可在控制台-凭证管理中设置,默认为简易模式。 + - 简易模式 [默认]:此模式仅核验 AccessKey ID,不对请求参数进行验签,方便开发者快速接入。 + - HMAC模式:此模式要求使用 AccessKey Secret 对请求参数进行验签,以加强保障请求的安全与真实性。 + ::: + +### AWS Cloud SMS配置 + +要激活和使用 AWS Cloud SMS 服务,请参考官方 AWS 文档: [SMS Getting Started Guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-sms-mms.html) + +您可以通过图形界面或 application.yml 文件配置 AWS Cloud SMS 服务。 +要使用 application.yml,请添加/填写以下 AWS Cloud SMS 配置(请用您的 SMS 服务器配置信息替换参数): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: aws # SMS provider type, supports "aws" + aws: # AWS Cloud SMS configuration + access-key-id: # Your AccessKey ID + access-key-secret: # Your AccessKey Secret + region: # Region Of Your AWS +``` + +1. 创建 AWS 账户 + - 如果您尚未创建 AWS 账户,请访问 [AWS Cloud SMS Console](https://aws.amazon.com/console/)进行注册。 + +2. 获取访问密钥凭据(access-key-id, access-key-secret) + - 进入 AWS IAM(身份与访问管理)控制台。 + - 创建一个具有编程访问权限的 IAM 用户,并附加必要的权限。 + - 获取您的 Access Key ID 和 Secret Access Key(配置时需要)。 + +3. 选择要用于 AWS 终端用户消息传递服务的特定区域 + - 选择支持 AWS 终端用户消息传递(SMS 服务)的区域。 + - 您可以在 这里 查看支持的区域[guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html). + +4. 将 AWS SMS 从沙盒模式移动到生产模式 + - 默认情况下,AWS SMS 以沙盒模式运行,在该模式下,短信仅能发送到已验证的电话号码。 + 要将消息发送到任意号码,您必须将您的账户升级到生产模式。请参考此 指南。 [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html#sandbox-sms-move-to-production) + +5. 验证目标电话号码(适用于沙盒模式) + - 如果您的账户仍处于沙盒模式,您只能向已验证的电话号码发送短信。要添加已验证的号码,请参考此 [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/verify-destination-phone-number.html) + - 注意: 您不需要创建 Origination Identity 或 Origination Simulator,只需使用 AWS CLI 添加已验证的电话号码。 + + > 短信模板格式固定如下:“Instance: {}, Priority: {}, Content: {}” + + 现在,您可以在您的 Hertzbeat 应用程序中配置这些信息. + +现在您可以把这些信息配置到您的hertzbeat应用中。 + +### smslocal短信配置 + +smslocal是一款面向企业的一体化短信服务平台,具备诸如多种发送方式、强大的安全性以及全天候支持等特性。你可以参考 smslocal 的[开发者文档](https://www.smslocal.com/developer/)来进行配置。 + +在 `application.yml` 中添加/填写以下 smslocal 配置内容(请用你自己的短信服务器配置参数替换相关参数): + +```yaml +alerter: + sms: + enable: true # 是否启用 + type: smslocal # 短信服务提供商类型,设置为smslocal + smslocal: # smslocal配置 + api-key: 在此处填入你的API密钥 +``` + +1. 注册 smslocal 账号 + - 访问 [smslocal官网](https://www.smslocal.com/) + +2. 获取 `api-key` + - 登录 [smslocal API accessKey访问页面](https://secure.smslocal.com/cpaas/pages/profile/settings/api-reference) + - 进入 “API 访问” 页面 + - 点击眼睛图标按钮 + - 复制显示的访问密钥 + - 然后你就可以配置 `application.yml` 文件了 + +现在你可以在你的 Hertzbeat 应用程序中配置这些信息。 + +## 操作步骤 + +1. **【告警通知】->【新增接收人】 ->【选择短信通知方式】** + +2. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【关联刚才设置的接收人】-> 【确认】** + + > **注意⚠️ 新增接收人并不代表就生效能收到告警信息,还需要配置关联的告警通知策略,即指定哪些消息发给哪些接收人。** + +如有问题可通过交流群ISSUE反馈! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_telegram.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_telegram.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/alert_telegram.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_telegram.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold.md new file mode 100644 index 00000000000..4e553600f66 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold.md @@ -0,0 +1,104 @@ +--- +id: alert_threshold +title: 告警阈值规则配置 +sidebar_label: 阈值规则 +--- + +:::tip +告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 +阈值规则支持实时阈值和计划阈值,实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL 等表达式在指定时间段内计算触发告警。 +支持可视化页面配置或更高灵活性的表达式规则配置,支持配置触发次数,告警级别,通知模板,关联指定监控等。 +::: + +![threshold](/img/docs/help/alert-threshold-1.png) + +## 实时阈值 + +> 实时阈值是指在监控数据采集时直接触发告警,适用于对实时性要求较高的场景。 + +### 创建实时阈值规则 + +> 系统页面 -> 告警 -> 告警阈值 -> 新增阈值 -> 新增实时阈值规则 + +配置阈值,例如: 选择SSL证书指标对象,配置告警表达式-当指标`expired`为`true`触发,即`equals(expired,"true")` , 设置告警级别通知模板信息等。 + +![HertzBeat](/img/docs/start/ssl_5.png) + +配置项说明: + +- **阈值名称**:定义此阈值规则的唯一名称 +- **指标对象**:选择我们需要配置阈值的监控指标对象 例如:网站监控类型下的 -> 响应时间指标 +- **阈值规则**:配置具体指标的告警触发规则,支持图形界面和表达式规则,表达式环境变量和操作符见页面提示。阈值表达式详细帮助见 [阈值表达式帮助](alert_threshold_expr) +- **关联监控**:应用此阈值规则到指定的监控对象(支持直接绑定和标签关联),若未配置,则应用到所有符合此阈值类型规则的监控对象上。 +- **告警级别**:触发阈值的告警级别,从低到高依次为:警告-warning,严重-critical,紧急-emergency +- **触发次数**:设置触发阈值多少次之后才会真正的触发告警 +- **通知模板**:告警触发后发送的通知信息模板,模板环境变量见页面提示,例如:`${__instancename__} ${__metric__} 指标的值为 ${responseTime},大于 50 触发告警` +- **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上。 +- **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上。 +- **启用告警**:此告警阈值配置开启生效或关闭 + +**阈值告警配置完毕,已经被成功触发的告警信息可以在【告警中心】看到。** +**若需要将告警信息邮件,微信,钉钉飞书通知给相关人员,可以在【消息通知】配置。** + +## 计划阈值 + +> 计划阈值规则是指系统按照设定的周期性时间间隔,执行一次表达式规则(如 PromQL),以判断指定时间范围内的监控数据是否满足告警条件。这类规则适用于需要评估趋势或聚合数据的场景,而不是对单个实时数据点做出立即反应。 + +### 计划阈值表达式语法 + +计划阈值使用基于 ANTLR 语法的专用表达式语言,支持 PromQL 风格的查询。语法包括: + +1. **查询表达式**: 引用监控数据,支持 PromQL 风格,具体语法请查询配置的时序数据库官网关于 PromQL 的文档 + + ```text + cpu_usage + memory{__field__="field1"} + ``` + +2. **比较表达式**: 将值与阈值进行比较 + + ```text + cpu_usage > 80 + memory_usage >= 90.5 + response_time < 1000 + ``` + +3. **逻辑表达式**: 组合多个条件 + + ```text + cpu_usage > 80 and memory_usage > 70 + disk_usage > 90 or inode_usage > 85 + cpu_usage > 80 unless maintenance_mode == 1 + ``` + +4. **括号表达式**: 控制求值顺序 + + ```text + (cpu_usage > 80 or memory_usage > 90) and service_status == 1 + ``` + +### 创建定时阈值规则 + +阈值规则配置,例如:针对一组 CPU 指标,设定表达式 `cpu_usage{instance="server1"} > 80`,当满足该表达式时触发告警。除此之外还可以设置执行周期、告警级别、通知模板等内容。 + +![threshold](/img/docs/help/alert-threshold-2.png) + +各配置项说明如下: + +- **规则名称**:用于唯一标识该阈值规则的名称。 +- **阈值表达式**:用于定义告警条件的表达式,系统会按照"执行周期"定期对其进行评估。表达式支持: + - **查询标识符**: 引用监控指标(如 `cpu_usage`, `memory{instance="server1"}`) + - **比较操作符**: `>`, `>=`, `<`, `<=`, `==`, `!=` + - **逻辑操作符**: `and`, `or`, `unless` + - **括号**: 用于分组和控制求值顺序 + - **数字字面量**: 阈值(如 `80`, `90.5`) +- **执行周期**:表达式的执行时间间隔,单位为秒。例如 `300` 表示每 5 分钟评估一次表达式。 +- **告警级别**:设定当触发告警时的严重程度,包括:`warning`(警告)、`critical`(严重)、`emergency`(紧急)。 +- **触发次数**:表达式连续满足告警条件的次数,超过该次数后才实际触发告警。 +- **告警内容**:当告警被触发后发送的通知内容模板,页面上提供了可用的模板变量供参考。 +- **附加标签**:给此阈值规则附加标签,当产生告警时,此标签也会附加到告警上。 +- **附加声明**:给此阈值规则附加声明信息(声明内容支持环境变量),当产生告警时,此声明信息会被渲染并附加到告警上。 +- **启用告警**:用于控制该阈值规则是否启用。 + +**阈值规则配置完成后,成功触发的告警将显示在【告警中心】中。** +**如需通过邮件、企业微信、钉钉、飞书等方式发送告警通知,请前往【通知配置】中进行设置。** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold_expr.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold_expr.md new file mode 100644 index 00000000000..7ca4009a472 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_threshold_expr.md @@ -0,0 +1,67 @@ +--- +id: alert_threshold_expr +title: 阈值触发表达式 +sidebar_label: 阈值触发表达式 +--- + +> 在我们配置阈值告警时,需要配置阈值触发表达式,系统根据表达式和监控指标值计算触发是否告警,这里详细介绍下表达式使用。 + +#### 表达式支持的操作符 + +| 运算符(可视化配置) | 运算符(表达式配置) | 支持类型 | 说明 | | +| ------------------ | -------------------- | ----------------------- | ------------------------ | - | +| 等于 | equals(str1,str2) | 字符型 | 判断字符串是否相等 | | +| 不等于 | !equals(str1,str2) | 字符型 | 判断字符串是否不相等 | | +| 包含 | contains(str1,str2) | 字符型 | 判断字符串是否包含 | | +| 不包含 | !contains(str1,str2) | 字符型 | 判断字符串是否不包含 | | +| 匹配 | matches(str1,str2) | 字符型 | 判断字符串正则是否匹配 | | +| 不匹配 | !matches(str1,str2) | 字符型 | 判断字符串正则是否不匹配 | | +| 存在值 | exists(obj) | 字符型、数值型、时间型 | 判断字符是否有值存在 | | +| 不存在值 | !exists(obj) | 字符型 、数值型、时间型 | 判断字符是否有值存在 | | +| > | obj1 > obj2 | 数值型、时间型 | 判断数值是否大于 | | +| `<` | `obj1 < obj2` | 数值型、时间型 | 判断数值是否小于 | | +| >= | obj1 >= obj2 | 数值型、时间型 | 判断数值是否大于等于 | | +| `<=` | `obj1 <= obj2` | 数值型、时间型 | 判断数值是否小于等于 | | +| != | obj1 != obj2 | 数值型、时间型 | 判断数值是否不相等 | | +| == | obj1 == obj2 | 数值型、时间型 | 判断数值是否相等 | | + +#### 表达式函数库列表 + +| 支持函数库 | 说明 | +|----------------------------------------------|-----------------------------------| +| condition ? trueExpression : falseExpression | 三元运算符 | +| toDouble(str) | 将字符串转换为Double类型 | +| toBoolean(str) | 将字符串转换为Boolean类型 | +| toInteger(str) | 将字符串转换为Integer类型 | +| array[n] | 取数组第n个元素 | +| * | 算法乘 | +| / | 算法除 | +| % | 求余 | +| ( 和 ) | 括号用于控制运算的优先级,确保在逻辑或数学表达式中某些部分先被计算 | +| + | 加号用于表示数学中的加法运算、字符串拼接 | +| - | 减号用于表示数学中的减法运算 | +| && | 逻辑AND操作符 | +| \|\| | 逻辑OR操作符 | + +#### 支持的环境变量 + +> 环境变量即指标值等支持的变量,用于在表达式中,阈值计算判断时会将变量替换成实际值进行计算 + +非固定环境变量:这些变量会根据我们选择的监控指标对象而动态变化,例如我们选择了**网站监控的响应时间指标**,则环境变量就有 `responseTime - 此为响应时间变量` +如果我们想设置**网站监控的响应时间大于400时**触发告警,则表达式为 `responseTime>400` + +固定环境变量(不常用):`instance : 所属行实例值` +此变量主要用于计算多实例时,比如采集到c盘d盘的`usage`(`usage为非固定环境变量`),我们只想设置**c盘的usage大于80**时告警,则表达式为 `equals(instance,"c")&&usage>80` + +#### 表达式设置案例 + +1. 网站监控->响应时间大于等于400ms时触发告警 + `responseTime>=400` +2. API监控->响应时间大于3000ms时触发告警 + `responseTime>3000` +3. 全站监控->URL(instance)路径为 `https://baidu.com` 的响应时间大于200ms时触发告警 + `equals(instance,"https://baidu.com")&&responseTime>200` +4. MYSQL监控->status指标->threads_running(运行线程数)指标大于7时触发告警 + `threads_running>7` + +若遇到问题可以通过交流群ISSUE交流反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_webhook.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_webhook.md new file mode 100644 index 00000000000..bb487d788dd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_webhook.md @@ -0,0 +1,66 @@ +--- +id: alert_webhook +title: 告警 Webhook 回调通知 +sidebar_label: 告警 Webhook 回调通知 +keywords: [告警 Webhook 回调通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过post请求方式调用WebHook接口通知到接收人。 + +## 操作步骤 + +1. **【告警通知】->【新增接收人】 ->【选择WebHook通知方式】-> 【设置WebHook回调地址】 -> 【确定】** + + ![email](/img/docs/help/alert-notice-5.png) + +2. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### WebHook回调POST请求体BODY内容 + +内容格式:JSON + +```json +{ + "alarmId": 76456, + "target": "`target`", + "thresholdId": 33455, + "priority": 0, + "content": "udp_port monitoring availability alert, code is FAIL", + "status": 0, + "times": 1, + "triggerTime": "2022-02-25T13:32:13", + "tags": { + "app": "windows", + "monitorId": "180427708350720", + "metrics": "availability", + "code": "UN_CONNECTABLE", + "thresholdId": "112", + "monitorName": "WINDOWS_192.168.124.12" + } +} +``` + +| | | +|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| alarmId | integer($int64) title: Alarm record entity primary key index ID 告警记录实体主键索引ID | +| target | string title: Alert target object: monitor availability-available metrics-app.metrics.field 告警目标对象: 监控可用性-available 指标-app.metrics.field | +| thresholdId | integer($int64) title: Alarm definition ID associated with the alarm 告警关联的告警定义ID | +| priority | string($byte) title: Alarm level 0: high-emergency-critical alarm-red 1: medium-critical-critical alarm-orange 2: low-warning-warning alarm-yellow 告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色 | +| content | string title: The actual content of the alarm notification 告警通知实际内容 | +| status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | +| times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | +| triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | +| tags | example: `{key1:value1}` | + +### webhook通知常见问题 + +1. WebHook回调未生效 + +> 请查看告警中心是否已经产生此条告警信息 +> 请排查配置的WebHook回调地址是否正确 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_wework.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_wework.md new file mode 100644 index 00000000000..2fa9ae6ea0e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/alert_wework.md @@ -0,0 +1,39 @@ +--- +id: alert_wework +title: 告警企业微信通知 +sidebar_label: 告警企业微信通知 +keywords: [告警企业微信通知, 开源告警系统, 开源监控告警系统] +--- + +> 阈值触发后发送告警信息,通过企业微信机器人通知到接收人。 + +### 操作步骤 + +1. **【企业微信端】-> 【群设置】-> 【群机器人】-> 【添加新建机器人】-> 【设置机器人名称头像】-> 【添加成功后复制其WebHook地址】** + + ![email](/img/docs/help/alert-notice-6.jpg) + +2. **【保存机器人的WebHook地址的KEY值】** + + > 例如: webHook地址:`https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + > + > 其机器人KEY值为 `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【告警通知】->【新增接收人】 ->【选择企业微信机器人通知方式】->【设置企业微信机器人KEY】-> 【确定】** + + ![email](/img/docs/help/alert-notice-7.png) + +4. **配置关联的告警通知策略⚠️ 【新增通知策略】-> 【将刚设置的接收人关联】-> 【确定】** + + > **注意⚠️ 新增了接收人并不代表已经生效可以接收告警信息,还需配置关联的告警通知策略,即指定哪些消息发给哪些接收人**。 + + ![email](/img/docs/help/alert-notice-4.png) + +### 企业微信机器人通知常见问题 + +1. 企业微信群未收到机器人告警通知 + +> 请排查在告警中心是否已有触发的告警信息 +> 请排查是否配置正确机器人KEY,是否已配置告警策略关联 + +其它问题可以通过交流群ISSUE反馈哦! diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/almalinux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/almalinux.md new file mode 100644 index 00000000000..0cb6575649b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/almalinux.md @@ -0,0 +1,114 @@ +--- +id: almalinux +title: 监控:AlmaLinux操作系统监控 +sidebar_label: AlmaLinux 操作系统 +keywords: [开源监控系统, 开源操作系统监控, AlmaLinux操作系统监控] +--- + +> 对AlmaLinux操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/api.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/api.md new file mode 100644 index 00000000000..96d1e59c7cf --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/api.md @@ -0,0 +1,36 @@ +--- +id: api +title: 监控:HTTP API +sidebar_label: HTTP API +keywords: [ 开源监控系统, 开源网站监控, HTTP API监控 ] +--- + +> 调用HTTP API接口,查看接口是否可用,对其响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|-------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.io/console` 网站的相对路径为 `/console`。 | +| 请求方式 | 设置接口调用的请求方式:GET,POST,PUT,DELETE。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 用户名 | 接口Basic认证或Digest认证时使用的用户名 | +| 密码 | 接口Basic认证或Digest认证时使用的密码 | +| 请求Headers | HTTP 请求头 | +| 查询Params | HTTP查询参数,支持[时间表达式](time_expression) | +| Content-Type | 设置携带BODY请求体数据请求时的资源类型 | +| 请求BODY | 设置携带BODY请求体数据,PUT POST请求方式时有效,支持[时间表达式](time_expression) | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | ms毫秒 | 网站响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/apollo.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/apollo.md new file mode 100644 index 00000000000..327f4116267 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/apollo.md @@ -0,0 +1,57 @@ +--- +id: apollo +title: 监控:Apollo配置中心 +sidebar_label: Apollo配置中心 +keywords: [ 开源监控系统, 开源中间件监控, Apollo配置中心监控 ] +--- + +> 通过调用 Apollo配置中心 Prometheus 接口对 Apollo配置中心服务的通用指标进行采集监控。 + +### 前置条件 + +1. 按照[部署文档](https://www.apolloconfig.com/#/en/deployment/quick-start)搭建好Apollo配置中心。 +2. 访问```http://${someIp:somePort}/prometheus```,查看是否能访问到metrics数据。 + 详情请参考:[Apollo 监控相关](https://www.apolloconfig.com/#/en/design/apollo-design?id=v-monitoring-related) +3. 注意⚠️:从1.5.0版本开始,Apollo服务端支持通过/prometheus暴露prometheus格式的metrics + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | Pulsar的webServiceProt值,默认为8080。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:基础信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|---------------| +| application_ready_time_seconds | 秒 | 应用从启动到就绪状态的耗时 | +| process_uptime_seconds | 秒 | 进程已运行的总时间 | +| process_cpu_usage | % | 当前进程的CPU使用率 | + +#### 指标集合:jvm + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------------------|------|------------------| +| system_cpu_usage | % | 系统CPU使用率 | +| system_load_average_1m | 无 | 系统最近一分钟平均负载 | +| jvm_memory_committed_bytes | MB | JVM已向操作系统申请的内存大小 | +| jvm_memory_used_bytes | MB | JVM当前实际使用的内存大小 | +| jvm_memory_max_bytes | MB | JVM可使用的最大内存限制 | +| jvm_gc_pause_seconds_count | 无 | JVM GC暂停事件的总次数 | +| jvm_gc_pause_seconds_sum | 无 | JVM GC暂停的总耗时 | +| jvm_memory_usage_after_gc_percent | 无 | JVM GC后的内存使用率 | + +#### 指标集合:系统资源 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------|------|--------------------| +| process_files_max_files | 无 | 允许进程打开的最大文件描述符数量限制 | +| process_files_open_files | 无 | 进程当前已打开的文件描述符数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/bulletin.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/bulletin.md new file mode 100644 index 00000000000..527bb1292ca --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/bulletin.md @@ -0,0 +1,28 @@ +--- +id: bulletin +title: 自定义看板 +sidebar_label: 自定义看板 +keywords: [看板, 自定义] +--- + +> 自定义监控看板,以表格形式展示某种监控的自选指标。 + +### 新增看板项 + +1. 点击新增看板项, 输入`看板名称`, 下拉选择`监控类型`, 可根据`标签`对`监控任务名称`进行筛选,再选择关联的`监控任务名称`, 最后在穿梭框中选择需要展示的`监控指标`。 + +2. 点击`确定`按钮, 即可完成自定义看板的创建。 + + ![new-bulletin](/img/docs/help/bulletin-1.png) + +### 查看多个看板 + +1. 点击标签页中的看板名称, 即可查看该看板的详细信息。 + +### 删除看板项 + +1. 点击`删除看板项`按钮, 即可删除当前看板项。 + +2. 点击`批量删除看板项`按钮, 即可选择批量删除选中的看板项。 + + ![bulletin](/img/docs/help/bulletin-2.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/centos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/centos.md new file mode 100644 index 00000000000..85c1070dfba --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/centos.md @@ -0,0 +1,114 @@ +--- +id: centos +title: 监控:CentOS操作系统监控 +sidebar_label: CentOS 操作系统 +keywords: [开源监控系统, 开源操作系统监控, CentOS操作系统监控] +--- + +> 对CentOS操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/clickhouse.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/clickhouse.md new file mode 100644 index 00000000000..1f0e1f0e6c2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/clickhouse.md @@ -0,0 +1,95 @@ +--- +id: clickhouse +title: 监控:Clickhouse数据库监控 +sidebar_label: Clickhouse数据库 +keywords: [开源监控系统, 开源数据库监控, Clickhouse数据库监控] +--- + +> 对Clickhouse数据库的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为8123。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:ping 可用性 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | 无 | 响应时间 | + +#### 指标集合:system.metrics表的数据 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|-------|------------------------------| +| Query | 无 | 正在执行的查询的数量 | +| Merge | 无 | 正在执行的后台合并的数量 | +| Move | 无 | 正在执行的后台移动的数量 | +| PartMutation | 无 | 表变更的次数 | +| ReplicatedFetch | 无 | 从副本收集的数据块数量 | +| ReplicatedSend | 无 | 发送到副本的数量块数量 | +| ReplicatedChecks | 无 | 检查一致性的数据块数量 | +| QueryPreempted | 无 | 停止或等待的查询数量 | +| TCPConnection | 无 | TCP连接数量 | +| HTTPConnection | 无 | HTTP连接数量 | +| OpenFileForRead | 无 | 打开的可读文件的数量 | +| OpenFileForWrite | 无 | 打开的可写文件的数量 | +| QueryThread | 无 | 查询处理的线程数量 | +| ReadonlyReplica | 无 | 处于只读状态的 Replicated table 的数量 | +| EphemeralNode | 无 | ZooKeeper 中保存的临时节点数 | +| ZooKeeperWatch | 无 | ZooKeeper事件订阅数 | +| StorageBufferBytes | Bytes | Buffer tables 中的字节数 | +| VersionInteger | 无 | ClickHouse 版本号 | +| RWLockWaitingReaders | 无 | 等待读表的读写锁的线程数量 | +| RWLockWaitingWriters | 无 | 等待写表的读写锁的线程数量 | +| RWLockActiveReaders | 无 | 在一个表的读写锁中持有读锁的线程数 | +| RWLockActiveWriters | 无 | 在一个表的读写锁中持有写锁的线程数 | +| GlobalThread | 无 | 全局线程池中的线程数 | +| GlobalThreadActive | 无 | 全局线程池中活跃的线程数 | +| LocalThread | 无 | 本地线程池中的线程数 | +| LocalThreadActive | 无 | 本地线程池中活跃的线程数 | + +#### 指标集合:system.events表的数据 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------------|-------|------------------------------------------------------------------------------------------------| +| Query | 无 | 要解释和可能执行的查询数量。 不包括由于 AST 大小限制、配额限制或同时运行的查询数量限制而无法解析或被拒绝的查询。 可能包括 ClickHouse 本身发起的内部查询。 不计算子查询。 | +| SelectQuery | 无 | 可能执行的 Select 查询数 | +| InsertQuery | 无 | 可能执行的 Insert 查询数 | +| InsertedRows | 无 | 被插入到所有表中的行数 | +| InsertedBytes | Bytes | 被插入到所有表中的字节数 | +| FailedQuery | 无 | 执行失败的查询数量 | +| FailedSelectQuery | 无 | 执行失败的 Select 查询数量 | +| FileOpen | 无 | 文件打开数 | +| MergeTreeDataWriterRows | 无 | 写入 MergeTree 表的数据行数 | +| MergeTreeDataWriterCompressedBytes | Bytes | 压缩写入 MergeTree 表的数据字节数 | + +#### 指标集合:system.asynchronous_metrics表的数据 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------------------|------|----------------------------------| +| AsynchronousMetricsCalculationTimeSpent | 无 | 异步指标计算花费的时间(秒) | +| jemalloc.arenas.all.muzzy_purged | 无 | 被清除的模糊(muzzy)页的数量 | +| jemalloc.arenas.all.dirty_purged | 无 | 被清除的脏 (dirty)页的数量 | +| BlockReadBytes_ram1 | 无 | ram1 块读取的字节数 | +| jemalloc.background_thread.run_intervals | 无 | jemalloc 后台线程的运行间隔数 | +| BlockQueueTime_nbd13 | 无 | nbd13 块队列等待时间 | +| jemalloc.background_thread.num_threads | 无 | jemalloc 后台线程的数量 | +| jemalloc.resident | 无 | jemalloc 分配器占用的物理内存大小(字节) | +| InterserverThreads | 无 | Interserver 线程数 | +| BlockWriteMerges_nbd7 | 无 | nbd7 块写合并数量 | +| MarkCacheBytes | 无 | StorageMergeTree 的 marks 的缓存大小 | +| MarkCacheFiles | 无 | StorageMergeTree 的 marks 的缓存文件数量 | +| MaxPartCountForPartition | 无 | partitions 中最大的活跃数据块的数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/consul_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/consul_sd.md new file mode 100644 index 00000000000..737ef71d21c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/consul_sd.md @@ -0,0 +1,108 @@ +--- +id: consul_sd +title: 监控:Consul服务发现监控 +sidebar_label: Consul服务发现 +keywords: [开源监控系统, 开源服务发现监控, Consul服务发现监控] +--- + +> HertzBeat 集成 Consul 注册中心,自动发现服务实例并为发现的实例创建监控任务。 + +### 概述 + +Consul 服务发现允许 HertzBeat 连接到您的 Consul 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。 + +### 监控前操作 + +#### 部署 Consul 服务器 + +1. 根据 [Consul 官方文档](https://www.consul.io/docs/install)部署 Consul 服务器。 +2. 确保 Consul 服务器可从 HertzBeat 访问。 +3. 验证您可以访问 Consul UI:`http://your-consul-server:8500/ui/` +4. 确保 Consul HTTP API 可访问(默认端口:8500) + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| Consul Host | Consul 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:`consul-server` 或 `192.168.1.100` | +| Consul 端口 | Consul 服务器对外提供的端口,默认为 8500 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**Consul服务发现** + - 填写基本配置参数 + +2. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板 + - 常用模板类型:端口、HTTP、HTTPS、Ping 等 + +3. **自动发现** + - HertzBeat 会根据采集间隔定期查询 Consul 服务器 + - 为新注册的服务实例自动创建监控任务 + - 自动删除已下线服务实例的监控任务 + +4. **查看发现的实例** + - 在监控列表中,您可以看到所有自动创建的子监控任务 + - 每个子监控任务对应一个发现的服务实例 + +### 使用示例 + +假设您的 Consul 服务器运行在 `192.168.1.100:8500`,您希望自动监控其中注册的所有服务实例。 + +配置示例: + +- **任务名称**:`Consul-Service-Discovery` +- **Consul Host**:`192.168.1.100` +- **Consul 端口**:`8500` +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控(检测实例可用性) + +配置完成后: + +1. HertzBeat 通过 HTTP API 连接到 Consul 服务器 +2. 获取所有已注册的服务实例 +3. 为每个实例自动创建端口监控(例如:`api-service-192.168.1.101:8080`) +4. 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务 + +### 注意事项 + +- **网络连通性**:确保 HertzBeat 可以访问 Consul 服务器地址和端口(默认:8500) +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:建议最小间隔为 60 秒,避免对 Consul 服务器造成过多请求 +- **ACL 令牌**:如果 Consul 配置了 ACL(访问控制列表),可能需要配置相应的令牌 +- **服务健康状态**:Consul 服务发现会同时发现健康和不健康的实例 +- **数据中心**:默认发现本地数据中心的服务。如果需要发现特定数据中心的服务,可能需要额外配置 +- **实例命名**:自动创建的监控任务命名格式为:`{服务名}-{主机}:{端口}` + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **微服务架构**:自动监控 Consul 中注册的所有微服务实例 +- **服务网格**:监控使用 Consul Connect 服务网格的服务 +- **多数据中心**:监控多个 Consul 数据中心的服务实例 +- **动态伸缩**:自动适应因自动扩缩容而增减的服务实例 +- **健康检查**:结合 Consul 的健康检查机制监控服务健康状态 +- **服务治理**:集中管理 Consul 服务生态中所有服务的监控 + +### 与 Consul 功能的集成 + +- **服务健康**:Consul 服务发现可以利用 Consul 的健康检查信息 +- **服务标签**:从 Consul 发现的服务实例可能包含标签信息 +- **KV 存储**:可与 Consul KV 存储结合使用,实现更灵活的服务发现 +- **服务网格**:支持 Consul Connect 服务网格环境中的服务发现 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dahua.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dahua.md new file mode 100644 index 00000000000..d9452d3da38 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dahua.md @@ -0,0 +1,60 @@ +--- +id: dahua +title: 监控 大华设备 +sidebar_label: 大华 +keywords: [ monitor, dahua, 大华 ] +--- + +> 通过HTTP接口监控大华设备状态,获取设备健康数据。 + +## 监控配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IP或域名 | +| 监控名称 | 标识此监控的唯一名称 | +| 端口 | 网络请求端口,默认80 | +| 超时时间 | 请求超时时间,单位毫秒 | +| 用户名 | 设备登录用户名 | +| 密码 | 设备登录密码 | +| 启用HTTPS | 是否启用HTTPS协议 | +| 采集间隔 | 数据采集周期(≥30秒) | + +## 采集指标 + +### 网络信息 + +- 默认网卡 +- 域名 +- 主机名 +- 网卡 eth0 IP地址 +- 网卡 eth0 默认网关 +- 网卡 eth0 物理地址 +- 网卡 eth0 子网掩码 +- 网卡 eth0 MTU +- DNS服务器1/2 + +### 用户信息 + +- 客户端地址 +- 客户端用户 +- 客户端登录类型 +- 客户端登录时间 + +### 校时信息 + +- 校时服务器 +- 校时端口 +- 校时间隔 + +## 实现原理 + +通过大华设备HTTP接口获取数据: + +1. 网络信息:`/cgi-bin/configManager.cgi?action=getConfig&name=Network` + +2. 用户信息:`/cgi-bin/userManager.cgi?action=getActiveUserInfoAll` + +3. 校时信息:`/cgi-bin/configManager.cgi?action=getConfig&name=NTP` + +使用Digest认证方式,解析设备返回的配置数据格式。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/darwin.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/darwin.md new file mode 100644 index 00000000000..9736756ac2e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/darwin.md @@ -0,0 +1,115 @@ +--- +id: darwin +title: 监控:darwin操作系统监控 +sidebar_label: darwin 操作系统 +keywords: [开源监控系统, 开源操作系统监控, darwin操作系统监控] +--- + +> 对darwin操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率(待完善) | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 - 待完善 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | + +- darwin操作系统磁盘的其他指标采集待完善,当前版本不支持。 +- 可以使用其他工具或脚本来获取磁盘信息。 +- 未来版本将支持磁盘信息采集。 + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/db2.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/db2.md new file mode 100644 index 00000000000..0c2f9bb7e32 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/db2.md @@ -0,0 +1,79 @@ +--- +id: db2 +title: 监控:DB2数据库监控 +sidebar_label: DB2数据库 +keywords: [ 开源监控系统, 开源数据库监控, DB2数据库监控 ] +--- + + +> 对 DB2 数据库的通用性能指标(表空间、会话状态、进程数、锁、慢查询等)进行采集监控 + +### 注意, 必须添加 DB2 jdbc 驱动 jar + +- 下载 DB2 jdbc 驱动 jar + 包,例如 [jcc.jar](https://repo1.maven.org/maven2/com/ibm/db2/jcc/11.5.9.0/jcc-11.5.9.0.jar) +- 将 jar 包复制到 `hertzbeat/ext-lib` 目录下 +- 重启 HertzBeat 服务 + +### 配置参数 + +以下是 DB2 监控所需的配置参数: + +| 参数名称 | 参数帮助描述 | +|:-----------|:-----------------------------------------| +| **目标Host** | 被监控的 DB2 数据库服务器的 IPv4、IPv6 或域名 | +| **端口** | DB2 数据库对外提供的端口,默认为 `50000` | +| **数据库名** | 要连接的 DB2 数据库的名称 | +| **用户名** | 数据库连接用户名 | +| **密码** | 数据库连接密码 | +| **查询超时时间** | 设置 SQL 查询未响应数据时的超时时间,单位毫秒 (ms),默认 `6000` | +| **复用连接** | 是否复用数据库连接,布尔值,默认 `true` | +| **URL** | 数据库连接 URL,可选,配置后将覆盖上面配置的数据库名、用户名、密码等参数 | + +### 采集指标 + +#### 指标集合:基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:-------------------|:-----|:-------| +| `database_version` | 无 | 数据库版本 | +| `instance_name` | 无 | 数据库实例名 | +| `status` | 无 | 实例状态 | +| `num_db` | 无 | 数据库数量 | + +#### 指标集合:表空间使用率 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:------------------|:-------|:-------| +| `tablespace_name` | 无 | 表空间名 | +| `status` | 无 | 类型 | +| `total` | MB | 总容量 | +| `used` | MB | 已使用容量 | +| `free` | MB | 空闲容量 | +| `used_percentage` | 百分比(%) | 已用百分比 | + +#### 指标集合:会话状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:--------------|:-----|:-----------| +| `status_type` | 无 | 会话状态类型 | +| `count` | 无 | 处于该状态的会话数量 | + +#### 指标集合:应用进程数 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:----------------|:-----|:-------------| +| `process_count` | 无 | 总的应用进程数/会话总数 | + +#### 指标集合:锁 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:----------------|:-----|:-------------| +| `waiting_locks` | 无 | 当前处于等待状态的锁数量 | + +#### 指标集合:慢查询 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|:---------------|:-----|:------------| +| `avg_exe_time` | ms | 平均执行时间 | +| `sql_text` | 无 | 慢查询的 SQL 文本 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/debian.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/debian.md new file mode 100644 index 00000000000..5b19bb4ed22 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/debian.md @@ -0,0 +1,114 @@ +--- +id: debian +title: 监控:Debian 系统监控 +sidebar_label: Debian 操作系统 +keywords: [开源监控系统, 操作系统监控, Debian监控] +--- + +> 对Debian系统的通用性能指标进行采集监控 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/deepseek.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/deepseek.md new file mode 100644 index 00000000000..11def97151f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/deepseek.md @@ -0,0 +1,35 @@ +--- +id: deepseek +title: 监控:Deepseek 账户情况 +sidebar_label: Deepseek 账户情况 +keywords: [开源监控系统, 开源网络监控, Deepseek账户监控] +--- + +### 准备工作 + +#### 获取会话密钥 + +登录 Deepseek 后台,访问 `https://platform.deepseek.com/api_keys` 页面,获取会话密钥。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-------|---------------------------------| +| 监控Host | 此处填写 api.deepseek.com 。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 会话密钥 | 即准备工作中获取的会话密钥。 | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:计费 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|--------|-----------| +| 货币 | 无 | 货币,人民币或美元 | +| 可用余额 | 人民币/美元 | 总的可用余额,包括赠金和充值余额 | +| 未过期的赠金余额 | 人民币/美元 | 未过期的赠金余额 | +| 充值的余额 | 人民币/美元 | 充值余额 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dm.md new file mode 100644 index 00000000000..12cb13b8422 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dm.md @@ -0,0 +1,48 @@ +--- +id: dm +title: 监控:达梦数据库监控 +sidebar_label: 达梦数据库 +keywords: [开源监控系统, 开源数据库监控, 达梦数据库监控] +--- + +> 对DM达梦数据库的通用性能指标进行采集监控。支持DM8+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5236。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|-----------| +| PORT_NUM | 无 | 数据库暴露服务端口 | +| CTL_PATH | 无 | 控制文件路径 | +| MAX_SESSIONS | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|------------| +| status$ | 无 | DM数据库的开闭状态 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|---------------------------------| +| dm_sql_thd | 无 | 用于编写 dmsql dmserver 的线程 | +| dm_io_thd | 无 | IO线程,由IO_THR_GROUPS参数控制,默认为2个线程 | +| dm_quit_thd | 无 | 用于执行正常关闭数据库的线程 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns.md new file mode 100644 index 00000000000..e012e347c20 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns.md @@ -0,0 +1,72 @@ +--- +id: dns +title: 监控 DNS 服务器 +sidebar_label: DNS服务器 +keywords: [ 开源监控系统, 开源DNS监控工具, 监控DNS指标 ] +--- + +## 监控:DNS服务器 + +> 收集和监控DNS的常规性能指标。 + +**协议使用:DNS** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------------------| +| DNS服务器IP | 被监控的IPv4、IPv6。注意⚠️不包含协议头(例如:https://,http://)。 | +| 监控名称 | 标识此监控的名称,名称需要是唯一的。 | +| 端口 | DNS服务对外提供的端口,默认为53。 | +| 域名解析的地址 | 域名解析的地址。 | +| 连接超时时间 | 设置连接DNS服务器的超时时间,单位ms毫秒,默认6000毫秒。 | +| 查询类别 | DNS查询的类别. 可选的值包括 `IN`, `CHAOS`, `HESIOD`, `NONE`, 和 `ANY`。默认值:IN | +| 是否使用tcp协议 | 设置DNS查询是否使用tcp协议。 | +| 采集间隔 | 监控周期性数据采集的时间间隔,单位:秒,最小可设置为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 用于更多关于标识和描述此监控的信息,用户可以在此处添加备注信息。 | + +### 采集指标 + +#### 指标集:Header + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| 响应时间 | 毫秒 | DNS服务器响应请求所需的时间 | +| 操作码 | 无 | 当前消息的类型 | +| 响应状态 | 无 | 响应的状态码 | +| 响应标志 | 无 | 响应标志 | +| 请求记录数 | 无 | 请求记录的数量 | +| 响应记录数 | 无 | 响应记录的数量 | +| 授权记录数 | 无 | 表示权威资源记录的数量 | +| 附加记录数 | 无 | 表示附加资源记录的数量 | + +### 指标集: Question + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|-----------------------------------| +| Section | 无 | 请求记录信息,其中包含查询的域名,资源类型,资源记录类,附加信息。 | + +### 指标集: Answer + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|----------------------------------------| +| Section0 | 无 | 请求响应信息,其中包含查询的域名,TTL,资源记录类,资源类型,查询的结果。 | + +> Answer 指标集最多会采集10条响应记录,指标名称从 Section0 到 Section9。 + +### 指标集: Authority + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|------------------------------------------------------------------| +| Section0 | 无 | 域名的SOA(Start of Authority,权威区域起始)记录,其中包含查询的域名,TTL,资源类型,资源记录类等信息。 | + +> Authority 指标集最多会采集10条响应记录,指标名称从 Section0 到 Section9。 + +### 指标集: Additional + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|-------------| +| Section0 | 无 | DNS查询的附加信息。 | + +> Additional 指标集最多会采集10条响应记录,指标名称从 Section0 到 Section9。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns_sd.md new file mode 100644 index 00000000000..7460c2b8529 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dns_sd.md @@ -0,0 +1,223 @@ +--- +id: dns_sd +title: 监控:DNS服务发现监控 +sidebar_label: DNS服务发现 +keywords: [开源监控系统, 开源服务发现监控, DNS服务发现监控] +--- + +> HertzBeat 集成 DNS 服务,通过 DNS 记录自动发现服务实例并为发现的实例创建监控任务。 + +### 概述 + +DNS 服务发现允许 HertzBeat 通过查询 DNS 记录来发现服务实例。这是一种简单可靠的服务发现方法,利用标准 DNS 基础设施来查找服务实例。特别适用于使用 DNS SRV 记录或需要通过 DNS 发现服务的环境。 + +### 监控前操作 + +#### 配置 DNS 记录 + +确保您的 DNS 服务器已正确配置服务发现记录。不同的记录类型有不同的格式: + +1. **SRV 记录**:用于服务发现,包含服务主机和端口信息 +2. **A 记录**:返回 IPv4 地址 +3. **AAAA 记录**:返回 IPv6 地址 +4. **MX 记录**:邮件服务器记录 +5. **NS 记录**:名称服务器记录 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| DNS地址 | DNS 服务器地址。示例:`8.8.8.8` 或 `192.168.1.1` | +| DNS端口 | DNS 服务器端口,默认为 53 | +| 记录类型 | 要查询的 DNS 记录类型。选项:`SRV`、`A`、`AAAA`、`MX`、`NS` | +| 记录名称 | 要查询的 DNS 记录名称。示例:SRV 记录为 `_http._tcp.example.com` | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**DNS服务发现** + - 填写基本配置参数 + +2. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 对于 SRV 记录,常用的模板包括端口、HTTP 等 + - 对于 A/AAAA 记录,可以使用 Ping 或端口监控 + +3. **自动发现** + - HertzBeat 会根据采集间隔定期查询 DNS 服务器 + - 为新发现的服务实例自动创建监控任务 + - 自动删除已消失服务实例的监控任务 + +4. **查看发现的实例** + - 在监控列表中,您可以看到所有自动创建的子监控任务 + - 每个子监控任务对应一个发现的服务实例 + +### 使用示例 + +#### 示例 1:SRV 记录发现 + +假设您的 Web 服务有一个 SRV 记录: + +- **SRV 记录**:`_http._tcp.example.com` +- **DNS 服务器**:`8.8.8.8` +- **预期发现**:自动发现所有 HTTP 服务实例 + +配置示例: + +- **任务名称**:`DNS-SRV-Discovery` +- **DNS地址**:`8.8.8.8` +- **DNS端口**:`53` +- **记录类型**:选择 `SRV` +- **记录名称**:`_http._tcp.example.com` +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控(使用 SRV 记录中的端口) + +配置完成后: + +1. HertzBeat 查询 `_http._tcp.example.com` 的 SRV 记录 +2. 从 SRV 记录响应中提取主机和端口信息 +3. 为每个服务实例自动创建端口监控 + +#### 示例 2:A 记录发现 + +通过 A 记录发现服务实例: + +- **A 记录**:`services.example.com` +- 该域名可能解析到多个 IP 地址 + +配置示例: + +- **DNS地址**:`192.168.1.1`(内部 DNS 服务器) +- **DNS端口**:`53` +- **记录类型**:选择 `A` +- **记录名称**:`services.example.com` +- **监控模板**:选择 `Ping` 或 `端口` 监控 + +#### 示例 3:MX 记录发现 + +通过 MX 记录发现邮件服务器: + +- **DNS地址**:`8.8.8.8` +- **记录类型**:选择 `MX` +- **记录名称**:`example.com` +- **监控模板**:选择 `端口` 监控(端口 25) + +### DNS 记录类型 + +#### SRV 记录(推荐) + +SRV 记录是最常用的服务发现记录类型,包含服务名称、端口号和优先级信息。 + +格式:`_service._protocol.example.com` + +示例:`_http._tcp.example.com` + +典型的 SRV 记录响应包含: + +- 目标域名 +- 端口号 +- 优先级和权重 + +#### A 记录 + +A 记录将域名映射到 IPv4 地址。如果一个域名解析到多个 IP,则可以发现所有 IP。 + +示例:`services.example.com` → `192.168.1.10`、`192.168.1.11`、`192.168.1.12` + +#### AAAA 记录 + +AAAA 记录将域名映射到 IPv6 地址。 + +示例:`services.example.com` → `2001:db8::1` + +#### MX 记录 + +MX 记录指定域的邮件服务器,包含优先级信息。 + +示例:`example.com` → `mail.example.com` + +#### NS 记录 + +NS 记录指定域的名称服务器。 + +示例:`example.com` → `ns1.example.com` + +### 注意事项 + +- **DNS 服务器**:确保指定的 DNS 服务器可访问且包含服务发现记录 +- **记录名称**:记录名称必须准确,SRV 记录需要包含服务和协议前缀 +- **端口信息**: + - SRV 记录包含端口信息 + - A/AAAA 记录不包含端口信息,需要在监控模板中指定默认端口 +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:建议最小间隔为 60 秒,避免过多的 DNS 查询 +- **DNS 缓存**:DNS 响应可能被缓存,实际更新频率取决于 DNS 记录的 TTL 值 +- **网络连通性**:确保 HertzBeat 可以访问指定的 DNS 服务器和端口(默认:53) +- **防火墙**:确保防火墙允许 DNS 查询流量(UDP/TCP 53) + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **Kubernetes Headless 服务**:通过 DNS 发现 Kubernetes Pod 实例 +- **云服务**:从云服务发现实例(AWS Route53、Azure DNS、GCP Cloud DNS) +- **传统 DNS**:使用现有 DNS 基础设施进行服务发现 +- **负载均衡**:发现所有后端服务器实例 +- **邮件服务器**:通过 MX 记录发现邮件服务器实例 +- **多环境**:使用不同 DNS 记录在不同环境中进行服务发现 + +### 常见 SRV 记录格式 + +不同服务使用不同的 SRV 记录格式: + +- **HTTP**:`_http._tcp.example.com` +- **HTTPS**:`_https._tcp.example.com` +- **LDAP**:`_ldap._tcp.example.com` +- **FTP**:`_ftp._tcp.example.com` +- **MySQL**:`_mysql._tcp.example.com` +- **PostgreSQL**:`_postgresql._tcp.example.com` + +### Kubernetes 集成 + +在 Kubernetes 集群中,可以使用 DNS 服务发现来发现 Pod 实例: + +1. **Headless 服务**:Kubernetes 为 headless 服务的每个 Pod 创建 DNS A 记录 +2. **服务发现**:使用 DNS 服务发现监控特定服务的所有 Pod + +示例: + +- **DNS地址**:Kubernetes 集群 DNS 服务 IP(通常是 `10.96.0.10`) +- **记录类型**:`A` +- **记录名称**:`my-service.default.svc.cluster.local` +- **监控模板**:`端口` 监控 + +### DNS 服务器示例 + +常用的 DNS 服务器: + +- **Google Public DNS**:`8.8.8.8`、`8.8.4.4` +- **Cloudflare DNS**:`1.1.1.1`、`1.0.0.1` +- **Quad9 DNS**:`9.9.9.9` +- **OpenDNS**:`208.67.222.222`、`208.67.220.220` +- **内部 DNS**:通常是企业内部 DNS 服务器地址 + +### 最佳实践 + +1. **使用 SRV 记录**:SRV 记录是推荐的服务发现方法,因为它包含完整的主机和端口信息 +2. **设置合理的 TTL**:设置适当的 DNS 记录 TTL 以平衡实时性能和 DNS 服务器负载 +3. **冗余配置**:配置多个 DNS 服务器以确保高可用性 +4. **监控**:定期检查 DNS 记录的有效性和可用性 +5. **安全性**:确保 DNS 查询安全,考虑使用 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/docker.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/docker.md new file mode 100644 index 00000000000..0b81365780b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/docker.md @@ -0,0 +1,101 @@ +--- +id: docker +title: 监控:Docker 监控 +sidebar_label: Docker 容器监控 +keywords: [开源监控系统, 开源容器监控, Docker容器监控] +--- + +> 对Docker容器的通用性能指标进行采集监控。 + +## 监控前操作 + +如果想要监控 `Docker` 中的容器信息,则需要按照一下步骤打开端口,让采集请求获取到对应的信息。 + +**1、编辑docker.server文件:** + +```shell +vi /usr/lib/systemd/system/docker.service +``` + +找到 **[Service]** 节点,修改 ExecStart 属性,增加 `-H tcp://0.0.0.0:2375` + +```shell +ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 +``` + +这样相当于对外开放的是 **2375** 端口,当然也可以根据自己情况修改成其他的。 + +**2、重新加载Docker配置生效:** + +```shell +systemctl daemon-reload +systemctl restart docker +``` + +**注意:记得在服务器中打开 `2375` 端口号。** + +**3、如果上述方法不行则:** + +在服务器内部打开 `2375` 端口号。 + +```shell +firewall-cmd --zone=public --add-port=2375/tcp --permanent +firewall-cmd --reload +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为2375。 | +| 查询超时时间 | 设置获取Docker服务器API接口时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 器名称 | 一般是监控所有运行中的容器信息。 | +| 用户名 | 连接用户名,可选 | +| 密码 | 连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:system + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------------------------------| +| Name | 无 | 服务器名称 | +| version | 无 | docker本版号 | +| os | 无 | 服务器版本 例如:linux x86_64 | +| root_dir | 无 | docker文件夹目录 例如:/var/lib/docker | +| containers | 无 | 容器总数(在运行+未运行) | +| containers_running | 无 | 运行中的容器数目 | +| containers_paused | 无 | 暂停中的容器数目 | +| images | 无 | 容器景象的总数目。 | +| ncpu | 无 | NCPU | +| mem_total | MB | 占用的内存总大小 | +| system_time | 无 | 系统时间 | + +#### 指标集合:containers + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------------| +| id | 无 | Docker中容器的ID | +| name | 无 | Docker容器中的容器名称 | +| image | 无 | Docker容器使用的镜像 | +| command | 无 | Docker中的默认启动命令 | +| state | 无 | Docker中容器的运行状态 | +| status | 无 | Docker容器中的更新时间 | + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|--------------------| +| name | 无 | Docker容器中的名字 | +| available_memory | MB | Docker容器可以利用的内存大小 | +| used_memory | MB | Docker容器已经使用的内存大小 | +| memory_usage | 无 | Docker容器的内存使用率 | +| cpu_delta | 无 | Docker容器已经使用的CPU数量 | +| number_cpus | 无 | Docker容器可以使用的CPU数量 | +| cpu_usage | 无 | Docker容器CPU使用率 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dolphinscheduler.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dolphinscheduler.md new file mode 100644 index 00000000000..917dd9478f5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dolphinscheduler.md @@ -0,0 +1,106 @@ +--- +id: dolphinscheduler +title: 监控:Apache DolphinScheduler +sidebar_label: Apache DolphinScheduler +keywords: [ 开源监控系统, 监控 Apache DolphinScheduler ] +--- + +> 对 Apache DolphinScheduler 指标进行采集监控。 + +## 监控前操作 + +> 支持 Apache DolphinScheduler v3.3.0 或更高版本 + +您需在 Apache DolphinScheduler 中创建令牌。 + + +可参考 [API 调用](https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/api/open-api) 创建一个新令牌,具体步骤如下: + +1. 登录 Apache DolphinScheduler 系统,点击 "安全中心",再点击左侧的 "令牌管理",点击 "令牌管理" 创建令牌。 +2. 选择 "失效时间" (Token 有效期),选择 "用户" (以指定的用户执行接口操作),点击 "生成令牌" ,拷贝令牌字符串,然后点击 "提交" 。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | DolphinScheduler开放的监控端口,默认值:12345。 | +| 启用HTTPS | 是否启用HTTPS。 | +| 令牌 | DolphinScheduler 的令牌字符串。 | +| 查询超时时间 | 设置查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +## 采集指标 + +### 指标集合:Master + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|--------|-----------------| +| host | 无 | 主机地址 | +| port | 无 | 端口 | +| serverStatus | 无 | 状态 | +| processId | 无 | 进程 ID | +| runningTime | 天 | 运行时间 | +| cpuUsage | 百分比(%) | 处理器使用量 | +| memoryUsage | 百分比(%) | 内存使用量 | +| diskUsage | 百分比(%) | 磁盘可用容量 | +| jvmCpuUsage | 百分比(%) | JVM CPU 使用量 | +| jvmMemoryUsage | 百分比(%) | JVM 内存 使用量 | +| jvmHeapUsed | 无 | JVM 已使用的堆内存大小 | +| jvmNonHeapUsed | 无 | JVM 已使用的非堆内存大小 | +| jvmHeapMax | 无 | JVM 配置的最大堆内存大小 | +| jvmNonHeapMax | 无 | JVM 配置的最大非堆内存大小 | + +### 指标集合:Worker + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|--------|-----------------| +| host | 无 | 主机地址 | +| port | 无 | 端口 | +| serverStatus | 无 | 状态 | +| processId | 无 | 进程 ID | +| runningTime | 天 | 运行时间 | +| cpuUsage | 百分比(%) | CPU使用率 | +| memoryUsage | 百分比(%) | 内存使用率 | +| diskUsage | 百分比(%) | 磁盘可用容量 | +| jvmCpuUsage | 百分比(%) | JVM CPU 使用量 | +| jvmMemoryUsage | 百分比(%) | JVM 内存 使用量 | +| jvmHeapUsed | 无 | JVM 已使用的堆内存大小 | +| jvmNonHeapUsed | 无 | JVM 已使用的非堆内存大小 | +| jvmHeapMax | 无 | JVM 配置的最大堆内存大小 | +| jvmNonHeapMax | 无 | JVM 配置的最大非堆内存大小 | +| workerHostWeight | 无 | 权重 | +| threadPoolUsage | 无 | 线程池使用量 | +| workerGroup | 无 | Worker 组 | + +### 指标集合:Alert Server + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|--------|-----------------| +| host | 无 | 主机地址 | +| port | 无 | 端口 | +| serverStatus | 无 | 状态 | +| processId | 无 | 进程 ID | +| runningTime | 天 | 运行时间 | +| cpuUsage | 百分比(%) | 处理器使用量 | +| memoryUsage | 百分比(%) | 内存使用量 | +| diskUsage | 百分比(%) | 磁盘可用容量 | +| jvmCpuUsage | 百分比(%) | JVM CPU 使用量 | +| jvmMemoryUsage | 百分比(%) | JVM 内存 使用量 | +| jvmHeapUsed | 无 | JVM 已使用的堆内存大小 | +| jvmNonHeapUsed | 无 | JVM 已使用的非堆内存大小 | +| jvmHeapMax | 无 | JVM 配置的最大堆内存大小 | +| jvmNonHeapMax | 无 | JVM 配置的最大非堆内存大小 | + +### 指标:数据库 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|--------|-----------| +| dbType | 无 | 数据库类型 | +| state | 无 | 状态 | +| maxConnections | 无 | 最大连接数 | +| threadsConnections | 无 | 当前连接数 | +| threadsRunningConnections | 天 | 当前活跃连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_be.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_be.md new file mode 100644 index 00000000000..3e6fd37de03 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_be.md @@ -0,0 +1,170 @@ +--- +id: doris_be +title: 监控:DORIS数据库BE监控 +sidebar_label: DORIS数据库BE +keywords: [开源监控系统, 开源数据库监控, DORIS数据库BE监控] +--- + +> 对DORIS数据库FE的通用性能指标进行采集监控。支持DORIS2.0.0。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-----------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8040 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认3000毫秒 | +| 数据库名称 | 数据库实例名称,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:doris_be_load_channel_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------------| +| value | 无 | 当前打开的 load channel 个数 | + +#### 指标集合:doris_be_memtable_flush_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------| +| value | 无 | memtable写入磁盘的个数累计值 | + +#### 指标集合:doris_be_plan_fragment_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------------| +| value | 无 | 当前已接收的 fragment instance 的数量 | + +#### 指标集合:doris_be_process_thread_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------------------| +| value | 无 | BE 进程线程数。通过 `/proc/pid/task` 采集 | + +#### 指标集合:doris_be_query_scan_rows + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------------------------------------------------------------| +| value | 无 | 读取行数的累计值。这里只统计读取 Olap 表的数据量。并且是 RawRowsRead(部分数据行可能被索引跳过,并没有真正读取,但仍会记录到这个值中) | + +#### 指标集合:doris_be_result_buffer_block_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------| +| value | 无 | 当前查询结果缓存中的 query 个数 | + +#### 指标集合:doris_be_send_batch_thread_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------| +| value | 无 | 导入时用于发送数据包的线程池的排队个数 | + +#### 指标集合:doris_be_tablet_base_max_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------------------| +| value | 无 | 当前最大的 Base Compaction Score | + +#### 指标集合:doris_be_timeout_canceled_fragment_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|----------------------------------| +| value | 无 | 因超时而被取消的 fragment instance 数量累计值 | + +#### 指标集合:doris_be_load_rows + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------| +| value | 无 | 通过 tablet sink 发送的行数累计 | + +#### 指标集合:doris_be_all_rowsets_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| value | 无 | 当前所有 rowset 的个数 | + +#### 指标集合:doris_be_all_segments_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| value | 无 | 当前所有 segment 的个数 | + +#### 指标集合:doris_be_heavy_work_max_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------------| +| value | 无 | brpc heavy线程池线程个数 | + +#### 指标集合:doris_be_light_work_max_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------------| +| value | 无 | brpc light线程池线程个数 | + +#### 指标集合:doris_be_heavy_work_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------------------| +| value | 无 | brpc heavy线程池队列最大长度,超过则阻塞提交work | + +#### 指标集合:doris_be_light_work_pool_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------------------| +| value | 无 | brpc light线程池队列最大长度,超过则阻塞提交work | + +#### 指标集合:doris_be_heavy_work_active_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------| +| value | 无 | brpc heavy线程池活跃线程数 | + +#### 指标集合:doris_be_light_work_active_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------| +| value | 无 | brpc light线程池活跃线程数 | + +#### 指标集合:doris_be_compaction_bytes_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|------------------------------| +| base | 字节 | Base Compaction 的数据量累计 | +| cumulative | 字节 | Cumulative Compaction 的数据量累计 | + +#### 指标集合:doris_be_disks_avail_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------------------------------| +| path | 无 | 指定数据目录 | +| value | 字节 | `{path="/path1/"}` 表示 `/path1` 目录所在磁盘的剩余空间 | + +#### 指标集合:doris_be_disks_total_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------------------------------| +| path | 无 | 指定数据目录 | +| value | 字节 | `{path="/path1/"}` 表示 `/path1` 目录所在磁盘的全部空间 | + +#### 指标集合:doris_be_local_bytes_read_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|----------------------------| +| value | 字节 | 由 `LocalFileReader` 读取的字节数 | + +#### 指标集合:doris_be_local_bytes_written_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|----------------------------| +| value | 字节 | 由 `LocalFileWriter` 写入的字节数 | + +#### 指标集合:doris_be_memory_allocated_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------------------------| +| value | 字节 | BE 进程物理内存大小,取自 `/proc/self/status/VmRSS` | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_fe.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_fe.md new file mode 100644 index 00000000000..78afde77138 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/doris_fe.md @@ -0,0 +1,131 @@ +--- +id: doris_fe +title: 监控:DORIS数据库FE监控 +sidebar_label: DORIS数据库FE +keywords: [开源监控系统, 开源数据库监控, DORIS数据库FE监控] +--- + +> 对DORIS数据库FE的通用性能指标进行采集监控。支持DORIS2.0.0。 + +**使用协议:HTTP** + +### 监控前操作 + +查看 `fe/conf/fe.conf` 文件,获取 `http_port` 配置项的值,该值用作监控使用。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-----------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8030 , 取值自 `http_port` 配置项的值 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认6000毫秒 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 绑定标签 | 您可以使用标签进行监控资源的分类管理, 例如给资源分别绑定生产环境、测试环境的标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:doris_fe_connection_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| value | 无 | 当前FE的MySQL端口连接数 | + +#### 指标集合:doris_fe_edit_log_clean + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------------| +| success | 无 | 清理历史元数据日志成功的次数 | +| failed | 无 | 清理历史元数据日志失败的次数 | + +#### 指标集合:doris_fe_edit_log + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|--------------| +| write | 无 | 元数据日志写入次数的计数 | +| read | 无 | 元数据日志读取次数的计数 | +| current | 无 | 元数据日志当前数量 | +| accumulated_bytes | 字节 | 元数据日志写入量的累计值 | +| current_bytes | 字节 | 元数据日志当前值 | + +#### 指标集合:doris_fe_image_clean + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|------------------| +| success | 无 | 清理历史元数据镜像文件成功的次数 | +| failed | 无 | 清理历史元数据镜像文件失败的次数 | + +#### 指标集合:doris_fe_image_write + +不应失败,如失败,需人工介入 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------------| +| success | 无 | 生成元数据镜像文件成功的次数 | +| failed | 无 | 生成元数据镜像文件失败的次数 | + +#### 指标集合:doris_fe_query_err + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|----------| +| value | 无 | 错误查询的累积值 | + +#### 指标集合:doris_fe_max_journal_id + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------------------------------------------------------------------------------------------------| +| value | 无 | 当前FE节点最大元数据日志ID。如果是Master FE,则是当前写入的最大ID,如果是非Master FE,则代表当前回放的元数据日志最大ID。用于观察多个FE之间的 id 是否差距过大。过大则表示元数据同步出现问题 | + +#### 指标集合:doris_fe_max_tablet_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------------------------------------------------------------------------| +| value | 无 | 所有BE节点中最大的 compaction score 值。该值可以观测当前集群最大的 compaction score,以判断是否过高。如过高则可能出现查询或写入延迟 | + +#### 指标集合:doris_fe_qps + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------------| +| value | 无 | 当前FE每秒查询数量(仅统计查询请求) | + +#### 指标集合:doris_fe_query_err_rate + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------| +| value | 无 | 每秒错误查询数 | + +#### 指标集合:doris_fe_report_queue_size + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------------------------------------------------------| +| value | 无 | BE的各种定期汇报任务在FE端的队列长度,该值反映了汇报任务在 Master FE 节点上的阻塞程度,数值越大,表示FE处理能力不足 | + +#### 指标集合:doris_fe_rps + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------------------| +| value | 无 | 当前FE每秒请求数量(包含查询以及其他各类语句) | + +#### 指标集合:doris_fe_scheduled_tablet_num + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------------------------------------------------------------------------| +| value | 无 | Master FE节点正在调度的 tablet 数量。包括正在修复的副本和正在均衡的副本,该数值可以反映当前集群,正在迁移的 tablet 数量。如果长时间有值,说明集群不稳定 | + +#### 指标集合:doris_fe_txn_status + +可以观测各个状态下导入事务的数量,来判断是否有堆积 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|---------| +| unknown | 无 | 未知 | +| prepare | 无 | 准备中 | +| committed | 无 | 已提交 | +| visible | 无 | 可见 | +| aborted | 无 | 已中止/已撤销 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dynamic_tp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dynamic_tp.md new file mode 100644 index 00000000000..ba5aecde81b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/dynamic_tp.md @@ -0,0 +1,101 @@ +--- +id: dynamic_tp +title: 监控:DynamicTp 线程池监控 +sidebar_label: DynamicTp线程池监控 +keywords: [开源监控系统, 开源中间件监控, DynamicTp线程池监控] +--- + +> 对DynamicTp actuator 暴露的线程池性能指标进行采集监控。 + +### 前提 + +1. 集成使用 `DynamicTp` + + `DynamicTp` 是Jvm语言的基于配置中心的轻量级动态线程池,内置监控告警功能,可通过SPI自定义扩展实现。 + + 集成使用,请参考文档 [快速接入](https://dynamictp.cn/guide/use/quick-start.html) + +2. 开启SpringBoot Actuator Endpoint 暴露出`DynamicTp`指标接口 + + ```yaml + management: + endpoints: + web: + exposure: + include: '*' + ``` + + 测试访问指标接口 `ip:port/actuator/dynamic-tp` 是否有响应json数据如下: + + ```json + [ + { + "poolName": "commonExecutor", + "corePoolSize": 1, + "maximumPoolSize": 1, + "queueType": "LinkedBlockingQueue", + "queueCapacity": 2147483647, + "queueSize": 0, + "fair": false, + "queueRemainingCapacity": 2147483647, + "activeCount": 0, + "taskCount": 0, + "completedTaskCount": 0, + "largestPoolSize": 0, + "poolSize": 0, + "waitTaskCount": 0, + "rejectCount": 0, + "rejectHandlerName": null, + "dynamic": false, + "runTimeoutCount": 0, + "queueTimeoutCount": 0 + }, + { + "maxMemory": "4 GB", + "totalMemory": "444 MB", + "freeMemory": "250.34 MB", + "usableMemory": "3.81 GB" + } + ] + ``` + +3. 在HertzBeat中间件监控下添加DynamicTp监控即可 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 应用服务对外提供的端口,默认为8080。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| Base Path | 暴露接口路径前缀,默认 /actuator | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:thread_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------|------|--------------------------| +| pool_name | 无 | 线程池名称 | +| core_pool_size | 无 | 核心线程数 | +| maximum_pool_size | 无 | 最大线程数 | +| queue_type | 无 | 任务队列类型 | +| queue_capacity | MB | 任务队列容量 | +| queue_size | 无 | 任务队列当前占用大小 | +| fair | 无 | 队列模式,SynchronousQueue会用到 | +| queue_remaining_capacity | MB | 任务队列剩余大小 | +| active_count | 无 | 活跃线程数 | +| task_count | 无 | 任务总数 | +| completed_task_count | 无 | 已完成任务数 | +| largest_pool_size | 无 | 历史最大线程数 | +| pool_size | 无 | 当前线程数 | +| wait_task_count | 无 | 等待执行任务数 | +| reject_count | 无 | 拒绝任务数 | +| reject_handler_name | 无 | 拒绝策略类型 | +| dynamic | 无 | 是否动态线程池 | +| run_timeout_count | 无 | 运行超时任务数 | +| queue_timeout_count | 无 | 等待超时任务数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/elasticsearch.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/elasticsearch.md new file mode 100644 index 00000000000..0e872084c2e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/elasticsearch.md @@ -0,0 +1,63 @@ +--- +id: elasticsearch +title: 监控:ElasticSearch +sidebar_label: ElasticSearch +keywords: [ 开源监控系统, 监控ElasticSearch ] +--- + +> 对ElasticSearch的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | ElasticSearch开放的HTTP API端口,默认值:9200。 | +| 启用HTTPS | 是否启用HTTPS。 | +| 认证方式 | 连接ElasticSearch使用的认证方式,可选。 | +| 用户名 | 连接ElasticSearch的用户名,可选。 | +| 密码 | 连接ElasticSearch的密码,可选 | +| 查询超时时间 | 设置查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:health + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| cluster_name | 无 | 集群名称 | +| status | 无 | 集群状态 | +| nodes | 无 | 集群节点数 | +| data_nodes | 无 | 数据节点数 | +| active_primary_shards | 无 | 主节点活跃分片数 | +| active_shards | 无 | 活跃分片数 | +| active_percentage | % | 分片健康度 | +| initializing_shards | 无 | 初始化分片数 | +| unassigned_shards | 无 | 未分配分片数 | + +#### 指标集合:nodes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|--------| +| total | 无 | 节点数 | +| successful | 无 | 在线节点数 | +| failed | 无 | 离线节点数 | + +#### 指标集合:nodes_detail + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|---------| +| node_name | 无 | 节点名称 | +| ip | 无 | IP地址 | +| cpu_load_average | 无 | CPU平均负载 | +| cpu_percent | % | CPU占用率 | +| heap_used | MB | 内存使用量 | +| heap_used_percent | % | 内存使用率 | +| heap_total | MB | 总内存 | +| disk_free | GB | 磁盘剩余容量 | +| disk_total | GB | 磁盘总容量 | +| disk_used_percent | % | 磁盘使用率 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/euleros.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/euleros.md new file mode 100644 index 00000000000..44830105f4a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/euleros.md @@ -0,0 +1,114 @@ +--- +id: euleros +title: 监控:EulerOS操作系统监控 +sidebar_label: EulerOS 操作系统 +keywords: [ 开源监控系统, 开源操作系统监控, EulerOS操作系统监控 ] +--- + +> 对EulerOS操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/eureka_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/eureka_sd.md new file mode 100644 index 00000000000..2bf5445231e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/eureka_sd.md @@ -0,0 +1,94 @@ +--- +id: eureka_sd +title: 监控:Eureka服务发现监控 +sidebar_label: Eureka服务发现 +keywords: [开源监控系统, 开源服务发现监控, Eureka服务发现监控] +--- + +> HertzBeat 集成 Eureka 注册中心,自动发现服务实例并为发现的实例创建监控任务。 + +### 概述 + +Eureka 服务发现允许 HertzBeat 连接到您的 Eureka 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。 + +### 监控前操作 + +#### 部署 Eureka 服务器 + +1. 根据 [Eureka 官方文档](https://spring.io/guides/gs/service-registration-and-discovery/)部署 Eureka 服务器。 +2. 确保 Eureka 服务器可从 HertzBeat 访问。 +3. 验证您可以访问 Eureka 控制台:`http://your-eureka-server:port/` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| Eureka服务发现地址 | Eureka 服务器地址。示例:`http://eureka-server:8761/eureka` | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**Eureka服务发现** + - 填写基本配置参数 + +2. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板 + - 常用模板类型:端口、HTTP、HTTPS 等 + +3. **自动发现** + - HertzBeat 会根据采集间隔定期查询 Eureka 服务器 + - 为新注册的服务实例自动创建监控任务 + - 自动删除已下线服务实例的监控任务 + +4. **查看发现的实例** + - 在监控列表中,您可以看到所有自动创建的子监控任务 + - 每个子监控任务对应一个发现的服务实例 + +### 使用示例 + +假设您的 Eureka 服务器运行在 `http://192.168.1.100:8761/eureka`,您希望自动监控其中注册的所有服务实例。 + +配置示例: + +- **任务名称**:`Eureka-Service-Discovery` +- **Eureka服务发现地址**:`http://192.168.1.100:8761/eureka` +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控(检测实例可用性) + +配置完成后: + +1. HertzBeat 连接到 Eureka 服务器 +2. 获取所有已注册的应用实例 +3. 为每个实例自动创建端口监控(例如:`USER-SERVICE-192.168.1.101:8080`) +4. 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务 + +### 注意事项 + +- **网络连通性**:确保 HertzBeat 可以访问 Eureka 服务器地址 +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:建议最小间隔为 60 秒,避免对 Eureka 服务器造成过多请求 +- **权限要求**:Eureka 服务器默认不需要认证,但如果配置了认证,URL 需要包含用户名和密码 +- **实例命名**:自动创建的监控任务命名格式为:`{应用名称}-{主机}:{端口}` + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **微服务架构**:自动监控 Eureka 中注册的所有微服务实例 +- **动态伸缩**:自动适应因自动扩缩容而增减的服务实例 +- **统一监控**:集中管理微服务环境中所有服务的监控 +- **运维管理**:减少手动配置工作,提高运维效率 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fedora.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fedora.md new file mode 100644 index 00000000000..877cb354baa --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fedora.md @@ -0,0 +1,114 @@ +--- +id: fedora +title: 监控:Fedora操作系统监控 +sidebar_label: Fedora 操作系统 +keywords: [ 开源监控系统, 开源操作系统监控, Fedora操作系统监控 ] +--- + +> 对Fedora操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink.md new file mode 100644 index 00000000000..13f94262b05 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink.md @@ -0,0 +1,35 @@ +--- +id: flink +title: 监控:Flink +sidebar_label: Flink 监控 +keywords: [开源监控系统, 开源 Flink 监控] +--- + +> 对 Flink 流引擎的通用指标进行测量监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 监控的端口 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| SSL | 是否开启SSL(默认关闭) | +| 用户名 | 连接用户名 | +| 密码 | 连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:overview + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|----------| +| slots_total | 个 | 插槽总数 | +| slots_used | 个 | 已用插槽数 | +| task_total | 个 | 任务总数 | +| jobs_running | 个 | 正在运行的任务数 | +| jobs_failed | 个 | 已经失败的任务数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink_on_yarn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink_on_yarn.md new file mode 100644 index 00000000000..26e7d6e2727 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/flink_on_yarn.md @@ -0,0 +1,143 @@ +--- +id: flink_on_yarn +title: 监控:Flink On Yarn +sidebar_label: Flink On Yarn 监控 +keywords: [开源监控系统, 开源 Flink On Yarn 监控] +--- + +> 对Yarn运行模式下的Flink流引擎的通用指标进行测量监控。 +> 监控指标对应的中文含义在本说明文档描述,页面监控显示的指标均为Flink原生指标没有翻译成中文,怕引发歧义。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| Yarn端口 | Yarn的端口,对应配置项:`yarn.resourcemanager.webapp.address`中的端口 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 启动SSL | 是否启用SSL | +| 用户名 | 连接用户名 | +| 密码 | 连接密码 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:JobManager Metrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------------------------------------|------|-----------| +| Status.JVM.Memory.NonHeap.Committed | 字节 | 非堆内存的提交量 | +| Status.JVM.Memory.Mapped.TotalCapacity | 字节 | 映射内存的总容量 | +| Status.JVM.Memory.NonHeap.Used | 字节 | 非堆内存的使用量 | +| Status.JVM.Memory.Metaspace.Max | 字节 | 元空间的最大容量 | +| Status.JVM.GarbageCollector.G1_Old_Generation.Count | 字节 | 老年代垃圾收集次数 | +| Status.JVM.Memory.Direct.MemoryUsed | 字节 | 直接内存的使用量 | +| Status.JVM.Memory.Mapped.MemoryUsed | 字节 | 映射内存的使用量 | +| Status.JVM.GarbageCollector.G1_Young_Generation.Count | 字节 | 年轻代垃圾收集次数 | +| Status.JVM.Memory.Direct.TotalCapacity | 字节 | 直接内存的总容量 | +| Status.JVM.GarbageCollector.G1_Old_Generation.Time | 字节 | 老年代垃圾收集时间 | +| Status.JVM.Memory.Heap.Committed | 字节 | 堆内存的提交量 | +| Status.JVM.Memory.Mapped.Count | - | 映射内存的数量 | +| Status.JVM.Memory.Metaspace.Used | 字节 | 元空间的使用量 | +| Status.JVM.Memory.Direct.Count | - | 直接内存的数量 | +| Status.JVM.Memory.Heap.Used | 字节 | 堆内存的使用量 | +| Status.JVM.Memory.Heap.Max | 字节 | 堆内存的最大容量 | +| Status.JVM.GarbageCollector.G1_Young_Generation.Time | 字节 | 年轻代垃圾收集时间 | +| Status.JVM.Memory.NonHeap.Max | 字节 | 非堆内存的最大容量 | + +#### 指标集合:JobManager Config + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------------------|------|------------------------| +| internal.jobgraph-path | - | 内部作业图路径 | +| env.java.home | - | Java 环境路径 | +| classloader.check-leaked-classloader | - | 是否检查类加载器 | +| env.java.opts | - | Java 选项 | +| high-availability.cluster-id | - | 高可用性集群 ID | +| jobmanager.rpc.address | - | JobManager 的 RPC 地址 | +| jobmanager.memory.jvm-overhead.min | 字节 | JobManager 的 JVM 开销最小值 | +| jobmanager.web.port | 端口号 | JobManager 的 Web 端口 | +| webclient.port | 端口号 | Web 客户端端口 | +| execution.savepoint.ignore-unclaimed-state | - | 是否忽略未声明的状态 | +| io.tmp.dirs | 路径 | 临时文件目录 | +| parallelism.default | - | 默认并行度 | +| taskmanager.memory.fraction | - | TaskManager 内存占比 | +| taskmanager.numberOfTaskSlots | - | TaskManager 的任务槽数量 | +| yarn.application.name | - | Yarn 应用名称 | +| taskmanager.heap.mb | MB | TaskManager 堆内存大小 | +| taskmanager.memory.process.size | GB | TaskManager 进程内存大小 | +| web.port | 端口号 | Web 端口 | +| classloader.resolve-order | - | 类加载器解析顺序 | +| jobmanager.heap.mb | MB | JobManager 堆内存大小 | +| jobmanager.memory.off-heap.size | 字节 | JobManager 堆外内存大小 | +| state.backend.incremental | - | 状态后端是否增量 | +| execution.target | - | 执行目标 | +| jobmanager.memory.process.size | GB | JobManager 进程内存大小 | +| web.tmpdir | 路径 | Web 临时目录 | +| yarn.ship-files | 路径 | Yarn 传输文件 | +| jobmanager.rpc.port | 端口号 | JobManager 的 RPC 端口 | +| internal.io.tmpdirs.use-local-default | - | 是否使用本地默认临时目录 | +| execution.checkpointing.interval | 毫秒 | 检查点间隔 | +| execution.attached | - | 是否附加执行 | +| internal.cluster.execution-mode | - | 内部集群执行模式 | +| execution.shutdown-on-attached-exit | - | 是否在附加退出时关闭 | +| pipeline.jars | 路径 | 管道 JAR 文件 | +| rest.address | - | REST 地址 | +| state.backend | - | 状态后端类型 | +| jobmanager.memory.jvm-metaspace.size | 字节 | JobManager JVM 元空间大小 | +| $internal.deployment.config-dir | 路径 | 内部部署配置目录 | +| $internal.yarn.log-config-file | 路径 | 内部 Yarn 日志配置文件路径 | +| jobmanager.memory.heap.size | 字节 | JobManager 堆内存大小 | +| state.checkpoints.dir | 路径 | 状态检查点目录 | +| jobmanager.memory.jvm-overhead.max | 字节 | JobManager 的 JVM 开销最大值 | + +#### TaskManager + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------------|------|-----------------------------------| +| Container ID | - | 容器 ID,用于唯一标识一个容器 | +| Path | - | 容器路径 | +| Data Port | 端口号 | 数据传输端口 | +| JMX Port | 端口号 | JMX(Java Management Extensions)端口 | +| Last Heartbeat | 时间戳 | 最后一次心跳时间 | +| All Slots | 数量 | 容器中所有任务槽的数量 | +| Free Slots | 数量 | 容器中空闲任务槽的数量 | +| totalResourceCpuCores | 核心数 | 容器总的CPU核心数 | +| totalResourceTaskHeapMemory | MB | 容器总的任务堆内存大小 | +| totalResourceManagedMemory | MB | 容器总的托管内存大小 | +| totalResourceNetworkMemory | MB | 容器总的网络内存大小 | +| freeResourceCpuCores | 核心数 | 容器中空闲的CPU核心数 | +| freeResourceTaskHeapMemory | MB | 容器中空闲的任务堆内存大小 | +| freeResourceTaskOffHeapMemory | MB | 容器中空闲的任务堆外内存大小 | +| freeResourceManagedMemory | MB | 容器中空闲的托管内存大小 | +| freeResourceNetworkMemory | MB | 容器中空闲的网络内存大小 | +| CPU Cores | 核心数 | CPU核心数 | +| Physical MEM | MB | 物理内存大小 | +| JVM Heap Size | MB | JVM堆内存大小 | +| Flink Managed MEM | MB | Flink管理的内存大小 | +| Framework Heap | MB | 框架堆内存大小 | +| Task Heap | MB | 任务堆内存大小 | +| Framework Off-Heap | MB | 框架堆外内存大小 | +| memoryConfigurationTaskOffHeap | Byte | 任务堆外内存配置 | +| Network | MB | 网络内存配置 | +| Managed Memory | MB | 托管内存配置 | +| JVM Metaspace | MB | JVM元空间大小 | +| JVM Overhead | MB | JVM开销 | +| memoryConfigurationTotalFlinkMemory | Byte | Flink总内存配置 | +| memoryConfigurationTotalProcessMemory | Byte | 进程总内存配置 | + +#### TaskManager Metrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------------------|------|----------------------| +| Status.Shuffle.Netty.TotalMemory | MB | Netty Shuffle 使用的总内存 | +| Status.Flink.Memory.Managed.Used | MB | Flink 管理的已用内存 | +| Status.JVM.Memory.Metaspace.Used | MB | JVM 元空间已使用的内存 | +| Status.JVM.Memory.Metaspace.Max | MB | JVM 元空间的最大内存 | +| Status.JVM.Memory.Heap.Used | MB | JVM 堆内存已使用的内存 | +| Status.JVM.Memory.Heap.Max | MB | JVM 堆内存的最大容量 | +| Status.Flink.Memory.Managed.Total | MB | Flink 管理的内存总量 | +| Status.Shuffle.Netty.UsedMemory | MB | Netty Shuffle 使用的内存 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/freebsd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/freebsd.md new file mode 100644 index 00000000000..dc918a59393 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/freebsd.md @@ -0,0 +1,96 @@ +--- +id: freebsd +title: 监控:FreeBSD操作系统监控 +sidebar_label: FreeBSD 操作系统 +keywords: [ 开源监控系统, 开源操作系统监控, FreeBSD操作系统监控 ] +--- + +> 对FreeBSD操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ftp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ftp.md new file mode 100644 index 00000000000..ac1e1621c24 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ftp.md @@ -0,0 +1,34 @@ +--- +id: ftp +title: 监控:FTP服务器 +sidebar_label: FTP服务器 +keywords: [ 开源监控系统, 开源FTP服务器监控工具, 监控FTP指标 ] +--- + +> 采集和监控FTP服务的通用指标 + +**协议使用:FTP** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|--------------------------------------| +| 目标Host | 被监控的IPv4、IPv6。注意⚠️不包含协议头(例如:ftp://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | FTP服务端口,默认值:21。 | +| 目录 | FTP服务托管的目录。 | +| 超时时间 | 连接FTP服务器超时时间,默认值:1000毫秒。 | +| 用户名 | 连接FTP服务的用户名, 可选。 | +| 密码 | 连接FTP服务的密码,可选。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|------------------| +| 活动状态 | 无 | 检查目录是否存在,且具有访问权限 | +| 响应时间 | ms | 连接FTP响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fullsite.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fullsite.md new file mode 100644 index 00000000000..54553c1200c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/fullsite.md @@ -0,0 +1,34 @@ +--- +id: fullsite +title: 监控:全站监控 +sidebar_label: 全站监控 +keywords: [开源监控系统, 开源网站监控, SiteMap监控] +--- + +> 对网站的全部页面监测是否可用 +> 往往一个网站有多个不同服务提供的页面,我们通过采集网站暴露出来的网站地图SiteMap来监控全站。 +> 注意⚠️,此监控需您网站支持SiteMap。我们支持XML和TXT格式的SiteMap。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 网站地图 | 网站SiteMap地图地址的相对路径,例如:/sitemap.xml。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|-----------------| +| url | 无 | 网页的URL路径 | +| statusCode | 无 | 请求此网页的响应HTTP状态码 | +| responseTime | ms毫秒 | 网站响应时间 | +| errorMsg | 无 | 请求此网站反馈的错误信息 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/grafana_dashboard.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/grafana_dashboard.md new file mode 100644 index 00000000000..850edf45991 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/grafana_dashboard.md @@ -0,0 +1,78 @@ +--- +id: grafana_dashboard +title: Grafana Dashboard +sidebar_label: Grafana历史图表 +keywords: [Grafana, 历史图表] +--- + +> `Grafana`是一个开源的可视化和分析平台,它可以帮助你轻松地创建、分享和监控仪表板。本文将介绍如何在`HertzBeat`中使用`Grafana`展示历史数据。 + +### 前提条件 + +- 我们推荐使用最新的`Grafana`版本,早期的版本可能不支持暴露 api。 +- `Grafana`服务已经启动,并配置好了账号密码。 +- `HertzBeat`服务已经启动,并配置好了`VictoriaMetrics`时序数据库(注意: `VictoriaMetrics`数据源是必须的)。 + +:::caution 注意 +`Grafana`只能展示`Prometheus`类型监控的历史数据,目前并不支持`HertzBeat`中`yml`定义的监控数据。 +::: + +### 启用Grafana可嵌入功能, 并配置匿名访问及权限角色 + +参考: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/), +修改配置文件`grafana.ini`中的配置项参数, +或者通过`docker`运行`Grafana`。 + +修改配置文件`grafana.ini`中的以下配置项参数: + +```ini +[auth.proxy] +enabled = true + +[auth.anonymous] +enabled = true +org_role = Admin + +[users] +viewers_can_edit = true + +[security] +allow_embedding = true +``` + +或者通过`docker`启动`Grafana`,使用以下命令: + +```bash +docker run -d -p 3000:3000 --name=grafana \ + -v "$PWD/data:/var/lib/grafana" \ + -e "GF_AUTH_PROXY_ENABLED=true" \ + -e "GF_AUTH_ANONYMOUS_ENABLED=true" \ + -e "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" \ + -e "GF_USERS_VIEWERS_CAN_EDIT=true" \ + -e "GF_SECURITY_ALLOW_EMBEDDING=true" \ + grafana/grafana:latest +``` + +### 在HertzBeat中配置Grafana + +在`HertzBeat`的配置文件`application.yml`中,配置`Grafana`数据源: + +```yaml +grafana: + enabled: true + url: http://127.0.0.1:3000 + username: admin + password: admin +``` + +### 在HertzBeat监控中上传Grafana监控模板json文件 + +在`HertzBeat`新建或编辑`Prometheus`类型监控时,点击启用Grafana模板,选择Grafana模板json文件上传。 +监控模板json文件可以在 [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/) 下载。 +比如,在`HertzBeat`中新建一个关于`VictoriaMetrics`单节点的监控,然后打开 [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/) ,点击右侧 `Download JSON`按钮,下载模板json文件。在`HertzBeat`监控中上传模板json文件,保存。 + ![grafana-1.png](/img/docs/help/grafana-1.png) + +### 查看Grafana历史图表 + +在`HertzBeat`监控页面,点击`Grafana`按钮,选择`Grafana`历史图表,选择监控模板,点击`查询`按钮,即可查看`Grafana`历史图表。 + ![grafana-2.png](/img/docs/help/grafana-2.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/greenplum.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/greenplum.md new file mode 100644 index 00000000000..e1094830096 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/greenplum.md @@ -0,0 +1,55 @@ +--- +id: greenplum +title: 监控:GreenPlum 数据库监控 +sidebar_label: GreenPlum 数据库 +keywords: [开源监控系统, 开源数据库监控, GreenPlum 数据库监控] +--- + +> 对 GreenPlum 数据库的通用性能指标进行采集监控。支持 GreenPlum 6.23.0+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------| +| 监控Host | 被监控的 Host 地址。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置 SQL 查询未响应数据时的超时时间,单位 ms 毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则 URL 里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------------| +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|-------------------------------------------------------------------------| +| name | 无 | 数据库名称,或 share-object 为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 GreenPlum 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| running | 连接数 | 当前客户端连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/guide.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/guide.md new file mode 100644 index 00000000000..5790fab6c25 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/guide.md @@ -0,0 +1,144 @@ +--- +id: guide +title: 帮助中心 +sidebar_label: 帮助入门 +--- + +> 易用友好的实时监控工具,无需Agent,强大自定义监控能力。 +> 使用过程中的帮助文档,辅助信息。 + +## 🔬 监控服务 + +> 定时采集监控对端服务暴露的性能指标,提供可视化界面,处理数据供告警等服务调度。 +> 规划的监控类型:应用服务,数据库,操作系统,云原生,开源中间件 + +### 应用服务监控 + + 👉 [网站监测](website)
+ 👉 [HTTP API](api)
+ 👉 [PING连通性](ping)
+ 👉 [端口可用性](port)
+ 👉 [全站监控](fullsite)
+ 👉 [SSL证书有效期](ssl_cert)
+ 👉 [JVM虚拟机](jvm)
+ 👉 [SpringBoot2.0](springboot2)
+ 👉 [DNS服务器](dns)
+ 👉 [FTP服务器](ftp)
+ 👉 [Websocket](websocket)
+ 👉 [MQTT连接](mqtt)
+ +### 应用程序监控 + + 👉 [Linux进程](process)
+ 👉 [JVM虚拟机](jvm)
+ 👉 [SpringBoot2.0](springboot2)
+ 👉 [SpringBoot3.0](springboot3)
+ 👉 [DynamicTp线程池](dynamic_tp)
+ +### 数据库监控 + + 👉 [MYSQL数据库监控](mysql)
+ 👉 [MariaDB数据库监控](mariadb)
+ 👉 [PostgreSQL数据库监控](postgresql)
+ 👉 [SqlServer数据库监控](sqlserver)
+ 👉 [Oracle数据库监控](oracle)
+ 👉 [达梦数据库监控](dm)
+ 👉 [OpenGauss数据库监控](opengauss)
+ 👉 [IoTDB数据库监控](iotdb)
+ 👉 [TiDB数据库监控](tidb)
+ 👉 [MongoDB数据库监控](mongodb)
+ 👉 [NebulaGraph集群监控](nebulagraph_cluster)
+ +### 缓存监控 + + 👉 [Redis](redis)
+ 👉 [Memcached](memcached)
+ +### 操作系统监控 + + 👉 [Linux操作系统监控](linux)
+ 👉 [Windows操作系统监控](windows)
+ 👉 [Ubuntu操作系统监控](ubuntu)
+ 👉 [Centos操作系统监控](centos)
+ 👉 [FreeBSD操作系统监控](freebsd)
+ 👉 [RedHat操作系统监控](redhat)
+ 👉 [RockyLinux操作系统监控](rockylinux)
+ 👉 [EulerOS操作系统监控](euleros)
+ +### 中间件监控 + + 👉 [Zookeeper](zookeeper)
+ 👉 [Kafka](kafka)
+ 👉 [Tomcat](tomcat)
+ 👉 [ShenYu](shenyu)
+ 👉 [DynamicTp](dynamic_tp)
+ 👉 [RabbitMQ](rabbitmq)
+ 👉 [ActiveMQ](activemq)
+ 👉 [Jetty](jetty)
+ 👉 [Nacos](nacos)
+ +### 云原生监控 + + 👉 [Docker](docker)
+ 👉 [Kubernetes](kubernetes)
+ +### 大数据监控 + + 👉 [Clickhouse](clickhouse)
+ 👉 [ElasticSearch](elasticsearch)
+ 👉 [Flink](flink)
+ +### AI大模型监控 + + 👉 [OpenAi](openai)
+ +### 网络监控 + + 👉 [华为通用交换机](huawei_switch)
+ +### 服务器监控 + +## 💡 告警服务 + +> 更自由化的阈值告警配置,支持邮箱,短信,webhook,钉钉,企业微信,飞书机器人等告警通知。 +> 告警服务的定位是阈值准确及时触发,告警通知及时可达。 + +### 告警中心 + +> 已触发的告警信息中心,提供告警删除,告警处理,标记未处理,告警级别状态等查询过滤。 + +详见 👉 [告警中心](alarm_center) + +### 告警配置 + +> 指标阈值配置,提供表达式形式的指标阈值配置,可设置告警级别,触发次数,告警通知模板和是否启用,关联监控等功能。 + +详见 👉 [阈值告警](alert_threshold)
+   👉 [阈值表达式](alert_threshold_expr) + +### 告警收敛 + +> 通过分组收敛、告警抑制等功能合并相关告警,减少由一个事件引发的告警风暴,降低告警噪声,提升告警响应效率。 + +详见 👉 [分组收敛](alarm_group)
+   👉 [告警抑制](alarm_inhibit) + +### 告警通知 + +> 触发告警信息后,除了显示在告警中心列表外,还可以用指定方式(邮件钉钉微信飞书等)通知给指定接收人。 +> 告警通知提供设置不同类型的通知方式,如邮件接收人,企业微信机器人通知,钉钉机器人通知,飞书机器人通知。 +> 接收人设置后需要设置关联的告警通知策略,来配置哪些告警信息发给哪些接收人。 + + 👉 [配置邮箱通知](alert_email)
+ 👉 [配置 Webhook 通知](alert_webhook)
+ 👉 [配置 Telegram 通知](alert_telegram)
+ 👉 [配置 Discord 通知](alert_discord)
+ 👉 [配置 Slack 通知](alert_slack)
+ 👉 [配置企业微信机器人通知](alert_wework)
+ 👉 [配置钉钉机器人通知](alert_dingtalk)
+ 👉 [配置飞书机器人通知](alert_feishu)
+ 👉 [配置华为云SMN通知](alert_smn)
+ +### 插件 + + 👉 [插件](plugin)
diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hadoop.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hadoop.md new file mode 100644 index 00000000000..c5f494b5764 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hadoop.md @@ -0,0 +1,89 @@ +--- +id: hadoop +title: 监控:Hadoop +sidebar_label: Apache Hadoop +keywords: [开源监控系统, 开源JAVA监控, Hadoop的JVM虚拟机监控] +--- + +> 对Hadoop的JVM虚拟机的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 Hadoop 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对Hadoop中的 JVM 进行指标采集。 + +#### Hadoop应用开启JMX协议步骤 + +应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP + +- 1.进入hadoop-env.sh配置文件,在命令行终端输入以下命令: + +```shell +vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh +``` + +- 2.添加如下参数,`` 为自定义暴露端口号。 + +```shell +export HADOOP_OPTS= "$HADOOP_OPTS +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false " +``` + +- 3.保存并退出,并在 $HADOOP_HOME/sbin 目录下执行 `start-all.sh` 重启服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache (限JDK8及以下) + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------| +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_master.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_master.md new file mode 100644 index 00000000000..6912712607f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_master.md @@ -0,0 +1,59 @@ +--- +id: hbase_master +title: 监控:Hbase Master监控 +sidebar_label: Apache Hbase Master +keywords: [开源监控系统, 开源数据库监控, HbaseMaster监控] +--- + +> 对Hbase Master的通用性能指标进行采集监控 + +**使用协议:HTTP** + +## 监控前操作 + +查看 `hbase-site.xml` 文件,获取 `hbase.master.info.port` 配置项的值,该值用作监控使用。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | hbase master的端口号,默认为16010。即:`hbase.master.info.port`参数值 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|-------------------------| +| numRegionServers | 无 | 当前存活的 RegionServer 个数 | +| numDeadRegionServers | 无 | 当前Dead的 RegionServer 个数 | +| averageLoad | 无 | 集群平均负载 | +| clusterRequests | 无 | 集群请求数量 | + +#### 指标集合:Rit + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|--------------| +| ritCount | 无 | 当前的 RIT 数量 | +| ritCountOverThreshold | 无 | 超过阈值的 RIT 数量 | +| ritOldestAge | ms | 最老的RIT的持续时间 | + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|--------------------| +| liveRegionServers | 无 | 当前活跃RegionServer列表 | +| deadRegionServers | 无 | 当前离线RegionServer列表 | +| zookeeperQuorum | 无 | Zookeeper列表 | +| masterHostName | 无 | Master节点 | +| BalancerCluster_num_ops | 无 | 集群负载均衡次数 | +| numActiveHandler | 无 | RPC句柄数 | +| receivedBytes | MB | 集群接收数据量 | +| sentBytes | MB | 集群发送数据量(MB) | +| clusterRequests | 无 | 集群总请求数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_regionserver.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_regionserver.md new file mode 100644 index 00000000000..2452e34a469 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hbase_regionserver.md @@ -0,0 +1,93 @@ +--- +id: hbase_regionserver +title: 监控 Hbase RegionServer监控 +sidebar_label: Apache Hbase RegionServer +keywords: [开源监控系统, 开源数据库监控, RegionServer监控] +--- + +> 对Hbase RegionServer的通用性能指标进行采集监控 + +**使用协议:HTTP** + +## 监控前操作 + +查看 `hbase-site.xml` 文件,获取 `hbase.regionserver.info.port` 配置项的值,该值用作监控使用。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | hbase regionserver的端口号,默认为16030。即:`hbase.regionserver.info.port`参数值 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +> 所有指标名称均直接引用官方的字段,所以存在命名不规范。 + +#### 指标集合:server + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------------------|-------|-----------------------------------------| +| regionCount | 无 | Region数量 | +| readRequestCount | 无 | 重启集群后的读请求数量 | +| writeRequestCount | 无 | 重启集群后的写请求数量 | +| averageRegionSize | MB | 平均Region大小 | +| totalRequestCount | 无 | 全部请求数量 | +| ScanTime_num_ops | 无 | Scan 请求总量 | +| Append_num_ops | 无 | Append 请求量 | +| Increment_num_ops | 无 | Increment请求量 | +| Get_num_ops | 无 | Get 请求量 | +| Delete_num_ops | 无 | Delete 请求量 | +| Put_num_ops | 无 | Put 请求量 | +| ScanTime_mean | 无 | 平均 Scan 请求时间 | +| ScanTime_min | 无 | 最小 Scan 请求时间 | +| ScanTime_max | 无 | 最大 Scan 请求时间 | +| ScanSize_mean | bytes | 平均 Scan 请求大小 | +| ScanSize_min | 无 | 最小 Scan 请求大小 | +| ScanSize_max | 无 | 最大 Scan 请求大小 | +| slowPutCount | 无 | 慢操作次数/Put | +| slowGetCount | 无 | 慢操作次数/Get | +| slowAppendCount | 无 | 慢操作次数/Append | +| slowIncrementCount | 无 | 慢操作次数/Increment | +| slowDeleteCount | 无 | 慢操作次数/Delete | +| blockCacheSize | 无 | 缓存块内存占用大小 | +| blockCacheCount | 无 | 缓存块数量_Block Cache 中的 Block 数量 | +| blockCacheExpressHitPercent | 无 | 读缓存命中率 | +| memStoreSize | 无 | Memstore 大小 | +| FlushTime_num_ops | 无 | RS写磁盘次数/Memstore flush 写磁盘次数 | +| flushQueueLength | 无 | Region Flush 队列长度 | +| flushedCellsSize | 无 | flush到磁盘大小 | +| storeFileCount | 无 | Storefile 个数 | +| storeCount | 无 | Store 个数 | +| storeFileSize | 无 | Storefile 大小 | +| compactionQueueLength | 无 | Compaction 队列长度 | +| percentFilesLocal | 无 | Region 的 HFile 位于本地 HDFS Data Node的比例 | +| percentFilesLocalSecondaryRegions | 无 | Region 副本的 HFile 位于本地 HDFS Data Node的比例 | +| hlogFileCount | 无 | WAL 文件数量 | +| hlogFileSize | 无 | WAL 文件大小 | + +#### 指标集合:IPC + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|------|--------------| +| numActiveHandler | 无 | 当前的 RIT 数量 | +| NotServingRegionException | 无 | 超过阈值的 RIT 数量 | +| RegionMovedException | ms | 最老的RIT的持续时间 | +| RegionTooBusyException | ms | 最老的RIT的持续时间 | + +#### 指标集合:JVM + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|--------------------| +| MemNonHeapUsedM | 无 | 当前活跃RegionServer列表 | +| MemNonHeapCommittedM | 无 | 当前离线RegionServer列表 | +| MemHeapUsedM | 无 | Zookeeper列表 | +| MemHeapCommittedM | 无 | Master节点 | +| MemHeapMaxM | 无 | 集群负载均衡次数 | +| MemMaxM | 无 | RPC句柄数 | +| GcCount | MB | 集群接收数据量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_datanode.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_datanode.md new file mode 100644 index 00000000000..5fe981ddaff --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_datanode.md @@ -0,0 +1,56 @@ +--- +id: hdfs_datanode +title: 监控:Apache HDFS DataNode监控 +sidebar_label: Apache HDFS DataNode +keywords: [大数据监控系统, 分布式文件系统监控, Apache HDFS DataNode监控] +--- + +> Hertzbeat 对 Apache HDFS DataNode 节点监控指标进行监控。 + +**使用协议:HTTP** + +## 监控前操作 + +获取 Apache HDFS DataNode 的 HTTP 监控端口。 取值:`dfs.datanode.http.address` + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|----------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。不带协议头。 | +| 端口 | Apache HDFS DataNode 的监控端口号,默认为50075。 | +| 查询超时时间 | 查询 Apache HDFS DataNode 的超时时间,单位毫秒,默认6000毫秒。 | +| 指标采集间隔 | 监控数据采集的时间间隔,单位秒,最小间隔为30秒。 | +| 是否探测 | 新增监控前是否先探测检查监控可用性。 | +| 描述备注 | 此监控的更多描述和备注信息。 | + +### 采集指标 + +#### 指标集合:FSDatasetState + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|-------------------| +| DfsUsed | GB | DataNode HDFS使用量 | +| Remaining | GB | DataNode HDFS剩余空间 | +| Capacity | GB | DataNode HDFS空间总量 | + +#### 指标集合:JvmMetrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|-------------------------------| +| MemNonHeapUsedM | MB | JVM 当前已经使用的 NonHeapMemory 的大小 | +| MemNonHeapCommittedM | MB | JVM 配置的 NonHeapCommittedM 的大小 | +| MemHeapUsedM | MB | JVM 当前已经使用的 HeapMemory 的大小 | +| MemHeapCommittedM | MB | JVM HeapMemory 提交大小 | +| MemHeapMaxM | MB | JVM 配置的 HeapMemory 的大小 | +| MemMaxM | MB | JVM 运行时可以使用的最大内存大小 | +| ThreadsRunnable | 个 | 处于 RUNNABLE 状态的线程数量 | +| ThreadsBlocked | 个 | 处于 BLOCKED 状态的线程数量 | +| ThreadsWaiting | 个 | 处于 WAITING 状态的线程数量 | +| ThreadsTimedWaiting | 个 | 处于 TIMED WAITING 状态的线程数量 | + +#### 指标集合:runtime + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| StartTime | | 启动时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_namenode.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_namenode.md new file mode 100644 index 00000000000..46d69e5e2b4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hdfs_namenode.md @@ -0,0 +1,92 @@ +--- +id: hdfs_namenode +title: 监控:Apache HDFS NameNode监控 +sidebar_label: Apache HDFS NameNode +keywords: [大数据监控系统, 分布式文件系统监控, Apache HDFS NameNode监控] +--- + +> Hertzbeat 对 Apache HDFS NameNode 节点监控指标进行监控。 + +**使用协议:HTTP** + +## 监控前操作 + +获取 Apache HDFS NameNode 的 HTTP 监控端口。取值:`dfs.namenode.http-address` + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。不带协议头。 | +| 端口 | HDFS NameNode 的监控端口号,默认为50070。 | +| 查询超时时间 | 查询 HDFS NameNode 的超时时间,单位毫秒,默认6000毫秒。 | +| 指标采集间隔 | 监控数据采集的时间间隔,单位秒,最小间隔为30秒。 | +| 是否探测 | 新增监控前是否先探测检查监控可用性。 | +| 描述备注 | 此监控的更多描述和备注信息。 | + +### 采集指标 + +#### 指标集合:FSNamesystem + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|---------------------------------------------| +| CapacityTotal | | 集群存储总容量 | +| CapacityTotalGB | GB | 集群存储总容量 | +| CapacityUsed | | 集群存储已使用容量 | +| CapacityUsedGB | GB | 集群存储已使用容量 | +| CapacityRemaining | | 集群存储剩余容量 | +| CapacityRemainingGB | GB | 集群存储剩余容量 | +| CapacityUsedNonDFS | | 集群非 HDFS 使用容量 | +| TotalLoad | | 整个集群的客户端连接数 | +| FilesTotal | | 集群文件总数量 | +| BlocksTotal | | 总 BLOCK 数量 | +| PendingReplicationBlocks | | 等待被备份的块数量 | +| UnderReplicatedBlocks | | 副本数不够的块数量 | +| CorruptBlocks | | 坏块数量 | +| ScheduledReplicationBlocks | | 安排要备份的块数量 | +| PendingDeletionBlocks | | 等待被删除的块数量 | +| ExcessBlocks | | 多余的块数量 | +| PostponedMisreplicatedBlocks | | 被推迟处理的异常块数量 | +| NumLiveDataNodes | | 活的数据节点数量 | +| NumDeadDataNodes | | 已经标记为 Dead 状态的数据节点数量 | +| NumDecomLiveDataNodes | | 下线且 Live 的节点数量 | +| NumDecomDeadDataNodes | | 下线且 Dead 的节点数量 | +| NumDecommissioningDataNodes | | 正在下线的节点数量 | +| TransactionsSinceLastCheckpoint | | 从上次Checkpoint之后的事务数量 | +| LastCheckpointTime | | 上一次Checkpoint时间 | +| PendingDataNodeMessageCount | | DATANODE 的请求被 QUEUE 在 standby namenode 中的个数 | + +#### 指标集合:RPC + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|----------| +| ReceivedBytes | | 接收数据速率 | +| SentBytes | | 发送数据速率 | +| RpcQueueTimeNumOps | | RPC 调用速率 | + +#### 指标集合:runtime + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| StartTime | | 启动时间 | + +#### 指标集合:JvmMetrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|-------------------------------| +| MemNonHeapUsedM | MB | JVM 当前已经使用的 NonHeapMemory 的大小 | +| MemNonHeapCommittedM | MB | JVM 配置的 NonHeapCommittedM 的大小 | +| MemHeapUsedM | MB | JVM 当前已经使用的 HeapMemory 的大小 | +| MemHeapCommittedM | MB | JVM HeapMemory 提交大小 | +| MemHeapMaxM | MB | JVM 配置的 HeapMemory 的大小 | +| MemMaxM | MB | JVM 运行时可以使用的最大内存大小 | +| GcCountParNew | 次 | 新生代GC消耗时间 | +| GcTimeMillisParNew | 毫秒 | 新生代GC消耗时间 | +| GcCountConcurrentMarkSweep | 毫秒 | 老年代GC次数 | +| GcTimeMillisConcurrentMarkSweep | 个 | 老年代GC消耗时间 | +| GcCount | 个 | GC次数 | +| GcTimeMillis | 个 | GC消耗时间 | +| ThreadsRunnable | 个 | 处于 BLOCKED 状态的线程数量 | +| ThreadsBlocked | 个 | 处于 BLOCKED 状态的线程数量 | +| ThreadsWaiting | 个 | 处于 WAITING 状态的线程数量 | +| ThreadsTimedWaiting | 个 | 处于 TIMED WAITING 状态的线程数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hikvision_isapi.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hikvision_isapi.md new file mode 100644 index 00000000000..1792d6647da --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hikvision_isapi.md @@ -0,0 +1,60 @@ +--- +id: hikvision_isapi +title: 监控 海康ISAPI +sidebar_label: 海康ISAPI +keywords: [ monitor, hikvision_isapi, 海康 ] +--- + +> 通过ISAPI接口监控海康威视设备状态,获取设备健康数据。 + +## 监控配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 被监控的对端IP或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网络请求端口,默认为80。 | +| 超时时间 | 设置超时时间,单位ms毫秒,默认5000毫秒。 | +| 用户名 | 海康设备登录用户名。 | +| 密码 | 海康设备登录密码。 | +| 启用HTTPS | 是否启用HTTPS,默认未启用。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | + +## 采集指标 + +### 系统信息 + +- 设备名称 +- 设备ID +- 固件版本 +- 设备型号 +- mac地址 + +### 设备状态 + +- CPU 利用率(%) +- 内存使用量(MB) +- 可用内存(MB) +- 缓存大小(MB) +- 网口1速度(Mbps) +- 网口2速度(Mbps) +- 启动时间 +- 运行时长 +- 上次校时时间 +- 上次校时时间差(s) +- 平均上传耗时(ms) +- 最大上传耗时(ms) +- 最小上传耗时(ms) +- 上次校时模式 +- 上次校时地址 +- 响应时间(ms) + +## 监控实现原理 + +通过海康威视设备的ISAPI接口获取设备信息和状态: + +1. 采集系统信息:`/ISAPI/System/deviceInfo` + +2. 采集设备状态:`/ISAPI/System/status` + +采用HTTP协议Digest认证方式访问接口,解析XML格式响应数据获取监控指标。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hive.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hive.md new file mode 100644 index 00000000000..bdf08d7b0ba --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hive.md @@ -0,0 +1,76 @@ +--- +id: hive +Title: 监控 Apache Hive +sidebar_label: Apache Hive +keywords: [开源监控工具, 开源 Apache Hive 监控工具, 监控 Apache Hive 指标] +--- + +> 收集和监控由 Apache Hive 提供的常规性能指标。 + +## 监控前操作 + +如果您想使用此监控类型监控 Apache Hive 的信息,您需要以远程模式启动您的 Hive Server2。 + +**1、启用元数据存储:** + +```shell +hive --service metastore & +``` + +**2. 启用 Hive Server2:** + +```shell +hive --service hiveserver2 & +``` + +### 配置参数 + +| 参数名称 | 参数描述 | +|----------|--------------------------------------------------------| +| 监控主机 | 被监控的目标 IPV4、IPV6 或域名。注意⚠️不要包含协议头(例如:https://,http://)。 | +| 监控名称 | 用于标识此监控的名称,需要保证唯一性。 | +| 端口 | 数据库提供的默认端口为 10002。 | +| 启用 HTTPS | 是否通过 HTTPS 访问网站,请注意⚠️当启用 HTTPS 时,需要将默认端口更改为 443 | +| 采集间隔 | 监控周期性采集数据的时间间隔,单位为秒,最小间隔为 30 秒。 | +| 是否探测 | 在新增监控前是否先进行可用性探测,只有探测成功才会继续新增或修改操作。 | +| 描述备注 | 用于添加关于监控的额外标识和描述信息。 | + +### 采集指标 + +#### 指标收集: 基本信息 + +| 指标名称 | 指标单位 | 指标描述 | +|--------|------|-----------------------------| +| 虚拟机名称 | 无 | 运行 HiveServer2 的虚拟机(VM)的名称。 | +| 虚拟机供应商 | 无 | 虚拟机的供应商或提供者。 | +| 虚拟机版本 | 无 | 虚拟机的版本。 | +| 允许持续时间 | 无 | HiveServer2 运行的持续时间。 | + +#### 指标收集: 环境信息 + +| 指标名称 | 指标单位 | 指标描述 | +|------------|------|--------------------------------| +| HTTPS代理端口号 | 无 | 用于 HTTPS 代理通信的端口号。 | +| 操作系统 | 无 | 运行 HiveServer2 的操作系统的名称。 | +| 操作系统版本 | 无 | 操作系统的版本。 | +| 操作系统架构 | 无 | 操作系统的架构。 | +| java运行环境 | 无 | HiveServer2 使用的 Java 运行时环境的名称。 | +| java运行环境版本 | 无 | Java 运行时环境的版本。 | + +#### 指标收集: 线程信息 + +| 指标名称 | 指标单位 | 指标描述 | +|--------|------|------------------------------| +| 线程数量 | None | HiveServer2 当前正在使用的线程数。 | +| 总启动线程数 | None | HiveServer2 启动以来启动的线程总数。 | +| 最高线程数 | None | HiveServer2 在任何给定时间使用的最高线程数。 | +| 守护线程数 | None | HiveServer2 当前活动的守护线程数。 | + +#### 指标收集: 代码缓存 + +| 指标名称 | 指标单位 | 指标描述 | +|------------|------|---------------| +| 内存池当前内存 | MB | 当前为内存池分配的内存量。 | +| 内存池初始内存 | MB | 内存池请求的初始内存量。 | +| 内存池可分配最大内存 | MB | 内存池可分配的最大内存量。 | +| 内存池内存使用量 | MB | 内存池已使用内存量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/http_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/http_sd.md new file mode 100644 index 00000000000..20f3830e929 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/http_sd.md @@ -0,0 +1,228 @@ +--- +id: http_sd +title: 监控:HTTP服务发现监控 +sidebar_label: HTTP服务发现 +keywords: [开源监控系统, 开源服务发现监控, HTTP服务发现监控] +--- + +> HertzBeat 集成自定义 HTTP API,自动发现服务实例并为发现的实例创建监控任务。 + +### 概述 + +HTTP 服务发现允许 HertzBeat 通过调用您的自定义 HTTP API 来发现服务实例。这是最灵活的服务发现方式,适用于任何可以通过 HTTP API 暴露服务实例信息的系统。您只需提供一个返回指定格式目标地址列表的 HTTP 端点即可。 + +### 监控前操作 + +#### 准备 HTTP API + +您需要提供或开发一个满足以下要求的 HTTP API: + +1. **HTTP 方法**:支持 GET 请求 +2. **响应格式**:返回 JSON 格式数据 +3. **响应结构**:必须包含 `targets` 字段,该字段为字符串数组,每个字符串是一个服务实例地址,格式为 `host:port` +4. **可访问性**:该 API 必须可从 HertzBeat 访问 + +#### API 响应示例 + +```json +{ + "targets": [ + "192.168.1.101:8080", + "192.168.1.102:8080", + "192.168.1.103:8080", + "api.example.com:443" + ] +} +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|------------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 服务发现地址 | 用于服务发现的 HTTP API 地址,必须以 http:// 或 https:// 开头。示例:`http://api.example.com/services` | +| 认证方式 | 认证方式,可选值:`Bearer Token`、`Basic Auth`、`Digest Auth`。默认:无 | +| 访问令牌 | 当认证方式为 Bearer Token 时用于认证的令牌 | +| 用户名 | 当认证方式为 Basic Auth 或 Digest Auth 时用于认证的用户名 | +| 密码 | 当认证方式为 Basic Auth 或 Digest Auth 时用于认证的密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **准备 HTTP API** + - 开发或配置一个返回服务实例列表的 API 端点 + - 确保 API 返回正确格式的 JSON 数据 + - 测试 API 的可访问性和响应格式 + +2. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**HTTP服务发现** + - 填写基本配置参数 + - 根据需要配置认证信息 + +3. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 常用模板类型:端口、HTTP、HTTPS、Ping 等 + +4. **自动发现** + - HertzBeat 会根据采集间隔定期调用您的 HTTP API + - 为新发现的服务实例自动创建监控任务 + - 自动删除已消失服务实例的监控任务 + +### 使用示例 + +#### 示例 1:无需认证的 API + +假设您有一个服务管理 API: + +- **API 地址**:`http://service-manager.example.com/api/v1/services` +- **响应**: + + ```json + { + "targets": [ + "10.0.1.10:8080", + "10.0.1.11:8080", + "10.0.1.12:8080" + ] + } + ``` + +配置示例: + +- **任务名称**:`HTTP-Service-Discovery` +- **服务发现地址**:`http://service-manager.example.com/api/v1/services` +- **认证方式**:留空(无需认证) +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控 + +#### 示例 2:使用 Bearer Token 认证的 API + +如果您的 API 需要 Bearer Token 认证: + +- **API 地址**:`https://api.example.com/services` +- **认证方式**:`Bearer Token` +- **访问令牌**:`your-bearer-token-here` + +配置示例: + +- **任务名称**:`Secure-API-Discovery` +- **服务发现地址**:`https://api.example.com/services` +- **认证方式**:选择 `Bearer Token` +- **访问令牌**:输入您的令牌 +- **监控模板**:选择 `HTTP` 监控 + +#### 示例 3:使用 Basic 认证的 API + +如果您的 API 需要 Basic 认证: + +- **API 地址**:`http://api.internal.com/discover` +- **认证方式**:`Basic Auth` +- **用户名**:`admin` +- **密码**:`password123` + +配置示例: + +- **任务名称**:`Basic-Auth-Discovery` +- **服务发现地址**:`http://api.internal.com/discover` +- **认证方式**:选择 `Basic Auth` +- **用户名**:`admin` +- **密码**:`password123` +- **监控模板**:选择合适的模板 + +### 注意事项 + +- **响应格式**:API 响应必须是 JSON 格式且包含 `targets` 字段(字符串数组) +- **地址格式**:每个目标地址应为 `host:port` 格式,例如: + - `192.168.1.100:8080` + - `api.example.com:443` + - `localhost:3000` +- **网络连通性**:确保 HertzBeat 可以访问 HTTP API 地址 +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:根据 API 性能和服务变更频率设置合理的采集间隔 +- **认证方式**:根据您的 API 安全要求选择合适的认证方式 +- **HTTPS**:如果使用 HTTPS,确保 SSL 证书配置正确 +- **API 性能**:确保 API 能够快速响应,避免影响 HertzBeat 性能 +- **错误处理**:如果 API 返回错误或格式无效,HertzBeat 将保持当前监控任务不变 + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **自定义注册中心**:与您自己的服务注册系统集成 +- **云平台**:从云平台(AWS、GCP、Azure)发现服务 +- **CMDB**:与 CMDB 系统集成获取服务信息 +- **服务网关**:通过 API 网关发现服务实例 +- **容器平台**:从 Kubernetes API 或容器编排平台获取服务列表 +- **服务管理系统**:与现有服务管理平台集成 +- **多云环境**:统一管理不同云平台的服务发现 + +### 高级用法 + +#### 包含额外元数据的响应 + +虽然基本要求只是 `targets` 字段,但您的 API 可以包含额外的元数据以供未来扩展使用: + +```json +{ + "targets": [ + "192.168.1.10:8080" + ], + "labels": { + "env": "production", + "version": "1.0.0" + } +} +``` + +注意:目前仅使用 `targets` 字段进行服务发现,但未来版本可能支持使用标签信息。 + +### API 实现示例 + +#### Spring Boot 示例 + +```java +@RestController +@RequestMapping("/api/v1") +public class ServiceDiscoveryController { + + @GetMapping("/services") + public Map getServices() { + List`` targets = Arrays.asList( + "192.168.1.10:8080", + "192.168.1.11:8080", + "192.168.1.12:8080" + ); + + Map response = new HashMap<>(); + response.put("targets", targets); + return response; + } +} +``` + +#### Node.js Express 示例 + +```javascript +app.get('/api/services', (req, res) => { + const targets = [ + '192.168.1.10:8080', + '192.168.1.11:8080', + '192.168.1.12:8080' + ]; + + res.json({ + targets: targets + }); +}); +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/huawei_switch.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/huawei_switch.md new file mode 100644 index 00000000000..2d42a0170ee --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/huawei_switch.md @@ -0,0 +1,53 @@ +--- +id: huawei_switch +title: 监控:华为通用交换机 +sidebar_label: 华为通用交换机 +keywords: [ 开源监控系统, 网络监控, 华为通用交换机监控 ] +--- + +> 对 华为交换机 的通用指标(可用性,系统信息,端口流量等)进行采集监控。 + +**使用协议:SNMP** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | SNMP端口号,默认为161 | +| SNMP 版本 | 所使用的SNMP版本 | +| SNMP 团体字 | 用于SNMP v1 和 SNMP v2c,用于在SNMP Agent完成认证,字符串形式。团体名包括“read”和“write”两种,执行SNMP查询操作时,采用“read”团体名进行认证;执行SNMP设置操作时,则采用“write”团体名进行认证。 | +| SNMP username | 用于SNMP v3,MSG 用户名 | +| SNMP contextName | 用于SNMP v3,用于确定Context EngineID对被管理设备的MIB视图。 | +| SNMP authPassword | 用于SNMP v3,SNMP 认证密码 | +| authPassword 加密方式 | 用于SNMP v3,SNMP 认证算法 | +| SNMP privPassphrase | 用于SNMP v3,SNMP 加密密码 | +| privPassword 加密方式 | 用于SNMP v3,SNMP 加密算法 | +| 查询超时时间 | 设置查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据的时间间隔,单位为秒,最小间隔为 30 秒。 | +| 描述备注 | 用于添加关于监控的额外标识和描述信息。 | + +### 采集指标 + +由于华为通用交换机可查询的指标过多,详细的指标可于[华为MIB查询平台](https://info.support.huawei.com/info-finder/tool/zh/enterprise/mib) +进行查询。 + +此文档仅介绍监控模板中查询的监控指标。 + +#### 指标集合:huawei_core + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ifIndex | 无 | 接口索引 该值大于零且全局唯一。 | +| ifDescr | 无 | 描述接口的字符串,应该包含制造商、产品名和接口软硬件的版本。 | +| ifMtu | octets | 最大传输单元。接口上可以传送的最大报文的大小。对于传输网络数据报的接口,这是接口可以传输的最大数据报的大小。 | +| ifSpeed | 比特/秒 | 估计的接口当前带宽。对于带宽无法改变或者无法准确估计的接口,该项为额定带宽值。 如果接口的带宽比该表项的值大,则该表项的值是其最大值(4,294,967,295),并且ifHighSpeed的值是接口的速率。对于没有速率概念的子层接口,该表项的值为零。 | +| ifInOctets | octets | 该接口入方向通过的总字节数,包括分桢的数据。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 | +| ifInDiscards | 无 | 入方向的被丢弃的报文个数,即使没有错误发生。也将阻止这些报文送往上层协议。 一个可能的原因是释放buffer的空间。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 | +| ifInErrors | 无 | 出错而不会被送往上层协议的报文/传输单元个数。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 | +| ifOutOctets | octets | 该接口出方向通过的总字节数,包括分桢的数据。在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 | +| ifOutDiscards | 无 | 出方向的被丢弃的报文个数,即使没有错误发生。也将阻止这些报文发送。丢弃此类报文的一个可能原因是为了释放缓冲区空间。 在管理系统的重新初始化和ifCounterDiscontinuityTime项指定的时间内,该节点的值将出现不连续的情况。 | +| ifOutErrors | 无 | 对于面向数据包的接口,该节点表示由于错误而无法发送的数据包数量。对于面向字符或固定长度接口,该节点表示由于错误而无法传输的传输单元的数量。这种计数器的值可能在管理系统的重新初始化时会不连续,其他时间如ifCounterDiscontinuityTime的值。 | +| ifAdminStatus | 无 | 接口的理想状态。 testing(3)状态表示没有可操作的数据包通过。 当受管系统初始化时,全部接口开始于ifAdminStatus在down(2)状态。由于明确的管理动作或被管理的系统保留的每个配置信息,ifAdminStatus然后被更改为Up(1)或testing(3)状态(或保留在down(2)状态)。 | +| ifOperStatus | 无 | 当前接口的操作状态。testing(3)状态表示没有可操作的数据包可以通过。如果ifAdminStatus是down(2),则ifOperStatus应该是down(2)。 如果ifAdminStatus是改为up(1),则ifOperStatus应该更改为up(1)。如果接口准备好传输,接收网络流量; 它应该改为dormant(5)。如果接口正在等待外部动作(如串行线路等待传入连接); 它应该保持在down(2)状态,并且只有当有故障阻止它变成up(1)状态。 它应该留在notPresent(6)状态如果接口缺少(通常为硬件)组件。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hugegraph.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hugegraph.md new file mode 100644 index 00000000000..11c9a91749a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/hugegraph.md @@ -0,0 +1,140 @@ +--- +id: hugegraph +title: 监控:HugeGraph监控 +sidebar_label: Apache HugeGraph +keywords: [开源监控系统, 开源数据库监控, HugeGraph监控] +--- + +> 对HugeGraph的通用性能指标进行采集监控 + +**使用协议:HTTP** + +## 监控前操作 + +查看 `rest-server.properties` 文件,获取 `restserver_port` 配置项的值,该值用作监控使用。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|---------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | HugeGraph restserver的端口号,默认为8080。即:`restserver_port`参数值 | +| 启动SSL | 使用使用SSL | +| Base Path | 基础路径,默认为: /metrics ,通常情况下不需要修改 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:gauges + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|-----------------------| +| edge-hugegraph-capacity | 无 | 表示当前图中边的容量上限 | +| edge-hugegraph-expire | 无 | 表示边数据的过期时间 | +| edge-hugegraph-hits | 无 | 表示边数据缓存的命中次数 | +| edge-hugegraph-miss | 无 | 表示边数据缓存的未命中次数 | +| edge-hugegraph-size | 无 | 表示当前图中边的数量 | +| instances | 无 | 表示当前运行的HugeGraph实例数量 | +| schema-id-hugegraph-capacity | 无 | 表示图中schema ID的容量上限 | +| schema-id-hugegraph-expire | 无 | 表示schema ID数据的过期时间 | +| schema-id-hugegraph-hits | 无 | 表示schema ID数据缓存的命中次数 | +| schema-id-hugegraph-miss | 无 | 表示schema ID数据缓存的未命中次数 | +| schema-id-hugegraph-size | 无 | 表示当前图中schema ID的数量 | +| schema-name-hugegraph-capacity | 无 | 表示图中schema名称的容量上限 | +| schema-name-hugegraph-expire | 无 | 表示schema名称数据的过期时间 | +| schema-name-hugegraph-hits | 无 | 表示schema名称数据缓存的命中次数 | +| schema-name-hugegraph-miss | 无 | 表示schema名称数据缓存的未命中次数 | +| schema-name-hugegraph-size | 无 | 表示当前图中schema名称的数量 | +| token-hugegraph-capacity | 无 | 表示图中token的容量上限 | +| token-hugegraph-expire | 无 | 表示token数据的过期时间 | +| token-hugegraph-hits | 无 | 表示token数据缓存的命中次数 | +| token-hugegraph-miss | 无 | 表示token数据缓存的未命中次数 | +| token-hugegraph-size | 无 | 表示当前图中token的数量 | +| users-hugegraph-capacity | 无 | 表示图中用户的容量上限 | +| users-hugegraph-expire | 无 | 表示用户数据的过期时间 | +| users-hugegraph-hits | 无 | 表示用户数据缓存的命中次数 | +| users-hugegraph-miss | 无 | 表示用户数据缓存的未命中次数 | +| users-hugegraph-size | 无 | 表示当前图中用户的数量 | +| users_pwd-hugegraph-capacity | 无 | 表示users_pwd的容量上限 | +| users_pwd-hugegraph-expire | 无 | 表示users_pwd数据的过期时间 | +| users_pwd-hugegraph-hits | 无 | 表示users_pwd数据缓存的命中次数 | +| users_pwd-hugegraph-miss | 无 | 表示users_pwd数据缓存的未命中次数 | +| users_pwd-hugegraph-size | 无 | 表示当前图中users_pwd的数量 | +| vertex-hugegraph-capacity | 无 | 表示图中顶点的容量上限 | +| vertex-hugegraph-expire | 无 | 表示顶点数据的过期时间 | +| vertex-hugegraph-hits | 无 | 表示顶点数据缓存的命中次数 | +| vertex-hugegraph-miss | 无 | 表示顶点数据缓存的未命中次数 | +| vertex-hugegraph-size | 无 | 表示当前图中顶点的数量 | +| batch-write-threads | 无 | 表示批量写入操作时的线程数 | +| max-write-threads | 无 | 表示最大写入操作的线程数 | +| pending-tasks | 无 | 表示待处理的任务数 | +| workers | 无 | 表示当前工作线程的数量 | +| average-load-penalty | 无 | 表示平均加载延迟 | +| estimated-size | 无 | 表示估计的数据大小 | +| eviction-count | 无 | 表示被驱逐的数据条数 | +| eviction-weight | 无 | 表示被驱逐数据的权重 | +| hit-count | 无 | 表示缓存命中总数 | +| hit-rate | 无 | 表示缓存命中率 | +| load-count | 无 | 表示数据加载次数 | +| load-failure-count | 无 | 表示数据加载失败次数 | +| load-failure-rate | 无 | 表示数据加载失败率 | +| load-success-count | 无 | 表示数据加载成功次数 | +| long-run-compilation-count | 无 | 表示长时间运行的编译次数 | +| miss-count | 无 | 表示缓存未命中总数 | +| miss-rate | 无 | 表示缓存未命中率 | +| request-count | 无 | 表示总的请求次数 | +| total-load-time | 无 | 表示总的数据加载时间 | +| sessions | 无 | 表示当前的活动会话数量 | + +#### 指标集合:counters + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------------------------------------|------|------------------------------| +| GET-SUCCESS_COUNTER | 无 | 记录GET请求成功的次数 | +| GET-TOTAL_COUNTER | 无 | 记录GET请求的总次数 | +| favicon-ico-GET-FAILED_COUNTER | 无 | 记录获取favicon.ico失败的GET请求次数 | +| favicon-ico-GET-TOTAL_COUNTER | 无 | 记录获取favicon.ico的GET请求总次数 | +| graphs-HEAD-FAILED_COUNTER | 无 | 记录graphs资源的HEAD请求失败的次数 | +| graphs-HEAD-SUCCESS_COUNTER | 无 | 记录graphs资源的HEAD请求成功的次数 | +| graphs-HEAD-TOTAL_COUNTER | 无 | 记录graphs资源的HEAD请求的总次数 | +| graphs-hugegraph-graph-vertices-GET-SUCCESS_COUNTER | 无 | 记录获取HugeGraph图中顶点的GET请求成功的次数 | +| graphs-hugegraph-graph-vertices-GET-TOTAL_COUNTER | 无 | 记录获取HugeGraph图中顶点的GET请求的总次数 | +| metircs-GET-FAILED_COUNTER | 无 | 记录获取metrics失败的GET请求次数 | +| metircs-GET-TOTAL_COUNTER | 无 | 记录获取metrics的GET请求总次数 | +| metrics-GET-SUCCESS_COUNTER | 无 | 记录获取metrics成功的GET请求次数 | +| metrics-GET-TOTAL_COUNTER | 无 | 记录获取metrics的GET请求总次数 | +| metrics-gauges-GET-SUCCESS_COUNTER | 无 | 记录获取metrics gauges成功的GET请求次数 | +| metrics-gauges-GET-TOTAL_COUNTER | 无 | 记录获取metrics gauges的GET请求总次数 | + +#### 指标集合:system + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------------------|------|--------------------------------| +| mem | 无 | 表示系统的总内存量 | +| mem_total | 无 | 表示系统的总内存量(与mem相同) | +| mem_used | 无 | 表示系统当前使用的内存量 | +| mem_free | 无 | 表示系统空闲的内存量 | +| mem_unit | 无 | 表示内存量的单位(如字节、千字节、兆字节等) | +| processors | 无 | 表示系统的处理器数量 | +| uptime | 无 | 表示系统运行时间,即从启动到现在的时间 | +| systemload_average | 无 | 表示系统的平均负载,反映了系统的繁忙程度 | +| heap_committed | 无 | 表示JVM堆内存的承诺大小,即保证可供JVM使用的堆内存大小 | +| heap_init | 无 | 表示JVM堆内存的初始大小 | +| heap_used | 无 | 表示JVM当前使用的堆内存大小 | +| heap_max | 无 | 表示JVM堆内存的最大可使用大小 | +| nonheap_committed | 无 | 表示JVM非堆内存的承诺大小 | +| nonheap_init | 无 | 表示JVM非堆内存的初始大小 | +| nonheap_used | 无 | 表示JVM当前使用的非堆内存大小 | +| nonheap_max | 无 | 表示JVM非堆内存的最大可使用大小 | +| thread_peak | 无 | 表示自JVM启动以来峰值线程数 | +| thread_daemon | 无 | 表示当前活跃的守护线程数 | +| thread_total_started | 无 | 表示自JVM启动以来总共启动过的线程数 | +| thread_count | 无 | 表示当前活跃的线程数 | +| garbage_collector_g1_young_generation_count | 无 | 表示G1垃圾收集器年轻代垃圾收集的次数 | +| garbage_collector_g1_young_generation_time | 无 | 表示G1垃圾收集器年轻代垃圾收集的总时间 | +| garbage_collector_g1_old_generation_count | 无 | 表示G1垃圾收集器老年代垃圾收集的次数 | +| garbage_collector_g1_old_generation_time | 无 | 表示G1垃圾收集器老年代垃圾收集的总时间 | +| garbage_collector_time_unit | 无 | 表示垃圾收集时间的单位(如毫秒、秒等) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iceberg.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iceberg.md new file mode 100644 index 00000000000..8bb6a51aeab --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iceberg.md @@ -0,0 +1,76 @@ +--- +id: iceberg +Title: 监控 Apache Iceberg +sidebar_label: Apache Iceberg +keywords: [开源监控工具, 开源 Apache Iceberg 监控工具, 监控 Apache Iceberg 指标] +--- + +> 收集和监控由 Apache Iceberg 提供的常规性能指标。 + +## 监控前操作 + +如果您想使用此监控类型监控 Apache Iceberg 的信息,您需要以远程模式启动您的 Hive Server2。 + +**1、启用元数据存储:** + +```shell +hive --service metastore & +``` + +**2. 启用 Hive Server2:** + +```shell +hive --service hiveserver2 & +``` + +### 配置参数 + +| 参数名称 | 参数描述 | +|----------|--------------------------------------------------------| +| 监控主机 | 被监控的目标 IPV4、IPV6 或域名。注意⚠️不要包含协议头(例如:https://,http://)。 | +| 监控名称 | 用于标识此监控的名称,需要保证唯一性。 | +| 端口 | 数据库提供的默认端口为 10002。 | +| 启用 HTTPS | 是否通过 HTTPS 访问网站,请注意⚠️当启用 HTTPS 时,需要将默认端口更改为 443 | +| 采集间隔 | 监控周期性采集数据的时间间隔,单位为秒,最小间隔为 30 秒。 | +| 是否探测 | 在新增监控前是否先进行可用性探测,只有探测成功才会继续新增或修改操作。 | +| 描述备注 | 用于添加关于监控的额外标识和描述信息。 | + +### 采集指标 + +#### 指标收集: 基本信息 + +| 指标名称 | 指标单位 | 指标描述 | +|--------|------|-----------------------------| +| 虚拟机名称 | 无 | 运行 HiveServer2 的虚拟机(VM)的名称。 | +| 虚拟机供应商 | 无 | 虚拟机的供应商或提供者。 | +| 虚拟机版本 | 无 | 虚拟机的版本。 | +| 允许持续时间 | 无 | HiveServer2 运行的持续时间。 | + +#### 指标收集: 环境信息 + +| 指标名称 | 指标单位 | 指标描述 | +|------------|------|--------------------------------| +| HTTPS代理端口号 | 无 | 用于 HTTPS 代理通信的端口号。 | +| 操作系统 | 无 | 运行 HiveServer2 的操作系统的名称。 | +| 操作系统版本 | 无 | 操作系统的版本。 | +| 操作系统架构 | 无 | 操作系统的架构。 | +| java运行环境 | 无 | HiveServer2 使用的 Java 运行时环境的名称。 | +| java运行环境版本 | 无 | Java 运行时环境的版本。 | + +#### 指标收集: 线程信息 + +| 指标名称 | 指标单位 | 指标描述 | +|--------|------|------------------------------| +| 线程数量 | None | HiveServer2 当前正在使用的线程数。 | +| 总启动线程数 | None | HiveServer2 启动以来启动的线程总数。 | +| 最高线程数 | None | HiveServer2 在任何给定时间使用的最高线程数。 | +| 守护线程数 | None | HiveServer2 当前活动的守护线程数。 | + +#### 指标收集: 代码缓存 + +| 指标名称 | 指标单位 | 指标描述 | +|------------|------|---------------| +| 内存池当前内存 | MB | 当前为内存池分配的内存量。 | +| 内存池初始内存 | MB | 内存池请求的初始内存量。 | +| 内存池可分配最大内存 | MB | 内存池可分配的最大内存量。 | +| 内存池内存使用量 | MB | 内存池已使用内存量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/idrac.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/idrac.md new file mode 100644 index 00000000000..d5494bded75 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/idrac.md @@ -0,0 +1,104 @@ +--- +id: idrac +title: Dell iDRAC 监控 +sidebar_label: 服务器监控 +keywords: [开源监控工具, 开源服务器监控, Dell iDRAC 监控] +--- + +> 使用 SNMP 协议收集和监控 Dell 服务器的通用性能指标。 + +**协议: SNMP** + +## 监控前准备 + +1. 目标 Dell 服务器支持 **SNMP 协议**。 +2. **iDRAC** (Integrated Dell Remote Access Controller) 已配置网络接口,允许访问 **SNMP 端口**。 +3. 已配置 **SNMP 团体字** 或 **用户凭证** 并分配了适当的 **权限**。 + +这些是您可以遵循的基本检查项,有关在 Dell iDRAC 上启用和配置 SNMP 的详细信息,您可以查阅 Dell 服务器的特定用户手册。 + +## 配置参数 + +| 参数名称 | 参数说明 | +| -------- |---------------------------------------------------------------------------------------------------| +| 目标Host | 被监控设备的 IPv4、IPv6 或域名。注意:不带协议头 (例如 https://, http://)。 | +| 端口 | 服务器 SNMP 端口号,默认为 161。 | +| SNMP 版本| 选择 SNMPv1、SNMPv2c 或 SNMPv3 | +| SNMP 团体字| SNMP v1 v2c 的团体字 | +| 用户名 | SNMP v3 的用户名 | +| Context Name| SNMP v3 的上下文名称 | +| 认证密码 | SNMP v3 的认证密码 | +| 认证加密 | SNMP v3 的认证加密方式 (MD5 或 SHA1) | +| 隐私密码 | SNMP v3 的隐私密码 | +| 隐私加密 | SNMP v3 的隐私加密方式 (DES 或 AES128) | + +### 采集的指标 + +#### 指标集: 系统状态 + +| 指标名称 | 单位 | 指标说明 | +| -------------------- | ---- | -------------------------------------------------- | +| 全局系统状态 | 无 | 系统的整体状态 | +| 系统前面板状态 | 无 | 系统 LCD 的状态 | +| 全局存储状态 | 无 | 存储子系统的整体状态 | +| 系统电源状态 | 无 | 系统的当前电源状态 | +| 系统运行时间 | 天 | 自系统上次开机以来的时间 | + +#### 指标集: 电源供应器 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 电源供应器的索引 | +| 名称 | 无 | 电源供应器的名称/位置 | +| 功率 | W | 电源供应器的输出功率 | +| 类型 | 无 | 电源供应器的类型 (线性、开关、电池等) | +| 状态 | 无 | 电源供应器的当前状态 | + +#### 指标集: 冷却设备 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 冷却设备的索引 | +| 名称 | 无 | 冷却设备的名称/位置 | +| 类型 | 无 | 冷却设备的类型 (风扇、鼓风机、热管等) | +| 转速 | RPM | 当前每分钟转速读数 | +| 状态 | 无 | 冷却设备的当前状态 | + +#### 指标集: 温度传感器 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 温度传感器的索引 | +| 名称 | 无 | 温度传感器的名称/位置 | +| 温度 | °C | 当前温度读数 | +| 状态 | 无 | 温度传感器的当前状态 | + +#### 指标集: 电压传感器 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 电压传感器的索引 | +| 名称 | 无 | 电压传感器的名称/位置 | +| 电压 | V | 当前电压读数 | +| 类型 | 无 | 电压类型 (3.3V, 5V, 12V 等) | +| 状态 | 无 | 电压传感器的当前状态 | + +#### 指标集: 内存设备 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 内存设备的索引 | +| 名称 | 无 | 内存设备的名称/位置 | +| 类型 | 无 | 内存类型 (DDR, DDR2, DDR3, DDR4 等) | +| 容量 | G | 内存设备的容量 | +| 状态 | 无 | 内存设备的当前状态 | + +#### 指标集: 处理器 + +| 指标名称 | 单位 | 指标说明 | +| ----------- | ---- | -------------------------------------------------- | +| 索引 | 无 | 处理器的索引 | +| 名称 | 无 | 处理器的名称/位置 | +| 频率 | MHz | 处理器的当前频率 | +| 家族 | 无 | 处理器家族 (Pentium, Xeon, Core i7 等) | +| 状态 | 无 | 处理器的当前状态 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/imap.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/imap.md new file mode 100644 index 00000000000..aba2eef0f21 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/imap.md @@ -0,0 +1,47 @@ +--- +id: imap +title: 监控:邮箱详细信息监控 +sidebar_label: 邮箱信息监控 +keywords: [开源监控系统, 开源网络监控, 邮箱信息监控] +--- + +> IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上获取邮箱的详细信息 +> 您可以点击`新建 QQ 邮箱监控`或`新建网易邮箱监控`并进行配置,或者选择`更多操作`,导入已有配置。 + +### 启用 IMAP 服务 + +如果您想使用此监控类型来监控您的邮箱信息,请先在您的邮箱上开启 IMAP 服务: + +以 QQ 邮箱为例 (其它邮箱类似): + +1. 进入`邮箱设置` +2. 在`常规`中找到开启 `IMAP/SMTP选项` +3. 在帮助中得到 IMAP 服务器域名,端口号,是否使用 SSL,以及授权码 +4. 使用以上信息在 HertzBeat 中进行配置,采集监控指标 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|:----------|--------------------------------------------------| +| 监控Host | IMAP 邮件服务器域名。注意⚠️不带协议头 (例如: https://, http://) 。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 启动 SSL | 是否启用 SSL。 | +| 端口 | 网站对外提供的端口。 | +| 连接超时时间 | 端口连接的等待超时时间,单位毫秒,默认6000毫秒。 | +| IMAP 邮箱地址 | 要进行监控的邮箱地址。 | +| 授权码 | 邮箱服务器提供的授权码。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +对邮箱中各文件夹信息进行采集(可自行配置自定义的文件夹),由于各文件夹采集的指标相同,以下只列出一组通用的指标集合 + +#### 指标集合:(邮箱中文件夹名称) + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|---------------| +| 邮件总数 | | 该文件夹下所有邮件数量 | +| 最近收到邮件总数 | | 该文件夹下最近收到邮件数量 | +| 未读邮件总数 | | 该文件夹下未读邮件数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb.md new file mode 100644 index 00000000000..1b3bda87fe3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb.md @@ -0,0 +1,65 @@ +--- +id: influxdb +title: 监控:InfluxDB 数据库监控 +sidebar_label: InfluxDB 数据库 +keywords: [开源监控系统, 开源数据库监控, InfluxDB 数据库监控] +--- + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为8086。 | +| URL | 数据库连接URL,一般是由host拼接,不需要添加 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:influxdb 基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|--------| +| build_date | 无 | 创建日期 | +| os | 无 | 操作系统 | +| cpus | 无 | cpus | +| version | 无 | 版本号 | + +#### 指标集合:http 响应时间 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|---------| +| handler | 无 | handler | +| path | 无 | 路径 | +| response_code | 无 | 返回code | +| method | 无 | 请求方法 | +| user_agent | 无 | 用户代理 | +| status | 无 | 状态 | + +#### 指标集合:正在排队的 TSM 数 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|--------| +| bucket | 无 | 存储桶 | +| engine | 无 | 引擎类型 | +| id | 无 | 标识符 | +| level | 无 | 级别 | +| path | 无 | 数据文件路径 | + +#### 指标集合:HTTP写入请求的字节数量 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| endpoint | 无 | 终点 | +| org_id | 无 | 组织标识符 | +| status | 无 | 状态 | + +#### 指标集合:质量控制请求总数 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|--------| +| result | 无 | 结果 | +| org | 无 | 组织标识符 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb_promql.md new file mode 100644 index 00000000000..5cb8d241015 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/influxdb_promql.md @@ -0,0 +1,61 @@ +--- +id: influxdb_promql +title: 监控:InfluxDB-PromQL +sidebar_label: InfluxDB-PromQL +keywords: [ 开源监控系统, InfluxDB监控,InfluxDB-PromQL监控 ] +--- + +> 使用 Prometheus PromQL 从 Prometheus 服务器中查询到 InfluxDB 的通用指标数据来进行监控。此方案适用于 Prometheus 已监控 InfluxDB,需要从 Prometheus 服务器抓取 InfluxDB 的监控数据。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Prometheus api 端口,默认值:9090。 | +| 相对路径 | Prometheus查询PromQL的URL,默认值:/api/v1/query。 | +| 请求方式 | 设置接口调用的请求方式:GET,POST,PUT,DELETE,默认值:GET。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443。 | +| 用户名 | 接口Basic认证或Digest认证时使用的用户名。 | +| 密码 | 接口Basic认证或Digest认证时使用的密码。 | +| Content-Type | 设置携带BODY请求体数据请求时的资源类型。 | +| 请求BODY | 设置携带BODY请求体数据,PUT POST请求方式时有效。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:basic_influxdb_memstats_alloc + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|---------| +| instance | 无 | 指标所属实例 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | + +#### 指标集合: influxdb_database_numMeasurements + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|---------| +| job | 无 | 指标名称 | +| instance | 无 | 指标所属实例 | +| database | 无 | 数据库名称 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | + +#### 指标集合: influxdb_query_rate_seconds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|---------| +| instance | 无 | 指标所属实例 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | + +#### 指标集合: influxdb_queryExecutor_queriesFinished_10s + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|---------| +| instance | 无 | 指标所属实例 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iotdb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iotdb.md new file mode 100644 index 00000000000..a46b3378fdc --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/iotdb.md @@ -0,0 +1,120 @@ +--- +id: iotdb +title: 监控 Apache IoTDB 物联网时序数据库 +sidebar_label: IoTDB数据库 +keywords: [开源监控系统, 开源数据库监控, IoTDB数据库监控] +--- + +> 对 Apache IoTDB 物联网时序数据库的运行状态(JVM相关),内存任务集群等相关指标进行监测。 + +## 监控前操作 + +您需要在 IoTDB 开启`metrics`功能,他将提供 prometheus metrics 形式的接口数据。 + +开启`metrics`功能, 参考 [官方文档](https://iotdb.apache.org/zh/UserGuide/V0.13.x/Maintenance-Tools/Metric-Tool.html) + +主要如下步骤: + +1. metric 采集默认是关闭的,需要先到 `conf/iotdb-metric.yml` 中修改参数打开后重启 server + + ```text + # 是否启动监控模块,默认为false + enableMetric: true + + # 是否启用操作延迟统计 + enablePerformanceStat: false + + # 数据提供方式,对外部通过jmx和prometheus协议提供metrics的数据, 可选参数:[JMX, PROMETHEUS, IOTDB],IOTDB是默认关闭的。 + metricReporterList: + - JMX + - PROMETHEUS + + # 底层使用的metric架构,可选参数:[MICROMETER, DROPWIZARD] + monitorType: MICROMETER + + # 初始化metric的级别,可选参数: [CORE, IMPORTANT, NORMAL, ALL] + metricLevel: IMPORTANT + + # 预定义的指标集, 可选参数: [JVM, LOGBACK, FILE, PROCESS, SYSTEM] + predefinedMetrics: + - JVM + - FILE + ``` + +2. 重启 IoTDB, 打开浏览器或者用curl 访问 [http://ip:9091/metrics](http://ip:9091/metrics), 就能看到metric数据了。 + +3. 在 HertzBeat 添加对应 IoTDB 监控即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | IoTDB指标接口对外提供的端口,默认为9091。 | +| 超时时间 | HTTP请求查询超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:cluster_node_status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|-------------------------| +| name | 无 | 节点名称IP | +| status | 无 | 节点状态,1=online 2=offline | + +#### 指标集合:jvm_memory_committed_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| area | 无 | heap内存或nonheap内存 | +| id | 无 | 内存区块 | +| value | MB | 当前向JVM申请的内存大小 | + +#### 指标集合:jvm_memory_used_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| area | 无 | heap内存或nonheap内存 | +| id | 无 | 内存区块 | +| value | MB | JVM已使用内存大小 | + +#### 指标集合:jvm_threads_states_threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------| +| state | 无 | 线程状态 | +| count | 无 | 线程状态对应线程数量 | + +#### 指标集合:quantity 业务数据 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--|------|----------------| +| name | 无 | 业务名称 timeSeries/storageGroup/device/deviceUsingTemplate | +| type | 无 | 类型 total/normal/template/template | +| value | 无 | 当前时间timeSeries/storageGroup/device/激活了模板的device的数量 | + +#### 指标集合:cache_hit 缓存 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------------------------------| +| name | 无 | 缓存名称 chunk/timeSeriesMeta/bloomFilter | +| value | % | chunk/timeSeriesMeta缓存命中率,bloomFilter拦截率 | + +#### 指标集合:queue 任务队列 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|----------------------------------------------| +| name | 无 | 队列名称 compaction_inner/compaction_cross/flush | +| status | 无 | 状态 running/waiting | +| value | 无 | 当前时间任务数 | + +#### 指标集合:thrift_connections + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|-------------| +| name | 无 | 名称 | +| connection | 无 | thrift当前连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ipmi.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ipmi.md new file mode 100644 index 00000000000..d0b4eae6028 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ipmi.md @@ -0,0 +1,53 @@ +--- +id: ipmi +title: IPMI2 监控 +sidebar_label: Server 监控 +keywords: [开源监控工具, 开源服务器监控, IPMI 监控] +--- + +> 使用 IPMI2 协议收集并监控服务器的一般性能指标。 + +**协议: IPMI** + +## 监控前操作 + +1. 目标服务器支持 **IPMI2 协议**。 +2. **BMC**(主板管理控制器)已配置了网络接口,允许访问 **IPMI 端口**。 +3. **用户账户**已配置,并为账户分配了适当的**权限**。 + +这些是基本检查项,关于启用和配置 IPMI over LAN 的详细信息,可以参考服务器制造商的具体使用手册。 + +## 配置参数 + +| 参数名称 | 参数描述 | +| -------------- | ------------------------------------------------------------------------------------------------- | +| 目标主机 | 被监控服务器的 IPv4、IPv6 地址或域名。注意:无需添加协议头(例如,https://, http://)。 | +| 端口 | 服务器 IPMI over LAN 的端口号,默认为 623。 | +| 用户名 | IPMI 用户名 | +| 密码 | IPMI 密码 | + +### 采集指标 + +#### 指标集合:Chassis + +| 指标名称 | 单位 | 指标描述 | +| ------------------ | ---- | ------------------------------------------------------------------------ | +| System Power | 无 | 当前电源状态,电源开启。 | +| Power Overload | 无 | 电源过载。系统因电源过载状况而关闭。 | +| Power Interlock | 无 | 电源联锁。 | +| Main Power Fault | 无 | 电源故障。在主电源子系统中检测到故障。 | +| Power Control Fault | 无 | 电源控制故障。控制器试图打开或关闭系统电源,但系统未进入所需状态。 | +| Power Restore Policy | 无 | 电源恢复策略。 | +| Last Power Event | 无 | 最后电源事件。 | +| Cooling/Fan Fault | 无 | 检测到冷却/风扇故障。 | +| Drive Fault | 无 | 硬盘故障。 | +| Front-Panel Lockout | 无 | 前面板锁定已激活(通过机箱按钮禁用电源关闭和重置功能)。 | + +#### 指标集合:Sensor + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | -------------------------------------------- | +| Sensor ID | 无 | 传感器标识。 | +| Entity ID | 无 | 指示传感器正在监控或与传感器关联的物理实体。 | +| Sensor Type | 无 | 传感器类型。 | +| Sensor Reading | 无 | 传感器当前读数。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/issue.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/issue.md new file mode 100644 index 00000000000..792264ed0f6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/issue.md @@ -0,0 +1,74 @@ +--- +id: issue +title: 常见问题 +sidebar_label: 常见问题 +--- + +### 监控常见问题 + +1. **页面反馈:monitor.host:监控Host必须是ipv4,ipv6或域名** + + > 如信息所示,输入的监控Host须是ipv4,ipv6或域名,不能携带协议头,例如协议头http + +2. **网站API等监控反馈statusCode:403或401,但对端服务本身无需认证,浏览器直接访问是OK** + + > 请排查是否是被防火墙拦截,如宝塔等默认设置了对请求header中`User-Agent=Apache-HttpClient`的拦截,若被拦截请删除此拦截规则。(v1.0.beat5版本已将user-agent模拟成浏览器此问题不存在) + +3. 安装包部署的hertzbeat下ping连通性监控异常 + 安装包安装部署的hertzbeat,对ping连通性监控不可用,但本地直接ping是可用的。 + + > 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 + > docker安装默认启用无此问题 + > 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) + +4. 配置了k8s监控,但是实际监控时间并未按照正确间隔时间执行 + 请参考下面几点排查问题: + + > 一:首先查看hertzbeat的错误日志,如果出现了'desc: SQL statement too long, check maxSQLLength config',信息 + > 二:需要调整tdengine配置文件,可在服务器创建taos.cfg文件,调整# max length of an SQL : maxSQLLength 654800,然后重启tdengine,需要加入配置文件的挂载 + > 三:如果遇到了重启tdengine失败,需要调整挂载数据文件中的配置,见 .../taosdata/dnode/dnodeEps.json,中dnodeFqdn调整为启动失败的dockerId即可,然后docker restart tdengine + +5. 配置http api监控,用于进行业务接口探测,确保业务可以用,另外接口有进行token鉴权校验,"Authorization:Bearer eyJhbGciOiJIUzI1....",配置后测试,提示“StatusCode 401”。服务端应用收到的token为"Authorization:Bearer%20eyJhbGciOiJIUzI1....",hertzbeat对空格进行转义为“%20”,服务器没有转义导致鉴权失败,建议转义功能作为可选项。 + +6. 单个采集器的任务上限是多少? + + > 具体上限参数 + 核心线程数: Math.max(2, Runtime.getRuntime().availableProcessors()) - 至少2个线程,或等于CPU核心数。 + 最大线程数: Runtime.getRuntime().availableProcessors() * 16 - CPU核心数的16倍。 + > 上限完全取决于服务器的CPU核心数。例如,在8核CPU的服务器上,最大可同时处理 8 × 16 = 128 个采集任务。当超过这个数量时就会触发该错误消息。这是一个动态配置,会根据运行环境的硬件规格自动调整。 + > 当运行时超出最大线程数会报错提示"the worker pool is full, reject this metrics task,put in queue again"。 + > 此时建议配置新的采集器,并设置为public模式,hertzbeat会自动将任务分配给其他采集器,不会因为单个采集器任务上限而报错。 + +### Docker部署常见问题 + +1. **MYSQL,TDENGINE和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败** + 此问题本质为Docker容器访问宿主机端口连接失败,由于docker默认网络模式为Bridge模式,其通过localhost访问不到宿主机。 + + > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP + > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` + +2. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** + 请参考下面几点排查问题: + + > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 + > 二:HertzBeat的配置文件 `application.yml` 里面的依赖服务IP账户密码等配置是否正确 + > 三:若都无问题可以 `docker logs hertzbeat` 查看容器日志是否有明显错误,提issue或交流群或社区反馈 + +3. **日志报错TDengine连接或插入SQL失败** + + > 一:排查配置的数据库账户密码是否正确,数据库是否创建 + > 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +### 安装包部署常见问题 + +1. **按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面** + 请参考下面几点排查问题: + + > 一:依赖服务MYSQL数据库,TDENGINE数据库是否已按照启动成功,对应hertzbeat数据库是否已创建,SQL脚本是否执行 + > 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 + > 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 + +2. **日志报错TDengine连接或插入SQL失败** + + > 一:排查配置的数据库账户密码是否正确,数据库是否创建 + > 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jenkins.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jenkins.md new file mode 100644 index 00000000000..28bad6d5dbb --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jenkins.md @@ -0,0 +1,78 @@ +--- +id: jenkins +title: 监控:Jenkins +sidebar_label: Jenkins +keywords: [ 开源监控系统, CI/CD, DevOps, Jenkins监控 ] +--- + +> 通过调用 Jenkins Prometheus Plugin 对 Jenkins 的通用指标进行采集监控。 + +### 前置条件 + +1. 按照[部署文档](https://www.jenkins.io/doc/book/installing/)搭建好Jenkins相关服务。 +2. 需要安装[插件](https://www.jenkins.io/doc/book/managing/plugins/) + 已用来访问暴露的指标信息,可参考[prometheus-plugin](https://plugins.jenkins.io/prometheus/)。 +3. 对外暴露指标的地址是```/prometheus```,查看是否能访问到metrics数据。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | Jenkins Prot值,默认为8080。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:系统信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|------|----------------| +| default_jenkins_uptime | 毫秒 | Jenkins 运行时间 | +| default_jenkins_up | 无 | Jenkins 是否存活 | +| default_jenkins_version_info | 无 | Jenkins 版本信息 | +| jenkins_health_check_score | 无 | Jenkins 健康检查分值 | + +#### 指标集合:jvm + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------|------|---------------| +| vm_uptime_milliseconds | 毫秒 | JVM 运行时间 | +| system_cpu_load | 无 | 系统负载 | +| vm_count | 无 | JVM 线程总数 | +| vm_memory_heap_max | MB | JVM可使用的最大内存限制 | +| vm_memory_heap_used | MB | JVM 当前使用的内存大小 | + +#### 指标集合:基础信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------------------|------|-------------| +| jenkins_project_count_value | 无 | 项目数量 | +| jenkins_project_enabled_count_value | 无 | 已启用的项目数量 | +| jenkins_queue_size_value | 无 | 构建队列中的任务数量 | +| jenkins_node_online_value | 无 | 当前在线的构建节点数量 | + +#### 指标集合:执行器信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------------|------|------------| +| default_jenkins_executors_available | 无 | 可用的执行器数量 | +| default_jenkins_executors_busy | 无 | 忙碌的执行器数量 | +| default_jenkins_executors_connecting | 无 | 正在连接的执行器数量 | + +#### 指标集合:任务信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------------------------------------|-----------------------------|-----------------| +| jenkins_job_count_value | 无 | 作业数量 | +| default_jenkins_builds_duration_milliseconds_summary_sum | 毫秒 | 任务构建时长汇总 | +| default_jenkins_builds_last_build_duration_milliseconds | 毫秒 | 最近一次构建的构建时间 | +| default_jenkins_builds_success_build_count_total | 无 | 构建成功次数 | +| default_jenkins_builds_failed_build_count_total | 无 | 构建失败次数 | +| default_jenkins_builds_unstable_build_count_total | 无 | 不稳定构建次数 | +| default_jenkins_builds_total_build_count_total | 无 | 总构建次数(不包括未构建状态) | +| default_jenkins_builds_last_build_result_ordinal | 0=成功,1=不稳定,2=失败,3=未构建,4=已中止 | 任务构建状态(最近一次构建) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/jetty.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jetty.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/jetty.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jetty.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jvm.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jvm.md new file mode 100644 index 00000000000..485363e34e7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/jvm.md @@ -0,0 +1,80 @@ +--- +id: jvm +title: 监控:JVM虚拟机监控 +sidebar_label: JVM虚拟机 +keywords: [开源监控系统, 开源JAVA监控, JVM虚拟机监控] +--- + +> 对JVM虚拟机的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 JVM 应用开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 JVM 进行指标采集。 + +#### JVM应用开启JMX协议步骤 + +应用启动时添加JVM参数 ⚠️注意可自定义暴露端口,对外IP + +参考文档: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) + +```shell +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置JVM连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache (限JDK8及以下) + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------| +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka.md new file mode 100644 index 00000000000..2ca41b621c9 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka.md @@ -0,0 +1,95 @@ +--- +id: kafka +title: 监控:Kafka监控 +sidebar_label: Apache Kafka 监控 +keywords: [开源监控系统, 开源消息中间件监控, Kafka监控] +--- + +> 对Kafka的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 监控前操作 + +> 您需要在 Kafka 开启 `JMX` 服务,HertzBeat 使用 JMX 协议对 Kafka 进行指标采集。 + +1. 安装部署 Kafka 服务 + +2. 修改 Kafka 启动脚本 + + 修改 Kafka 安装目录下的启动脚本 `/bin/kafka-server-start.sh` + 在脚本正文(即非注释行)的第一行前添加如下内容, ⚠️注意替换您自己的端口和对外 IP 地址 + + ```shell + export JMX_PORT=9999; + export KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=ip地址 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"; + + # 这是最后一行本来就存在的 + # exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@" + ``` + +3. 重启 Kafka 服务 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置Kafka连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server_info + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|---------| +| Version | 无 | Kafka版本 | +| StartTimeMs | ms | 运行时间 | +| CommitId | 无 | 版本提交ID | + +#### 指标集合:code_cache + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:active_controller_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------| +| Value | 个 | 活跃监控器数量 | + +#### 指标集合:broker_partition_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| Value | 个 | 分区数量 | + +#### 指标集合:broker_leader_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| Value | 个 | 领导者数量 | + +#### 指标集合:broker_handler_avg_percent 请求处理器空闲率 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|----------|---------| +| EventType | 无 | 类型 | +| RateUnit | 具体情况具体分析 | 单位 | +| Count | 个 | 数量 | +| OneMinuteRate | % | 一分钟处理率 | +| FiveMinuteRate | % | 五分钟处理率 | +| MeanRate | 无 | 平均处理率 | +| FifteenMinuteRate | 无 | 十五分钟处理率 | + +> 其他指标见文知意,欢迎贡献一起优化文档。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_client.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_client.md new file mode 100644 index 00000000000..f883044734b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_client.md @@ -0,0 +1,57 @@ +--- +id: kafka_client +title: 监控:Kafka监控(基于客户端) +sidebar_label: Apache Kafka 监控(基于客户端) +keywords: [开源监控系统, 开源消息中间件监控, Kafka监控] +--- + +> 对Kafka的通用指标进行采集监控 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 监控Port | 被监控的服务端口。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:topic_list + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|---------| +| TopicName | 无 | 主题名称 | + +#### 指标集合:topic_detail + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| TopicName | 无 | 主题名称 | +| PartitionNum | 无 | 分区数量 | +| PartitionLeader | 无 | 分区领导者 | +| BrokerHost | 无 | Broker主机 | +| BrokerPort | 无 | Broker端口 | +| ReplicationFactorSize | 无 | 复制因子大小 | +| ReplicationFactor | 无 | 复制因子 | + +#### 指标集合:topic_offset + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|---|--------| +| TopicName | 无 | 主题名称 | +| PartitionNum | 无 | 分区号 | +| earliest | 无 | 最早偏移量 | +| latest | 无 | 最新偏移量 | + +#### 指标集合:consumer_detail + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|-------| +| GroupId | 无 | 消费者组ID | +| Group Member Num | 无 | 消费者实例数量| +| Subscribed Topic Name | 无 | 订阅主题名称 | +| Offsets of Each Partition | 无 | 各分区偏移量 | +| Lag | 无 | 落后偏移量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_promql.md new file mode 100644 index 00000000000..df3a8c191d2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kafka_promql.md @@ -0,0 +1,56 @@ +--- +id: kafka_promql +title: 监控:Kafka-PromQL +sidebar_label: Kafka-PromQL +keywords: [ 开源监控系统,开源中间件监控, Kafka监控,Kafka-PromQL监控 ] +--- + +> 使用 Prometheus PromQL 从 Prometheus 服务器中查询到 Kafka 的通用指标数据来进行监控。此方案适用于 Prometheus 已监控 Kafka,需要从 Prometheus 服务器抓取 Kafka 的监控数据。 + +### 前置条件 + +1. 部署 kafka; +2. 部署 kafka_exporter; +3. 通过 prometheus 采集 kafka_exporter暴露的监控指标; + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Prometheus api 端口,默认值:9090。 | +| 相对路径 | Prometheus查询PromQL的URL,默认值:/api/v1/query。 | +| 请求方式 | 设置接口调用的请求方式:GET,POST,PUT,DELETE,默认值:GET。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443。 | +| 用户名 | 接口Basic认证或Digest认证时使用的用户名。 | +| 密码 | 接口Basic认证或Digest认证时使用的密码。 | +| Content-Type | 设置携带BODY请求体数据请求时的资源类型。 | +| 请求BODY | 设置携带BODY请求体数据,PUT POST请求方式时有效。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:kafka_brokers + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| __name__ | 无 | 指标名称 | +| instance | 无 | 指标所属实例 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | + +#### 指标集合: kafka_topic_partitions + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| __name__ | 无 | 指标名称 | +| instance | 无 | 指标所属实例 | +| timestamp | 无 | 采集指标时间戳 | +| value | 无 | 指标值 | + +### HertzBeat支持的其他Kafka监控方式 + +1. kafka启用了JMX监控,可以使用 [Kafka](kafka) 监控; +2. kafka集群部署kafka_exporter暴露的监控指标,可以参考 [Prometheus任务](prometheus) 配置Prometheus采集任务监控kafka。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kingbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kingbase.md new file mode 100644 index 00000000000..febaa81db55 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kingbase.md @@ -0,0 +1,55 @@ +--- +id: kingbase +title: 监控:Kingbase数据库监控 +sidebar_label: Kingbase数据库 +keywords: [开源监控系统, 开源数据库监控, Kingbase数据库监控] +--- + +> 对Kingbase数据库的通用性能指标进行采集监控。支持Kingbase V8R6+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------------| +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|------------------------------------------------------------------------| +| name | 无 | 数据库名称,或share-object为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 Kingbase 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| running | 连接数 | 当前客户端连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kubernetes.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kubernetes.md new file mode 100644 index 00000000000..58ed7e3fcf3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/kubernetes.md @@ -0,0 +1,98 @@ +--- +id: kubernetes +title: 监控:Kubernetes 监控 +sidebar_label: Kubernetes 监控 +keywords: [开源监控系统, 开源Kubernetes监控] +--- + +> 对kubernetes的通用性能指标进行采集监控。 + +## 监控前操作 + +如果想要监控 `Kubernetes` 中的信息,则需要获取到可访问Api Server的授权TOKEN,让采集请求获取到对应的信息。 + +参考获取token步骤 + +### 方式一 + +1. 创建service account并绑定默认cluster-admin管理员集群角色 + + ```kubectl create serviceaccount dashboard-admin -n kube-system``` + +2. 用户授权 + + ```shell + kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin + kubectl -n kube-system get secret | grep dashboard-admin | awk '{print $1}' + kubectl describe secret {secret} -n kube-system + ``` + +### 方式二 + +```shell +kubectl create serviceaccount cluster-admin + +kubectl create clusterrolebinding cluster-admin-manual --clusterrole=cluster-admin --serviceaccount=default:cluster-admin + +kubectl create token --duration=1000h cluster-admin + +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| APiServer端口 | K8s APiServer端口,默认6443 | +| token | 授权Access Token | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:nodes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------| +| node_name | 无 | 节点名称 | +| is_ready | 无 | 节点状态 | +| capacity_cpu | 无 | CPU容量 | +| allocatable_cpu | 无 | 已分配CPU | +| capacity_memory | 无 | 内存容量 | +| allocatable_memory | 无 | 已分配内存 | +| creation_time | 无 | 节点创建时间 | + +#### 指标集合:namespaces + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-------------| +| namespace | 无 | namespace名称 | +| status | 无 | 状态 | +| creation_time | 无 | 创建时间 | + +#### 指标集合:pods + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|----------------| +| pod | 无 | pod名称 | +| namespace | 无 | pod所属namespace | +| status | 无 | pod状态 | +| restart | 无 | 重启次数 | +| host_ip | 无 | 所在主机IP | +| pod_ip | 无 | pod ip | +| creation_time | 无 | pod创建时间 | +| start_time | 无 | pod启动时间 | + +#### 指标集合:services + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|--------------------------------------------------------| +| service | 无 | service名称 | +| namespace | 无 | service所属namespace | +| type | 无 | service类型 ClusterIP NodePort LoadBalancer ExternalName | +| cluster_ip | 无 | cluster ip | +| selector | 无 | tag selector匹配 | +| creation_time | 无 | 创建时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux.md new file mode 100644 index 00000000000..5fdf0bf97bf --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux.md @@ -0,0 +1,114 @@ +--- +id: linux +title: 监控:Linux操作系统监控 +sidebar_label: Linux 操作系统 +keywords: [开源监控系统, 开源操作系统监控, Linux操作系统监控] +--- + +> 对Linux操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux_script.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux_script.md new file mode 100644 index 00000000000..ca224edb372 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/linux_script.md @@ -0,0 +1,101 @@ +--- +id: linux_script +title: 监控:使用脚本监控 Linux 操作系统 +sidebar_label: 使用脚本监控 Linux 操作系统 +keywords: [开源监控系统, 开源网络监控, 使用脚本监控 Linux 操作系统] +--- + +### 准备工作 + +> 若要监控本机,部署 Hertzbeat 即可,若要监控其他主机,需在目标主机上部署采集器,部署采集器可参考[此链接](https://github.com/apache/hertzbeat?tab=readme-ov-file#2install-via-package)的第 5 步。 +> 如果使用 Docker 安装采集器,则会导致采集器监控不到宿主机上的进程信息,因为 Docker 容器在一个独立的环境中运行,每个容器都有自己的进程空间。 +> 在创建监控任务选择采集器时,需选择目标主机上对应的采集器。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|:-------|---------------------------------|---| +| 监控 Host | 被监控的对端 IPV4,IPV6 或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 系统启动时间 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|-----------------------| +| info | 无 | CPU 型号 | +| cores | 核数 | CPU 内核数量 | +| interrupt | 个数 | CPU 中断数量 | +| load | 无 | CPU 最近 1/5/15 分钟的平均负载 | +| context_switch | 个数 | 当前上下文切换数量 | +| usage | % | CPU 使用率 | + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:disk + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 块数 | 磁盘总数 | +| partition_num | 分区数 | 分区总数 | +| block_write | 块数 | 写入磁盘的总块数 | +| block_read | 块数 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:interface + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | byte | 入站数据流量(bytes) | +| transmit_bytes | byte | 出站数据流量(bytes) | + +#### 指标集合:disk_free + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:CPU 占用率前10的程序 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|---------| +| id | 无 | 进程 id | +| cpu | % | cpu 占用率 | +| ws | % | 内存占用率 | +| command | 无 | 执行的命令 | + +#### 指标集合:内存占用率前10的程序 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|---------| +| id | 无 | 进程 id | +| cpu | % | cpu 占用率 | +| ws | % | 内存占用率 | +| command | 无 | 执行的命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_integration.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_integration.md new file mode 100644 index 00000000000..8428b035838 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_integration.md @@ -0,0 +1,185 @@ +--- +id: log_integration +title: 日志集成 (Beta) +sidebar_label: 日志集成 (Beta) +keywords: [开源监控, 日志集成, 日志管理, 多源日志] +--- + +> HertzBeat 的日志集成模块旨在实现对来自不同第三方日志系统和可观测性平台的日志数据进行统一接收、标准化处理。作为一个集中式"日志中心",HertzBeat 能够高效地接入外部系统的日志信息,并提供实时日志监控与分析能力。 + +:::warning +日志集成功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + +### 核心能力 + +- **多源日志接入**:支持从 OpenTelemetry、Filebeat、Vector、Loki 等主流平台接收日志数据 +- **日志格式标准化**:将来自不同平台的日志数据转换为 HertzBeat 内部统一格式,便于后续处理和分析 +- **实时日志处理**:提供实时日志流处理能力,支持日志数据的即时存储和分发 +- **智能日志分析**:提供日志搜索、过滤等分析功能 + +### 已支持的日志来源 + +HertzBeat 当前已支持以下协议进行日志数据接入: + +- **OTLP**:支持标准的 OpenTelemetry 日志协议 (OTLP) HTTP/JSON 格式,可直接接收来自 OpenTelemetry Collector 和各种支持 OTLP 的应用程序的日志数据。 +- **更多协议支持**:HertzBeat 正在积极扩展其日志集成支持,包括 Filebeat、Vector、Loki 等。如果暂时没有找到你需要的集成,活跃的社区也可以协助你添加。 + +你可以通过 HertzBeat 的"日志集成"界面查看具体的接入方式和配置示例。 + +![log_integration](/img/docs/help/log_integration_cn.png) + +## OpenTelemetry OTLP 协议接入 + +### 接口端点 + +HertzBeat 提供以下接口用于接收 OTLP 日志数据: + +**指定协议接口**: + +```text +POST /api/logs/ingest/otlp +``` + +**默认接口**(自动使用OTLP协议): + +```text +POST /api/logs/ingest +``` + +### 请求配置 + +#### 请求头 + +- `Content-Type`: `application/json` +- `Authorization`: `Bearer {token}` + +#### 请求体格式 + +支持标准的 OTLP JSON 格式日志数据: + +```json +{ + "resourceLogs": [ + { + "resource": { + "attributes": [ + { + "key": "service.name", + "value": { + "stringValue": "my-service" + } + }, + { + "key": "service.version", + "value": { + "stringValue": "1.0.0" + } + } + ] + }, + "scopeLogs": [ + { + "scope": { + "name": "my-logger", + "version": "1.0.0" + }, + "logRecords": [ + { + "timeUnixNano": "1640995200000000000", + "severityNumber": 9, + "severityText": "INFO", + "body": { + "stringValue": "This is a log message" + }, + "attributes": [ + { + "key": "user.id", + "value": { + "stringValue": "12345" + } + } + ], + "traceId": "12345678901234567890123456789012", + "spanId": "1234567890123456" + } + ] + } + ] + } + ] +} +``` + +### 配置示例 + +#### OpenTelemetry Collector 配置 + +在 OpenTelemetry Collector 的配置文件中添加 HertzBeat 作为日志导出目标: + +```yaml +exporters: + otlphttp: + logs_endpoint: http://{hertzbeat_host}:1157/api/logs/ingest/otlp + compression: none + encoding: json + headers: + Authorization: "Bearer {token}" + +service: + pipelines: + logs: + receivers: [otlp] + processors: [batch] + exporters: [otlphttp] +``` + +### 日志数据格式说明 + +#### 核心字段 + +- **timeUnixNano**: 日志时间戳(纳秒精度) +- **severityNumber**: 日志级别数值(1-24,对应 TRACE 到 FATAL) +- **severityText**: 日志级别文本(如 "INFO", "ERROR" 等) +- **body**: 日志消息内容 +- **attributes**: 日志属性键值对 +- **traceId**: 链路追踪 ID(可选) +- **spanId**: 跨度 ID(可选) + +#### 资源属性 + +通过 `resource.attributes` 可以设置应用程序和环境信息: + +- `service.name`: 服务名称 +- `service.version`: 服务版本 +- `deployment.environment`: 部署环境(dev/test/prod) +- `host.name`: 主机名 + +### 配置验证 + +1. **配置日志发送端**:在外部系统中配置发送 OTLP 日志到 HertzBeat 指定接口 +2. **查看接收日志**:在 HertzBeat 实时日志模块中查看接收到的日志数据 +3. **验证数据完整性**:验证日志数据格式、时间戳、属性等信息是否正确 + +![log_stream](/img/docs/help/log_stream_cn.png) + +### 常见问题 + +#### 日志发送失败 + +- **网络连接问题**:确保HertzBeat服务地址可以被外部系统访问 +- **请求头错误**:验证请求头 Content-Type 设置为 `application/json` + +#### 日志格式错误 + +- **OTLP格式**:确保发送的是标准OTLP JSON格式 +- **时间戳格式**:检查时间戳格式是否为纳秒精度的Unix时间戳 +- **日志级别**:验证 severityNumber 值范围(1-24) +- **数据类型**:确保各字段的数据类型符合OTLP规范 + +### 相关资源 + +- [OpenTelemetry 日志规范](https://opentelemetry.io/docs/specs/otel/logs/) +- [OpenTelemetry Collector 配置指南](https://opentelemetry.io/docs/collector/configuration/) + +如需了解更多日志集成方式或遇到技术问题,欢迎通过 [GitHub Issues](https://github.com/apache/hertzbeat/issues) 与社区交流。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_manage.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_manage.md new file mode 100644 index 00000000000..e5c78a3d994 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_manage.md @@ -0,0 +1,117 @@ +--- +id: log_manage +title: 日志管理 (Beta) +sidebar_label: 日志管理 (Beta) +keywords: [开源监控, 日志管理, 日志查询, 日志统计, 日志删除] +--- + +> HertzBeat 的日志管理功能提供了完整的日志数据管理能力,包括日志查询、统计分析、批量删除等操作。用户可以通过多种过滤条件精确查找日志,查看详细的统计图表,并对不需要的日志数据进行清理。 + +:::warning +日志管理功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + +## 前置要求 + +**在使用日志管理功能之前,必须先配置支持日志存储的数据库。** + +## 功能概览 + +在 HertzBeat 界面中,进入"日志" -> "日志管理"页面,你将看到一个功能完整的日志管理界面。 + +![log_manage](/img/docs/help/log_manage_cn.png) + +## 日志查询功能 + +### 过滤条件 + +日志管理支持以下过滤条件进行精确查询: + +| 过滤条件 | 字段名称 | 数据类型 | 用途说明 | 示例值 | 使用场景 | +|---------|---------|---------|---------|--------|---------| +| **时间范围** | `timestamp` | 日期时间 | 指定查询的时间窗口 | `2024-01-01 00:00:00` 至 `2024-01-02 00:00:00` | 问题时段定位、性能分析 | +| **跟踪ID** | `traceId` | 字符串 | 分布式系统请求链路跟踪 | `1234567890abcdef` | 链路追踪、请求流程分析 | +| **跨度ID** | `spanId` | 字符串 | 跟踪中特定操作标识 | `abcdef1234567890` | 微服务调用分析 | +| **日志级别编号** | `severityNumber` | 数字 | OpenTelemetry 标准级别 | `1-24` | 按数字级别过滤 | +| **日志级别文本** | `severityText` | 字符串 | 人类可读的日志级别 | `ERROR`、`WARN`、`INFO` | 按级别快速筛选 | + +### 可视化分析图表 + +可视化分析图表包括基础统计指标图与聚合统计图,点击显示统计按钮可展开查看。 + +![log_manage_chart](/img/docs/help/log_manage_chart_cn.png) + +#### 基础统计指标 + +| 统计指标 | 含义说明 | 应用价值 | 异常阈值参考 | +|---------|---------|---------|-------------| +| **总日志数** | 符合查询条件的日志总量 | 评估系统活跃度和数据规模 | 突然增减超过50%需关注 | +| **FATAL 日志数** | 致命错误级别日志统计 | 识别系统严重故障 | 任何FATAL日志都需立即处理 | +| **ERROR 日志数** | 错误级别日志统计 | 监控系统异常情况 | 超过总日志5%需要关注 | +| **WARN 日志数** | 警告级别日志统计 | 发现潜在问题和性能瓶颈 | 持续增长趋势需要分析 | +| **INFO 日志数** | 信息级别日志统计 | 了解系统正常运行状态 | 占比应为日志主体 | +| **DEBUG 日志数** | 调试级别日志统计 | 开发调试和问题排查 | 生产环境应控制数量 | + +#### 聚合统计图 + +| 图表名称 | 图表类型 | 展示内容 | 主要用途 | 包含指标/级别 | +|---------|---------|---------|---------|-------------| +| **日志级别分布图** | 饼图 | 不同日志级别的数量分布 | 快速了解日志日志级别分布情况 | FATAL、ERROR、WARN、INFO、DEBUG | +| **跟踪覆盖率图** | 饼图 | 带有跟踪信息的日志比例 | 分析系统跟踪覆盖情况 | 带 Trace ID 的日志数量
带 Span ID 的日志数量
同时带 Trace 和 Span 的日志数量
无跟踪信息的日志数量 | +| **日志趋势图** | 时间线图 | 按小时统计的日志数量变化趋势 | 分析日志产生的时间模式和异常峰值 | 时间粒度:小时级别统计
分析维度:时间模式识别、异常峰值检测 | + +### 列显示配置 + +点击"列设置"按钮可以自定义表格显示的列: + +- **时间**:日志生成时间戳 +- **观察时间**:日志被观察到的时间 +- **日志级别**:日志级别标签 +- **日志内容**:主要消息内容 +- **属性**:日志附加属性信息 +- **资源**:资源相关信息 +- **Trace ID**:分布式跟踪标识 +- **Span ID**:操作跨度标识 +- **Trace 标记**:跟踪标记信息 +- **instrumentation scope 信息**:instrumentation scope 信息 +- **丢弃计数**:丢弃的属性数量 + +## 日志详情查看 + +点击表格中的任意日志条目可打开详情弹窗: + +![log_manage](/img/docs/help/log_manage_log_details_cn.png) + +### 基本信息区域 + +- **日志级别**:显示级别标签和颜色标识 +- **时间戳**:格式化显示的详细时间 +- **跟踪ID**:完整的分布式跟踪标识符 +- **跨度ID**:完整的操作跨度标识符 + +### 完整JSON数据 + +- **原始数据**:显示日志条目的完整 JSON 格式 +- **复制功能**:支持一键复制到剪贴板 +- **格式化显示**:JSON 数据进行了格式化处理便于阅读 + +## 批量删除功能 + +1. **选择日志**:通过表格左侧的复选框选择需要删除的日志 +2. **全选功能**:使用表头的复选框可以全选当前页面的日志 +3. **批量删除**:点击"批量删除"按钮删除选中的日志 +4. **删除计数**:按钮上显示当前选中的日志数量 + +## 故障排除 + +### 无法查看日志 + +**症状**:页面显示"无数据"或加载失败 +**解决方案**: + +1. 检查是否已正确配置时序数据库 +2. 确认数据库服务正常运行 +3. 验证数据库连接配置是否正确 +4. 检查是否有日志数据写入数据库 + +如需了解更多日志管理功能或遇到技术问题,欢迎通过 [GitHub Issues](https://github.com/apache/hertzbeat/issues) 与社区交流。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_stream.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_stream.md new file mode 100644 index 00000000000..6dfbc2e75dc --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/log_stream.md @@ -0,0 +1,91 @@ +--- +id: log_stream +title: 日志流 (Beta) +sidebar_label: 日志流 (Beta) +keywords: [开源监控, 日志流, 实时日志, 日志过滤] +--- + +> HertzBeat 的日志流功能提供了实时查看和过滤日志数据的能力,包括实时日志监控、多维度过滤、日志详情查看等操作。用户可以实时监控系统日志,并根据不同条件进行精确过滤,快速定位问题和分析系统状态。 + +:::warning +日志流功能目前处于 Beta(实验性)阶段,可能存在潜在缺陷和局限性。该功能正在积极开发和迭代中。 +::: + +## 功能概览 + +在 HertzBeat 界面中,进入"日志" -> "日志流"页面,你将看到一个功能完整的实时日志监控界面。 + +![log_stream](/img/docs/help/log_stream_cn.png) + +## 实时日志查看 + +### 日志显示 + +- **实时更新**:新日志会自动显示在列表顶部,带有高亮动画效果 +- **日志计数**:界面显示当前加载的日志条数(最多保留1000条) +- **级别标识**:根据 OpenTelemetry 规范,不同日志级别用不同颜色标识: + - 灰色:TRACE(1-4) + - 蓝色:DEBUG(5-8) + - 绿色:INFO(9-12) + - 橙色:WARN(13-16) + - 红色:ERROR(17-20) + - 火山红:FATAL(21-24) + +### 显示控制 + +- **暂停/恢复**:点击暂停按钮可暂停新日志的显示,再次点击恢复 +- **清除日志**:清空当前显示的所有日志条目 +- **滚动到顶部**:快速回到最新日志的位置 +- **自动滚动**: 系统默认自动滚动到最新日志,当用户手动滚动到其他位置时,自动滚动会暂停,点击"滚动到顶部"按钮或滑动到顶部可重新启用自动滚动 + +## 日志过滤 + +点击"显示过滤器"按钮展开过滤配置区域,支持以下过滤条件: + +| 过滤条件 | 字段名称 | 数据类型 | 用途说明 | 示例值 | 使用场景 | +|---------|---------|---------|---------|--------|---------| +| **日志级别编号** | `severityNumber` | 数字 | OpenTelemetry 标准级别 | `9` | 按数字级别精确过滤 | +| **日志级别文本** | `severityText` | 字符串 | 人类可读的日志级别 | `ERROR`、`WARN`、`INFO` | 按级别快速筛选 | +| **跟踪ID** | `traceId` | 字符串 | 分布式系统请求链路跟踪 | `1234567890abcdef` | 链路追踪、请求流程分析 | +| **跨度ID** | `spanId` | 字符串 | 跟踪中特定操作标识 | `abcdef1234567890` | 微服务调用分析 | + +## 日志详情查看功能 + +点击任意日志条目可打开详情弹窗,提供完整的日志信息展示: + +![log_entry_details](/img/docs/help/log_stream_log_entry_details.png) + +### 基本信息区域 + +- **日志级别**:显示级别标签和颜色标识 +- **时间戳**:格式化显示的详细时间 +- **跟踪ID**:完整的分布式跟踪标识符 +- **跨度ID**:完整的操作跨度标识符 + +### 完整JSON数据 + +- **原始数据**:显示日志条目的完整 JSON 格式 +- **复制功能**:支持一键复制到剪贴板 +- **格式化显示**:JSON 数据进行了格式化处理便于阅读 + +## 故障排除 + +### 连接问题 + +**症状**:显示"已断开"状态 +**解决方案**: + +- 检查网络连接 +- 确认 HertzBeat 服务正常运行 +- 检查浏览器是否支持 SSE + +### 无日志显示 + +**症状**:连接正常但无日志显示 +**解决方案**: + +- 检查是否有日志数据发送到 HertzBeat +- 验证过滤器设置是否过于严格 +- 确认日志格式符合预期 + +如需了解更多日志流功能或遇到技术问题,欢迎通过 [GitHub Issues](https://github.com/apache/hertzbeat/issues) 与社区交流。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/macos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/macos.md new file mode 100644 index 00000000000..d4a0f24555a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/macos.md @@ -0,0 +1,116 @@ +--- +id: macos +title: 监控:macOS 操作系统监控 +sidebar_label: macOS 操作系统 +keywords: [开源监控系统, 开源操作系统监控, macOS 操作系统监控] +--- + +> 对 macOS 操作系统的通用性能指标进行采集监控。 + +## 监控前操作 + +请参考 [允许远程电脑访问你的 Mac](https://support.apple.com/guide/mac-help/allow-a-remote-computer-to-access-your-mac-mchlp1066/mac) 开启远程登录 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +## 采集指标 + +### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| usage | % | CPU使用率 | + +### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mariadb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mariadb.md new file mode 100644 index 00000000000..dd8b3f7d868 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mariadb.md @@ -0,0 +1,59 @@ +--- +id: mariadb +title: 监控:MariaDB数据库监控 +sidebar_label: MariaDB数据库 +keywords: [开源监控系统, 开源数据库监控, MariaDB数据库监控] +--- + +> 对MariaDB数据库的通用性能指标进行采集监控。支持MariaDB5+。 + +### 注意,必须添加 MYSQL jdbc 驱动 jar + +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) +- 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. +- 重启 HertzBeat 服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为3306。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|------------| +| version | 无 | 数据库版本 | +| port | 无 | 数据库暴露服务端口 | +| datadir | 无 | 数据库存储数据盘地址 | +| max_connections | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|------------------| +| threads_created | 无 | MariaDB已经创建的总连接数 | +| threads_connected | 无 | MariaDB已经连接的连接数 | +| threads_cached | 无 | MariaDB当前缓存的连接数 | +| threads_running | 无 | MariaDB当前活跃的连接数 | + +#### 指标集合:innodb + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------|------|-------------------------| +| innodb_data_reads | 无 | innodb平均每秒从文件中读取的次数 | +| innodb_data_writes | 无 | innodb平均每秒从文件中写入的次数 | +| innodb_data_read | KB | innodb平均每秒钟读取的数据量,单位为KB | +| innodb_data_written | KB | innodb平均每秒钟写入的数据量,单位为KB | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mcp_server.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mcp_server.md new file mode 100644 index 00000000000..1680655c7d5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mcp_server.md @@ -0,0 +1,153 @@ +--- +id: mcp_server +title: MCP 服务器 +sidebar_label: MCP 服务器 +keywords: [MCP, StreamabelHttp, 流式传输, 服务器] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +本页面介绍如何连接到 HertzBeat MCP 服务器。当您启动 HertzBeat 服务器时,MCP 服务器会自动在默认端口 1157 上启动。 + +### 概述 + +- 提供 StreamabelHttp 协议的 MCP服务器。 +- 专为 MCP 集成和消费流式事件的客户端而设计。 + +### 连接到 MCP 服务器 + +确保 HertzBeat 服务器已启动并正在运行。如果您使用的端口不是 1157,请相应地替换以下内容: + +- URL: `http://your-hertzbeat-server-host:1157/api/mcp` + +### 身份验证 + +您必须使用以下方法之一对每个请求进行身份验证: + +- JWT Bearer 令牌 + + - 请求头: `Authorization: Bearer ` + +注意:您可以在 HertzBeat Web UI 的日志集成或告警集成页面点击生成 JWT 令牌。 + +- 基本身份验证 + - 请求头: `Authorization: Basic ` + +### MCP 配置 + + + + +Claude Code 使用一个全局配置文件 `~/.claude.json` 来管理 MCP 服务器,你可以通过 CLI 或直接编辑这个文件来添加 HertzBeat MCP: + +方式一: 使用 CLI 快速创建: + +```bash +claude mcp add -s user -t http hertzbeat-mcp http://your-hertzbeat-server-host:1157/api/mcp --header "Authorization: Bearer your_jwt_key" +``` + +方式二:打开 `~/.claude.json`,在顶层的 `mcpServers` 下添加 HertzBeat MCP 配置。 + +Basic auth: + +```jsonc +{ + "mcpServers": { + "hertzbeat-mcp": { + "type": "sse", + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Basic " + } + } + } +} +``` + +JWT bearer: + +```jsonc +{ + "mcpServers": { + "hertzbeat-mcp": { + "type": "sse", + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Bearer " + } + } + } +} +``` + +保存 `~/.claude.json` 后,重启或重新加载 Claude Code,让新的 MCP 配置生效。 + + + + +Cursor 使用配置文件 `.cursor/mcp.json` 来管理 MCP 服务器,在用户目录或者项目目录下创建或者编辑这个文件: + +Basic auth: + +```json +{ + "hertzbeat-mcp": { + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Basic " + } + } +} +``` + +JWT bearer: + +```json +{ + "hertzbeat-mcp": { + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Bearer " + } + } +} +``` + +After saving, reload MCP in Cursor or restart the editor. + + + + +### 可用工具 + +#### 监控管理工具 + +- **query_monitors**: 查询现有/已配置的监控器,支持全面的过滤、分页和状态概览。支持按 ID、类型、状态、主机、标签进行过滤和排序。 +- **add_monitor**: 向 HertzBeat 添加新的监控目标,支持全面配置。处理每种监控器类型的不同参数要求。 +- **list_monitor_types**: 列出所有可添加到 HertzBeat 的监控器类型。显示所有支持的监控器类型及其显示名称。 +- **get_monitor_additional_params**: 获取特定监控器类型所需的参数定义。显示添加监控器时需要的参数。 + +#### 指标数据工具 + +- **query_realtime_metrics**: 获取特定监控器的实时指标数据。返回当前指标值,包括 CPU、内存、磁盘使用率等。 +- **get_historical_metrics**: 获取用于分析和趋势的历史指标数据。返回指定时间范围内指定指标的时间序列数据。 +- **get_warehouse_status**: 检查指标存储仓库系统的状态。返回指标存储是否可操作和可访问。 + +#### 告警管理工具 + +- **query_alerts**: 查询告警,支持全面的过滤和分页选项。支持按告警类型(单个/组)、状态(触发/已解决)、搜索词进行过滤和排序。 +- **get_alerts_summary**: 获取告警摘要统计信息,包括总数、状态分布和所有监控器的优先级分解。 + +#### 告警规则定义工具 + +- **create_alert_rule**: 基于应用层次结构和用户需求创建 HertzBeat 告警规则。支持阈值、字段条件和全面的告警配置。 +- **list_alert_rules**: 列出现有的告警规则,支持过滤选项。显示已配置的阈值和告警定义,支持搜索和分页。 +- **get_alert_rule_details**: 获取特定告警规则的详细信息。显示完整的阈值配置和规则设置。 +- **toggle_alert_rule**: 启用或禁用告警规则。允许激活或停用特定规则的阈值监控。 +- **get_apps_metrics_hierarchy**: 获取所有可用应用及其指标的层次结构,用于告警规则创建。返回带有字段参数的结构化 JSON 数据。 +- **bind_monitors_to_alert_rule**: 将监控器绑定到告警规则。将特定监控器与告警规则关联以启用监控和告警。 + +### 注意事项 + +- 如果连接断开,请使用相同的请求头重新连接。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/memcached.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/memcached.md new file mode 100644 index 00000000000..b6aca0c75a2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/memcached.md @@ -0,0 +1,67 @@ +--- +id: memcached +title: 监控 Memcached +sidebar_label: Memcached +keywords: [ 开源监控工具, 开源 Memcached 监控工具, 监控 memcached 指标 ] +--- + +> 收集并监控 Memcached 的一般性能指标。 + +**协议使用:Memcached** + +```text +默认的 YML 配置适用于 Memcached 的版本为 1.4.15。 +您需要使用 stats 命令查看您的 Memcached 可以监控的参数。 +``` + +**1、通过 stats、stats setting、stats settings 等命令获取可用的参数指标。** + +```shell +# telnet ip port +[root@server ~]# telnet localhost 11211 +Trying ::1... +Connected to localhost. +Escape character is '^]'. +stats +STAT pid 15168 +STAT uptime 11691 +STAT time 1702569246 +STAT version 1.4.15 +... +``` + +**帮助文档: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|------|---------------------------------------------------| +| 监控主机 | 被监控的 IPV4、IPV6 或域名。注意⚠️不带协议头(例如:https://,http://) | +| 监控名称 | 标识此监控的名称。名称需要唯一 | +| 端口 | Memcached 提供的端口 | +| 采集间隔 | 监控周期性数据采集的间隔时间,单位:秒,最小可设置间隔为 30 秒 | +| 是否检测 | 添加监控前是否检测并检查可用性。仅在检测成功后才会继续添加和修改操作 | +| 描述备注 | 有关标识和描述此监控的更多信息,用户可以在此备注信息 | + +### 采集指标 + +#### 指标集:server_info + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-------------------| +| pid | 无 | Memcache 服务器进程 ID | +| uptime | s | 服务器已运行的秒数 | +| version | 无 | Memcache 版本 | +| curr_connections | 无 | 当前连接数 | +| auth_errors | 无 | 认证失败次数 | +| threads | 无 | 当前线程数 | +| item_size | byte | 条目大小 | +| item_count | 无 | 条目数量 | +| curr_items | 无 | 当前存储的数据总数 | +| total_items | 无 | 自启动以来存储的数据总数 | +| bytes | byte | 当前存储占用的字节数 | +| cmd_get | 无 | Get 命令请求数 | +| cmd_set | 无 | Set 命令请求数 | +| cmd_flush | 无 | Flush 命令请求数 | +| get_misses | 无 | Get 命令未命中次数 | +| delete_misses | 无 | Delete 命令未命中次数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/modbus.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/modbus.md new file mode 100644 index 00000000000..d17a81bc620 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/modbus.md @@ -0,0 +1,80 @@ +--- +id: modbus +title: Monitoring Modbus +sidebar_label: Modbus Monitor +keywords: [ open source monitoring tool, Modbus监控 ] +--- + +> Modbus 服务的响应等相关指标进行监测。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------------|-----------------------------------------------------------| +| Modbus服务的Host | 被监控的Modbus的IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Modbus网络的端口。 | +| slaveId | Modbus网络中从机设备ID。 | +| 保持寄存器地址 | 用于对监控资源进行分类管理。 | +| 线圈寄存器地址 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | +| 超时 | 允许收集响应时间 | + +### 采集指标 + +#### 指标集合:holding-register + +1. 参数数量需要与参数中线圈寄存器地址的总数量一样 +2. 参数别名格式: holding-register:m 或 holding-register:m-n + +参数示例: + +线圈寄存器地址: + +```text +1,2[3] +``` + +参数别名名称: + +```yaml +aliasFields: + - responseTime + - holding-register:0 + - holding-register:1-0 + - holding-register:1-1 + - holding-register:1-2 +``` + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|---------------------| +| 响应时间 | 毫秒 | Modbus服务器响应请求所需的时间。 | +| 保持寄存器参数 | | 模拟量输出设定值 | + +#### 指标集合:coil + +1. 参数数量需要与参数中线圈寄存器地址的总数量一样 +2. 参数别名格式: coil:m 或 coil:m-n + +参数示例: + +线圈寄存器地址: + +```text +1,2[3] +``` + +参数别名名称: + +```yaml +aliasFields: + - responseTime + - coil:0 + - coil:1-0 + - coil:1-1 + - coil:1-2 +``` + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|---------------------| +| 响应时间 | 毫秒 | Modbus服务器响应请求所需的时间。 | +| 线圈状态 | | 线圈状态 (0或1) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb.md new file mode 100644 index 00000000000..46d602fac9f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb.md @@ -0,0 +1,95 @@ +--- +id: mongodb +title: 监控:MongoDB数据库 +sidebar_label: MongoDB数据库 +keywords: [ 开源监控系统, 开源数据库监控, MongoDB数据库监控 ] +--- + +> 对MongoDB数据库的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为27017。 | +| 用户名 | MongoDB用户名,可选。 | +| 密码 | MongoDB密码,可选。 | +| 数据库 | 数据库名称 | +| 认证数据库 | 存储用户凭据的数据库名称。 | +| 连接超时时间 | 设置连接MongoDB未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:构建信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-------------------------| +| version | 无 | MongoDB版本信息 | +| gitVersion | 无 | 源代码git版本 | +| sysInfo | 无 | 系统信息 | +| loaderFlags | 无 | 加载器标志 | +| compilerFlags | 无 | 编译器标志 | +| allocator | 无 | MongoDB所使用的内存分配器 | +| javascriptEngine | 无 | MongoDB所使用的JavaScript引擎 | + +#### 指标集合:服务器文档 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| deleted | 无 | 已删除数 | +| inserted | 无 | 已插入数 | +| returned | 无 | 已返回数 | +| updated | 无 | 已更新数 | + +#### 指标集合:服务器操作 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|-------------------| +| scanAndOrder | 无 | 执行查询时需要扫描并进行排序的次数 | +| writeConflicts | 无 | 写冲突的次数 | + +#### 指标集合: 服务器_ttl + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-------------------------------| +| deletedDocuments | 无 | 删除的过期文档数量 | +| passes | 无 | TTL清理过程的总传递次数,每次传递会检查并删除过期的文档 | + +#### 指标集合:系统信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|-----------------------| +| currentTime | 无 | 当前时间 | +| hostname | 无 | 主机名 | +| cpuAddrSize | MB | CPU的地址位数 | +| memSizeMB | MB | 内存大小(MB) | +| memLimitMB | MB | MongoDB进程的内存限制(MB) | +| numCores | 无 | CPU 核数 | +| cpuArch | 无 | CPU 架构 | +| numaEnabled | 无 | 是否启用了NUMA(非一致性内存访问)架构 | + +#### 指标集合:操作系统信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|--------| +| type | 无 | 操作系统类型 | +| name | 无 | 操作系统名称 | +| version | 无 | 版本号 | + +#### 指标集合:额外信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|----------------------| +| versionString | 无 | 版本 | +| libcVersion | 无 | 标准库版本 | +| kernelVersion | 无 | 内核版本 | +| cpuFrequencyMHz | 无 | CPU 频率(兆赫兹) | +| cpuFeatures | 无 | CPU的特性列表,包括支持的指令集和特性 | +| pageSize | 无 | 内存页大小 | +| numPages | 无 | 内存页数量 | +| maxOpenFiles | 无 | 系统中允许打开的最大文件数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb_atlas.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb_atlas.md new file mode 100644 index 00000000000..8747eb4660d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mongodb_atlas.md @@ -0,0 +1,77 @@ +--- +id: mongodb_atlas +title: 监控:MongoDB Atlas 数据库 +sidebar_label: MongoDB Atlas 数据库 +keywords: [ 开源监控系统, 开源数据库监控, MongoDB Atlas 数据库监控 ] +--- + +> 对MongoDB Atlas 数据库的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 用户名 | MongoDB用户名,可选。 | +| 密码 | MongoDB密码,可选。 | +| 数据库 | 数据库名称 | +| 认证数据库 | 存储用户凭据的数据库名称。 | +| 连接超时时间 | 设置连接MongoDB未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 集群模式 | MongoDB Atlas集群取值为:mongodb-atlas | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:构建信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-------------------------| +| version | 无 | MongoDB版本信息 | +| gitVersion | 无 | 源代码git版本 | +| sysInfo | 无 | 系统信息 | +| allocator | 无 | MongoDB所使用的内存分配器 | +| javascriptEngine | 无 | MongoDB所使用的JavaScript引擎 | + +#### 指标集合:服务器文档 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|-------------| +| delete | 无 | 已删除数 | +| insert | 无 | 已插入数 | +| update | 无 | 更新数 | +| query | 无 | 查询数 | +| getmore | 无 | 光标中剩余文档的请求数 | +| command | 无 | 执行命令操作的总数 | + +#### 指标集合:网络操作 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|-------------------| +| Bytes In | 无 | 执行查询时需要扫描并进行排序的次数 | +| Bytes Out | 无 | 写冲突的次数 | +| Request Num | 无 | 请求数 | + +#### 指标集合: 连接信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|------|-----------| +| Current Connections | 无 | 当前正在进行连接数 | +| Available Connections | 无 | 可用连接数 | +| Total Created Connections | 无 | 创建的连接总数 | + +#### 指标集合:数据库统计 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|-------|----------| +| Database Name | 无 | 数据库名称 | +| Collections | 无 | 集合数 | +| Views | 无 | 视图数 | +| Objects | 无 | 文档数 | +| Document Avg Size | Bytes | 文档平均大小 | +| Document Size | Bytes | 文档大小 | +| Storage Size | Bytes | 使用存储空间大小 | +| Indexes | 无 | 索引数 | +| Index Size | Bytes | 索引大小 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mqtt.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mqtt.md new file mode 100644 index 00000000000..ade0bd0a049 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mqtt.md @@ -0,0 +1,43 @@ +--- +id: mqtt +title: 监控:MQTT 连接 +sidebar_label: MQTT 连接 +keywords: [ 开源监控系统, MQTT连接监控 ] +--- + +> 对MQTT连接状态进行监控,支持 MQTT5 和 MQTT3.1.1 协议。 + +**协议使用:mqtt** + +:::tip +为了检测是否可以正常订阅主题,HertzBeat 会订阅主题,然后立即取消订阅;为了检测是否可以正常推送消息,HertzBeat 会推送一条测试消息到主题(如果测试消息参数为空则不作检测)。 +请确保这些操作不会对你的系统产生影响。 +::: + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|---------------------------------------------------------| +| MQTT的Host | 被监控的对端 IPV4,IPV6 或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | MQTT 服务开放端口,默认为1883。 | +| 协议版本 | MQTT 协议版本,支持 MQTT5 和 MQTT3.1.1。 | +| 连接超时时间 | 连接超时时间,单位ms毫秒,默认6000毫秒。 | +| 客户端ID | MQTT 客户端 ID,默认为 `hertzbeat-mqtt-client`。 | +| 主题 | 监控的主题。 | +| 测试消息 | 测试主题是否可以正常推送消息使用的消息内容。(可选,如果为空则 `canPublish` 一直为false ) | +| 用户名 | MQTT 认证用户名(可选)。 | +| 密码 | MQTT 认证密码(可选)。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|---------------| +| responseTime | 无 | 响应时间 | +| canPublish | 无 | 是否可以正常推送消息到主题 | +| canDescribe | 无 | 主题是否可以正常被订阅 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mysql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mysql.md new file mode 100644 index 00000000000..82b3f36b564 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/mysql.md @@ -0,0 +1,59 @@ +--- +id: mysql +title: 监控:MYSQL数据库监控 +sidebar_label: MYSQL数据库 +keywords: [开源监控系统, 开源数据库监控, Mysql数据库监控] +--- + +> 对MYSQL数据库的通用性能指标进行采集监控。支持MYSQL5+。 + +### 注意,必须添加 MYSQL jdbc 驱动 jar + +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) +- 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. +- 重启 HertzBeat 服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为3306。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|------------| +| version | 无 | 数据库版本 | +| port | 无 | 数据库暴露服务端口 | +| datadir | 无 | 数据库存储数据盘地址 | +| max_connections | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|----------------| +| threads_created | 无 | MySql已经创建的总连接数 | +| threads_connected | 无 | MySql已经连接的连接数 | +| threads_cached | 无 | MySql当前缓存的连接数 | +| threads_running | 无 | MySql当前活跃的连接数 | + +#### 指标集合:innodb + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------|------|-------------------------| +| innodb_data_reads | 无 | innodb平均每秒从文件中读取的次数 | +| innodb_data_writes | 无 | innodb平均每秒从文件中写入的次数 | +| innodb_data_read | KB | innodb平均每秒钟读取的数据量,单位为KB | +| innodb_data_written | KB | innodb平均每秒钟写入的数据量,单位为KB | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos.md new file mode 100644 index 00000000000..b54fbc611c5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos.md @@ -0,0 +1,94 @@ +--- +id: nacos +title: 监控:Nacos分布式监控 +sidebar_label: Nacos分布式 +keywords: [开源监控系统, 中间件监控, Nacos分布式监控] +--- + +> 通过调用 Nacos Metrics 接口对 Nacos 注册配置中心服务的通用指标进行采集监控。 + +### 监控前操作 + +#### 搭建Nacos集群暴露metrics数据 + +1. 按照[部署文档](https://nacos.io/zh-cn/docs/deployment.html)搭建好Nacos集群。 +2. 配置application.properties文件,暴露metrics数据。 + + ```properties + management.endpoints.web.exposure.include=* + ``` + +3. 访问```{ip}:8848/nacos/actuator/prometheus```,查看是否能访问到metrics数据。 + +更多信息请参考[Nacos 监控手册](https://nacos.io/zh-cn/docs/monitor-guide.html)。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------| +| 服务器Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| Nacos服务端口 | Nacos服务对外提供的端口,默认为8848。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:jvm + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------|------|----------------| +| system_cpu_usage | 无 | CPU使用率 | +| system_load_average_1m | 无 | load | +| jvm_memory_used_bytes | 字节 | 内存使用字节,包含各种内存区 | +| jvm_memory_max_bytes | 字节 | 内存最大字节,包含各种内存区 | +| jvm_gc_pause_seconds_count | 无 | gc次数,包含各种gc | +| jvm_gc_pause_seconds_sum | 秒 | gc耗时,包含各种gc | +| jvm_threads_daemon | 无 | 线程数 | + +#### 指标集合:Nacos + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------------------|------|-----------------------------| +| http_server_requests_seconds_count | 秒 | http请求次数,包括多种(url,方法,code) | +| http_server_requests_seconds_sum | 秒 | http请求总耗时,包括多种(url,方法,code) | +| nacos_timer_seconds_sum | 秒 | Nacos config水平通知耗时 | +| nacos_timer_seconds_count | 无 | Nacos config水平通知次数 | +| nacos_monitor`{name="longPolling"}` | 无 | Nacos config长连接数 | +| nacos_monitor`{name="configCount"}` | 无 | Nacos config配置个数 | +| nacos_monitor`{name="dumpTask"}` | 无 | Nacos config配置落盘任务堆积数 | +| nacos_monitor`{name="notifyTask"}` | 无 | Nacos config配置水平通知任务堆积数 | +| nacos_monitor`{name="getConfig"}` | 无 | Nacos config读配置统计数 | +| nacos_monitor`{name="publish"}` | 无 | Nacos config写配置统计数 | +| nacos_monitor`{name="ipCount"}` | 无 | Nacos naming ip个数 | +| nacos_monitor`{name="domCount"}` | 无 | Nacos naming域名个数(1.x 版本) | +| nacos_monitor`{name="serviceCount"}` | 无 | Nacos naming域名个数(2.x 版本) | +| nacos_monitor`{name="failedPush"}` | 无 | Nacos naming推送失败数 | +| nacos_monitor`{name="avgPushCost"}` | 秒 | Nacos naming平均推送耗时 | +| nacos_monitor`{name="leaderStatus"}` | 无 | Nacos naming角色状态 | +| nacos_monitor`{name="maxPushCost"}` | 秒 | Nacos naming最大推送耗时 | +| nacos_monitor`{name="mysqlhealthCheck"}` | 无 | Nacos naming mysql健康检查次数 | +| nacos_monitor`{name="httpHealthCheck"}` | 无 | Nacos naming http健康检查次数 | +| nacos_monitor`{name="tcpHealthCheck"}` | 无 | Nacos naming tcp健康检查次数 | + +#### 指标集合:Nacos 异常 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------------------------------|------|--------------------------------| +| nacos_exception_total`{name="db"}` | 无 | 数据库异常 | +| nacos_exception_total`{name="configNotify"}` | 无 | Nacos config水平通知失败 | +| nacos_exception_total`{name="unhealth"}` | 无 | Nacos config server之间健康检查异常 | +| nacos_exception_total`{name="disk"}` | 无 | Nacos naming写磁盘异常 | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | 无 | Nacos naming leader发送心跳异常 | +| nacos_exception_total`{name="illegalArgument"}` | 无 | 请求参数不合法 | +| nacos_exception_total`{name="nacos"}` | 无 | Nacos请求响应内部错误异常(读写失败,没权限,参数错误) | + +#### 指标集合:client + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------------------|------|--------------------------| +| nacos_monitor`{name="subServiceCount"}` | 无 | 订阅的服务数 | +| nacos_monitor`{name="pubServiceCount"}` | 无 | 发布的服务数 | +| nacos_monitor`{name="configListenSize"}` | 无 | 监听的配置数 | +| nacos_client_request_seconds_count | 无 | 请求的次数,包括多种(url,方法,code) | +| nacos_client_request_seconds_sum | 秒 | 请求的总耗时,包括多种(url,方法,code) | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos_sd.md new file mode 100644 index 00000000000..45eb38e669d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nacos_sd.md @@ -0,0 +1,99 @@ +--- +id: nacos_sd +title: 监控:Nacos服务发现监控 +sidebar_label: Nacos服务发现 +keywords: [开源监控系统, 开源服务发现监控, Nacos服务发现监控] +--- + +> HertzBeat 集成 Nacos 注册中心,自动发现服务实例并为发现的实例创建监控任务。 + +### 概述 + +Nacos 服务发现允许 HertzBeat 连接到您的 Nacos 服务器并自动发现所有注册的服务实例。当新服务实例注册或现有实例下线时,HertzBeat 将自动创建或删除相应的监控任务,实现微服务环境下的自动化监控。 + +### 监控前操作 + +#### 部署 Nacos 服务器 + +1. 根据 [Nacos 官方文档](https://nacos.io/zh-cn/docs/quick-start.html)部署 Nacos 服务器。 +2. 确保 Nacos 服务器可从 HertzBeat 访问。 +3. 验证您可以访问 Nacos 控制台:`http://your-nacos-server:8848/nacos/` +4. 默认凭证:用户名 `nacos`,密码 `nacos` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| Nacos服务发现Host | Nacos 服务器 IP 地址或域名。注意⚠️不带协议头(例如: https://, http://)。示例:`nacos-server` 或 `192.168.1.100` | +| Nacos服务发现Port | Nacos 服务器对外提供的端口,默认为 8848 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**Nacos服务发现** + - 填写基本配置参数 + +2. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 例如:如果发现的实例是 HTTP 服务,可以选择 HTTP 监控模板 + - 常用模板类型:端口、HTTP、HTTPS 等 + +3. **自动发现** + - HertzBeat 会根据采集间隔定期查询 Nacos 服务器 + - 为新注册的服务实例自动创建监控任务 + - 自动删除已下线服务实例的监控任务 + +4. **查看发现的实例** + - 在监控列表中,您可以看到所有自动创建的子监控任务 + - 每个子监控任务对应一个发现的服务实例 + +### 使用示例 + +假设您的 Nacos 服务器运行在 `192.168.1.100:8848`,您希望自动监控其中注册的所有服务实例。 + +配置示例: + +- **任务名称**:`Nacos-Service-Discovery` +- **Nacos服务发现Host**:`192.168.1.100` +- **Nacos服务发现Port**:`8848` +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控(检测实例可用性) + +配置完成后: + +1. HertzBeat 连接到 Nacos 服务器 +2. 获取所有已注册的服务实例(包括健康和不健康的实例) +3. 为每个实例自动创建端口监控(例如:`user-service-192.168.1.101:8080`) +4. 每 60 秒检查一次新注册或下线的服务,并相应地更新监控任务 + +### 注意事项 + +- **网络连通性**:确保 HertzBeat 可以访问 Nacos 服务器地址和端口 +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:建议最小间隔为 60 秒,避免对 Nacos 服务器造成过多请求 +- **命名空间**:默认发现 public 命名空间下的服务。如果需要发现特定命名空间的服务,可能需要单独配置 +- **健康检查**:Nacos 服务发现会发现所有实例,包括不健康的实例 +- **实例命名**:自动创建的监控任务命名格式为:`{服务名}-{主机}:{端口}` + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **Spring Cloud Alibaba**:自动监控 Nacos 中注册的所有微服务实例 +- **动态伸缩**:自动适应因自动扩缩容而增减的服务实例 +- **统一监控**:集中管理微服务环境中所有服务的监控 +- **多环境管理**:管理开发、测试、生产环境中的服务 +- **服务治理**:结合 Nacos 服务治理能力实现全面的服务管理 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph.md new file mode 100644 index 00000000000..b1bda5b6cc6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph.md @@ -0,0 +1,121 @@ +--- +id: nebulaGraph +title: 监控 NebulaGraph 数据库 +sidebar_label: NebulaGraph 数据库 +keywords: [ 开源监控工具, 开源 NebulaGraph 监控工具, 监控 NebulaGraph 指标 ] +--- + +> 收集和监控 NebulaGraph 的常规性能指标。 + +**使用协议:nebulaGraph** + +```text +监控分为两个部分,nebulaGraph_stats 和 rocksdb_stats。 +nebulaGraph_stats 是 NebulaGraph 的统计信息,rocksdb_stats 是 RocksDB 的统计信息。 +``` + +**1、通过 stats 和 rocksdb stats 接口获取可用参数。** + +1.1、如果只需要获取 nebulaGraph_stats,需要确保可以访问 stats,否则会出现错误。 + +默认端口是 19669,访问地址为 [http://ip:19669/stats](http://ip:19669/stats) + +1.2、如果需要获取 rocksdb stats 的附加参数,需要确保可以访问 rocksdb stats,否则会报错。 + +首次连接 NebulaGraph 时,必须先注册 Storage 服务,以便正确查询数据。 + +**有帮助文档:[https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** + +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** + +默认端口是 19779,访问地址为:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-------------|--------------------------------------------------------------------| +| 监控主机 | 被监控的 IPV4、IPV6 或域名。注意⚠️没有协议头(例如:https://、http://) | +| 监控名称 | 识别此监控的名称。名称需要唯一 | +| graphPort | Nebula Graph 提供的 Graph 服务的端口 | +| timePeriod | 可以是 5 秒、60 秒、600 秒或 3600 秒,分别表示最近 5 秒、最近 1 分钟、最近 10 分钟和最近 1 小时的时间段 | +| storagePort | Nebula Graph 提供的 Storage 服务的端口 | +| 超时 | 允许收集响应时间 | +| 收集间隔 | 监控周期性数据收集的间隔时间,单位:秒,最小可设置的间隔为 30 秒 | +| 是否检测 | 是否检测和验证添加监控之前的可用性。只有检测成功后,添加和修改操作才会继续进行 | +| 描述备注 | 用于识别和描述此监控的更多信息,用户可以在此处记录信息 | + +### 收集指标 + +#### 指标集:nebulaGraph_stats + +指标太多,相关链接如下 +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------------------------------------------|------|--------| +| 达到内存水位线的语句的数量(rate) | | | +| 达到内存水位线的语句的数量(sum) | | | +| 服务端主动回收的过期的会话数量(rate) | | | +| 服务端主动回收的过期的会话数量(sum) | | | +| 慢查询延迟时间(avg) | | | +| 慢查询延迟时间(p75) | | | +| 慢查询延迟时间(p95) | | | +| 慢查询延迟时间(p99) | | | +| 慢查询延迟时间(p999) | | | +| 查询延迟时间(avg) | | | +| 查询延迟时间(p75) | | | +| 查询延迟时间(p95) | | | +| 查询延迟时间(p99) | | | +| 查询延迟时间(p999) | | | +| 因用户名密码错误导验证失败的会话数量(rate) | | | +| 因用户名密码错误导验证失败的会话数量(sum) | | | +| 查询次数(rate) | | | +| 查询次数(sum) | | | +| 排序(Sort)算子执行时间(rate) | | | +| 排序(Sort)算子执行时间(sum) | | | +| Graphd 服务发给 Storaged 服务的 RPC 请求失败的数量(rate) | | | +| Graphd 服务发给 Storaged 服务的 RPC 请求失败的数量(sum) | | | +| 登录验证失败的会话数量(rate) | | | +| 登录验证失败的会话数量(sum) | | | +| 查询报错语句数量(rate) | | | +| 查询报错语句数量(sum) | | | +| 被终止的查询数量(rate) | | | +| 被终止的查询数量(sum) | | | +| 因查询错误而导致的 Leader 变更的次数(rate) | | | +| 因查询错误而导致的 Leader 变更的次数(sum) | | | +| Graphd 服务发给 Metad 服务的 RPC 请求数量(rate) | | | +| Graphd 服务发给 Metad 服务的 RPC 请求数量(sum) | | | +| 慢查询次数(rate) | | | +| 慢查询次数(sum) | | | +| 活跃的会话数的变化数(sum) | | | +| 活跃的查询语句数的变化数(sum) | | | +| Graphd 服务接收的语句数(rate) | | | +| Graphd 服务接收的语句数(sum) | | | +| 聚合(Aggregate)算子执行时间(rate) | | | +| 聚合(Aggregate)算子执行时间(sum) | | | +| 优化器阶段延迟时间(avg) | | | +| 优化器阶段延迟时间(p75) | | | +| 优化器阶段延迟时间(p95) | | | +| 优化器阶段延迟时间(p99) | | | +| 优化器阶段延迟时间(p999) | | | +| Graphd 服务发给 Metad 的 RPC 请求失败的数量(rate) | | | +| Graphd 服务发给 Metad 的 RPC 请求失败的数量(sum) | | | +| 索引扫描(IndexScan)算子执行时间(rate) | | | +| 索引扫描(IndexScan)算子执行时间(sum) | | | +| 服务端建立过的会话数量(rate) | | | +| 服务端建立过的会话数量(sum) | | | +| 因为超过FLAG_OUT_OF_MAX_ALLOWED_CONNECTIONS参数导致的验证登录的失败的会话数量(rate) | | | +| 因为超过FLAG_OUT_OF_MAX_ALLOWED_CONNECTIONS参数导致的验证登录的失败的会话数量(sum) | | | +| Graphd 服务发给 Storaged 服务的 RPC 请求数量(rate) | | | +| Graphd 服务发给 Storaged 服务的 RPC 请求数量(sum) | | | + +#### 指标集:rocksdb_stats + +指标太多,相关链接如下 +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------------|------|------------------------| +| rocksdb.backup.read.bytes | | 备份 RocksDB 数据库期间读取的字节数 | +| rocksdb.backup.write.bytes | | 指标名称 | +| ... | | ... | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph_cluster.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph_cluster.md new file mode 100644 index 00000000000..7fe8792d29d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nebulagraph_cluster.md @@ -0,0 +1,91 @@ +--- +id: nebulagraph_cluster +title: 监控:NebulaGraph集群监控 +sidebar_label: NebulaGraph集群 +keywords: [ 开源监控系统, 开源数据库监控, 开源图数据库监控, NebulaGraph集群监控 ] +--- + +> 对NebulaGraph集群的基础信息、节点,任务等进行监控。 + +**协议使用:ngql** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| graph端口 | graph服务开放的端口,默认为9669。 | +| 连接超时时间 | 连接graph服务超时时间,单位ms毫秒,默认6000毫秒。 | +| 用户名 | 数据库连接用户名。 | +| 密码 | 数据库连接密码。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:基础信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|---------| +| responseTime | 无 | 响应时间 | +| charset | 无 | 字符集 | +| collation | 无 | 字符集排序规则 | + +#### 指标集合:Session + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------|------|------------| +| session | 无 | session的数量 | +| running_query_count | 无 | 正在执行的查询的数量 | + +#### 指标集合:后台任务 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------------| +| queue_jobs | 无 | 等待中的后台任务 | +| running_jobs | 无 | 正在执行的后台任务的数量 | + +#### 指标集合:节点信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|-----------------| +| total_storage_node | 无 | storage节点的数量 | +| offline_storage_node | 无 | 离线的storage节点的数量 | +| total_meta_node | 无 | meta节点的数量 | +| offline_meta_node | 无 | 离线的meta节点的数量 | +| total_graph_node | 无 | graph节点数量 | +| offline_graph_node | 无 | 离线graph节点数量 | + +#### 指标集合:Storage节点 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|---------------------| +| host | 无 | 节点地址 | +| port | 无 | 端口 | +| status | 无 | 状态 (ONLINE/OFFLINE) | +| leaderCount | 无 | 当前节点leader分片的数量 | +| leaderDistribution | 无 | 当前节点leader分片分布 | +| partitionDistribution | 无 | 当前节点上分片分布 | +| version | 无 | 版本 | + +#### 指标集合:Meta节点 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|---------------------| +| host | 无 | 节点地址 | +| port | 无 | 端口 | +| status | 无 | 状态 (ONLINE/OFFLINE) | +| version | 无 | 版本 | + +#### 指标集合:Graph节点 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|---------------------| +| host | 无 | 节点地址 | +| port | 无 | 端口 | +| status | 无 | 状态 (ONLINE/OFFLINE) | +| version | 无 | 版本 | + +> 如果需要自定义监控模板采集NebulaGraph集群的数据,请参考: [NGQL自定义监控](../advanced/extend-ngql.md) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nginx.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nginx.md new file mode 100644 index 00000000000..227a9900a95 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nginx.md @@ -0,0 +1,154 @@ +--- +id: nginx +title: 监控 Nginx +sidebar_label: Nginx 监控 +keywords: [开源监控工具, 开源Java监控工具, 监控Nginx指标] +--- + +> 收集和监控 Nginx 的常规性能指标。 + +**使用的协议:Nginx** + +### 需要启用 Nginx 的 `ngx_http_stub_status_module` 和 `ngx_http_reqstat_module` 监控模块 + +如果你想使用这种监控方式监控 'Nginx' 的信息,你需要修改你的 Nginx 配置文件以启用监控模块。 + +### 启用 ngx_http_stub_status_module + +1. 检查是否已添加 `ngx_http_stub_status_module` + + ```shell + nginx -V + ``` + + 查看是否包含 `--with-http_stub_status_module`,如果没有则需要重新编译安装 Nginx。 + +2. 编译安装 Nginx, 添加 `ngx_http_stub_status_module` 模块 + + 下载 Nginx 并解压,在目录下执行 + + ```shell + ./configure --prefix=/usr/local/nginx --with-http_stub_status_module + + make && make install + ``` + +3. 修改 Nginx 配置文件 + + 修改 `nginx.conf` 文件,添加监控模块暴露端点,如下配置: + + ```shell + # modify nginx.conf + server { + listen 80; # port + server_name localhost; + location /nginx-status { + stub_status on; + access_log on; + #allow 127.0.0.1; #only allow requests from localhost + #deny all; #deny all other hosts + } + } + ``` + +4. 重新加载 Nginx + + ```shell + nginx -s reload + ``` + +5. 在浏览器访问 `http://localhost/nginx-status` 即可查看 Nginx 监控状态信息。 + +### 启用 `ngx_http_reqstat_module` + +1. 安装 `ngx_http_reqstat_module` 模块 + + ```shell + # install `ngx_http_reqstat_module` + wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip + + unzip ngx_req_status.zip + + patch -p1 < ../ngx_req_status-master/write_filter.patch + + ./configure --prefix=/usr/local/nginx --add-module=/path/to/ngx_req_status-master + + make -j2 + + make install + ``` + +2. 修改 Nginx 配置文件 + + 修改 `nginx.conf` 文件,添加状态模块暴露端点,如下配置: + + ```shell + # modify nginx.conf + http { + req_status_zone server_name $server_name 256k; + req_status_zone server_addr $server_addr 256k; + + req_status server_name server_addr; + + server { + location /req-status { + req_status_show on; + #allow 127.0.0.1; #only allow requests from localhost + #deny all; #deny all other hosts + } + } + } + ``` + +3. 重新加载 Nginx + + ```shell + nginx -s reload + ``` + +4. 在浏览器访问 `http://localhost/req-status` 即可查看 Nginx 监控状态信息。 + + +**参考文档: [https://blog.csdn.net/weixin_55985097/article/details/116722309](https://blog.csdn.net/weixin_55985097/article/details/116722309)** + +**⚠️注意监控模块的端点路径为 `/nginx-status` `/req-status`** + +### 配置参数 + +| 参数名 | 参数描述 | +|--------|-----------------------------------------------------| +| 监控主机 | 被监控的 IPV4、IPV6 或域名。注意⚠️不需要协议头部(例如:https://,http://) | +| 监控名称 | 标识此监控的名称。名称需要唯一 | +| 端口 | Nginx 提供的端口 | +| 超时时间 | 允许收集响应时间 | +| 收集间隔时间 | 监控周期性数据收集的间隔时间,单位为秒,最小可设置的间隔时间为30秒 | +| 是否检测 | 是否在添加监控之前检测和确认监控的可用性。只有在检测成功后,添加和修改操作才会继续进行 | +| 描述备注 | 用户可以在此处注明有关标识和描述此监控的更多信息 | + +### 收集指标 + +#### 指标收集:nginx_status + +| 指标名称 | 指标单位 | 指标描述 | +|-------|------|------------| +| 接收连接数 | | 已接受的连接 | +| 处理连接数 | | 成功处理的连接 | +| 活动连接数 | | 当前活动连接 | +| 丢弃连接数 | | 丢弃的连接 | +| 请求连接数 | | 客户端请求 | +| 读连接数 | | 正在执行读操作的连接 | +| 写连接数 | | 正在执行写操作的连接 | +| 等待连接数 | | 等待连接 | + +#### 指标集:req_status + +| 指标名称 | 指标单位 | 指标描述 | +|---------|------|---------| +| 分组类别 | | 分组类别 | +| 分组名称 | | 分组名称 | +| 最大并发连接数 | | 最大并发连接数 | +| 最大带宽 | kb | 最大带宽 | +| 总流量 | kb | 总流量 | +| 总请求数 | | 总请求数 | +| 当前并发连接数 | | 当前并发连接数 | +| 当前带宽 | kb | 当前带宽 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ntp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ntp.md new file mode 100644 index 00000000000..0806232cee5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ntp.md @@ -0,0 +1,41 @@ +--- +id: ntp +title: 监控 NTP 服务器 +sidebar_label: NTP 服务器 +keywords: [ open source monitoring tool, open source NTP monitoring tool, monitoring NTP metrics ] +--- + +NTP监控的中文文档如下: + +## NTP监控 + +> 收集和监控NTP的常规性能指标。 + +**协议使用:NTP** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|------|--------------------------------------------------| +| 监控主机 | 被监控的IPv4、IPv6或域名。注意⚠️不包含协议头(例如:https://,http://) | +| 监控名称 | 标识此监控的名称。名称需要是唯一的 | +| 采集间隔 | 监控周期性数据采集的时间间隔,单位:秒,最小可设置为30秒 | +| 是否检测 | 是否在添加监控之前检测和检查监控的可用性。只有在检测成功后,添加和修改操作才会继续进行 | +| 描述备注 | 用于更多关于标识和描述此监控的信息,用户可以在此处添加备注信息 | + +### 采集指标 + +#### 指标集:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|--------------------------| +| 响应时间 | 毫秒 | NTP服务器响应请求所需的时间。 | +| 时间 | 毫秒 | NTP服务器报告的当前时间。 | +| 日期 | | 与NTP服务器报告的当前时间对应的日期。 | +| 偏移量 | 毫秒 | NTP服务器的时钟与客户端时钟之间的时间差。 | +| 延迟 | 毫秒 | 请求到达NTP服务器并返回响应所需的时间。 | +| 版本号 | | 服务器使用的NTP协议的版本号。 | +| 模式 | | NTP服务器的操作模式,如客户端、服务器或广播。 | +| 层级 | | NTP服务器的层级,表示其与参考时钟的距离。 | +| 参考ID | | 指示NTP服务器使用的参考时钟或时间源的标识符。 | +| 精度 | | NTP服务器时钟的精度,表示其准确性。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nvidia.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nvidia.md new file mode 100644 index 00000000000..8e3f190adf7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/nvidia.md @@ -0,0 +1,37 @@ +--- +id: nvidia +title: 监控:NVIDIA 监控 +sidebar_label: NVIDIA 监控 +keywords: [开源监控系统, NVIDIA监控] +--- + +> 对 NVIDIA 操作系统的通用性能指标进行采集监控。 +> NVIDIA 监控需要用到 nvidia-smi 命令,nvidia-smi 是与 NVIDIA GPU 驱动程序一起安装的。所以在监控 NVIDIA 时,我们需要安装 NVIDIA GPU 驱动程序。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------| +| 监控Host | 被监控的对端 IPV4,IPV6 或 域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH 对外提供的端口,默认为22。 | +| 用户名 | SSH 连接用户名,可选 | +| 密码 | SSH 连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------| +| index | 无 | 显卡索引 | +| name | 无 | 显卡名称 | +| utilization.gpu[%] | 无 | GPU利用率 | +| utilization.memory[%] | 无 | 显存利用率 | +| memory.total[MiB] | 无 | 总显存 | +| memory.used[MiB] | 无 | 已用显存 | +| memory.free[MiB] | 无 | 空闲显存 | +| temperature.gpu | 无 | 显卡温度 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oceanbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oceanbase.md new file mode 100644 index 00000000000..edeeaeaf611 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oceanbase.md @@ -0,0 +1,59 @@ +--- +id: oceanbase +title: 监控:OceanBase 数据库监控 +sidebar_label: OceanBase 数据库 +keywords: [开源监控系统, 开源数据库监控, OceanBase 数据库监控] +--- + +> 对 OceanBase 数据库的通用性能指标进行采集监控。支持 OceanBase 4.0+。 + +### 注意,必须添加 MYSQL jdbc 驱动 jar + +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) +- 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. +- 重启 HertzBeat 服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端 IPV4,IPV6 或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为2881。 | +| 查询超时时间 | 设置 SQL 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接 URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|------------| +| version | 无 | 数据库版本 | +| port | 无 | 数据库暴露服务端口 | +| datadir | 无 | 数据库存储数据盘地址 | +| max_connections | 无 | 数据库最大连接数 | + +#### 指标集合:status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|----------------| +| threads_created | 无 | OceanBase 已经创建的总连接数 | +| threads_connected | 无 | OceanBase 已经连接的连接数 | +| threads_cached | 无 | OceanBase 当前缓存的连接数 | +| threads_running | 无 | OceanBase 当前活跃的连接数 | + +#### 指标集合:innodb + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------|------|-------------------------| +| innodb_data_reads | 无 | innodb 平均每秒从文件中读取的次数 | +| innodb_data_writes | 无 | innodb 平均每秒从文件中写入的次数 | +| innodb_data_read | KB | innodb 平均每秒钟读取的数据量,单位为 KB | +| innodb_data_written | KB | innodb 平均每秒钟写入的数据量,单位为 KB | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/openai.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/openai.md new file mode 100644 index 00000000000..6ec6ff18316 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/openai.md @@ -0,0 +1,83 @@ +--- +id: openai +title: 监控:OpenAI 账户情况 +sidebar_label: OpenAI 账户情况 +keywords: [开源监控系统, 开源网络监控, OpenAI账户监控] +--- + +### 准备工作 + +#### 获取会话密钥 + +> 1. 打开 Chrome 浏览器的网络请求界面 +> `Mac: cmd + option + i` +> `Windows: ctrl + shift + i` +> 2. 访问 [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. 找到 [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) 请求 +> 4. 找到请求头中 Authorization 字段,并复制 `Bearer` 之后的内容。例如: `sess-123456` + +### 注意事项 + +> 1. 请确保 HertzBeat 可以具备外网访问能力。若不确定可以通过在 HertzBeat 中创建对 openai.com 的 HTTP API 监控进行探测尝试。 +> 2. 监控周期应至少大于 120 秒,避免发送的请求过于频繁,导致返回状态码 429 (太多请求)。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|----------|--------------------------------| +| 监控Host | 此处填写 api.openai.com 。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 会话密钥 | 即准备工作中获取的会话密钥。 | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:信用额度授予 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|--------|---------| +| 总授予额度 | 美元 ($) | 总授予额度 | +| 总使用额度 | 美元 ($) | 总使用额度 | +| 总可用额度 | 美元 ($) | 总可用额度 | +| 总付费可用额度 | 美元 ($) | 总付费可用额度 | + +#### 指标集合:模型花费 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|--------|--------| +| 模型名称 | 无 | 模型名称 | +| 花费 | 美元 ($) | 花费 | + +#### 指标集合:订阅计费 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|--------|--------------| +| 是否有支付方式 | 无 | 是否有支付方式 | +| 订阅是否已取消 | 无 | 订阅是否已取消 | +| 订阅取消时间 | 无 | 订阅取消时间 | +| 订阅是否拖欠 | 无 | 订阅是否拖欠 | +| 一定时间内最大使用量限制 | 次 | 一定时间内最大使用量限制 | +| 最大使用量限制 | 次 | 最大使用量限制 | +| 系统硬限制使用量 | 次 | 系统硬限制使用量 | +| 软限制费用 | 美元 ($) | 软限制费用 | +| 硬限制费用 | 美元 ($) | 硬限制费用 | +| 系统硬限制费用 | 美元 ($) | 系统硬限制费用 | +| 订阅计划 | 无 | 订阅计划 | +| 是否是主要订阅 | 无 | 是否是主要订阅 | +| 结算机制 | 无 | 结算机制 | +| 是否符合拖欠资格 | 无 | 是否符合拖欠资格 | +| 最大余额 | 美元 ($) | 最大余额 | +| 是否符合自动充值资格 | 无 | 是否符合自动充值资格 | +| 是否启用自动充值 | 无 | 是否启用自动充值 | +| 自动充值阈值 | 美元 ($) | 自动充值阈值 | +| 自动充值金额 | 美元 ($) | 自动充值金额 | +| 信用等级 | 无 | 信用等级 | +| 账户名称 | 无 | 账户名称 | +| 采购号 | 无 | 采购号 | +| 账单邮箱 | 无 | 账单邮箱 | +| 税务ID | 无 | 税务ID | +| 结算地址 | 无 | 结算地址 | +| 业务地址 | 无 | 业务地址 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opengauss.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opengauss.md new file mode 100644 index 00000000000..964fc909c33 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opengauss.md @@ -0,0 +1,55 @@ +--- +id: opengauss +title: 监控:OpenGauss数据库监控 +sidebar_label: OpenGauss数据库 +keywords: [开源监控系统, 开源数据库监控, OpenGauss数据库监控] +--- + +> 对PostgreSQL数据库的通用性能指标进行采集监控。支持PostgreSQL 10+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------------| +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------------------------------------------------------------| +| name | 无 | 数据库名称,或share-object为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 PostgreSQL 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| running | 连接数 | 当前客户端连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opensuse.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opensuse.md new file mode 100644 index 00000000000..0d38090a2ea --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/opensuse.md @@ -0,0 +1,114 @@ +--- +id: opensuse +title: 监控:OpenSUSE操作系统监控 +sidebar_label: OpenSUSE 操作系统 +keywords: [开源监控系统, 开源操作系统监控, OpenSUSE操作系统监控] +--- + +> 对OpenSUSE操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oracle.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oracle.md new file mode 100644 index 00000000000..f15d3dc62b5 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/oracle.md @@ -0,0 +1,172 @@ +--- +id: oracle +title: 监控:ORACLE数据库监控 +sidebar_label: ORACLE数据库 +keywords: [开源监控系统, 开源数据库监控, Oracle数据库监控] +--- + +> 对ORACLE数据库的通用性能指标进行采集监控。 + +### 注意, 必须添加 ORACLE jdbc 驱动 jar + +- 下载 ORACLE jdbc 驱动 jar 包,例如 [ojdbc8.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) [oracle-i18n](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar) +- 将 jar 包复制到 `hertzbeat/ext-lib` 目录下。 +- 重启 HertzBeat 服务。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为1521。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选。如果使用 sys 用户,可填写成"sys as sysdba" | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|---------| +| database_version | 无 | 数据库版本 | +| hostname | 无 | 主机名称 | +| instance_name | 无 | 数据库实例名称 | +| startup_time | 无 | 数据库启动时间 | +| status | 无 | 数据库状态 | + +#### 指标集合:表空间 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------| +| file_id | 无 | 文件ID | +| file_name | 无 | 文件名称 | +| tablespace_name | 无 | 所属表空间名称 | +| status | 无 | 状态 | +| bytes | MB | 大小 | +| blocks | 块 | 区块数量 | + +#### 指标集合:会话总数 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| count | 无 | 总数 | + +#### 指标集合:活动会话 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| count | 无 | 总数 | + +#### 指标集合:后台会话 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| count | 无 | 总数 | + +#### 指标集合:连接 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| username | 无 | 用户名 | +| count | 无 | 总数 | + +#### 指标集合:性能 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|---------------------------------------| +| qps | QPS | I/O Requests per Second 每秒IO请求数量 | +| tps | TPS | User Transaction Per Sec 每秒用户事物处理数量 | +| mbps | MBPS | I/O Megabytes per Second 每秒 I/O 兆字节数量 | + +#### 指标集合:表空间百分比 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|--------|--------| +| tablespace_name | 无 | 表空间名 | +| total | 无 | 全部 | +| used | 无 | 已用 | +| free | 无 | 空闲 | +| used_percentage | 百分比(%) | 已用百分比 | +| free_percentage | 百分比(%) | 空闲百分比 | + +#### 指标集合:进程 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|--------| +| process_count | 无 | 进程数 | + +#### 指标集合:事务 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| commits | t/s | 提交数 | +| rollbacks | t/s | 回滚数 | + +#### 指标集合:等待 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|--------|-----------| +| concurrent_wait_time | 毫秒(ms) | 并发等待时间 | +| commit_wait_time | 毫秒(ms) | 提交等待时间 | +| app_wait_time | 毫秒(ms) | 应用等待时间 | +| network_wait_time | 毫秒(ms) | 网络等待时间 | +| system_io_wait_time | 毫秒(ms) | 系统I/O等待时间 | +| user_io_wait_time | 毫秒(ms) | 用户I/O等待时间 | +| configure_wait_time | 毫秒(ms) | 配置等待时间 | +| scheduler_wait_time | 毫秒(ms) | 调度等待时间 | + +#### 指标集合:CPU 状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|--------| +| type | 无 | 类型 | +| num | 无 | 数量 | + +#### 指标集合:内存状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|--------| +| type | 无 | 类型 | +| num | 无 | 数量 | + +#### 指标集合:缓存命中率 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------|------|----------| +| lib_cache_hit_ratio | 无 | 库缓存命中率 | +| buffer_cache_hit_ratio | 无 | 缓冲区缓存命中率 | + +#### 指标集合:慢查询 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------| +| sql_id | 无 | sql 主键 | +| child_number | 无 | 子编号 | +| executions | 次 | 执行数 | +| per_secs | 秒 | 每秒执行数 | +| cpu_secs | 秒 | 每秒 CPU | +| buffer_gets | 无 | 获得的缓冲区 | +| disk_reads | 无 | 磁盘读取 | +| fetches | 无 | 获取数量 | +| parse_calls | 无 | 解析调用 | +| optimizer_cost | 无 | 优化器成本 | +| sql_text | 无 | SQL 文本 | + +#### 指标集合:用户信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------|------|------------------------------| +| username | 无 | 用户名 | +| account_status | 无 | 账号状态 | +| lock_date | 无 | 如果账户状态为 LOCKED,则显示锁定账户的日期和时间 | +| expiry_date | 无 | 密码的失效时间 | +| expiry_seconds | 秒 | 密码剩余有效时间,小于 0 表示已失效 | +| created | 无 | 创建时间 | +| authentication_type | 无 | 认证类型 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ping.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ping.md new file mode 100644 index 00000000000..2c43d17c346 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ping.md @@ -0,0 +1,36 @@ +--- +id: ping +title: 监控:PING连通性 +sidebar_label: PING连通性 +keywords: [开源监控系统, 开源网络监控, 网络PING监控] +--- + +> 对对端HOST地址进行PING操作,判断其连通性 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|----------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| Ping超时时间 | 设置PING未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | ms毫秒 | 网站响应时间 | + +### 常见问题 + +1. 安装包部署的hertzbeat下ping连通性监控异常 + 安装包安装部署的hertzbeat,对ping连通性监控不可用,但本地直接ping是可用的。 + +> 安装包部署需要配置java虚拟机root权限启动hertzbeat从而使用ICMP,若未启用root权限则是判断telnet对端7号端口是否开通 +> docker安装默认启用无此问题 +> 详见 [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/plugin.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/plugin.md new file mode 100644 index 00000000000..20c4e141f29 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/plugin.md @@ -0,0 +1,115 @@ +--- +id: plugin +title: 自定义插件(Beta) +sidebar_label: 自定义插件(Beta) +--- + +### 简介 + +当前`HertzBeat`在使用中,只有在告警后通过通知功能与外部系统产生交互,插件功能支持让用户在 `HertzBeat` 生命周期的各个阶段增加自定义操作。如在告警后执行`sql`、`shell`脚本等操作,在采集到监控数据后发送到其他的系统等。 +用户按照自定义插件的流程开发插件并打包后,将打包后的文件通过 `插件管理` - `上传插件` 功能,上传并启用插件即可在不重启`HertzBeat`的情况下增加自定义功能。 + +:::warning +在当前版本中,自定义插件作为一个测试功能,可能会有一些限制和不稳定性,后续版本可能会重构插件功能。` +::: + +### 支持的插件类型 + +1. `Post-Alert`插件 + - 作用:在告警后执行自定义操作 + - 实现接口:`org.apache.hertzbeat.plugin.PostAlertPlugin` +2. `Post-Collect`插件 + - 作用:在采集后执行自定义操作 + - 实现接口:`org.apache.hertzbeat.plugin.PostCollectPlugin` + +:::tip +为了保证插件功能清晰,易于管理,我们建议且只支持一个插件中只包含一种插件类型接口的一个实现。 +::: + +如需在采集、启动程序等时机设置触发方法,请在`https://github.com/apache/hertzbeat/issues/new/choose` 提`Task` + +### 开发步骤 (以实现一个告警后插件为例) + +1. 拉取主分支代码 `git clone https://github.com/apache/hertzbeat.git` ,定位到`plugin`模块的 + `Plugin`接口。 + ![plugin-1.png](/img/docs/help/plugin-1.png) +2. 在`org.apache.hertzbeat.plugin.impl`目录下(如果没有请自行创建), 新建一个 `org.apache.hertzbeat.plugin.PostAlertPlugin` 实现类,如`org.apache.hertzbeat.plugin.impl.DemoPlugin`,在实现类中接收`Alert` + 类作为参数,实现`execute`方法,逻辑由用户自定义,这里我们简单打印一下对象。 + + ```java + package org.apache.hertzbeat.plugin.impl; + + import org.apache.hertzbeat.common.entity.alerter.Alert; + import org.apache.hertzbeat.common.entity.plugin.PluginContext; + import org.apache.hertzbeat.plugin.PostAlertPlugin; + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; + + + public class DemoPlugin implements PostAlertPlugin { + + private static final Logger log = LoggerFactory.getLogger(DemoPlugin.class); + + @Override + public void execute(Alert alert, PluginContext pluginContext) { + log.info("DemoPlugin alert: {}", alert); + log.info("DemoPlugin pluginContext: {}", pluginContext); + } + } + ``` + +3. 在 `META-INF/services/org.apache.hertzbeat.plugin.PostAlertPlugin` (如果没有请自行创建) 文件中增加接口实现类的全限定名,每个实现类全限定名单独成行。 + + ```shell + org.apache.hertzbeat.plugin.impl.DemoPluginImpl + ``` + +4. 打包 `hertzbeat-plugin` 模块。 + + ```shell + cd plugin + mvn package + ``` + +5. 通过 `插件管理`-`上传插件` 功能,上传以 `-jar-with-lib.jar` 结尾的插件包,启用插件即可在告警后执行自定义操作。 + +### 定义插件参数 + +插件功能支持自定义参数,并且在使用插件时可以通过`插件管理` - `编辑参数` 功能填写插件运行时需要的参数。 +下面以定义一个包含两个参数的插件为例,详细介绍定义插件参数的流程: + +1. 在 `define` 目录下增加参数定义文件 ,注意参数定义文件必须是名称为 define 开头的 yml 文件,例如 `define-demo.yml`; +2. 在 `define-demo.yml` 中定义参数,如下所示: + + ```yaml + params: + - field: host + # name-param field display i18n name + name: + zh-CN: 目标 Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: text + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + ``` + +3. 在插件逻辑中使用参数 + + ```java + @Override + public void execute(Alert alert, PluginContext pluginContext) { + log.info("param host:{}",pluginContext.getString("host")); + log.info("param port:{}",pluginContext.getInteger("port")); + } + ``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pop3.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pop3.md new file mode 100644 index 00000000000..7a55a98df3e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pop3.md @@ -0,0 +1,46 @@ +--- +id: pop3 +title: 监控POP3 +sidebar_label: POP3监控 +keywords: [开源监控工具,开源Java监控工具,监控POP3指标] +--- + +> 收集和监控POP3的常规性能指标。 + +**使用的协议:POP3** + +### 启用POP3服务 + +如果您想使用此监控类型来监控"POP3"的信息,请在您的邮件服务器上开启POP3服务。 + +**1、开启POP3服务:** + +```text +以qq邮箱为例【其它邮箱类似】: + 1. 点击`设置`选项 + 2. 选择`账号` + 3. 找到开启SMTP/POP3/IMAP选项,并开启 + 4. 得到POP3服务器域名,端口号,以及授权码【开启SMTP/POP3/IMAP服务后,qq邮箱提供】 + 5. 通过POP3服务器域名,端口号,qq邮箱账号以及授权码连接POP3服务器,采集监控指标 +``` + +### 配置参数 + +| 参数名 | 参数描述 | +|--------|-----------------------------------------------------| +| 监控主机 | 被监控的 IPV4、IPV6 或域名。注意⚠️不需要协议头部(例如:https://,http://) | +| 监控名称 | 标识此监控的名称。名称需要唯一 | +| 端口 | POP3 提供的端口 | +| 超时时间 | 允许收集响应时间 | +| 收集间隔时间 | 监控周期性数据收集的间隔时间,单位为秒,最小可设置的间隔时间为30秒 | +| 是否检测 | 是否在添加监控之前检测和确认监控的可用性。只有在检测成功后,添加和修改操作才会继续进行 | +| 描述备注 | 用户可以在此处注明有关标识和描述此监控的更多信息 | + +### 采集指标 + +#### 指标集:email_status + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------| +| 邮件数量 | | 邮件数量 | +| 邮箱总大小 | kb | 邮箱中邮件的总大小 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/port.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/port.md new file mode 100644 index 00000000000..0b73299aa53 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/port.md @@ -0,0 +1,28 @@ +--- +id: port +title: 监控:端口可用性 +sidebar_label: TCP 端口可用性 +keywords: [开源监控系统, 开源网络监控, TCP 端口可用性监控] +--- + +> 判断对端服务暴露端口是否可用,进而判断对端服务是否可用,采集响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 连接超时时间 | 端口连接的等待超时时间,单位毫秒,默认3000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | ms毫秒 | 网站响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/postgresql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/postgresql.md new file mode 100644 index 00000000000..12485e62ffa --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/postgresql.md @@ -0,0 +1,55 @@ +--- +id: postgresql +title: 监控:PostgreSQL数据库监控 +sidebar_label: PostgreSQL数据库 +keywords: [开源监控系统, 开源数据库监控, PostgreSQL数据库监控] +--- + +> 对PostgreSQL数据库的通用性能指标进行采集监控。支持PostgreSQL 10+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------------| +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------------------------------------------------------------| +| name | 无 | 数据库名称,或share-object为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 PostgreSQL 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| running | 连接数 | 当前客户端连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prestodb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prestodb.md new file mode 100644 index 00000000000..64b785fde73 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prestodb.md @@ -0,0 +1,74 @@ +--- +id: presto +title: 监控:PrestoDB 数据库 +sidebar_label: PrestoDB 数据库 +keywords: [ 开源监控系统, 开源数据库监控, Presto数据库监控 ] +--- + +> 对PrestoDB Atlas 的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 被监控的平台端口。 | +| 连接超时时间 | 设置连接PrestoDB未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:集群状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------| +| activeWorkers | 无 | 活跃节点数 | +| runningQueries | 无 | 运行中的查询数 | +| queuedQueries | 无 | 队列中的查询数 | +| blockedQueries | 无 | 阻塞的查询数 | +| runningDrivers | 无 | 运行中的驱动数 | +| runningTasks | 无 | 运行中的任务数 | + +#### 指标集合:节点信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|----------------| +| uri | 无 | 节点链接 | +| recentRequests | 无 | 最近一段时间内的请求数量 | +| recentFailures | 无 | 最近一段时间内的失败请求数量 | +| recentSuccesses | 无 | 最近一段时间内的成功请求数量 | +| lastRequestTime | 无 | 最近一次请求的时间 | +| lastResponseTime | 无 | 最近一次响应的时间 | +| age | 无 | 持续时间 | +| recentFailureRatio | 无 | 最近一段时间内的失败 | + +#### 指标集合:节点状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|----------| +| nodeId | 无 | 节点ID | +| nodeVersion | 无 | 节点版本 | +| environment | 无 | 环境 | +| coordinator | 无 | 是否为协调节点 | +| uptime | 无 | 正常运行时间 | +| externalAddress | 无 | 外部地址 | +| internalAddress | 无 | 内部地址 | +| processors | 无 | 处理器数量 | +| processCpuLoad | 无 | 进程CPU负载 | +| systemCpuLoad | 无 | 系统CPU负载 | +| heapUsed | MB | 已使用堆内存 | +| heapAvailable | MB | 可用堆内存 | +| nonHeapUsed | MB | 请已使用非堆内存 | + +#### 指标集合: 任务查询 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|--------| +| taskId | 无 | 任务ID | +| version | 无 | 版本 | +| state | 无 | 状态 | +| self | 无 | 自身 | +| lastHeartbeat | 无 | 最后心跳时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/process.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/process.md new file mode 100644 index 00000000000..cd21bece380 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/process.md @@ -0,0 +1,87 @@ +--- +id: process +title: 监控:Linux 进程监控 +sidebar_label: Process +keywords: [开源监控系统, 操作系统进程监控, 进程监控] +--- + +> 对Linux系统进程基础信息进行采集监控,包括进程的 CPU使用率、内存使用率、物理内存、IO 等监控 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux系统的ssh端口,默认: 22 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次回去信息都会创建一个连接 | +| 用户名 | 服务器用户名 | +| 密码 | 服务器密码 | +| 进程名称 | 需要监控的进程名称或进程部分名称 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需私钥 | + +### 采集指标 + +#### 指标集合:进程基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|--------| +| PID | 无 | 进程ID | +| User | 无 | 用户 | +| CPU | 无 | CPU使用率 | +| MEM | 无 | 内存使用率 | +| rss | 无 | 物理内存 | +| cmd | 无 | 运行命令 | + +#### 指标集合:内存使用信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|--------| +| PID | 无 | 进程ID | +| detail | 无 | 详细监控指标 | + +包含的指标: + +- 虚拟内存峰值 +- 当前虚拟内存使用 +- 锁定内存 +- 固定内存 +- 物理内存峰值 +- 当前物理内存使用 +- 数据段大小 +- 堆栈大小 +- 代码大小 +- 共享库大小 +- 页表项大小 + +#### 指标集合:其他监控信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|-----------| +| PID | 无 | 进程ID | +| path | 无 | 执行路径 | +| date | 无 | 启动时间 | +| fd_count | 无 | 打开文件描述符数量 | + +#### 指标集合:IO + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|--------| +| PID | 无 | 进程ID | +| metric | 无 | 监控指标名称 | +| value | 无 | 监控指标值 | + +包含的指标: + +- rchar(进程从磁盘或其他文件读取的总字节数) +- wchar(进程写入到磁盘或其他文件的总字节数) +- syscr(进程发起的读取操作的次数) +- syscw(进程发起的写入操作的次数) +- read_bytes(进程从磁盘实际读取的字节数) +- write_bytes(进程写入到磁盘的实际字节数) +- cancelled_write_bytes(进程写入到磁盘的实际字节数) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prometheus.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prometheus.md new file mode 100755 index 00000000000..a9feebfe623 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/prometheus.md @@ -0,0 +1,41 @@ +--- +id: prometheus +title: 监控:Prometheus任务监控 +sidebar_label: Prometheus任务监控 +keywords: [ 开源监控系统, Prometheus协议监控 ] +--- + +> 采集支持Prometheus协议的应用的指标数据。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(例如: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 监控HTTP端口。 | +| 端点路径 | 监控HTTP接口的路径,注意⚠️需要从 `/` 开始。 | +| 查询超时时间 | 设置采集数据超时时间,单位ms毫秒,默认6000毫秒。 | +| 启用HTTPS | 采集数据是否启用HTTPS,可选,默认值:否 | +| 请求Headers | 访问监控HTTP接口请求头信息,可选。 | +| 查询Params | 访问监控HTTP接口查询参数信息,可选。 | +| Content-Type | HTTP请求的ContentType,可选。 | +| 请求BODY | 请求体,可选。 | +| 认证方式 | 认证方式,可选值包括:`Basic Auth`,`Digest Auth`,可选。 | +| 用户名 | 用户名,可选。 | +| 密码 | 密码,可选。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 使用示例 + +应用暴露的监控地址为:`http://127.0.0.1:8080/actuator/prometheus` + +可以使用如下配置: + +- 目标Host:`127.0.0.1` +- 端口:`8080` +- 端点路径:`/actuator/prometheus` + +其余设置保持默认。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pulsar.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pulsar.md new file mode 100644 index 00000000000..f37070d8604 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/pulsar.md @@ -0,0 +1,72 @@ +--- +id: pulsar +title: 监控:Pulsar监控 +sidebar_label: Apache Pulsar +keywords: [开源监控系统, 开源数据库监控, HbaseMaster监控] +--- + +> 对Pulsar的通用性能指标进行采集监控 + +**使用协议:HTTP** + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 端口 | Pulsar的webServiceProt值,默认为8080。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:版本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| Version Info | 无 | 版本信息 | + +#### 指标集合:process_start_time_seconds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------| +| Process Start Time | 无 | 进程启动时间 | + +#### 指标集合:process_open_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| Open File Descriptors | 无 | 打开的文件描述符 | + +#### 指标集合:process_max_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|---------| +| Max File Descriptors | 无 | 最大文件描述符 | + +#### 指标集合: jvm_memory_pool_allocated_bytes + +Java虚拟机(JVM)中特定内存池已分配的内存字节数。在Pulsar中,这通常指的是用于各种目的的JVM内存(如堆内存、非堆内存等)中已经分配出去的内存量。 + +#### 指标集合:jvm_memory_pool_used_bytes + +与allocated_bytes不同,这个指标会显示实际使用的内存,而不仅仅是分配的内存。 + +#### 指标集合:jvm_memory_pool_committed_bytes + +JVM中特定内存池已承诺的内存字节数。在JVM中,承诺的内存是指虚拟机保证可供应用程序使用的内存量,通常这部分内存会被操作系统锁定,以减少交换或垃圾回收的可能性。 + +#### 指标集合:jvm_memory_pool_max_bytes + +JVM中特定内存池可分配的最大内存字节数。这是该内存池允许的最大内存限制,有助于设置内存使用的上限。 + +#### 指标集合:pulsar_broker_publish_latency + +Broker端消息发布延迟 + +#### 指标集合:pulsar_metadata_store_ops_latency_ms + +Broker端元数据存储操作延迟 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rabbitmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rabbitmq.md new file mode 100644 index 00000000000..be554adf7aa --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rabbitmq.md @@ -0,0 +1,125 @@ +--- +id: rabbitmq +title: 监控 RabbitMQ 消息中间件 +sidebar_label: RabbitMQ消息中间件 +keywords: [开源监控系统, 开源消息中间件监控, RabbitMQ消息中间件监控] +--- + +> 对 RabbitMQ 消息中间件的运行状态,节点,队列等相关指标进行监测。 + +### 监控前操作 + +> HertzBeat 使用 RabbitMQ Management 的 Rest Api 对 RabbitMQ 进行指标数据采集。 +> 故需要您的 RabbitMQ 环境开启 Management 插件 + +1. 开启 Management 插件,或使用自开启版本 + + ```shell + rabbitmq-plugins enable rabbitmq_management + ``` + +2. 浏览器访问 [http://ip:15672/](http://ip:15672/) ,默认账户密码 `guest/guest`. 成功登录即开启成功。 + +3. 在 HertzBeat 添加对应 RabbitMQ 监控即可,参数使用 Management 的 IP 端口,默认账户密码。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | RabbitMQ Management 对外提供的HTTP端口,默认为15672。 | +| 用户名 | 接口Basic认证时使用的用户名 | +| 密码 | 接口Basic认证时使用的密码 | +| 超时时间 | HTTP请求查询超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:overview + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------------------------| +| product_version | 无 | 产品版本 | +| product_name | 无 | 产品名称 | +| rabbitmq_version | 无 | rabbitmq 版本 | +| management_version | 无 | rabbitmq management 插件版本 | +| erlang_version | 无 | erlang 版本 | +| cluster_name | 无 | 集群名称 | +| rates_mode | 无 | rates模式 | + +#### 指标集合:object_totals + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|-----------------| +| channels | 无 | channels的总数量 | +| connections | 无 | connections的总数量 | +| consumers | 无 | consumers的总数量 | +| exchanges | 无 | exchanges的总数量 | +| queues | 无 | queues的总数量 | + +#### 指标集合:nodes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|-------------------------------| +| name | 无 | The node name | +| type | 无 | The node type | +| running | 无 | Running state | +| os_pid | 无 | Pid in OS | +| mem_limit | MB | Memory usage high watermark | +| mem_used | MB | Total amount of memory used | +| fd_total | 无 | File descriptors available | +| fd_used | 无 | File descriptors used | +| sockets_total | 无 | Sockets available | +| sockets_used | 无 | Sockets used | +| proc_total | 无 | Erlang process limit | +| proc_used | 无 | Erlang processes used | +| disk_free_limit | GB | Free disk space low watermark | +| disk_free | GB | Free disk space | +| gc_num | 无 | GC runs | +| gc_bytes_reclaimed | MB | Bytes reclaimed by GC | +| context_switches | 无 | Context_switches num | +| io_read_count | 无 | 总共读操作的数量 | +| io_read_bytes | KB | 总共读入磁盘数据大小 | +| io_read_avg_time | ms | 读操作平均时间,毫秒为单位 | +| io_write_count | 无 | 磁盘写操作总量 | +| io_write_bytes | KB | 写入磁盘数据总量 | +| io_write_avg_time | ms | 每个磁盘写操作的平均时间,毫秒为单位 | +| io_seek_count | 无 | seek操作总量 | +| io_seek_avg_time | ms | seek操作的平均时间,毫秒单位 | +| io_sync_count | 无 | fsync操作的总量 | +| io_sync_avg_time | ms | fsync操作的平均时间,毫秒为单位 | +| connection_created | 无 | connection created num | +| connection_closed | 无 | connection closed num | +| channel_created | 无 | channel created num | +| channel_closed | 无 | channel closed num | +| queue_declared | 无 | queue declared num | +| queue_created | 无 | queue created num | +| queue_deleted | 无 | queue deleted num | +| connection_closed | 无 | connection closed num | + +#### 指标集合:queues + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|------|--------------------------------------------------------------------------------------------------------------------------------------| +| name | 无 | The name of the queue with non-ASCII characters escaped as in C. | +| node | 无 | The queue on the node name | +| state | 无 | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | +| type | 无 | Queue type, one of: quorum, stream, classic. | +| vhost | 无 | vhost path | +| auto_delete | 无 | Whether the queue will be deleted automatically when no longer used | +| policy | 无 | Effective policy name for the queue. | +| consumers | 无 | Number of consumers. | +| memory | B | Bytes of memory allocated by the runtime for the queue, including stack, heap and internal structures. | +| messages_ready | 无 | Number of messages ready to be delivered to clients | +| messages_unacknowledged | 无 | Number of messages delivered to clients but not yet acknowledged | +| messages | 无 | Sum of ready and unacknowledged messages (queue depth) | +| messages_ready_ram | 无 | Number of messages from messages_ready which are resident in ram | +| messages_persistent | 无 | Total number of persistent messages in the queue (will always be 0 for transient queues) | +| message_bytes | B | Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead | +| message_bytes_ready | B | Like message_bytes but counting only those messages ready to be delivered to clients | +| message_bytes_unacknowledged | B | Like message_bytes but counting only those messages delivered to clients but not yet acknowledged | +| message_bytes_ram | B | Like message_bytes but counting only those messages which are currently held in RAM | +| message_bytes_persistent | B | Like message_bytes but counting only those messages which are persistent | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redhat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redhat.md new file mode 100644 index 00000000000..5201ab2b989 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redhat.md @@ -0,0 +1,114 @@ +--- +id: redhat +title: 监控:RedHat操作系统监控 +sidebar_label: RedHat 操作系统 +keywords: [ 开源监控系统, 开源操作系统监控, RedHat操作系统监控 ] +--- + +> 对RedHat操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号,默认为22。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis.md new file mode 100644 index 00000000000..d34ac3ca56c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis.md @@ -0,0 +1,239 @@ +--- +id: redis +title: 监控:REDIS数据库监控 +sidebar_label: Redis 数据库 +keywords: [开源监控系统, 开源数据库监控, Redis数据库监控] +--- + +> 对REDIS数据库的通用性能指标进行采集监控。支持REDIS1.0+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | redis对外提供的端口,默认为6379,sentinel节点默认26379 | +| 超时时间 | 设置redis info 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------|------|-----------------------------------------------| +| redis_version | 无 | Redis 服务器版本 | +| redis_git_sha1 | 无 | Git SHA1 | +| redis_git_dirty | 无 | Git dirty flag | +| redis_build_id | 无 | redis 构建的id | +| redis_mode | 无 | redis模式(包括standalone, sentinel, cluster) | +| os | 无 | Redis 服务器的宿主操作系统 | +| arch_bits | 无 | 架构(32 或 64 位) | +| multiplexing_api | 无 | Redis使用的事件循环机制 | +| atomicvar_api | 无 | Redis使用的原子 API | +| gcc_version | 无 | 用于编译Redis服务器的GCC编译器版本 | +| process_id | 无 | 服务器进程的PID | +| process_supervised | 无 | 受监管系统(包括:upstart、systemd、unknown、no) | +| run_id | 无 | 标识Redis服务器的随机值(由Sentinel和Cluster使用) | +| tcp_port | 无 | TCP/IP侦听端口 | +| server_time_usec | 无 | 微秒级精度的基于时间的系统时间 | +| uptime_in_seconds | 无 | 自Redis服务器启动后的秒数 | +| uptime_in_days | 无 | 自Redis服务器启动后的天数 | +| hz | 无 | 服务器的当前频率设置,redis相关定时任务的执行频率(如清除过期key,关闭超时客户端) | +| configured_hz | 无 | 服务器配置的频率设置 | +| lru_clock | 无 | 时钟每分钟递增,用于LRU管理 | +| executable | 无 | 服务器可执行文件的路径 | +| config_file | 无 | 配置文件的路径 | +| io_threads_active | 无 | 指示I/O线程是否处于活动状态的标志 | +| shutdown_in_milliseconds | 无 | 复制副本在完成关闭序列之前赶上复制的最长剩余时间。此字段仅在停机期间出现。 | + +#### 指标集合:clients + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|--------------------------------------------------------------------------------| +| connected_clients | 无 | 客户端连接数(不包括来自副本的连接) | +| cluster_connections | 无 | 群集总线使用的套接字数量的近似值 | +| maxclients | 无 | maxclients配置指令的值。这是connected_clients、connected_slave和cluster_connections之和的上限。 | +| client_recent_max_input_buffer | byte | 当前客户端连接中最大的输入缓冲区 | +| client_recent_max_output_buffer | byte | 当前客户端连接中最大的输出缓冲区 | +| blocked_clients | 无 | 阻塞呼叫挂起的客户端数(BLPOP、BRPOP、BRPOPLPUSH、BLMOVE、BZPOPMIN、BZPOPMAX) | +| tracking_clients | 无 | 正在跟踪的客户端数(CLIENT TRACKING) | +| clients_in_timeout_table | 无 | 客户端超时表中的客户端数 | + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|----------|-----------------------------------------------------------------------------------------------| +| used_memory | byte | Redis使用其分配器(标准libc、jemalloc或tcmalloc等替代分配器)分配的总字节数 | +| used_memory_human | GB/MB/KB | 上一个值的人类可读表示 | +| used_memory_rss | byte | 操作系统看到的Redis分配的字节数(也称为驻留集大小)。这是top(1)和ps(1)等工具报告的数字 | +| used_memory_rss_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak | byte | Redis消耗的峰值内存(字节) | +| used_memory_peak_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak_perc | 无 | used_memory_peak 与used_memory百分比 | +| used_memory_overhead | byte | 服务器分配用于管理其内部数据结构的所有开销的字节总和 | +| used_memory_startup | byte | Redis在启动时消耗的初始内存量(字节) | +| used_memory_dataset | byte | 数据集的字节大小(used_memory - used_memory_overhead) | +| used_memory_dataset_perc | 无 | 已用内存数据集占净内存使用量的百分比(used_memory_dataset / (used_memory - used_memory_startup)) | +| allocator_allocated | byte | 从分配器分配的总字节数,包括内部碎片。通常与使用的内存相同 | +| allocator_active | byte | 分配器活动页中的总字节数,包括外部碎片 | +| allocator_resident | byte | 分配器中驻留的总字节数(RSS),包括可释放到操作系统的页面(通过MEMORY PURGE或仅等待) | +| total_system_memory | byte | Redis主机的内存总量 | +| total_system_memory_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_lua | byte | Lua引擎使用的字节数 | +| used_memory_lua_human | KB | 上一个值的人类可读值 | +| used_memory_scripts | byte | 缓存Lua脚本使用的字节数 | +| used_memory_scripts_human | GB/MB/KB | 上一值的人类可读值 | +| number_of_cached_scripts | 无 | 缓存的lua脚本数量 | +| maxmemory | byte | maxmemory配置指令的值 | +| maxmemory_human | GB/MB/KB | 上一个值的人类可读值 | +| maxmemory_policy | 无 | 当达到maxmemory时的淘汰策略 | +| allocator_frag_ratio | 无 | allocator_active 和 allocator_allocated之间的比率这是真实(外部)碎片度量(不是mem_fragmentation_ratio) | +| allocator_frag_bytes | byte | allocator_active 和 allocator_allocated 之间的差值。 | +| allocator_rss_ratio | | 从操作系统角度看, 内存分配器碎片比例 | +| allocator_rss_bytes | byte | allocator_resident 和 allocator_active之间的差值 | +| rss_overhead_ratio | 无 | used_memory_rss和allocator_resident之间的比率,这包括与分配器或堆无关的RSS开销 | +| rss_overhead_bytes | byte | used_memory_rss和allocator_resident之间的增量 | +| mem_fragmentation_ratio | 无 | used_memory_rss和used_memory之间的比率,注意,这不仅包括碎片,还包括其他进程开销(请参阅allocator_* metrics),以及代码、共享库、堆栈等开销。 | +| mem_fragmentation_bytes | byte | used_memory_rss和used_memory之间的增量。注意,当总碎片字节较低(几兆字节)时,高比率(例如1.5及以上)不是问题的表现 | +| mem_not_counted_for_evict | byte | 不应驱逐的内存大小,以字节为单位。这基本上是瞬时复制和AOF缓冲区。 | +| mem_replication_backlog | byte | 复制backlog的内存大小, 以字节为单位 | +| mem_clients_slaves | 无 | 副本客户端使用的内存-从Redis 7.0开始,副本缓冲区与复制积压工作共享内存,因此当副本不触发内存使用增加时,此字段可以显示0。 | +| mem_clients_normal | 无 | 普通客户端使用的内存 | +| mem_aof_buffer | 无 | 用于AOF和AOF重写缓冲区的临时大小 | +| mem_allocator | 无 | 内存分配器,在编译时选择。 | +| active_defrag_running | 无 | 启用activedefrag时,这表示碎片整理当前是否处于活动状态,以及它打算使用的CPU百分比。 | +| lazyfree_pending_objects | 无 | 等待释放的对象数(使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHOLL) | +| lazyfreed_objects | 无 | 已延迟释放的对象数。 | + +#### 指标集合:persistence + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|--------|-----------------------------------------------------------------------------------------------------| +| loading | 无 | 服务器是否正在进行持久化 0 - 否 1 -是 | +| current_cow_size | byte | 运行子fork时写入时复制内存的大小(以字节为单位) | +| current_cow_size_age | second | current_cow_size值的年龄(以秒为单位) | +| current_fork_perc | 无 | 当前fork进程的百分比,对于AOF和RDB的fork,它是current_save_keys_processed占current_save_keys_total的百分比 | +| current_save_keys_processed | 无 | 当前保存操作处理的key的数量 | +| current_save_keys_total | 无 | 当前保存操作开始时的key的数量 | +| rdb_changes_since_last_save | 无 | 离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化 | +| rdb_bgsave_in_progress | 无 | 服务器是否正在创建rdb文件 0 - 否 1 - 是 | +| rdb_last_save_time | second | 最近一次创建rdb文件的时间戳,单位秒 | +| rdb_last_bgsave_status | 无 | 最近一次rdb持久化是否成功 ok 成功 | +| rdb_last_bgsave_time_sec | second | 最近一次成功生成rdb文件耗时秒数 | +| rdb_current_bgsave_time_sec | 无 | 如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数 | +| rdb_last_cow_size | 无 | RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| aof_enabled | 无 | 是否开启了AOF 0 - 否 1 - 是 | +| aof_rewrite_in_progress | 无 | 标识aof的rewrite操作是否在进行中 0 - 否 1- 是 | +| aof_rewrite_scheduled | 无 | rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite | +| aof_last_rewrite_time_sec | 无 | 最近一次aof rewrite耗费的时长 | +| aof_current_rewrite_time_sec | second | 如果rewrite操作正在进行,则记录所使用的时间,单位秒 | +| aof_last_bgrewrite_status | 无 | 上次 bgrewrite aof 操作的状态 ok 成功 | +| aof_last_write_status | 无 | 上次aof写入状态 | +| aof_last_cow_size | 无 | AOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| module_fork_in_progress | 无 | 指示fork模块正在进行的标志 | +| module_fork_last_cow_size | 无 | 上一次fork操作期间写入时复制内存的字节大小 | + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|----------------------------------------------------| +| total_connections_received | 无 | 服务器接受的连接总数 | +| total_commands_processed | 无 | 服务器处理的命令总数 | +| instantaneous_ops_per_sec | 无 | 每秒处理的命令数 | +| total_net_input_bytes | byte | 从网络读取的字节总数 | +| total_net_output_bytes | byte | 写入网络的总字节数 | +| instantaneous_input_kbps | KB/S | 网络每秒的读取速率(KB/秒) | +| instantaneous_output_kbps | KB/S | 网络每秒的写入速率(KB/秒) | +| rejected_connections | 无 | 由于maxclients限制而拒绝的连接数 | +| sync_full | 无 | 具有副本的完整重新同步数 | +| sync_partial_ok | 无 | 接受的部分重新同步请求数 | +| sync_partial_err | 无 | 被拒绝的部分重新同步请求数 | +| expired_keys | 无 | 过期的key总数 | +| expired_stale_perc | 无 | 可能过期key的百分比 | +| expired_time_cap_reached_count | 无 | 活动过期周期提前停止的次数 | +| expire_cycle_cpu_milliseconds | 无 | 活动到期周期所花费的累计时间 | +| evicted_keys | 无 | 由于最大内存限制而收回key的数量 | +| keyspace_hits | 无 | 在主dict 中成功查找key的次数 | +| keyspace_misses | 无 | 在主dict 中未查到key的次数 | +| pubsub_channels | 无 | 客户端使用 pub/sub 频道的总和 | +| pubsub_patterns | 无 | 客户端使用 pub/sub 模式的全局数量 | +| latest_fork_usec | 无 | 最后一次fork操作的持续时间(以微秒为单位) | +| total_forks | 无 | 自服务器启动以来的fork操作总数 | +| migrate_cached_sockets | 无 | 为MIGRATE目的打开的socket数量 | +| slave_expires_tracked_keys | 无 | trace key 到期的数量(仅适用于可写副本) | +| active_defrag_hits | 无 | 主动碎片整理命中次数 | +| active_defrag_misses | 无 | 主动碎片整理未命中次数 | +| active_defrag_key_hits | 无 | 主动碎片整理key命中次数 | +| active_defrag_key_misses | 无 | 主动碎片整理key未命中次数 | +| tracking_total_keys | 无 | key 查询的总数 | +| tracking_total_items | 无 | item查询的总数 | +| tracking_total_prefixes | 无 | 前缀查询的总数 | +| unexpected_error_replies | 无 | 意外错误回复数,即AOF加载或复制中的错误类型 | +| total_error_replies | 无 | 发出的错误回复总数,即被拒绝的命令(命令执行之前的错误)和失败的命令(在命令执行过程中的错误)的总和 | +| dump_payload_sanitizations | 无 | 参考sanitize-dump-payload配置 | +| total_reads_processed | 无 | 正在读取的请求数 | +| total_writes_processed | 无 | 正在写入的请求数 | +| io_threaded_reads_processed | 无 | 正在读取的线程数 | +| io_threaded_writes_processed | 无 | 正在写入的线程数 | + +#### 指标集合:replication + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|-------------------------------------------------------------------------------------| +| role | 无 | 节点角色 master 主节点 slave 从节点 | +| connected_slaves | 无 | 连接的从节点数 | +| master_failover_state | 无 | 正在进行的故障切换的状态(如果有) | +| master_replid | 无 | 实例启动的随机字符串 | +| master_replid2 | 无 | 故障切换后用于PSYNC的辅助复制ID | +| master_repl_offset | 无 | 主从同步偏移量 | +| second_repl_offset | 无 | 接受从服务ID的最大偏移量 | +| repl_backlog_active | 无 | 表示从服务挤压处于活动状态 | +| repl_backlog_size | byte | 从服务积压缓冲区的总大小(字节) | +| repl_backlog_first_byte_offset | 无 | 复制缓冲区里偏移量的大小 | +| repl_backlog_histlen | 无 | 此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|------|------------------------| +| used_cpu_sys | 无 | Redis主进程在内核态所占用CPU时钟总和 | +| used_cpu_user | 无 | Redis主进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_children | 无 | Redis子进程在内核态所占用CPU时钟总和 | +| used_cpu_user_children | 无 | Redis子进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_main_thread | 无 | Redis服务器主线程消耗的内核CPU | +| used_cpu_user_main_thread | 无 | Redis服务器主线程消耗的用户CPU | + +#### 指标集合:errorstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|-----------| +| errorstat_ERR | 无 | 错误累计出现的次数 | +| errorstat_MISCONF | 无 | | + +#### 指标集合:cluster + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|--------------------| +| cluster_enabled | 无 | 集群是否开启 0 - 否 1 - 是 | + +#### 指标集合:commandstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|---------------------------------------------------------------------------------------------------------------------------| +| cmdstat_set | 无 | set命令的统计信息,calls: 累计调用该命令的次数;usec: 调用该命令的累计耗时,单位微秒;usec_per_call: 调用该命令的平均耗时;rejected_call: 拒绝执行的次数;failed_calls: 调用失败的次数 | +| cmdstat_get | 无 | get命令的统计信息 | +| cmdstat_setnx | 无 | setnx命令的统计信息 | +| cmdstat_hset | 无 | hset命令的统计信息 | +| cmdstat_hget | 无 | hget命令的统计信息 | +| cmdstat_lpush | 无 | lpush命令的统计信息 | +| cmdstat_rpush | 无 | rpush命令的统计信息 | +| cmdstat_lpop | 无 | lpop命令的统计信息 | +| cmdstat_rpop | 无 | rpop命令的统计信息 | +| cmdstat_llen | 无 | llen命令的统计信息 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis_cluster.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis_cluster.md new file mode 100644 index 00000000000..3b6537dcc5d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/redis_cluster.md @@ -0,0 +1,166 @@ +--- +id: redis_cluster +title: 监控:Redis Cluster 数据库监控 +sidebar_label: Redis Cluster数据库 +keywords: [开源监控系统, 开源数据库监控, RedisCluster数据库监控] +--- + +### Pre-monitoring operations + +1. 创建一个空目录, 然后在目录下添加以下两个文件. + + *redis.config* + + ```properties + port 6379 + cluster-enabled yes + cluster-config-file nodes.conf + cluster-node-timeout 5000 + appendonly yes + bind 0.0.0.0 + protected-mode no + + ``` + + *docker-compose.yml* + + ```yml + services: + redis-master-1: + image: redis:latest + container_name: redis-master-1 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "1000:6379" + + redis-master-2: + image: redis:latest + container_name: redis-master-2 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "2000:6379" + + redis-master-3: + image: redis:latest + container_name: redis-master-3 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "3000:6379" + + redis-slave-1: + image: redis:latest + container_name: redis-slave-1 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "1001:6379" + + redis-slave-2: + image: redis:latest + container_name: redis-slave-2 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "2001:6379" + + redis-slave-3: + image: redis:latest + container_name: redis-slave-3 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "3001:6379" + + networks: + default: + external: + name: hertzbeat-redis-cluster + ``` + +2. 查看所有容器的 IP 地址,搭建 Redis 集群时需要用到这些. + + ```bash + docker-compose up -d + docker network inspect hertzbeat-redis-cluste + ``` + + ```json + "Containers": { + "187b879f73c473b3cbb82ff95f668e65af46115ddaa27f3ff1a712332b981531": { + ... + "Name": "redis-slave-2", + "IPv4Address": "192.168.117.6/24", + ... + }, + "45e22b64c82e51857fc104436cdd6cc0c5776ad10a2e4b9d8e52e36cfb87217e": { + ... + "Name": "redis-master-3", + "IPv4Address": "192.168.117.3/24 + ... + }, + "57838ae37956f8af181f9a131eb011efec332b9ed3d49480f59d8962ececf288": { + ... + "Name": "redis-master-2", + "IPv4Address": "192.168.117.7/24", + ... + }, + "94478d14bd950bcde533134870beb89b392515843027a0595af56dd1e3305a76": { + ... + "Name": "redis-master-1", + "IPv4Address": "192.168.117.4/24", + ... + }, + "ad055720747e7fc430ba794d5321723740eeb345c280073e4292ed4302ff657c": { + ... + "Name": "redis-slave-3", + "IPv4Address": "192.168.117.2/24", + ... + }, + "eddded1ac4c7528640ba0c6befbdaa48faa7cb13905b934ca1f5c69ab364c725": { + ... + "Name": "redis-slave-1", + "IPv4Address": "192.168.117.5/24", + ... + } + }, + ``` + +3. 进入容器, 然后构建集群. + + ```bash + docker exec -it redis-master-1 /bin/bash + ``` + + ```bash + redis-cli --cluster create \ + 192.168.117.4:6379 \ + 192.168.117.7:6379 \ + 192.168.117.3:6379 \ + 192.168.117.5:6379 \ + 192.168.117.6:6379 \ + 192.168.117.2:6379 \ + --cluster-replicas 1 + ``` + +4. 最终的效果. + + 添加监控节点时填入所需要的参数. + + ![HertzBeat](/img/docs/help/redis-cluster-add.png) + + 最终的效果. + + ![HertzBeat](/img/docs/help/redis-cluster-view.png) + +### Configuration Parameters + + 查看 [REDIS](https://hertzbeat.apache.org/docs/help/redis) 文档. diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/risc-v.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/risc-v.md new file mode 100644 index 00000000000..36cb6b1790e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/risc-v.md @@ -0,0 +1,93 @@ +--- +id: risc-v +title: HertzBeat 在 RISC-V 架构环境中运行 +sidebar_label: RISC-V +keywords: [ 开源监控系统, RISC-V架构, RISC-V 运行 HertzBeat ] +--- + +> 如何搭建 RISC-V 环境,并使 HertzBeat 在 RISC-V 架构环境中运行。 + +## RISC-V 环境搭建 + +确保你的 RISC-V 开发环境已正确配置,包括拥有兼容 RISC-V 的设备或模拟器。这里采用在 Ubuntu 环境上搭建 QEMU 模拟器的方式,来模拟 RISC-V 架构。 + +**1. 安装 QEMU 以及软件包** + +```shell +sudo apt update +sudo apt install opensbi qemu-system-misc u-boot-qemu +``` + +**2. 下载 RISC-V 架构的 Ubuntu 镜像** + +下载地址:```https://ubuntu.com/download/risc-v``` +选择 `QEMU模拟器` , 下载需要的版本。 + +** 3. 在 QEMU 上安装 Ubuntu + +> 使用 QEMU 启动 Ubuntu,模拟 RISC-V 架构。一些参数,如启动、设置磁盘大小等可以灵活设置。 + +```shell +# 解压镜像 +xz -dk ubuntu-24.04.2-preinstalled-server-riscv64.img.xz +# 也可自定义扩大磁盘 +qemu-img resize -f raw ubuntu-24.04-preinstalled-server-riscv64.img +5G +# 使用 u-boot-qemu 启动虚拟机 +qemu-system-riscv64 \ + -machine virt -nographic -m 2048 -smp 4 \ + -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \ + -device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \ + -device virtio-rng-pci \ + -drive file=ubuntu-24.04.2-preinstalled-server-riscv64.img,format=raw,if=virtio +``` + +等待控制台输出完毕后,使用用户 Ubuntu 和默认密码 Ubuntu 登录;系统会要求您选择一个新密码。详细可参考:[Ubuntu官网文档](https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/how-to/qemu-riscv/) + +## 安装并配置支持 RISC-V 架构的 JDK + +> 在启动的镜像中配置支持 RISC-V 架构的 JDK,这里选用 Temurin JDK 17。 + +**1. 下载 Temurin JDK** + +下载地址:```https://adoptium.net/zh-CN/temurin/releases``` + +**2. 配置 JDK 环境** + +> 根据下载的版本不同,做适当更改 + +```shell +# 安装工具 +sudo apt update +sudo apt install -y tar wget + +# 创建安装目录 +sudo mkdir -p /usr/lib/jvm +# 解压到系统目录 +sudo tar -xzf OpenJDK17U-jdk_riscv64_linux_hotspot_17.0.15_6.tar.gz -C /usr/lib/jvm + +# 编辑环境变量,添加以下内容 +sudo nano /etc/profile.d/java.sh +export JAVA_HOME=/usr/lib/jvm/jdk-17.0.15+6 +export PATH=$JAVA_HOME/bin:$PATH + +# 使配置生效 +source /etc/profile.d/java.sh + +# 验证安装 +java -version +``` + +## 运行 HertzBeat + +> 在 [Hertzbeat官网](https://hertzbeat.apache.org/zh-cn/docs/download/) 下载安装包,并按照官网部署教程运行即可,以 1.7.2 版本为例。 + +```shell +cd apache-hertzbeat-1.7.2-incubating-bin/bin/ +./startup.sh +``` + +> 注意事项: +> +> 1. 请将 `OpenJDK17U-jdk_riscv64_linux_hotspot_17.0.15_6.tar.gz` 替换为您实际下载的 JDK 文件名。 +> 2. 确保模拟器具备网络访问能力,以下载 HertzBeat。 +> 3. 若遇到问题,请检查磁盘权限和 Java 环境路径配置。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rocketmq.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rocketmq.md new file mode 100644 index 00000000000..65ca5d96613 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rocketmq.md @@ -0,0 +1,48 @@ +--- +id: rocketmq +title: 监控 Apache RocketMQ 消息中间件 +sidebar_label: RocketMQ消息中间件 +keywords: [ 开源监控系统, 开源中间件监控, RocketMQ消息中间件监控 ] +--- + +> 对 RocketMQ 消息中间件的broker,消费者等相关指标进行监测。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------| +| 注册中心Host | RocketMQ注册中心的IPV4,IPV6(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 注册中心端口。 | +| accessKey | accessKey。 | +| secretKey | secretKey。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:集群 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|------------| +| BrokerId | 无 | Broker唯一ID | +| Address | 无 | Broker地址 | +| Version | 无 | 版本 | +| Producer_Message_TPS | 无 | 生产消息TPS | +| Consumer_Message_TPS | 无 | 消费消息TPS | +| Yesterday_Produce_Count | 无 | 昨天生产消息数 | +| Yesterday_Consume_Count | 无 | 昨天消费消息数 | +| Today_Produce_Count | 无 | 今天生产消息数 | +| Today_Consume_Count | 无 | 今天消费消息数 | + +#### 指标集合:消费者 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|--------| +| Consumer_group | 无 | 消费者组 | +| Client_quantity | 无 | 客户端数量 | +| Message_model | 无 | 消息模式 | +| Consume_type | 无 | 消费类型 | +| Consume_tps | 无 | 消费TPS | +| Delay | 无 | 延迟 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rockylinux.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rockylinux.md new file mode 100644 index 00000000000..580fe559f3f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/rockylinux.md @@ -0,0 +1,114 @@ +--- +id: rockylinux +title: 监控:Rocky Linux操作系统监控 +sidebar_label: Rocky Linux 操作系统 +keywords: [ 开源监控系统, 开源操作系统监控, Rocky Linux操作系统监控 ] +--- + +> 对Rocky Linux操作系统的通用性能指标 (系统信息、CPU、内存、磁盘、网卡、文件系统、TOP资源进程等) 进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/seatunnel.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/seatunnel.md new file mode 100644 index 00000000000..ac1a0ae8d23 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/seatunnel.md @@ -0,0 +1,99 @@ +--- +id: seatunnel +title: 监控:SeaTunnel +sidebar_label: SeaTunnel +keywords: [ 开源监控系统, 监控SeaTunnel ] +--- + +> 对 SeaTunnel 指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | SeaTunnel开放的监控端口,默认值:5801。 | +| 启用HTTPS | 是否启用HTTPS。 | +| 查询超时时间 | 设置查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:集群概览 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| projectVersion | 无 | 项目版本 | +| gitCommitAbbrev | 无 | Git提交编号 | +| totalSlot | 无 | 总槽位数 | +| unassignedSlot | 无 | 未分配槽位数 | +| runningJobs | 无 | 运行中任务数 | +| finishedJobs | 无 | 已完成任务数 | +| failedJobs | 无 | 失败任务数 | +| cancelledJobs | 无 | 取消任务数 | +| workers | 无 | Worker数 | + +#### 指标集合:线程信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|--------| +| threadName | 无 | 线程名称 | +| threadId | 无 | 线程ID | +| threadState | 无 | 线程状态 | +| stackTrace | 无 | 堆栈信息 | + +#### 指标集合:节点监控 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|------------| +| isMaster | 无 | 是否主节点 | +| host | 无 | IP地址 | +| port | 无 | 端口 | +| processors | 无 | 处理器数 | +| physical.memory.total | 无 | 物理内存总量 | +| physical.memory.free | 无 | 物理内存可用 | +| swap.space.total | 无 | 交换空间总量 | +| swap.space.free | 无 | 交换空间可用 | +| heap.memory.used | 无 | 堆内存已用 | +| heap.memory.free | 无 | 堆内存可用 | +| heap.memory.total | 无 | 堆内存总量 | +| heap.memory.max | 无 | 堆内存最大 | +| heap.memory.used/total | 无 | 堆内存使用率 | +| heap.memory.used/max | 无 | 堆内存使用率最大 | +| minor.gc.count | 无 | 垃圾回收次数 | +| minor.gc.time | 无 | 垃圾回收时间 | +| major.gc.count | 无 | Major垃圾回收次数 | +| major.gc.time | 无 | Major垃圾回收时间 | +| load.process | 无 | 进程负载 | +| load.system | 无 | 系统负载 | +| load.systemAverage | 无 | 系统平均负载 | +| thread.count | 无 | 线程数 | +| thread.peakCount | 无 | 线程峰值 | +| cluster.timeDiff | 无 | 集群时间差 | +| event.q.size | 无 | 事件队列大小 | +| executor.q.async.size | 无 | 异步执行队列大小 | +| executor.q.client.size | 无 | 客户端执行队列大小 | +| executor.q.client.query.size | 无 | 客户端查询队列大小 | +| executor.q.client.blocking.size | 无 | 客户端阻塞队列大小 | +| executor.q.query.size | 无 | 查询队列大小 | +| executor.q.scheduled.size | 无 | 定时执行队列大小 | +| executor.q.io.size | 无 | IO队列大小 | +| executor.q.system.size | 无 | 系统执行队列大小 | +| executor.q.operations.size | 无 | 操作队列大小 | +| executor.q.priorityOperation.size | 无 | 优先操作队列大小 | +| operations.completed.count | 无 | 完成操作次数 | +| executor.q.mapLoad.size | 无 | 映射加载队列大小 | +| executor.q.mapLoadAllKeys.size | 无 | 映射加载所有键大小 | +| executor.q.cluster.size | 无 | 集群执行队列大小 | +| executor.q.response.size | 无 | 响应队列大小 | +| operations.running.count | 无 | 正在运行的操作数量 | +| operations.pending.invocations.percentage | 无 | 待处理调用百分比 | +| operations.pending.invocations.count | 无 | 待处理调用数量 | +| proxy.count | 无 | 代理数量 | +| clientEndpoint.count | 无 | 客户端端点数量 | +| connection.active.count | 无 | 活动连接数 | +| client.connection.count | 无 | 客户端连接数 | +| connection.count | 无 | 总连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/security_model.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/security_model.md new file mode 100644 index 00000000000..eb2eff8be9a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/security_model.md @@ -0,0 +1,47 @@ +--- +id: security_model +title: 安全模型 +sidebar_label: 安全模型 +--- + +:::tip +Apache HertzBeat 是一个高可扩展的系统,其提供用户大量的自定义能力,用户可以通过自定义监控模板,自定义监控器,自定义插件等来对平台增强。在这种情况下,安全性是非常重要的。 +本文档将介绍 Apache HertzBeat 的安全模型。 +这里的安全模型主要涉及用户在扩展过程中需要注意的安全边界,以及如何保证用户的自定义不会对系统造成安全隐患。 +::: + +## 用户权限安全 + +Apache HertzBeat 使用 [Sureness](https://github.com/dromara/sureness) 来支撑系统用户安全。 + +使用 Sureness 提供的 `sureness.yml` 来配置用户账户,角色,API资源等,强烈建议初始用户修改账户密码,具体参考 [账户权限管理](../start/account-modify) + +## 监控模板安全 + +Apache HertzBeat 提供了监控模板功能,用户可以通过配置监控模板里面的自定义脚本来定义监控规则。 + +脚本类型包含 `SQL` `SHELL` `JMX` `URL` `API` 等,当用户自定义脚本时需要自行保证自定义脚本的安全性,避免脚本中包含恶意代码等。 + +## 自定义插件安全 + +Apache HertzBeat 支持用户上传自定义代码插件在多个系统的生命周期下运行,用户需要自行保证自定义插件代码的安全性。 + +## 自定义采集器安全 + +Apache HertzBeat 支持用户自定义采集器来个性化采集监控指标等,用户需要自行保证自定义采集器的安全性。 + +## 自定义URL等参数安全 + +Apache HertzBeat 提供自定义参数配置能力,所有被授权配置 URL 等参数的用户都被认为是高度信任的,并且期望他们可以触发某些行为。 + +## 其它自定义下的安全约束 + +Apache HertzBeat 提供多种系统扩展方式和自定义能力,用户在使用过程中需注意自定义的安全性。当然所有扩展能力都是需在认证用户范围。 + +---- + +## Reporting a Vulnerability + +Please do not file GitHub issues for security vulnerabilities as they are public! + +To report a new vulnerability you have discovered please follow the [ASF vulnerability reporting process](https://apache.org/security/#reporting-a-vulnerability). diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/shenyu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/shenyu.md new file mode 100644 index 00000000000..40710bb3986 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/shenyu.md @@ -0,0 +1,129 @@ +--- +id: shenyu +title: 监控 Apache ShenYu API网关 +sidebar_label: ShenYu网关监控 +keywords: [开源监控系统, 开源消息中间件监控, ShenYu网关监控监控] +--- + +> 对 ShenYu 网关的运行状态(JVM相关),请求响应等相关指标进行监测。 + +## 监控前操作 + +您需要在 ShenYu 网关开启`metrics`插件,暴露对应的 prometheus metrics 接口。 + +开启插件, 参考 [官方文档](https://shenyu.apache.org/zh/docs/plugin-center/observability/metrics-plugin) + +主要如下两步骤: + +1. 在网关的 pom.xml 文件中添加 metrics 的依赖。 + + ```xml + + org.apache.shenyu + shenyu-spring-boot-starter-plugin-metrics + ${project.version} + + ``` + +2. 在网关的配置yaml文件中编辑如下内容: + + ```yaml + shenyu: + metrics: + enabled: true #设置为 true 表示开启 + name : prometheus + host: 127.0.0.1 #暴露的ip + port: 8090 #暴露的端口 + jmxConfig: #jmx配置 + props: + jvm_enabled: true #开启jvm的监控指标 + ``` + +最后重启访问网关指标接口 `http://ip:8090` 响应 prometheus 格式数据即可。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网关指标接口对外提供的端口,默认为8090。 | +| 超时时间 | HTTP请求响应超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:shenyu_request_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------------| +| value | 无 | 收集ShenYu网关的所有请求数量 | + +#### 指标集合:shenyu_request_throw_created + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------------| +| value | 无 | 收集ShenYu网关的异常请求数量 | + +#### 指标集合:process_cpu_seconds_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| value | 无 | 用户和系统CPU总计所用的秒数 | + +#### 指标集合:process_open_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------| +| value | 无 | 打开的文件描述符的数量 | + +#### 指标集合:process_max_fds + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|---------------| +| value | 无 | 打开的文件描述符的最大数量 | + +#### 指标集合:jvm_info + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| runtime | 无 | JVM 版本信息 | +| vendor | 无 | JVM 版本信息 | +| version | 无 | JVM 版本信息 | + +#### 指标集合:jvm_memory_bytes_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| area | 无 | JVM 内存区域 | +| value | MB | 给定 JVM 内存区域的已用大小 | + +#### 指标集合:jvm_memory_pool_bytes_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的已用大小 | + +#### 指标集合:jvm_memory_pool_bytes_committed + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|------------------| +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的已提交大小 | + +#### 指标集合:jvm_memory_pool_bytes_max + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-----------------| +| pool | 无 | JVM 内存池 | +| value | MB | 给定 JVM 内存池的最大大小 | + +#### 指标集合:jvm_threads_state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|-------------| +| state | 无 | 线程状态 | +| value | 无 | 对应线程状态的线程数量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/smtp.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/smtp.md new file mode 100644 index 00000000000..83647abb126 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/smtp.md @@ -0,0 +1,40 @@ +--- +id: smtp +title: SMTP 邮件服务器监控 +sidebar_label: SMTP 监控 +keywords: [ open source monitoring tool, open source SMTP monitoring tool, monitoring SMTP metrics ] +--- + +> 收集和监控 SMTP 邮件服务器的常规性能指标。 + +```text +通过 SMTP 的 hello 命令确定服务器是否可用 +``` + +> 详见 [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) + +**协议使用:SMTP** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|---------------------------------------------------| +| 监控主机 | 被监控的 IPV4、IPV6 或域名。注意⚠️无需协议头(例如:https://、http://) | +| 监控名称 | 标识此监控的名称。名称需要保持唯一 | +| 端口 | SMTP 提供的端口号 | +| 电子邮件 | 您的电子邮件名称,用于 hello 命令的参数 | +| 超时时间 | 允许的收集响应时间 | +| 收集间隔 | 监视定期数据收集的间隔时间,单位:秒,最小可设置的间隔为 30 秒 | +| 是否检测可用性 | 是否在添加监控之前检测和验证监控的可用性。只有在检测成功后,才会继续进行添加和修改操作 | +| 描述备注 | 用于标识和描述此监控的更多信息,用户可以在此处添加备注信息 | + +### 收集的指标 + +#### 指标集:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|-------------------| +| 响应时间 | 毫秒 | SMTP 服务器响应请求所需的时间 | +| 响应状态 | | 响应状态 | +| SMTP 服务器标语 | | SMTP 服务器的标语 | +| helo 命令返回信息 | | helo 命令返回的响应信息 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spark.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spark.md new file mode 100644 index 00000000000..783dcdff5b6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spark.md @@ -0,0 +1,114 @@ +--- +id: spark +title: 监控 Spark +sidebar_label: Spark 监控 +keywords: [开源监控工具,开源Java spark监控工具,监控spark指标] +--- + +> 收集和监控Spark的一般性能指标。 + +**使用协议:JMX** + +### Spark App启用JMX协议步骤 + +1. 应用启动时添加Spark参数 ⚠️注意可自定义暴露端口,对外IP + +参考文档: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) + +**监控配置spark的监控主要分为Master、Worker、driver、executor监控。Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要针对某一个app来进行监控。** +**如果都要监控,需要根据以下步骤来配置** + +## 第一步 + +**修改$SPARK_HOME/conf/spark-env.sh,添加以下语句:** + +```shell +# JMX Port to use +SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" + +# export SPARK_DAEMON_JAVA_OPTS="$SPARK_DAEMON_JAVA_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " +export SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8712 " +``` + +语句中有$JMX_PORT,这个的值可以自定义,也可以获取一个随机数作为端口号。 +如果端口自定义为一个具体的值,而 spark 的 Master 和其中之一的 Worker 在同一台机器上,会出现端口冲突的情况。 + +## 第二步 + +**vim $SPARK_HOME/conf/metrics.properties 添加如下内容** + +```shell +*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink +master.source.jvm.class=org.apache.spark.metrics.source.JvmSource +worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource +driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource +executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource +``` + +## 第三步 + +**vim $SPARK_HOME/conf/spark-defaults.conf,添加以下项为driver和executor设置监控端口,在有程序运行的情况下,此端口会被打开。** + +```shell +spark.metrics.conf /opt/bigdata/spark/conf/metrics.properties +spark.driver.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.mana +gement.jmxremote.port=8712 + +spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana +gement.jmxremote.port=8711 +``` + +在spark的Master和Worker正常运行以及spark-submit提交了一个程序的情况下,可以从linux中查询出端口号码。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| Monitoring name | 标识此监控的名称。名称必须是唯一的 | +| Port | JMX提供的端口 | +| Username | JMX连接用户名,可选 | +| Password | JMX连接密码,可选 | +| Collection interval | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| Whether to detect | 添加监控前是否检测和检查监控的可用性。检测成功后,添加和修改操作才会继续进行 | +| Description remarks | 有关识别和描述此监视的更多信息,用户可以在这里记录信息 | + +### 采集指标 + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标描述 | +|-----------|------|-------| +| name | | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大值 | +| used | kb | 已使用 | + +#### Metrics Set:code_cache (仅支持 JDK8) + +| 指标名称 | 指标单位 | 指标描述 | +|-------------|-------------|-------------------------| +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大值 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标描述 | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | 已加载类数量 | +| TotalLoadedClassCount | | 历史已加载类总量 | +| UnloadedClassCount | | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标描述 | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | 已经开始的线程数量 | +| ThreadCount | | 线程数 | +| PeakThreadCount | | 未加载类数量 | +| DaemonThreadCount | | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spring_gateway.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spring_gateway.md new file mode 100644 index 00000000000..edc9b03d37f --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/spring_gateway.md @@ -0,0 +1,90 @@ +--- +id: spring_gateway +Title: 监控 Spring Cloud Gateway +sidebar_label: Spring Cloud Gateway +keywords: [开源监控工具, 开源 Spring Cloud Gateway 监控工具, 监控 Spring Cloud Gateway 指标] +--- + +> 收集和监控 SpringBoot Actuator 提供的常规性能指标。 + +## 监控前操作 + +如果您想使用此监控类型监控 `Spring Cloud Gateway` 的信息,您需要集成您的 `Spring Cloud Gateway` 应用程序并启用 SpringBoot Actuator。 + +**1、添加 POM .XML 依赖:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2. 修改 YML 配置以暴露度量接口:** + +```yaml +management: + endpoint: + gateway: + enabled: true + env: + show-values: ALWAYS + endpoints: + web: + exposure: + include: "*" +``` + +### 配置参数 + +| 参数名称 | 参数描述 | +|----------|--------------------------------------------------------| +| 监控主机 | 被监控的目标 IPV4、IPV6 或域名。注意⚠️不要包含协议头(例如:https://,http://)。 | +| 监控名称 | 用于标识此监控的名称,需要保证唯一性。 | +| 端口 | 数据库提供的默认端口为 8080。 | +| 启用 HTTPS | 是否通过 HTTPS 访问网站,请注意⚠️当启用 HTTPS 时,需要将默认端口更改为 443 | +| 采集间隔 | 监控周期性采集数据的时间间隔,单位为秒,最小间隔为 30 秒。 | +| 是否探测 | 在新增监控前是否先进行可用性探测,只有探测成功才会继续新增或修改操作。 | +| 描述备注 | 用于添加关于监控的额外标识和描述信息。 | + +### 采集指标 + +#### 指标收集: 健康状态 + +| 指标名称 | 指标单位 | 指标描述 | +|------|------|-------------------------| +| 服务状态 | 无 | 服务健康状态: UP(正常),Down(异常) | + +#### 指标收集: 环境信息 + +| 指标名称 | 指标单位 | 指标描述 | +|---------|------|----------------------------------------------| +| profile | 无 | 应用程序运行的配置环境: prod(生产环境),dev(开发环境),test(测试环境) | +| 端口号 | 无 | 应用程序暴露的端口 | +| 操作系统 | 无 | 运行操作系统 | +| 操作系统架构 | 无 | 运行操作系统的架构 | +| JDK供应商 | 无 | JDK 供应商 | +| JVM版本 | 无 | JVM 版本 | + +#### 指标收集: 线程信息 + +| 指标名称 | 指标单位 | 指标描述 | +|------|------|-------------| +| 状态 | 无 | 线程状态 | +| 数量 | 无 | 线程状态对应的线程数量 | + +#### 指标收集: 内存使用情况 + +| 指标名称 | 指标单位 | 指标描述 | +|------|------|------------| +| 内存空间 | 无 | 内存空间名称 | +| 内存占用 | MB | 此空间占用的内存大小 | + +#### 指标收集: 路由信息 + +| 指标名称 | 指标单位 | 指标描述 | +|-------|------|---------| +| 路由id | 无 | 路由 ID | +| 匹配规则 | 无 | 路由匹配规则 | +| 资源标识符 | 无 | 服务资源标识符 | +| 优先级 | 无 | 此路由的优先级 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot2.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot2.md new file mode 100644 index 00000000000..d39b67d3efd --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot2.md @@ -0,0 +1,96 @@ +--- +id: springboot2 +title: 监控:SpringBoot2.0 监控 +sidebar_label: SpringBoot2.0 监控 +keywords: [开源监控系统, 开源消息中间件监控, SpringBoot2.0 监控] +--- + +> 对SpringBoot2.0 actuator 暴露的通用性能指标进行采集监控。 + +## 监控前操作 + +如果想要通过此监控类型监控 `SpringBoot` 中的信息,则需要您的SpringBoot应用集成并开启SpringBoot Actuator。 + +**1、添加POM.XML依赖:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2、修改YML配置暴露指标接口:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: on +``` + +*注意:如果你的项目里还引入了认证相关的依赖,比如springboot-security,那么SpringBoot Actuator暴露出的接口可能会被拦截,此时需要你手动放开这些接口,以springboot-security为例,需要在SecurityConfig配置类中加入以下代码:* + +```java +public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // 配置要放开的接口 ----------------------------------- + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // 。。。 + // 其他接口请参考:https://blog.csdn.net/JHIII/article/details/126601858 ----------------------------------- + } +} +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 应用服务对外提供的端口,默认为8080。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| Base Path | 暴露接口路径前缀,默认 /actuator | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:health + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|-----------------| +| status | 无 | 服务健康状态: UP,Down | + +#### 指标集合:environment + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------|------|----------------------------| +| profile | 无 | 应用运行profile: prod,dev,test | +| port | 无 | 应用暴露端口 | +| os | 无 | 运行所在操作系统 | +| os_arch | 无 | 运行所在操作系统架构 | +| jdk_vendor | 无 | jdk vendor | +| jvm_version | 无 | jvm version | + +#### 指标集合:threads + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|--------------| +| state | 无 | 线程状态 | +| number | 无 | 此线程状态对应的线程数量 | + +#### 指标集合:memory_used + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|-----------| +| space | 无 | 内存空间名称 | +| mem_used | MB | 此空间占用内存大小 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot3.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot3.md new file mode 100644 index 00000000000..58f1942cf0d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/springboot3.md @@ -0,0 +1,91 @@ +--- +id: springboot3 +title: 监控:SpringBoot3.0 监控 +sidebar_label: SpringBoot3.0 监控 +keywords: [开源监控系统, 开源消息中间件监控, SpringBoot3.0 监控] +--- + +> 对SpringBoot3.0 actuator 暴露的通用性能指标进行采集监控。 + +## 监控前操作 + +如果想要通过此监控类型监控 `SpringBoot` 中的信息,则需要您的SpringBoot应用集成并开启SpringBoot Actuator。 + +**1、添加POM.XML依赖:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2、修改YML配置暴露指标接口:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: on +``` + +*注意:如果你的项目里还引入了认证相关的依赖,比如springboot-security,那么SpringBoot Actuator暴露出的接口可能会被拦截,此时需要你手动放开这些接口,以springboot-security为例,需要在SecurityConfig配置类中加入以下代码:* + +```java +public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // 配置要放开的接口 ----------------------------------- + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // ... + // 其他接口请参考:https://blog.csdn.net/JHIII/article/details/126601858 ----------------------------------- + } +} +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 应用服务对外提供的端口,默认为8080。 | +| 启动SSL | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443。 | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:可用性 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | ms | 响应时间 | + +#### 指标集合:线程 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------------| +| state | 无 | 线程状态 | +| size | 无 | 此线程状态对应的线程数量 | + +#### 指标集合:内存使用 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|-----------| +| space | 无 | 内存空间名称 | +| mem_used | MB | 此空间占用内存大小 | + +#### 指标集合:健康状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------|------|-----------------| +| status | 无 | 服务健康状态: UP,Down | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/sqlserver.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/sqlserver.md new file mode 100644 index 00000000000..847a7775adc --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/sqlserver.md @@ -0,0 +1,76 @@ +--- +id: sqlserver +title: 监控:SqlServer数据库监控 +sidebar_label: SqlServer数据库 +keywords: [开源监控系统, 开源数据库监控, SqlServer数据库监控] +--- + +> 对SqlServer数据库的通用性能指标进行采集监控。支持SqlServer 2017+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为1433。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------------------------------------------------| +| machine_name | 无 | 运行服务器实例的 Windows 计算机名称 | +| server_name | 无 | 与Windows实例关联的服务器和实例信息SQL Server | +| version | 无 | 实例的版本,SQL Server,格式为"major.minor.build.revision" | +| edition | 无 | 已安装的 实例的产品SQL Server版本 | +| start_time | 无 | 数据库启动时间 | + +#### 指标集合:performance_counters + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------|------|-------------------------------------------------------------------------------------| +| database_pages | 无 | Database pages, 已获得的页面数(缓冲池) | +| target_pages | 无 | Target pages, 缓冲池必须的理想页面数 | +| page_life_expectancy | s,秒 | Page life expectancy, 数据页在缓冲池中驻留的时间,这个时间一般会大于 300 | +| buffer_cache_hit_ratio | % | Buffer cache hit ratio, 数据库缓冲池高速缓冲命中率,被请求的数据在缓冲池中被找到的概率,一般会大于 80% 才算正常,否则可能是缓冲池容量太小 | +| checkpoint_pages_sec | 无 | Checkpoint pages/sec, 检查点每秒写入磁盘的脏页个数,如果数据过高,证明缺少内存容量 | +| page_reads_sec | 无 | Page reads/sec, 缓存池中每秒读的页数 | +| page_writes_sec | 无 | Page writes/sec, 缓存池中每秒写的页数 | + +#### 指标集合:connection + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------| +| user_connection | 无 | 已连接的会话数 | + +### 常见问题 + +1. SSL连接问题修复 + +jdk版本:jdk11 +问题描述:SQL Server2019使用SA用户连接报错 +错误信息: + +```text +The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:xxxxxxxxxxxxxxxxx +``` + +问题截图: +![issue](https://user-images.githubusercontent.com/38679717/206621658-c0741d48-673d-45ff-9a3b-47d113064c12.png) + +解决方案: +添加`SqlServer`监控时使用高级设置,自定义JDBC URL,拼接的jdbc url后面加上参数配置,```;encrypt=true;trustServerCertificate=true;```这个参数true表示无条件信任server端返回的任何根证书。 + +样例:```jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo;encrypt=true;trustServerCertificate=true;``` + +参考文档:[microsoft pkix-path-building-failed-unable-to-find-valid-certification](https://techcommunity.microsoft.com/t5/azure-database-support-blog/pkix-path-building-failed-unable-to-find-valid-certification/ba-p/2591304) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ssl_cert.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ssl_cert.md new file mode 100644 index 00000000000..e15de6e3e97 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ssl_cert.md @@ -0,0 +1,33 @@ +--- +id: ssl_cert +title: 监控:SSL证书监控 +sidebar_label: SSL证书监控 +keywords: [开源监控系统, 开源网站监控, SSL证书监控监控] +--- + +> 对网站的SSL证书过期时间,响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.io/console` 网站的相对路径为 `/console`。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:certificate + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|----------| +| subject | 无 | 证书名称 | +| expired | 无 | 是否过期 | +| start_time | 无 | 有效期开始时间 | +| start_timestamp | ms毫秒 | 有效期开始时间戳 | +| end_time | 无 | 过期时间 | +| end_timestamp | ms毫秒 | 过期时间戳 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_be.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_be.md new file mode 100644 index 00000000000..9765ceee35c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_be.md @@ -0,0 +1,112 @@ +--- +id: starrocks_be +title: 监控:StarRocks数据库BE监控 +sidebar_label: StarRocks数据库BE +keywords: [开源监控系统, 开源数据库监控, StarRocks数据库BE监控] +--- + +> 对StarRocks数据库BE的通用性能指标进行采集监控。支持 StarRocks 2.4.0 及其之后版本。 + +**使用协议:HTTP** + +### 监控前操作 + +查看 `be/conf/be.conf` 文件,获取 `http_port` 配置项的值,该值用作监控使用。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8040,取值自 `http_port` 配置项的值 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认6000毫秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +> 更多指标请参考StarRocks官网:[通用监控指标](https://docs.mirrorship.cn/zh/docs/administration/management/monitoring/metrics/)。 + +#### 指标集合:starrocks_be_cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | /proc/stat 返回的 CPU 使用信息 | + +#### 指标集合:starrocks_be_disks_state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 磁盘的状态。1 表示磁盘正在使用,0 表示磁盘未被使用 | + +#### 指标集合:starrocks_be_tablet_base_max_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 此 BE 中各 Tablet 的最高 Base Compaction Score | + +#### 指标集合:starrocks_be_tablet_cumulative_max_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 此 BE 中各 Tablet 的最高 Cumulative Compaction Score | + +#### 指标集合:starrocks_be_engine_requests_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | BE 和 FE 之间各种请求的总数,包括 CREATE TABLE、Publish Version 和 Tablet Clone | + +#### 指标集合:starrocks_be_max_disk_io_util_percent + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | % | 最大磁盘 I/O 利用率百分比 | + +#### 指标集合:starrocks_be_disks_avail_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | MB | 磁盘的可用容量 | + +#### 指标集合:starrocks_be_disks_data_used_capacity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | MB | 每个磁盘(由存储路径表示)的已用容量 | + +#### 指标集合:starrocks_be_load_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节 | 总导入字节数 | + +#### 指标集合:starrocks_be_load_rows + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 总导入行数 | + +#### 指标集合:starrocks_be_process_mem_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | MB | 此进程使用的内存 | + +#### 指标集合:starrocks_be_jemalloc_allocated_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | MB | jemalloc 已分配的总字节数 | + +#### 指标集合:starrocks_be_network_receive_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节 | 通过网络接收的总字节数 | + +#### 指标集合:starrocks_be_network_send_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节 | 通过网络发送的字节数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_fe.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_fe.md new file mode 100644 index 00000000000..f2fc7c8fbe4 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/starrocks_fe.md @@ -0,0 +1,136 @@ +--- +id: starrocks_fe +title: 监控:StarRocks数据库FE监控 +sidebar_label: StarRocks数据库FE +keywords: [开源监控系统, 开源数据库监控, StarRocks数据库FE监控] +--- + +> 对StarRocks数据库FE的通用性能指标进行采集监控。支持 StarRocks 2.4.0 及其之后版本。 + +**使用协议:HTTP** + +### 监控前操作 + +查看 `fe/conf/fe.conf` 文件,获取 `http_port` 配置项的值,该值用作监控使用。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://) | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 端口 | 数据库对外提供的端口,默认为8030,取值自 `http_port` 配置项的值 | +| 查询超时时间 | 设置连接未响应的超时时间,单位ms毫秒,默认6000毫秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +> 更多指标请参考StarRocks官网:[通用监控指标](https://docs.mirrorship.cn/zh/docs/administration/management/monitoring/metrics/)。 + +#### 指标集合:jvm_heap_size_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节 | JVM堆内存大小 | + +#### 指标集合:jvm_non_heap_size_bytes + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节 | JVM非堆内存大小 | + +#### 指标集合:jvm_thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | JVM线程数量 | + +#### 指标集合:starrocks_fe_query_err + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 查询失败数量 | + +#### 指标集合:starrocks_fe_query_latency_ms + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 毫秒 | 查询响应时间 | + +#### 指标集合:starrocks_fe_edit_log_write + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 字节/秒 | FE编辑日志写入速率 | + +#### 指标集合:starrocks_fe_load_add + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 新增加载任务数量 | + +#### 指标集合:starrocks_fe_load_finished + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 完成加载任务数量 | + +#### 指标集合:starrocks_fe_job + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | FE作业状态 | + +#### 指标集合:starrocks_fe_tablet_max_compaction_score + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 节点上最高的 Compaction Score | + +#### 指标集合:starrocks_fe_meta_log_count + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 未做 Checkpoint 的 Edit Log 数量,该值在 100000 以内为合理 | + +#### 指标集合:starrocks_fe_query_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 查询总数 | + +#### 指标集合:starrocks_fe_request_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 请求总数 | + +#### 指标集合:starrocks_fe_txn_reject + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 事务拒绝数 | + +#### 指标集合:starrocks_fe_txn_begin + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 事务开始数 | + +#### 指标集合:starrocks_fe_txn_success + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 事务成功数 | + +#### 指标集合:starrocks_fe_txn_failed + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | 事务失败数 | + +#### 指标集合:starrocks_fe_connection_total + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|---------|------------| +| value | 无 | FE连接总数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/status.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/status.md new file mode 100644 index 00000000000..dc688d023b8 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/status.md @@ -0,0 +1,73 @@ +--- +id: status +title: 状态页面 +sidebar_label: 状态页面 +keywords: [开源监控系统, 开源网站监控, 状态页面] +--- + +利用 HertzBeat 快速构建强大的状态页面,轻松向用户传达您产品服务的实时状态。例如,Github 的服务状态页 [https://www.githubstatus.com](https://www.githubstatus.com)。 + +支持状态页组件状态和监控状态联动同步,提供故障事件维护管理机制等功能。提高您的透明度和专业度,增强用户信任,降低沟通成本。 + +## 1. 设置组织信息 + +需要填写的字段如下: + +| 字段名称 | 字段说明 | 举例 | +|------|----------------------------------------|---------------------------------------------------------------------------------------------------| +| 组织名称 | 组织的名称 | HertzBeat | +| 组织介绍 | 组织的详细介绍 | Apache HertzBeat 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。 | +| 网站链接 | 组织网站的 URL,便于访问者获取更多信息 | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| 标志图片 | 组织官方标志或 Logo 的图片文件路径或 URL,建议使用 .svg 格式 | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| 反馈地址 | 接收问题反馈的地址 | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | +| 主题颜色 | 状态页面的主色调。 | 在页面中点击选择 | + +填写完组织信息后,点击 `确定`。 + +![HertzBeat](/img/docs/help/status-3.png) + +## 2. 新增组件 + +新增组件后,状态页面将显示组件的状态信息。 + +点击 `新增组件` 添加需要监控的组件,并填写以下字段: + +| 字段名称 | 字段说明 | 举例 | +|----------|-------------------------------------------------------------|-------------------------------------| +| 服务组件 | 组件服务名称 | 开发环境 ElasticSearch | +| 组件描述 | 组件服务的详细描述信息 | 开发环境,ElasticSearch (ip:192.168.1.1) | +| 服务状态统计方式 | 计算组件服务状态的方式。
自动计算:根据组件监控的状态自动计算显示状态。
手动设置:手动配置组件状态。 | 自动计算 / 手动设置 二选一 | +| 匹配标签 | 状态计算关联标签,使用标签关联的所有监控可用性状态数据来计算组件服务状态。 | 在页面选择组件的标签 | + +### 设置状态统计时间 + +> 提示:服务状态默认每 300 秒统计一次。 + +修改 `application.yml`: + +```yaml +status: + calculate: + interval: 60 +``` + +![HertzBeat](/img/docs/help/status-4.png) + +## 3. 维护事件 + +当事件发生时,可以在状态页面发布通知。 + +点击 `发布事件` + +![HertzBeat](/img/docs/help/status-1.png) + +| 字段名称 | 字段说明 | 举例 | +|------|---------------------------------------------|----------------------------------------------------------------------| +| 事件名称 | 事件的标题,应简洁明了地反映事件的核心内容。 | "服务器宕机事件 - 2023 年 4 月 5 日" | +| 影响组件 | 选择受此事件影响的组件。 | 在页面中选择 | +| 过程状态 | 设置事件当前状态,便于追踪处理进度。可选值:调查中 / 已确认 / 观察中 / 已修复 | 已确认 | +| 发布消息 | 向相关方传达的正式通知,包括事件详情、影响评估和应对措施。 | Dear All,开发环境异常,开发人员正在紧急处理,预计两小时内修复。请耐心等待,如有紧急事项请联系 Tom:130xxxx0000! | + +> 提示:可以多次发布消息,及时向团队汇报当前状态。 + +![HertzBeat](/img/docs/help/status-2.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/synology_nas.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/synology_nas.md new file mode 100644 index 00000000000..5d6acb3e409 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/synology_nas.md @@ -0,0 +1,127 @@ +--- +id: synology_nas +title: 监控:群晖 NAS +sidebar_label: 群晖 NAS +keywords: [ 开源监控系统, 服务器监控, 群晖 NAS 监控 ] +--- + +> 对 群晖 NAS 的通用指标进行采集监控。 + +**使用协议:SNMP** + +## 监控前操作 + +请参考 [SNMP](https://kb.synology.cn/zh-cn/DSM/help/DSM/AdminCenter/system_snmp) 设置 SNMP 服务。目前支持的协议为 SNMPv1、SNMPv2c 以及 SNMPv3。 + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | SNMP端口号,默认为161 | +| SNMP 版本 | 所使用的SNMP版本 | +| SNMP 团体字 | 用于SNMP v1 和 SNMP v2c,用于在SNMP Agent完成认证,字符串形式。团体名包括“read”和“write”两种,执行SNMP查询操作时,采用“read”团体名进行认证;执行SNMP设置操作时,则采用“write”团体名进行认证。 | +| SNMP username | 用于SNMP v3,MSG 用户名 | +| SNMP contextName | 用于SNMP v3,用于确定Context EngineID对被管理设备的MIB视图。 | +| SNMP authPassword | 用于SNMP v3,SNMP 认证密码 | +| authPassword 加密方式 | 用于SNMP v3,SNMP 认证算法 | +| SNMP privPassphrase | 用于SNMP v3,SNMP 加密密码 | +| privPassword 加密方式 | 用于SNMP v3,SNMP 加密算法 | +| 查询超时时间 | 设置查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| 采集间隔 | 监控周期性采集数据的时间间隔,单位为秒,最小间隔为 30 秒。 | +| 描述备注 | 用于添加关于监控的额外标识和描述信息。 | + +## 采集指标 + +由于可查询的指标过多,详细的指标可在官网的 [SNMP MIB指南](https://kb.synology.cn/zh-cn/DG/Synology_DiskStation_MIB_Guide) 进行查询。 + +此文档仅介绍监控模板中查询的监控指标。 + +### 指标集合:系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-----------| +| modelName | 无 | NAS 的型号名称 | +| serialNumber | 无 | 型号序列号 | +| version | 无 | DSM 的版本 | +| controllerNumber | 无 | 控制器编号 | + +### 指标集合:状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|-----------------------------| +| powerStatus | 无 | 电源状态,如果电源出现故障则返回错误 | +| systemFanStatus | 无 | 系统风扇状态,如果系统风扇发生故障则返回错误 | +| cpuFanStatus | 无 | CPU 风扇状态,如果 CPU 风扇发生故障则返回错误 | +| systemStatus | 无 | 系统分区状态 | +| thermalStatus | 无 | 散热状态,如果散热状态异常 | +| temperature | 无 | NAS 的温度 | +| cpuUtilization | 百分比 | 利用率 (%) 是用户和系统 CPU 使用率的总和 | +| memUtilization | 百分比 | 利用率 (%) 是内存使用率的总和 | + +### 指标集合:硬盘 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|----------------------| +| diskID | 无 | DSM 中的硬盘名称 | +| diskModel | 无 | 硬盘型号 | +| diskType | 无 | 硬盘类型如 SATA、SSD | +| diskStatus | 无 | 当前硬盘状态 | +| diskTemperature | 无 | 硬盘温度 | +| diskRole | 无 | 硬盘在系统中的作用 | +| diskRetry | 无 | 每个硬盘连接重试次数 | +| diskBadSector | 无 | 每个硬盘 I/O 坏扇区的计数 | +| diskIdentifyFail | 无 | 每个硬盘名称的计数失败 | +| diskRemainLife | 无 | 每个硬盘的预计剩余寿命 | +| diskName | 无 | 不同 DSM 版本中保留相同值的硬盘名称 | +| diskHealthStatus | 无 | 当前硬盘运行状况 | + +### 指标集合:RAID状态 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|------------------------------------| +| raidName | 无 | RAID 的名称 | +| raidStatus | 无 | RAID 状态 | +| raidFreeSize | 无 | 卷/硬盘组的可用容量 | +| raidTotalSize | 无 | 卷/硬盘组的总大小 | +| raidHotspareCnt | 无 | 可保护 RAID 的 hotspare 硬盘总数,小于 0 表示错误 | + +### 指标集合:S.M.A.R.T + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------|------|---------------| +| diskSMARTInfoDevName | 无 | SMART 信息所属的硬盘 | +| diskSMARTAttrName | 无 | SMART 信息属性的名称 | +| diskSMARTAttrId | 无 | SMART 属性 ID 号 | +| diskSMARTAttrCurrent | 无 | SMART 属性当前值 | +| diskSMARTAttrWorst | 无 | SMART 属性最差值 | +| diskSMARTAttrThreshold | 无 | SMART 属性阈值 | +| diskSMARTAttrRaw | 无 | SMART 属性原始值 | +| diskSMARTAttrStatus | 无 | SMART 信息的状态 | + +### 指标集合:存储空间 I/O + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|----------------------| +| spaceIODevice | 无 | 装载此存储空间的设备名称 | +| spaceIOReads | 无 | 自启动以来从此存储空间进行的读取访问次数 | +| spaceIOWrites | 无 | 自启动以来对此存储空间的写入访问次数 | +| spaceIOLA | 百分比 | 卷中硬盘的负载率 | +| spaceIOLA1 | 百分比 | 卷中硬盘的1分钟平均负载率 | +| spaceIOLA5 | 百分比 | 卷中硬盘的5分钟平均负载率 | +| spaceIOLA15 | 百分比 | 卷中硬盘的15分钟平均负载率 | +| spaceUUID | 无 | 卷的 UUID | + +### 指标集合:硬盘 I/O + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|--------------------| +| storageIODevice | 无 | 设备的名称 | +| storageIOReads | 无 | 自启动以来从此设备进行的读取访问次数 | +| storageIOWrites | 无 | 自启动以来对此设备进行的写入访问次数 | +| storageIOLA | 百分比 | 硬盘负载率 | +| storageIOLA1 | 百分比 | 硬盘的1分钟平均负载率 | +| storageIOLA5 | 百分比 | 硬盘的5分钟平均负载率 | +| storageIOLA15 | 百分比 | 硬盘的15分钟平均负载率 | +| storageIODeviceSerial | 无 | 序列号 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tdengine_promql.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tdengine_promql.md new file mode 100644 index 00000000000..ff851a98448 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tdengine_promql.md @@ -0,0 +1,92 @@ +--- +id: tdengine_promql +title: 监控:TDengine-PromQL +sidebar_label: TDengine-PromQL +keywords: [ 开源监控系统,开源中间件监控, TDengine监控,TDengine-PromQL监控 ] +--- + +> 使用 Prometheus PromQL 从 Prometheus 服务器中查询到 TDengine 的通用指标数据来进行监控。此方案适用于 Prometheus 已监控 +> TDengine,需要从 Prometheus 服务器抓取 TDengine 的监控数据。 + +### 前置条件 + +1. 部署 TDengine; +2. 部署 taosKeeper;注意⚠️安装 TDengine 官方安装包的同时会自动安装 taosKeeper + 详情请参考:[taosKeeper](https://docs.taosdata.com/reference/components/taoskeeper/); +3. 通过 prometheus 采集 TDengine taosKeeper 暴露的监控指标; + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Prometheus api 端口,默认值:9090。 | +| 相对路径 | Prometheus查询PromQL的URL,默认值:/api/v1/query。 | +| 请求方式 | 设置接口调用的请求方式:GET,POST,PUT,DELETE,默认值:GET。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443。 | +| 用户名 | 接口Basic认证或Digest认证时使用的用户名。 | +| 密码 | 接口Basic认证或Digest认证时使用的密码。 | +| Content-Type | 设置携带BODY请求体数据请求时的资源类型。 | +| 请求BODY | 设置携带BODY请求体数据,PUT POST请求方式时有效。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:基础信息指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|---------| +| taos_cluster_info_first_ep | 无 | 第一个端点 | +| taos_cluster_info_version | 无 | 版本信息 | +| taos_cluster_info_master_uptime | 天 | 主节点运行时间 | + +#### 指标集合:节点数量指标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|--------------| +| taos_cluster_info_dnodes_total | 无 | dnode 总数 | +| taos_cluster_info_dnodes_alive | 无 | 存活的 dnode 数量 | +| taos_cluster_info_mnodes_total | 无 | mnode 总数 | +| taos_cluster_info_mnodes_alive | 无 | 存活的 mnode 数量 | +| taos_cluster_info_vgroups_total | 无 | 虚拟组总数 | +| taos_cluster_info_vgroups_alive | 无 | 存活的虚拟组数量 | +| taos_cluster_info_vnodes_total | 无 | 虚拟节点总数 | +| taos_cluster_info_vnodes_alive | 无 | 存活的虚拟节点数量 | + +### 指标集合:数据库和表统计 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------------------|------|--------| +| taos_cluster_info_dbs_total | 无 | 数据库总数 | +| taos_cluster_info_tbs_total | 无 | 表总数 | +| taos_cluster_info_connections_total | 天 | 总连接数 | + +### 指标集合:Dnode 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|--------------------------------------|----------------------------| +| taos_d_info_status | ready 表示正常、offline 表示下线、unknown 表示未知 | dnode 状态 | +| taos_dnodes_info_uptime | 秒 | 该 dnode 的启动时间 | +| taos_dnodes_info_cpu_engine | 无 | 该 dnode 的进程所使用的 CPU 百分比 | +| taos_dnodes_info_cpu_system | 无 | 该 dnode 所在节点的系统使用的 CPU 百分比 | +| taos_dnodes_info_mem_engine | KB | 该 dnode 的进程所使用的内存 | +| taos_dnodes_info_mem_system | KB | 该 dnode 所在节点的系统所使用的内存 | +| taos_dnodes_info_disk_total | Byte | 该 dnode 所在节点的磁盘总容量 | +| taos_dnodes_info_disk_used | Byte | 该 dnode 所在节点的磁盘已使用的容量 | +| taos_dnodes_info_io_write_disk | Byte/s | 该 dnode 所在节点的磁盘 io 写入速率 | +| taos_dnodes_info_io_read_disk | Byte/s | 该 dnode 所在节点的磁盘 io 读取速率 | + +### 指标集合:taosadapter 相关 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------------|------|--------| +| taos_adapter_requests_total | 无 | 总请求数 | +| taos_adapter_requests_success | 无 | 成功的请求数 | +| taos_adapter_requests_fail | 无 | 失败的请求数 | +| taos_adapter_requests_query | 无 | 查询请求数 | + +### HertzBeat支持的其他 TDengine 监控方式 + +1.通过taosKeeper暴露的监控指标,可以参考 [Prometheus任务](prometheus) 配置Prometheus采集任务监控 TDengine。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tidb.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tidb.md new file mode 100644 index 00000000000..69bdd6fd40b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tidb.md @@ -0,0 +1,46 @@ +--- +id: tidb +title: 监控:TiDB数据库监控 +sidebar_label: TiDB数据库 +keywords: [开源监控系统, 开源数据库监控, TiDB数据库监控] +--- + +> 使用 HTTP 和 JDBC 协议对 TiDB 的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------|------------------------------------------------------------------------------------------------------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| Service端口 | TiDB数据库对外提供用于状态报告的端口,默认为10080。 | +| PD端口 | TiDB数据库的PD端口,默认为2379。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认6000毫秒。 | +| JDBC端口 | TiDB数据库对外提供用于客户端请求的端口,默认为4000。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| JDBC URL | 数据库使用[JDBC驱动的](https://docs.pingcap.com/zh/tidb/stable/dev-guide-connect-to-tidb#jdbc)连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +监控模板将从TiDB系统变量表中检索监控指标,用户可以自行检索[TiDB系统变量表](https://docs.pingcap.com/zh/tidb/stable/system-variables)以查询所需信息或其他系统变量。 + +除此之外,TiDB也提供默认监控指标表,见[Metrics Schema](https://docs.pingcap.com/zh/tidb/stable/metrics-schema)与[METRICS_SUMMARY](https://docs.pingcap.com/zh/tidb/stable/information-schema-metrics-summary),用户可以根据需求自行添加检索式。 + +由于可以被监控的指标过多,下文仅介绍监控模板中所查询的指标。 + +#### 指标集合:系统变量 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|------------------------------------------------------------------------------------------------------------------| +| version | 无 | MySQL 的版本和 TiDB 的版本,例如 '8.0.11-TiDB-v7.5.1' | +| version_comment | 无 | TiDB 版本号的其他信息,例如 'TiDB Server (Apache License 2.0) Community Edition, MySQL 8.0 compatible' | +| version_compile_machine | 无 | 运行 TiDB 的 CPU 架构的名称 | +| version_compile_os | 无 | TiDB 所在操作系统的名称 | +| max_connections | 无 | 该变量表示 TiDB 中同时允许的最大客户端连接数,用于资源控制。默认情况下,该变量值为 0 表示不限制客户端连接数。当本变量的值大于 0 且客户端连接数到达此值时,TiDB 服务端将会拒绝新的客户端连接。 | +| datadir | 无 | 数据存储的位置,位置可以是本地路径 /tmp/tidb。如果数据存储在 TiKV 上,则可以是指向 PD 服务器的路径。变量值的格式为 `${pd-ip}:${pd-port}`,表示 TiDB 在启动时连接到的 PD 服务器。 | +| port | 无 | 使用 MySQL 协议时 tidb-server 监听的端口。 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/time_expression.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/time_expression.md similarity index 100% rename from home/i18n/zh-cn/docusaurus-plugin-content-docs/version-v1.6.x/help/time_expression.md rename to home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/time_expression.md diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tomcat.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tomcat.md new file mode 100644 index 00000000000..710f9594aab --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/tomcat.md @@ -0,0 +1,76 @@ +--- +id: tomcat +title: 监控:Tomcat监控 +sidebar_label: Tomcat监控 +keywords: [开源监控系统, 开源网站监控, Tomcat监控] +--- + +> 对Tomcat的通用性能指标进行采集监控 + +**使用协议:JMX** + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 查询超时时间 | 设置Tomcat连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | JMX连接用户名 | +| 密码 | JMX连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:memory_pool + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| name | 无 | 指标名称 | +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:code_cache + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| committed | kb | 总量 | +| init | kb | 初始化大小 | +| max | kb | 最大 | +| used | kb | 已使用 | + +#### 指标集合:class_loading + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|----------| +| LoadedClassCount | 个 | 已加载类数量 | +| TotalLoadedClassCount | 个 | 历史已加载类总量 | +| UnloadedClassCount | 个 | 未加载类数量 | + +#### 指标集合:thread + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------|------|-----------| +| TotalStartedThreadCount | 个 | 已经开始的线程数量 | +| ThreadCount | 个 | 线程数 | +| PeakThreadCount | 个 | 未加载类数量 | +| DaemonThreadCount | 个 | 守护进程数 | +| CurrentThreadUserTime | ms | 使用时间 | +| CurrentThreadCpuTime | ms | 使用CPU时间 | + +### Tomcat开启JMX协议步骤 + +1. 搭建好tomcat后,进入tomcat下的bin目录,修改catalina.sh文件 注意⚠️替换IP地址 + +2. vim catalina.sh + +```aidl +CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.1.1.52 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +``` + + +参考: [https://blog.csdn.net/weixin_41924764/article/details/108694239](https://blog.csdn.net/weixin_41924764/article/details/108694239) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ubuntu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ubuntu.md new file mode 100644 index 00000000000..f4b4e40d0d6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/ubuntu.md @@ -0,0 +1,163 @@ +--- +id: ubuntu +title: 监控:Ubuntu操作系统监控 +sidebar_label: Ubuntu 操作系统 +keywords: [开源监控系统, 开源操作系统监控, Ubuntu监控] +--- + +> 对Ubuntu操作系统的通用性能指标进行采集监控。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|---------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Linux SSH对外提供的端口,默认为22。 | +| 超时时间 | 设置连接的超时时间,单位ms毫秒,默认6000毫秒。 | +| 复用连接 | 设置SSH连接是否复用,默认为:false。为false每次获取信息都会创建一个连接 | +| 使用代理 | 设置是否通过代理连接,默认为false。 | +| 用户名 | SSH连接用户名,可选 | +| 密码 | SSH连接密码,可选 | +| 采集器 | 配置此监控使用哪台采集器调度采集 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 绑定标签 | 用于对监控资源进行分类管理 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | +| 私钥 | 连接服务器所需的私钥 | +| 密钥短语 | 用于加密 SSH 私钥的密码短语(Passphrase)。如果私钥在生成时设置了密码短语,则必须填写此字段才能解密并使用私钥进行认证。 | +| 代理主机 | 代理服务器的地址,支持 IPV4、IPV6或域名。若使用 SSH 代理跳转访问目标主机,需填写代理服务器的地址。 | +| 代理端口 | 代理服务器的端口号。 | +| 代理用户名 | 连接代理服务器时所需的认证用户名。 | +| 代理密码 | 连接代理服务器时所需的认证密码。 | +| 代理主机私钥 | 连接代理服务器时所需的私钥。 | + +### 采集指标 + +#### 指标集合:系统基本信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | +| uptime | 无 | 启动时间 | + +#### 指标集合:CPU 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|--------------------| +| info | 无 | CPU型号 | +| cores | 无 | CPU内核数量 | +| interrupt | 无 | CPU中断数量 | +| load | 无 | CPU最近1/5/15分钟的平均负载 | +| context_switch | 无 | 当前上下文切换数量 | +| usage | % | CPU使用率 | + +#### 指标集合:内存信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|----------| +| total | Mb | 总内存容量 | +| used | Mb | 用户程序内存量 | +| free | Mb | 空闲内存容量 | +| buff_cache | Mb | 缓存占用内存 | +| available | Mb | 剩余可用内存容量 | +| usage | % | 内存使用率 | + +#### 指标集合:磁盘信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|-----------| +| disk_num | 无 | 磁盘总数 | +| partition_num | 无 | 分区总数 | +| block_write | 无 | 写入磁盘的总块数 | +| block_read | 无 | 从磁盘读出的块数 | +| write_rate | iops | 每秒写磁盘块的速率 | + +#### 指标集合:网卡信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------------| +| interface_name | 无 | 网卡名称 | +| receive_bytes | Byte | 入站数据流量(bytes) | +| transmit_bytes | Byte | 出站数据流量(bytes) | + +#### 指标集合:文件系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------|------|---------| +| filesystem | 无 | 文件系统的名称 | +| used | Mb | 已使用磁盘大小 | +| available | Mb | 可用磁盘大小 | +| usage | % | 使用率 | +| mounted | 无 | 挂载点目录 | + +#### 指标集合:Top10 CPU进程 + +统计进程使用CPU的Top10进程。统计信息包括:进程ID、CPU占用率、内存占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| cpu_usage | % | CPU占用率 | +| mem_usage | % | 内存占用率 | +| command | 无 | 执行命令 | + +#### 指标集合:Top10 内存进程 + +统计进程使用内存的Top10进程。统计信息包括:进程ID、内存占用率、CPU占用率、执行命令。 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| pid | 无 | 进程ID | +| mem_usage | % | 内存占用率 | +| cpu_usage | % | CPU占用率 | +| command | 无 | 执行命令 | + +#### 其他指标集合:所有核心的平均CPU温度 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|-----------| +| avg_cpu_temp | C | 所有核心的平均温度 | + +* 注意:此指标信息依赖硬件传感器的监测工具(lm-sensors),请确认Ubuntu操作系统可以正常获取监测信息,可根据需要补充如下指标采集配置 + +```yaml +metrics: + - name: avg_cpu_temp + i18n: + zh-CN: 所有核心的平均CPU温度 + en-US: Average CPU Temperature Across All Cores + priority: 4 + fields: + - field: avg_cpu_temp + type: 1 + label: true + unit: 'C' + i18n: + zh-CN: 所有核心的平均温度 + en-US: Average Temp All Cores + protocol: ssh + ssh: + host: ^_^host^_^ + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + privateKey: ^_^privateKey^_^ + privateKeyPassphrase: ^_^privateKeyPassphrase^_^ + timeout: ^_^timeout^_^ + reuseConnection: ^_^reuseConnection^_^ + script: sensors | grep "^Core\s[0-9\d+\:]" | awk '{print $3}' | sed "s/°C/\ /g" | awk '{ total += $1; count++ } END { print total/count }' + parseType: oneRow + # whether to use proxy server for ssh connection + useProxy: ^_^useProxy^_^ + # ssh proxy host: ipv4 domain + proxyHost: ^_^proxyHost^_^ + # ssh proxy port + proxyPort: ^_^proxyPort^_^ + # ssh proxy username + proxyUsername: ^_^proxyUsername^_^ + # ssh proxy password + proxyPassword: ^_^proxyPassword^_^ + # ssh proxy private key + proxyPrivateKey: ^_^proxyPrivateKey^_^ +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/udp_port.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/udp_port.md new file mode 100644 index 00000000000..dde32b91e4d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/udp_port.md @@ -0,0 +1,31 @@ +--- +id: udp_port +title: 监控:UDP 端口可用性监控 +sidebar_label: UDP 端口可用性 +keywords: [开源监控系统, 开源网络监控, UDP 端口可用性监控] +--- + +> UDP 是面向无连接的传输层协议,其端口可用性状态我们通过在应用层发送请求报文获得响应来判断,配置信息我们需要填充能使对端响应的应用层16进制报文内容。建议使用wireshark抓包来获取发送报文内容。 +> 您可以点击`新建 UDP端口可用性`并进行配置,或者选择`更多操作`,导入已有配置。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|:-------|--------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头 (例如: https://, http://) 。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口。 | +| 连接超时时间 | 端口连接的等待超时时间,单位毫秒,默认6000毫秒。 | +| 发送报文内容 | 能使对端响应的应用层16进制报文内容。 | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|---------|--------| +| 响应时间 | 毫秒 (ms) | 网站响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/uniview.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/uniview.md new file mode 100644 index 00000000000..97cf025f290 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/uniview.md @@ -0,0 +1,47 @@ +--- +id: uniview +title: 监控 宇视设备 +sidebar_label: 宇视 +keywords: [ monitor, uniview, 宇视 ] +--- + +> 通过HTTP接口监控宇视设备状态,获取设备健康数据。 + +## 监控配置参数 + +| 参数名称 | 参数帮助描述 | +| ----------- | ----------- | +| 监控Host | 设备IP/域名 | +| 监控名称 | 唯一标识名称 | +| 端口 | 默认80端口 | +| 超时时间 | 毫秒级超时设置 | +| 用户名 | 认证用户名 | +| 密码 | 认证密码 | +| 启用HTTPS | HTTPS开关 | +| 采集间隔 | ≥30秒采集周期 | + +## 采集指标 + +### 系统信息 + +- 设备名称 +- 序列号 +- 固件版本 +- 设备型号 + +### 校时信息 + +- NTP服务器IP +- 校时端口 +- 同步间隔 +- 校时启用状态 + +## 实现原理 + +通过宇视HTTP API接口: + +1. 系统信息:`/LAPI/V1.0/System/DeviceInfo` + +2. 校时信息:`/LAPI/V1.0/System/Time/NTP` + +使用Digest认证,解析JSON格式响应数据。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/valkey.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/valkey.md new file mode 100644 index 00000000000..eeba88568d3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/valkey.md @@ -0,0 +1,239 @@ +--- +id: valkey +title: 监控:Valkey 数据库监控 +sidebar_label: Valkey 数据库 +keywords: [开源监控系统, 开源数据库监控, Valkey 数据库监控] +--- + +> 对 Valkey 数据库的通用性能指标进行采集监控。支持 Valkey 7.0+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Valkey 对外提供的端口,默认为6379,sentinel节点默认26379 | +| 超时时间 | 设置 Valkey info 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:server + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------|------|-----------------------------------------------| +| valkey_version | 无 | Valkey 服务器版本 | +| valkey_git_sha1 | 无 | Git SHA1 | +| valkey_git_dirty | 无 | Git dirty flag | +| valkey_build_id | 无 | Valkey 构建的id | +| valkey_mode | 无 | Valkey 模式(包括standalone, sentinel, cluster) | +| os | 无 | Valkey 服务器的宿主操作系统 | +| arch_bits | 无 | 架构(32 或 64 位) | +| multiplexing_api | 无 | Valkey 使用的事件循环机制 | +| atomicvar_api | 无 | Valkey 使用的原子 API | +| gcc_version | 无 | 用于编译 Valkey 服务器的GCC编译器版本 | +| process_id | 无 | 服务器进程的PID | +| process_supervised | 无 | 受监管系统(包括:upstart、systemd、unknown、no) | +| run_id | 无 | 标识 Valkey 服务器的随机值(由Sentinel和Cluster使用) | +| tcp_port | 无 | TCP/IP侦听端口 | +| server_time_usec | 无 | 微秒级精度的基于时间的系统时间 | +| uptime_in_seconds | 无 | 自 Valkey 服务器启动后的秒数 | +| uptime_in_days | 无 | 自 Valkey 服务器启动后的天数 | +| hz | 无 | 服务器的当前频率设置,valkey 相关定时任务的执行频率(如清除过期key,关闭超时客户端) | +| configured_hz | 无 | 服务器配置的频率设置 | +| lru_clock | 无 | 时钟每分钟递增,用于LRU管理 | +| executable | 无 | 服务器可执行文件的路径 | +| config_file | 无 | 配置文件的路径 | +| io_threads_active | 无 | 指示I/O线程是否处于活动状态的标志 | +| shutdown_in_milliseconds | 无 | 复制副本在完成关闭序列之前赶上复制的最长剩余时间。此字段仅在停机期间出现。 | + +#### 指标集合:clients + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------------|------|--------------------------------------------------------------------------------| +| connected_clients | 无 | 客户端连接数(不包括来自副本的连接) | +| cluster_connections | 无 | 群集总线使用的套接字数量的近似值 | +| maxclients | 无 | maxclients配置指令的值。这是connected_clients、connected_slave和cluster_connections之和的上限。 | +| client_recent_max_input_buffer | byte | 当前客户端连接中最大的输入缓冲区 | +| client_recent_max_output_buffer | byte | 当前客户端连接中最大的输出缓冲区 | +| blocked_clients | 无 | 阻塞呼叫挂起的客户端数(BLPOP、BRPOP、BRPOPLPUSH、BLMOVE、BZPOPMIN、BZPOPMAX) | +| tracking_clients | 无 | 正在跟踪的客户端数(CLIENT TRACKING) | +| clients_in_timeout_table | 无 | 客户端超时表中的客户端数 | + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|----------|-----------------------------------------------------------------------------------------------| +| used_memory | byte | valkey 使用其分配器(标准libc、jemalloc或tcmalloc等替代分配器)分配的总字节数 | +| used_memory_human | GB/MB/KB | 上一个值的人类可读表示 | +| used_memory_rss | byte | 操作系统看到的 valkey 分配的字节数(也称为驻留集大小)。这是top(1)和ps(1)等工具报告的数字 | +| used_memory_rss_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak | byte | valkey 消耗的峰值内存(字节) | +| used_memory_peak_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_peak_perc | 无 | used_memory_peak 与used_memory百分比 | +| used_memory_overhead | byte | 服务器分配用于管理其内部数据结构的所有开销的字节总和 | +| used_memory_startup | byte | valkey 在启动时消耗的初始内存量(字节) | +| used_memory_dataset | byte | 数据集的字节大小(used_memory - used_memory_overhead) | +| used_memory_dataset_perc | 无 | 已用内存数据集占净内存使用量的百分比(used_memory_dataset / (used_memory - used_memory_startup)) | +| allocator_allocated | byte | 从分配器分配的总字节数,包括内部碎片。通常与使用的内存相同 | +| allocator_active | byte | 分配器活动页中的总字节数,包括外部碎片 | +| allocator_resident | byte | 分配器中驻留的总字节数(RSS),包括可释放到操作系统的页面(通过MEMORY PURGE或仅等待) | +| total_system_memory | byte | valkey 主机的内存总量 | +| total_system_memory_human | GB/MB/KB | 上一个值的人类可读值 | +| used_memory_lua | byte | Lua引擎使用的字节数 | +| used_memory_lua_human | KB | 上一个值的人类可读值 | +| used_memory_scripts | byte | 缓存Lua脚本使用的字节数 | +| used_memory_scripts_human | GB/MB/KB | 上一值的人类可读值 | +| number_of_cached_scripts | 无 | 缓存的lua脚本数量 | +| maxmemory | byte | maxmemory配置指令的值 | +| maxmemory_human | GB/MB/KB | 上一个值的人类可读值 | +| maxmemory_policy | 无 | 当达到maxmemory时的淘汰策略 | +| allocator_frag_ratio | 无 | allocator_active 和 allocator_allocated之间的比率这是真实(外部)碎片度量(不是mem_fragmentation_ratio) | +| allocator_frag_bytes | byte | allocator_active 和 allocator_allocated 之间的差值。 | +| allocator_rss_ratio | | 从操作系统角度看, 内存分配器碎片比例 | +| allocator_rss_bytes | byte | allocator_resident 和 allocator_active之间的差值 | +| rss_overhead_ratio | 无 | used_memory_rss和allocator_resident之间的比率,这包括与分配器或堆无关的RSS开销 | +| rss_overhead_bytes | byte | used_memory_rss和allocator_resident之间的增量 | +| mem_fragmentation_ratio | 无 | used_memory_rss和used_memory之间的比率,注意,这不仅包括碎片,还包括其他进程开销(请参阅allocator_* metrics),以及代码、共享库、堆栈等开销。 | +| mem_fragmentation_bytes | byte | used_memory_rss和used_memory之间的增量。注意,当总碎片字节较低(几兆字节)时,高比率(例如1.5及以上)不是问题的表现 | +| mem_not_counted_for_evict | byte | 不应驱逐的内存大小,以字节为单位。这基本上是瞬时复制和AOF缓冲区。 | +| mem_replication_backlog | byte | 复制backlog的内存大小, 以字节为单位 | +| mem_clients_slaves | 无 | 副本客户端使用的内存-从 valkey 7.0开始,副本缓冲区与复制积压工作共享内存,因此当副本不触发内存使用增加时,此字段可以显示0。 | +| mem_clients_normal | 无 | 普通客户端使用的内存 | +| mem_aof_buffer | 无 | 用于AOF和AOF重写缓冲区的临时大小 | +| mem_allocator | 无 | 内存分配器,在编译时选择。 | +| active_defrag_running | 无 | 启用activedefrag时,这表示碎片整理当前是否处于活动状态,以及它打算使用的CPU百分比。 | +| lazyfree_pending_objects | 无 | 等待释放的对象数(使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHOLL) | +| lazyfreed_objects | 无 | 已延迟释放的对象数。 | + +#### 指标集合:persistence + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|--------|-----------------------------------------------------------------------------------------------------| +| loading | 无 | 服务器是否正在进行持久化 0 - 否 1 -是 | +| current_cow_size | byte | 运行子fork时写入时复制内存的大小(以字节为单位) | +| current_cow_size_age | second | current_cow_size值的年龄(以秒为单位) | +| current_fork_perc | 无 | 当前fork进程的百分比,对于AOF和RDB的fork,它是current_save_keys_processed占current_save_keys_total的百分比 | +| current_save_keys_processed | 无 | 当前保存操作处理的key的数量 | +| current_save_keys_total | 无 | 当前保存操作开始时的key的数量 | +| rdb_changes_since_last_save | 无 | 离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化 | +| rdb_bgsave_in_progress | 无 | 服务器是否正在创建rdb文件 0 - 否 1 - 是 | +| rdb_last_save_time | second | 最近一次创建rdb文件的时间戳,单位秒 | +| rdb_last_bgsave_status | 无 | 最近一次rdb持久化是否成功 ok 成功 | +| rdb_last_bgsave_time_sec | second | 最近一次成功生成rdb文件耗时秒数 | +| rdb_current_bgsave_time_sec | 无 | 如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数 | +| rdb_last_cow_size | 无 | RDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| aof_enabled | 无 | 是否开启了AOF 0 - 否 1 - 是 | +| aof_rewrite_in_progress | 无 | 标识aof的rewrite操作是否在进行中 0 - 否 1- 是 | +| aof_rewrite_scheduled | 无 | rewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite | +| aof_last_rewrite_time_sec | 无 | 最近一次aof rewrite耗费的时长 | +| aof_current_rewrite_time_sec | second | 如果rewrite操作正在进行,则记录所使用的时间,单位秒 | +| aof_last_bgrewrite_status | 无 | 上次 bgrewrite aof 操作的状态 ok 成功 | +| aof_last_write_status | 无 | 上次aof写入状态 | +| aof_last_cow_size | 无 | AOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等) | +| module_fork_in_progress | 无 | 指示fork模块正在进行的标志 | +| module_fork_last_cow_size | 无 | 上一次fork操作期间写入时复制内存的字节大小 | + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|----------------------------------------------------| +| total_connections_received | 无 | 服务器接受的连接总数 | +| total_commands_processed | 无 | 服务器处理的命令总数 | +| instantaneous_ops_per_sec | 无 | 每秒处理的命令数 | +| total_net_input_bytes | byte | 从网络读取的字节总数 | +| total_net_output_bytes | byte | 写入网络的总字节数 | +| instantaneous_input_kbps | KB/S | 网络每秒的读取速率(KB/秒) | +| instantaneous_output_kbps | KB/S | 网络每秒的写入速率(KB/秒) | +| rejected_connections | 无 | 由于maxclients限制而拒绝的连接数 | +| sync_full | 无 | 具有副本的完整重新同步数 | +| sync_partial_ok | 无 | 接受的部分重新同步请求数 | +| sync_partial_err | 无 | 被拒绝的部分重新同步请求数 | +| expired_keys | 无 | 过期的key总数 | +| expired_stale_perc | 无 | 可能过期key的百分比 | +| expired_time_cap_reached_count | 无 | 活动过期周期提前停止的次数 | +| expire_cycle_cpu_milliseconds | 无 | 活动到期周期所花费的累计时间 | +| evicted_keys | 无 | 由于最大内存限制而收回key的数量 | +| keyspace_hits | 无 | 在主dict 中成功查找key的次数 | +| keyspace_misses | 无 | 在主dict 中未查到key的次数 | +| pubsub_channels | 无 | 客户端使用 pub/sub 频道的总和 | +| pubsub_patterns | 无 | 客户端使用 pub/sub 模式的全局数量 | +| latest_fork_usec | 无 | 最后一次fork操作的持续时间(以微秒为单位) | +| total_forks | 无 | 自服务器启动以来的fork操作总数 | +| migrate_cached_sockets | 无 | 为MIGRATE目的打开的socket数量 | +| slave_expires_tracked_keys | 无 | trace key 到期的数量(仅适用于可写副本) | +| active_defrag_hits | 无 | 主动碎片整理命中次数 | +| active_defrag_misses | 无 | 主动碎片整理未命中次数 | +| active_defrag_key_hits | 无 | 主动碎片整理key命中次数 | +| active_defrag_key_misses | 无 | 主动碎片整理key未命中次数 | +| tracking_total_keys | 无 | key 查询的总数 | +| tracking_total_items | 无 | item查询的总数 | +| tracking_total_prefixes | 无 | 前缀查询的总数 | +| unexpected_error_replies | 无 | 意外错误回复数,即AOF加载或复制中的错误类型 | +| total_error_replies | 无 | 发出的错误回复总数,即被拒绝的命令(命令执行之前的错误)和失败的命令(在命令执行过程中的错误)的总和 | +| dump_payload_sanitizations | 无 | 参考sanitize-dump-payload配置 | +| total_reads_processed | 无 | 正在读取的请求数 | +| total_writes_processed | 无 | 正在写入的请求数 | +| io_threaded_reads_processed | 无 | 正在读取的线程数 | +| io_threaded_writes_processed | 无 | 正在写入的线程数 | + +#### 指标集合:replication + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|-------------------------------------------------------------------------------------| +| role | 无 | 节点角色 master 主节点 slave 从节点 | +| connected_slaves | 无 | 连接的从节点数 | +| master_failover_state | 无 | 正在进行的故障切换的状态(如果有) | +| master_replid | 无 | 实例启动的随机字符串 | +| master_replid2 | 无 | 故障切换后用于PSYNC的辅助复制ID | +| master_repl_offset | 无 | 主从同步偏移量 | +| second_repl_offset | 无 | 接受从服务ID的最大偏移量 | +| repl_backlog_active | 无 | 表示从服务挤压处于活动状态 | +| repl_backlog_size | byte | 从服务积压缓冲区的总大小(字节) | +| repl_backlog_first_byte_offset | 无 | 复制缓冲区里偏移量的大小 | +| repl_backlog_histlen | 无 | 此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------------------|------|------------------------| +| used_cpu_sys | 无 | valkey主进程在内核态所占用CPU时钟总和 | +| used_cpu_user | 无 | valkey主进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_children | 无 | valkey子进程在内核态所占用CPU时钟总和 | +| used_cpu_user_children | 无 | valkey子进程在用户态所占用CPU时钟总和 | +| used_cpu_sys_main_thread | 无 | valkey服务器主线程消耗的内核CPU | +| used_cpu_user_main_thread | 无 | valkey服务器主线程消耗的用户CPU | + +#### 指标集合:errorstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|-----------| +| errorstat_ERR | 无 | 错误累计出现的次数 | +| errorstat_MISCONF | 无 | | + +#### 指标集合:cluster + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|--------------------| +| cluster_enabled | 无 | 集群是否开启 0 - 否 1 - 是 | + +#### 指标集合:commandstats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|---------------------------------------------------------------------------------------------------------------------------| +| cmdstat_set | 无 | set命令的统计信息,calls: 累计调用该命令的次数;usec: 调用该命令的累计耗时,单位微秒;usec_per_call: 调用该命令的平均耗时;rejected_call: 拒绝执行的次数;failed_calls: 调用失败的次数 | +| cmdstat_get | 无 | get命令的统计信息 | +| cmdstat_setnx | 无 | setnx命令的统计信息 | +| cmdstat_hset | 无 | hset命令的统计信息 | +| cmdstat_hget | 无 | hget命令的统计信息 | +| cmdstat_lpush | 无 | lpush命令的统计信息 | +| cmdstat_rpush | 无 | rpush命令的统计信息 | +| cmdstat_lpop | 无 | lpop命令的统计信息 | +| cmdstat_rpop | 无 | rpop命令的统计信息 | +| cmdstat_llen | 无 | llen命令的统计信息 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/vastbase.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/vastbase.md new file mode 100644 index 00000000000..1a5b020ff8d --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/vastbase.md @@ -0,0 +1,55 @@ +--- +id: vastbase +title: 监控:Vastbase 数据库监控 +sidebar_label: Vastbase 数据库 +keywords: [开源监控系统, 开源数据库监控, Vastbase 数据库监控] +--- + +> 对 Vastbase 数据库的通用性能指标进行采集监控。支持Vastbase 9.2.4+。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-------------------------------------------------| +| 监控Host | 被监控的 Host 地址。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5432。 | +| 查询超时时间 | 设置 SQL 查询未响应数据时的超时时间,单位 ms 毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户名,可选 | +| 密码 | 数据库连接密码,可选 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------|------|---------------| +| server_version | 无 | 数据库服务器的版本号 | +| port | 无 | 数据库服务器端暴露服务端口 | +| server_encoding | 无 | 数据库服务器端的字符集编码 | +| data_directory | 无 | 数据库存储数据盘地址 | +| max_connections | 连接数 | 数据库最大连接数 | + +#### 指标集合:state + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|------------------------------------------------------------------------| +| name | 无 | 数据库名称,或 share-object 为共享对象。 | +| conflicts | 次数 | 由于与恢复冲突而在这个数据库中被取消的查询的数目 | +| deadlocks | 个数 | 在这个数据库中被检测到的死锁数 | +| blks_read | 次数 | 在这个数据库中被读取的磁盘块的数量 | +| blks_hit | 次数 | 磁盘块被发现已经在缓冲区中的次数,这样不需要一次读取(这只包括 Vastbase 缓冲区中的命中,而不包括在操作系统文件系统缓冲区中的命中) | +| blk_read_time | ms | 在这个数据库中后端花费在读取数据文件块的时间 | +| blk_write_time | ms | 在这个数据库中后端花费在写数据文件块的时间 | +| stats_reset | 无 | 这些统计信息上次被重置的时间 | + +#### 指标集合:activity + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------|------|----------| +| running | 连接数 | 当前客户端连接数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/website.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/website.md new file mode 100644 index 00000000000..7403f255aec --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/website.md @@ -0,0 +1,29 @@ +--- +id: website +title: 监控:网站监测 +sidebar_label: 网站监测 +keywords: [开源监控系统, 开源网站监控] +--- + +> 对网站是否可用,响应时间等指标进行监测 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|---------|-------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 网站对外提供的端口,http一般默认为80,https一般默认为443。 | +| 相对路径 | 网站地址除IP端口外的后缀路径,例如 `www.tancloud.io/console` 网站的相对路径为 `/console`。 | +| 启用HTTPS | 是否通过HTTPS访问网站,注意⚠️开启HTTPS一般默认对应端口需要改为443 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:summary + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| responseTime | ms毫秒 | 网站响应时间 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/websocket.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/websocket.md new file mode 100644 index 00000000000..b4dfc13d701 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/websocket.md @@ -0,0 +1,33 @@ +--- +id: websocket +title: 监控:Websocket +sidebar_label: Websocket +keywords: [ 开源监控系统, Websocket监控 ] +--- + +> WebSocket 服务的首次握手的响应等相关指标进行监测。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|------------------|--------------------------------------------------------------| +| WebSocket服务的Host | 被监控的Websocket的IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Websocket服务的端口。 | +| WebSocket服务的路径 | Websocket端点的路径。 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒。 | +| 绑定标签 | 用于对监控资源进行分类管理。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:概要 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|---------| +| responseTime | ms | 响应时间 | +| httpVersion | 无 | HTTP 版本 | +| responseCode | 无 | 响应状态码 | +| statusMessage | 无 | 状态消息 | +| connection | 无 | 表示连接方式 | +| upgrade | 无 | 升级后的协议 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows.md new file mode 100644 index 00000000000..82cfc0e3486 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows.md @@ -0,0 +1,114 @@ +--- +id: windows +title: 监控:Windows操作系统监控 +sidebar_label: Windows 操作系统 +keywords: [开源监控系统, 开源操作系统监控, Windows操作系统监控] +--- + +> 通过SNMP协议对Windows操作系统的通用性能指标进行采集监控。 +> 注意⚠️ Windows服务器需开启SNMP服务 + +参考资料: +[什么是SNMP协议1](https://www.cnblogs.com/xdp-gacl/p/3978825.html) +[什么是SNMP协议2](https://www.auvik.com/franklyit/blog/network-basics-what-is-snmp/) +[Win配置SNMP英文](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-snmp-service) +[Win配置SNMP中文](https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-snmp-service) + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|----------|----------------------------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Windows SNMP服务对外提供的端口,默认为 161。 | +| SNMP 版本 | SNMP协议版本 V1 V2c V3 | +| SNMP 团体字 | SNMP 协议团体名(Community Name),用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。类似于密码,默认值为 public | +| 超时时间 | 协议连接超时时间 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:系统 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| name | 无 | 主机名称 | +| descr | 无 | 操作系统描述 | +| uptime | 无 | 系统运行时间 | +| numUsers | 个数 | 当前用户数 | +| services | 个数 | 当前服务数量 | +| processes | 个数 | 当前进程数量 | +| responseTime | ms | 采集响应时间 | +| location | 无 | 位置 | +| memory | GB | 系统内存 | + +#### 指标集合:进程 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|----------| +| hrSWRunIndex | 无 | 编号 | +| hrSWRunName | 无 | 进程名称 | +| hrSWRunID | 无 | 进程 ID | +| hrSWRunPath | 无 | 进程路径 | +| hrSWRunParameters | 无 | 进程参数 | +| hrSWRunType | 无 | 进程类型 | +| hrSWRunStatus | 无 | 进程状态 | +| hrSWRunPerfCPU | s | 进程占用 CPU | +| hrSWRunPerfMem | KB | 进程占用内存 | + +#### 指标集合:服务 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|-----------| +| svSvcName | 无 | 服务名称 | +| svSvcInstalledState | 无 | 服务安装状态 | +| svSvcOperatingState | 无 | 服务运行状态 | +| svSvcCanBeUninstalled | 无 | 服务是否可以被卸载 | +| svSvcCanBePaused | 无 | 服务是否可以被暂停 | + +#### 指标集合:安装 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|--------------------|------|--------| +| hrSWInstalledIndex | 无 | 编号 | +| hrSWInstalledName | 无 | 安装名称 | +| hrSWInstalledID | 无 | 安装 ID | +| hrSWInstalledType | 无 | 安装类型 | + +#### 指标集合:存储 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|-------|------|--------| +| index | 无 | 编号 | +| descr | 无 | 存储描述 | +| size | Mb | 存储大小 | +| free | Mb | 存储空闲 | +| used | Mb | 存储占用 | +| usage | % | 存储使用率 | + +#### 指标集合:接口详情 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|--------------|------|--------| +| index | 无 | 编号 | +| descr | 无 | 接口名称 | +| speed | Mbps | 接口速率 | +| in_octets | Kbps | 入流量 | +| out_octets | Kbps | 出流量 | +| admin_status | 无 | 配置状态 | +| oper_status | 无 | 当前状态 | +| mtu | B | MTU | +| in_discards | 个数 | 入丢包数 | +| in_errors | 个数 | 入错包数 | +| out_discards | 个数 | 出丢包数 | +| out_errors | 个数 | 出错包数 | + +#### 指标集合:设备 + +| 字段名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| index | 无 | 编号 | +| descr | 无 | 描述 | +| status | 无 | 状态 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows_script.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows_script.md new file mode 100644 index 00000000000..d469b035943 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/windows_script.md @@ -0,0 +1,86 @@ +--- +id: windows_script +title: 监控:使用脚本监控 Windows 操作系统 +sidebar_label: 使用脚本监控 Windows 操作系统 +keywords: [开源监控系统, 开源网络监控, 使用脚本监控 Windows 操作系统] +--- + +### 准备工作 + +> 若要监控本机,部署 Hertzbeat 即可,若要监控其他主机,需在目标主机上部署采集器,部署采集器可参考[此链接](https://github.com/apache/hertzbeat?tab=readme-ov-file#2install-via-package)的第 5 步。 +> 如果使用 Docker 安装采集器,则会导致采集器监控不到宿主机上的进程信息,因为 Docker 容器在一个独立的环境中运行,每个容器都有自己的进程空间。 +> 在创建监控任务选择采集器时,需选择目标主机上对应的采集器。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|:-------|---------------------------------|---| +| 监控 Host | 被监控的对端 IPV4,IPV6 或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | | +| 采集器 | 配置此监控使用哪台采集器调度采集。 | +| 监控周期 | 监控周期性采集数据间隔时间,单位秒。 | +| 绑定标签 | 对监控资源的分类管理标签。 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息。 | + +### 采集指标 + +#### 指标集合:basic + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------|------|--------| +| hostname | 无 | 主机名称 | +| version | 无 | 操作系统版本 | + +#### 指标集合:cpu + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|-------------| +| info | 无 | CPU 型号 | +| cores | 核数 | CPU 内核数量 | +| interrupt | 个数 | CPU 中断数量 | +| load | 无 | CPU 最近的平均负载 | +| context_switch | 个数 | 当前上下文切换数量 | +| usage | % | CPU 使用率 | + +#### 指标集合:memory + +| 指标名称 | 指标单位 | 指标帮助描述 | +|---------------|------|----------| +| totalPhysical | Mb | 总物理内存容量 | +| freePhysical | Mb | 空闲物理内存容量 | +| totalVirtual | Mb | 总虚拟内存容量 | +| freeVirtual | Mb | 空闲虚拟内存容量 | + +#### 指标集合:disk + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------|------|---------| +| Model | 无 | 磁盘型号 | +| Size | Mb | 磁盘大小 | +| BytesPerSector | 字节 | 每个扇区字节数 | + +#### 指标集合:disk_free + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| Caption | 无 | 盘符 | +| FreeSpace | Mb | 可用空间大小 | +| Size | Mb | 总空间大小 | + +#### 指标集合:CPU 占用率前10的程序 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|----------| +| name | 无 | 进程名称 | +| id | 无 | 进程 id | +| cpu | 秒 | cpu 使用时间 | +| ws | Mb | 内存占用量 | + +#### 指标集合:内存占用率前10的程序 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|------|----------| +| name | 无 | 进程名称 | +| id | 无 | 进程 id | +| cpu | 秒 | cpu 使用时间 | +| ws | Mb | 内存占用量 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/xugu.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/xugu.md new file mode 100644 index 00000000000..dcefd9b009c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/xugu.md @@ -0,0 +1,62 @@ +--- +id: xugu +title: 监控:xuguDB数据库监控 +sidebar_label: xugu数据库 +keywords: [ 开源监控系统, 开源数据库监控, xugu数据库监控 ] +--- + +> 对xugu数据库的通用性能指标进行采集监控。支持xuguDB.v12。 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | 数据库对外提供的端口,默认为5138。 | +| 查询超时时间 | 设置SQL查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。 | +| 数据库名称 | 数据库实例名称,可选。 | +| 用户名 | 数据库连接用户 | +| 密码 | 数据库连接密码 | +| URL | 数据库连接URL,可选,若配置,则URL里面的数据库名称,用户名密码等参数会覆盖上面配置的参数 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:会话 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|--------------------------------|------|----------| +| Idle_Connection | 无 | 空闲连接 | +| Active_Connections | 无 | 活跃连接 | +| Connection_being_created | 无 | 正在创建的连接 | +| Null_Read_Connection | 无 | 空读连接 | +| Complete_data_input_connection | 无 | 完成数据输入连接 | +| Other | 无 | 其他 | + +#### 指标集合:内存 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|-------------| +| G_MEM | MB | 全局内存消耗 | +| CATA_MEM | MB | CATALOG内存消耗 | +| TRAN_MEM | MB | 事务内存消耗 | +| NET_MEM | MB | 用户连接用内存消耗 | +| TASK_MEM | MB | 任务线程消耗 | +| MSG_MEM | MB | 内部通讯消息内存消耗 | +| LOCK_MEM | MB | 局部锁内存消耗 | +| GLOCK_MEM | MB | 全局锁内存消耗 | +| DLCHK_MEM | MB | 死锁检测内存消耗 | +| MODI_MEM | MB | 变更日志内存消耗 | +| PROC_MEM | MB | 过程执行机内存消耗 | + +#### 指标集合:磁盘 信息 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------|------|-----------| +| DISK_READ_NUM | 次 | 数据块磁盘读取次数 | +| DISK_WRITE_NUM | 次 | 磁盘写入数据块次数 | +| DISK_READ_BYTES | MB | 磁盘读取字节数 | +| DISK_WRITE_BYTES | MB | 磁盘写入字节数 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/yarn.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/yarn.md new file mode 100644 index 00000000000..6694aff14fe --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/yarn.md @@ -0,0 +1,83 @@ +--- +id: yarn +title: 监控:Apache Yarn监控 +sidebar_label: Apache Yarn +keywords: [大数据监控系统, Apache Yarn监控, 资源管理器监控] +--- + +> Hertzbeat 对 Apache Yarn 节点监控指标进行监控。 + +**使用协议:HTTP** + +## 监控前操作 + +获取 Apache Yarn 的 HTTP 监控端口。 取值:`yarn.resourcemanager.webapp.address` + +## 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|-------------------------------------| +| 目标Host | 被监控的对端IPV4,IPV6或域名。不带协议头。 | +| 端口 | Apache Yarn 的监控端口号,默认为8088。 | +| 查询超时时间 | 查询 Apache Yarn 的超时时间,单位毫秒,默认6000毫秒。 | +| 指标采集间隔 | 监控数据采集的时间间隔,单位秒,最小间隔为30秒。 | + +### 采集指标 + +#### 指标集合:ClusterMetrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------------------|------|------------------------------------| +| NumActiveNMs | | 当前存活的 NodeManager 个数 | +| NumDecommissionedNMs | | 当前 Decommissioned 的 NodeManager 个数 | +| NumDecommissioningNMs | | 集群正在下线的节点数 | +| NumLostNMs | | 集群丢失的节点数 | +| NumUnhealthyNMs | | 集群不健康的节点数 | + +#### 指标集合:JvmMetrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|----------------------|------|------------------| +| MemNonHeapCommittedM | MB | JVM当前非堆内存大小已提交大小 | +| MemNonHeapMaxM | MB | JVM非堆最大可用内存 | +| MemNonHeapUsedM | MB | JVM当前已使用的非堆内存大小 | +| MemHeapCommittedM | MB | JVM当前已使用堆内存大小 | +| MemHeapMaxM | MB | JVM堆内存最大可用内存 | +| MemHeapUsedM | MB | JVM当前已使用堆内存大小 | +| GcTimeMillis | | JVM GC时间 | +| GcCount | | JVM GC次数 | + +#### 指标集合:QueueMetrics + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------------------------------|------|-----------------------| +| queue | | 队列名称 | +| AllocatedVCores | | 分配的虚拟核数(已分配) | +| ReservedVCores | | 预留核数 | +| AvailableVCores | | 可用核数(尚未分配) | +| PendingVCores | | 阻塞调度核数 | +| AllocatedMB | MB | 已分配(已用)的内存大小 | +| AvailableMB | MB | 可用内存(尚未分配) | +| PendingMB | MB | 阻塞调度内存 | +| ReservedMB | MB | 预留内存 | +| AllocatedContainers | | 已分配(已用)的container数 | +| PendingContainers | | 阻塞调度container个数 | +| ReservedContainers | | 预留container数 | +| AggregateContainersAllocated | | 累积的container分配总数 | +| AggregateContainersReleased | | 累积的container释放总数 | +| AppsCompleted | | 完成的任务数 | +| AppsKilled | | 被杀掉的任务数 | +| AppsFailed | | 失败的任务数 | +| AppsPending | | 阻塞的任务数 | +| AppsRunning | | 提正在运行的任务数 | +| AppsSubmitted | | 提交过的任务数 | +| running_0 | | 运行时间小于60分钟的作业个数 | +| running_60 | | 运行时间介于60~300分钟的作业个数 | +| running_300 | | 运行时间介于300~1440分钟的作业个数 | +| running_1440 | | 运行时间大于1440分钟的作业个数 | + +#### 指标集合:runtime + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-----------|------|--------| +| StartTime | | 启动时间戳 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper.md new file mode 100644 index 00000000000..7c69e9503ff --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper.md @@ -0,0 +1,119 @@ +--- +id: zookeeper +title: 监控:Zookeeper监控 +sidebar_label: Apache Zookeeper 监控 +keywords: [开源监控系统, Zookeeper监控监控] +--- + +> 对Zookeeper的通用性能指标进行采集监控 + +### 监控前操作 + +> 监控 zookeeper 目前的实现方案使用的是 zookeeper 提供的四字命令 + netcat 来收集指标数据 +> 需要用户自己将zookeeper的四字命令加入白名单 + +1. 加白名单步骤 + + 1. 找到我们 zookeeper 的配置文件,一般是 `zoo.cfg` + + 2. 配置文件中加入以下命令 + + ```shell + # 将需要的命令添加到白名单中 + 4lw.commands.whitelist=stat, ruok, conf, isro + + # 将所有命令添加到白名单中 + 4lw.commands.whitelist=* + ``` + + 3. 重启服务 + + ```shell + zkServer.sh restart + ``` + +2. netcat 协议 + +目前实现方案需要我们部署zookeeper的linux服务器,安装netcat的命令环境 + +> netcat安装步骤 +> +> ```shell +> yum install -y nc +> ``` + +如果终端显示以下信息则说明安装成功 + +```shell +Complete! +``` + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|--------|------------------------------------------------------| +| 监控Host | 被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。 | +| 任务名称 | 标识此监控的名称,名称需要保证唯一性。 | +| 端口 | Zookeeper的Linux服务器SSH端口。 | +| 查询超时时间 | 设置Zookeeper连接的超时时间,单位ms毫秒,默认3000毫秒。 | +| 用户名 | Zookeeper所在Linux连接用户名 | +| 密码 | Zookeeper所在Linux连接密码 | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 是否探测 | 新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 采集指标 + +#### 指标集合:conf + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|----------------------------------------| +| clientPort | 无 | 端口 | +| dataDir | 无 | 数据快照文件目录,默认10万次操作生成一次快照 | +| dataDirSize | kb | 数据快照文件大小 | +| dataLogDir | 无 | 事务日志文件目录,生产环境放在独立磁盘上 | +| dataLogSize | kb | 事务日志文件大小 | +| tickTime | ms | 服务器之间或客户端与服务器之间维持心跳的时间间隔 | +| minSessionTimeout | ms | 最小session超时时间 心跳时间x2 指定时间小于该时间默认使用此时间 | +| maxSessionTimeout | ms | 最大session超时时间 心跳时间x20 指定时间大于该时间默认使用此时间 | +| serverId | 无 | 服务器编号 | + +#### 指标集合:stats + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------------------|------|------------| +| zk_version | 无 | 服务器版本 | +| zk_server_state | 无 | 服务器角色 | +| zk_num_alive_connections | 个 | 连接数 | +| zk_avg_latency | ms | 平均延时 | +| zk_outstanding_requests | 个 | 堆积请求数 | +| zk_znode_count | 个 | znode结点数量 | +| zk_packets_sent | 个 | 发包数 | +| zk_packets_received | 个 | 收包数 | +| zk_watch_count | 个 | watch数量 | +| zk_max_file_descriptor_count | 个 | 最大文件描述符数量 | +| zk_approximate_data_size | kb | 数据大小 | +| zk_open_file_descriptor_count | 个 | 打开的文件描述符数量 | +| zk_max_latency | ms | 最大延时 | +| zk_ephemerals_count | 个 | 临时节点数 | +| zk_min_latency | ms | 最小延时 | + +#### 指标集合:envi + +| 指标名称 | 指标单位 | 指标帮助描述 | +|-------------------|------|-------------| +| zk_version | 无 | ZooKeeper版本 | +| hostname | 无 | 主机名 | +| java_version | 无 | Java版本 | +| java_vendor | 无 | Java供应商 | +| java_home | 无 | Java主目录 | +| java_class_path | 无 | Java类路径 | +| java_library_path | 无 | Java库路径 | +| java_io_tmpdir | 无 | Java临时目录 | +| java_compiler | 无 | Java编译器 | +| os_name | 无 | 操作系统名称 | +| os_arch | 无 | 操作系统架构 | +| os_version | 无 | 操作系统版本 | +| user_name | 无 | 用户名 | +| user_home | 无 | 用户主目录 | +| user_dir | 无 | 用户当前目录 | diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper_sd.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper_sd.md new file mode 100644 index 00000000000..666557c4d0e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/help/zookeeper_sd.md @@ -0,0 +1,122 @@ +--- +id: zookeeper_sd +title: 监控:Zookeeper服务发现监控 +sidebar_label: Zookeeper服务发现 +keywords: [开源监控系统, 开源服务发现监控, Zookeeper服务发现监控] +--- + +> HertzBeat 集成 Zookeeper,自动发现存储在 Zookeeper 节点中的服务实例并为发现的实例创建监控任务。 + +### 概述 + +Zookeeper 服务发现允许 HertzBeat 连接到您的 Zookeeper 服务器并自动发现存储在特定路径节点中的服务实例信息。这通常用于 Dubbo 和其他使用 Zookeeper 作为注册中心的 RPC 框架。当服务实例发生变化时,HertzBeat 将自动创建或删除相应的监控任务。 + +### 监控前操作 + +#### 部署 Zookeeper 服务器 + +1. 根据 [Zookeeper 官方文档](https://zookeeper.apache.org/doc/current/zookeeperStarted.html)部署 Zookeeper 服务器。 +2. 确保 Zookeeper 服务器可从 HertzBeat 访问。 +3. 使用 Zookeeper 客户端工具验证 Zookeeper 运行正常 + +### 配置参数 + +| 参数名称 | 参数帮助描述 | +|-----------------------|-----------------------------------------------------| +| 任务名称 | 标识此监控的名称,名称需要保证唯一性 | +| 服务发现地址 | Zookeeper 服务器连接地址。示例:`192.168.1.100:2181` 或 `zk1:2181,zk2:2181,zk3:2181`(集群模式) | +| 服务发现路径前缀 | Zookeeper 中用于服务发现的路径前缀。示例:`/dubbo` 或 `/services` | +| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 | +| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 | + +### 使用步骤 + +1. **创建服务发现监控** + - 在 HertzBeat Web 界面中,导航到 **监控** → **新增监控** + - 选择监控类型:**Zookeeper服务发现** + - 填写基本配置参数 + +2. **配置监控模板** + - 创建服务发现监控后,需要指定一个监控模板 + - 模板定义了为发现的服务实例创建什么类型的监控 + - 例如:如果发现的实例是 Dubbo 服务,可以选择端口监控模板 + - 常用模板类型:端口、HTTP、Ping 等 + +3. **自动发现** + - HertzBeat 会根据采集间隔定期查询 Zookeeper + - 为新发现的服务实例自动创建监控任务 + - 自动删除已消失服务实例的监控任务 + +4. **查看发现的实例** + - 在监控列表中,您可以看到所有自动创建的子监控任务 + - 每个子监控任务对应一个发现的服务实例 + +### 使用示例 + +#### 示例 1:Dubbo 服务发现 + +假设您有一个运行在 Zookeeper 中的 Dubbo 服务注册中心,地址为 `192.168.1.100:2181`,服务信息存储在 `/dubbo` 路径下。 + +配置示例: + +- **任务名称**:`Zookeeper-Dubbo-Discovery` +- **服务发现地址**:`192.168.1.100:2181` +- **服务发现路径前缀**:`/dubbo` +- **采集间隔**:`60` 秒 +- **监控模板**:选择 `端口` 监控 + +配置完成后: + +1. HertzBeat 连接到 Zookeeper +2. 获取 `/dubbo` 路径下的所有子节点 +3. 解析节点信息提取服务实例的主机和端口 +4. 为每个服务实例自动创建端口监控 + +#### 示例 2:自定义服务发现 + +如果您有一个使用 Zookeeper 的自定义服务注册机制,服务信息存储在 `/services` 路径下: + +- **服务发现地址**:`zk1:2181,zk2:2181,zk3:2181`(Zookeeper 集群) +- **服务发现路径前缀**:`/services` + +HertzBeat 将发现此路径下的所有服务实例。 + +### 注意事项 + +- **节点格式**:Zookeeper 服务发现期望子节点包含主机:端口信息 + - 示例节点名称格式:`192.168.1.101:8080` 或类似格式 +- **网络连通性**:确保 HertzBeat 可以访问 Zookeeper 服务器地址和端口(默认:2181) +- **监控模板**:服务发现仅发现服务实例地址,您需要配置合适的监控模板来实际监控这些实例 +- **采集间隔**:建议最小间隔为 60 秒,避免对 Zookeeper 造成过多请求 +- **路径前缀**:确保路径前缀正确,且 HertzBeat 有权限读取此路径下的节点 +- **集群模式**:支持 Zookeeper 集群模式,多个地址用逗号分隔 +- **实例命名**:自动创建的监控任务基于节点信息命名 + +### 采集指标 + +#### 指标集合:监控目标 + +| 指标名称 | 指标单位 | 指标帮助描述 | +|------|-------|---------------| +| 目标 | 无 | 发现的服务实例目标 | +| 主机 | 无 | 服务实例主机地址 | +| 端口 | 无 | 服务实例端口号 | + +### 适用场景 + +- **Dubbo 服务**:自动监控注册在 Zookeeper 中的 Dubbo 服务提供者和消费者 +- **RPC 框架**:监控使用 Zookeeper 作为注册中心的 RPC 服务 +- **自定义注册**:监控使用基于 Zookeeper 的自定义服务注册的服务 +- **分布式系统**:管理使用 Zookeeper 进行协调的分布式系统组件的监控 +- **服务治理**:集中管理 Zookeeper 服务生态中所有服务的监控 + +### 常见 Dubbo 路径结构 + +对于 Dubbo 服务,典型的 Zookeeper 路径结构包括: + +- `/dubbo/{serviceName}/providers` - 服务提供者地址 +- `/dubbo/{serviceName}/consumers` - 服务消费者地址 +- `/dubbo/{serviceName}/routers` - 路由规则 +- `/dubbo/{serviceName}/configurators` - 配置覆盖 + +使用 Zookeeper 服务发现配合 Dubbo 时,建议将路径前缀设置为 `/dubbo` 以发现所有 Dubbo 服务。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/introduce.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/introduce.md new file mode 100644 index 00000000000..6c13415f0f6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/introduce.md @@ -0,0 +1,328 @@ +--- +id: introduce +title: Apache HertzBeat™ +sidebar_label: 介绍 +slug: / +--- + +**官网: [hertzbeat.apache.org](https://hertzbeat.apache.org)** + +## 🎡 介绍 + +[Apache HertzBeat™](https://github.com/apache/hertzbeat) 是 AI 驱动的下一代开源实时观测系统。指标日志统一收集,告警一站分发,智能管控分析。无需 Agent,高性能集群,提供强大的自定义监控和状态页构建能力。 + +### 特点 + +- 集```采集+分析+告警+通知```为一体,HertzBeat AI 驱动下的新交互与功能,也内置 MCP Server 对外能力。 +- 统一的指标平台,无需 Agent,兼容 Prometheus,支持应用服务,程序,数据库,缓存,操作系统,大数据,中间件,Web 服务器,云原生,网络,自定义等。 +- 统一的日志平台,通过 OTLP 协议多日志源无缝对接上报。 +- 统一的告警平台,内部告警与外部多种告警源集成接入,统一告警处理分析,灵活的实时与周期阈值规则,分组收敛,静默,抑制等。 +- 统一的消息分发,告警平台处理后通过 `邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` `Server酱` 等方式分发通知。 +- 将 `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` 等协议规范可配置化,只需配置模板 `YML` 就能自定义采集指标。您相信只需简单配置即可快速适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。 +- 提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。 + +> `HertzBeat`的统一平台,AI智能,强大自定义,多类型支持,高性能,易扩展,希望能帮助用户快速方便实现观测需求。 + +--- + +### 强大的监控模板 + +> 开始我们就说 HertzBeat 的特点是自定义监控能力,无需 Agent。在讨论这两点之前,我们先介绍下 HertzBeat 的不一样的监控模板。而正是因为这样的监控模板设计,才会有了后面的高级特性。 + +HertzBeat 自身并没有去创造一种采集数据协议让监控对端来适配它。而是充分使用了现有的生态,`SNMP协议`采集网络交换机路由器信息,`JMX规范`采集JAVA应用信息,`JDBC规范`采集数据集信息,`SSH`直连执行脚本获取回显信息,`HTTP+(JsonPath | prometheus等)`解析API接口信息,`IPMI协议`采集服务器信息等等。 +HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模板的形式,来制定模板使用这些协议来采集任何想要的指标数据。 + +![HertzBeat](/img/blog/multi-protocol.png) + +你相信用户只需在UI页面编写一个监控模板,点击保存后,就能立刻适配一款`K8s`或`Docker`等新的监控类型吗? + +![HertzBeat](/img/home/9.png) + +### 内置监控类型 + +**官方内置了大量的监控模板类型,方便用户直接在页面添加使用,一款监控类型对应一个YML监控模板** + +- [Website](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml), + [Udp Port](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-udp_port.yml), [Dns](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dns.yml), + [Pop3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-pop3.yml), [Ntp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ntp.yml), + [Api Code](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api_code.yml), [Smtp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-smtp.yml), + [Nginx](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nginx.yml) +- [Mysql](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml), + [Doris BE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_be.yml), [Doris FE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_fe.yml), + [Memcached](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-memcached.yml), [NebulaGraph](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-nebula_graph.yml) +- [Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml), + [Spring Gateway](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spring_gateway.yml), [EMQX MQTT](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-emqx.yml), + [AirFlow](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-airflow.yml), [Hive](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hive.yml), + [Spark](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spark.yml), [Hadoop](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hadoop.yml) +- [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml) +- 和更多自定义监控模板。 +- 通知支持 `Discord` `Slack` `Telegram` `邮件` `钉钉` `微信` `飞书` `短信` `Webhook` `Server酱`。 + +### 自定义能力 + +> 由前面的**监控模板**介绍,大概清楚了 `HertzBeat` 拥有的自定义功能。 +> 我们将每个监控类型都视为一个监控模板,不管是官方内置的还是后期用户自定义新增的。用户都可以方便的通过修改监控模板来新增修改删除监控指标。 +> 模板里面包含各个协议的使用配置,环境变量,指标转换,指标计算,单位转换,指标采集等一系列功能,帮助用户能采集到自己想要的监控指标。 + +![HertzBeat](/img/docs/custom-arch.png) + +### 无需 Agent + +> 对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 `agent` 的安装部署调试升级了。 +> 每台主机得装个 `agent`,为了监控不同应用中间件可能还得装几个对应的 `agent`,监控数量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。 +> `agent` 的版本是否与主应用兼容, `agent` 与主应用的通讯调试, `agent` 的同步升级等等等等,这些全是头大的点。 + +`HertzBeat` 的原理就是使用不同的协议去直连对端系统,采用 `PULL` 的形式去拉取采集数据,无需用户在对端主机上部署安装 `Agent` | `Exporter` 等。 + +- 比如监控 `linux操作系统`, 在 `HertzBeat` 端输入IP端口账户密码或密钥即可。 +- 比如监控 `mysql数据库`, 在 `HertzBeat` 端输入IP端口账户密码即可。 +**密码等敏感信息全链路加密** + +### 高性能集群 + +> 当监控数量指数级上升,采集性能下降或者环境不稳定容易造成采集器单点故障时,这时我们的采集器集群就出场了。 + +- `HertzBeat` 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。 +- 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。 +- 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。 + +![HertzBeat](/img/docs/cluster-arch.png) + +### 云边协同 + +> 两地三中心,多云环境,多隔离网络,这些场景名词可能大家略有耳闻。当需要用一套监控系统统一监控不同隔离网络的IT资源时,这时我们的云边协同就来啦。 + +- `HertzBeat` 支持部署边缘采集器集群,与主 `HertzBeat` 服务云边协同提升采集能力。 + +在多个网络不相通的隔离网络中,在以往方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。 +`HertzBeat` 提供的云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主服务统一调度管理展示。 + +![HertzBeat](/img/docs/cluster-arch.png) + +### 易用友好 + +- 集 **监控+告警+通知** All in one, 无需单独部署多个组件服务。 +- 全UI界面操作,不管是新增监控,修改监控模板,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。 +- 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。 +- 自定义友好,只需一个监控模板YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。 +- 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。 + +### 完全开源 + +- Apache 基金会孵化器下开源项目,Gitee GVP,使用`Apache2`协议,由自由开放的开源社区主导维护的开源协作产品。 +- 无监控数量`License`,监控类型等伪开源限制。 +- 基于`Java+SpringBoot+TypeScript+Angular`主流技术栈构建,方便的二次开发。 +- 基于 HertzBeat 二次开发需保留版权。 + +**HertzBeat 已被 [CNCF云原生全景图](https://landscape.cncf.io/?view-mode=card&classify=category&sort-by=name&sort-direction=asc#observability-and-analysis--observability) 收录** + +![cncf](/img/home/cncf-landscape-left-logo.svg) + +--- +**`HertzBeat`的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。** + +--- + +## 即刻体验一波 + +Docker 环境下运行一条命令即可:`docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` +浏览器访问 `http://localhost:1157` 默认账户密码 `admin/hertzbeat` + +### 登陆页面 + +- HertzBeat 的用户管理统一由配置文件 `sureness.yml` 维护,用户可以通过修改此文件来新增删除修改用户信息,用户角色权限等。默认账户密码 admin/hertzbeat + +![HertzBeat](/img/home/0.png) + +### 概览页面 + +- 全局概览页面,分类展示了当前监控大类别数量分布,用户可直观查看当前的监控类型与数量并点击跳转至对应监控类型进行维护管理。 +- 展示当前注册的采集器集群状态,包括采集器的上线状态,监控任务,启动时间,IP地址,名称等。 +- 下发展示了最近告警信息列表,告警级别分布情况等。 + +![HertzBeat](/img/home/1.png) + +### 监控中心 + +- 监控入口,支持对应用服务,数据库,操作系统,中间件,网络,自定义等监控的管理。 +- 以列表的形式展示当前已添加的监控,支持对监控的新增,修改,删除,取消监控,导入导出,批量管理等。 +- 支持标签分组,查询过滤,查看监控详情入口等。 + +内置支持的监控类型包括: + +- [Website](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml), + [Udp Port](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-udp_port.yml), [Dns](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dns.yml), + [Pop3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-pop3.yml), [Ntp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ntp.yml), + [Api Code](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api_code.yml), [Smtp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-smtp.yml), + [Nginx](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nginx.yml) +- [Mysql](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml), + [Doris BE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_be.yml), [Doris FE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_fe.yml), + [Memcached](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-memcached.yml), [NebulaGraph](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-nebula_graph.yml) +- [Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml), + [Spring Gateway](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spring_gateway.yml), [EMQX MQTT](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-emqx.yml), + [AirFlow](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-airflow.yml), [Hive](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hive.yml), + [Spark](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spark.yml), [Hadoop](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hadoop.yml) +- [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml) + +![HertzBeat](/img/home/2.png) + +### 新增监控 + +- 新增或修改指定监控类型的监控实例,配置对端监控的IP,端口等参数,设置采集周期,采集任务调度方式,支持提前探测可用性等。 +- 页面上配置的监控参数由对应监控类型的监控模板所定义,用户可以通过修改监控模板来修改页面配置参数。 +- 支持关联标签,用标签来管理监控分组,告警匹配等。 + +![HertzBeat](/img/home/10.png) + +### 监控详情 + +- 监控的数据详情页面,展示了当前监控的基本参数信息,监控指标数据信息。 +- 监控实时数据报告,以小卡片列表的形式展示了当前监控的所有指标实时值,用户可根据实时值参考配置告警阈值规则。 +- 监控历史数据报告,以趋势图表的形式展示了当前监控数值类型的指标的历史值,支持查询小时,天,月的历史数据,支持配置页面刷新时间。 +- ⚠️注意监控历史图表需配置外置时序数据库才能获取完整功能。 + +![HertzBeat](/img/home/3.png) + +![HertzBeat](/img/home/4.png) + +### 告警中心 + +- 已触发告警消息的管理展示页面,使用户有直观的展示当前告警情况。 +- 支持告警处理,告警标记未处理,告警删除清空等批量操作。 + +![HertzBeat](/img/home/7.png) + +### 阈值规则 + +- 告警阈值规则是 `HertzBeat` 的核心功能,用户可以通过阈值规则来配置告警的触发条件。 +- 阈值规则支持实时阈值和计划阈值,实时阈值可以在监控数据采集时直接触发告警,计划阈值支持 PromQL 等表达式在指定时间段内计算触发告警。 +- 阈值规则支持可视化页面配置或更高灵活性的表达式规则配置,支持配置触发次数,告警级别,通知模板,关联指定监控等。 + +![HertzBeat](/img/home/6.png) + +![HertzBeat](/img/docs/start/ssl_5.png) + +### 告警集成 + +- 统一管理不同第三方平台告警,集成接入第三方监控观测系统的告警消息,对其进行分组,收敛,抑制,静默,分发通知等。 + +![HertzBeat](/img/home/11.png) + +### 告警分组 + +- 分组收敛支持对指定分组标签的告警进行分组合并,对时间段的相同重复告警去重收敛。 +- 当阈值规则触发告警或外部告警上报后,会进入到分组收敛进行告警分组,告警去重,以避免大量告警消息导致告警风暴。 + +![HertzBeat](/img/home/12.png) + +### 告警抑制 + +- 告警抑制用于配置告警之间的抑制关系,比如同一实例下高级别告警抑制低级别告警。 +- 当某个告警发生时,可以抑制其他告警的产生。例如,当服务器宕机时,可以抑制该服务器上的所有告警。 + +![HertzBeat](/img/home/13.png) + +### 告警静默 + +- 当通过阈值规则判断触发告警后,会进入到告警静默,告警静默会根据规则对特定一次性时间段或周期性时候段的告警消息屏蔽静默,此时间段不发送告警消息。 +- 此应用场景如用户在系统维护中,无需发已知告警。用户在工作日时间才会接收告警消息,用户在晚上需避免打扰等。 +- 告警静默规则支持一次性时间段或周期性时间段,支持标签匹配和告警级别匹配。 + +![HertzBeat](/img/home/15.png) + +### 消息通知 + +- 消息通知功能是把告警消息通过不同媒体渠道通知给指定的接收人,告警消息及时触达。 +- 功能包含接收人信息管理和通知策略管理,接收人管理维护接收人信息以其通知方式信息,通知策略管理维护把哪些告警信息通知给哪些接收人的策略规则。 +- 通知方式支持 `邮件` `Discord` `Slack` `Telegram` `钉钉` `微信` `飞书` `短信` `Webhook` 等方式。 +- 通知策略支持标签匹配和告警级别匹配,方便的使不同标签的告警和告警级别分派给不同的接收处理人。 +- 支持通知模板,用户可以自定义通过模板内容格式来满足自己的个性化通知展示需求。 + +![HertzBeat](/img/home/16.png) + +![HertzBeat](/img/home/17.png) + +![HertzBeat](/img/home/8.png) + +![HertzBeat](/img/home/14.png) + +### 监控模板 + +- HertzBeat 将 `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` 等协议规范可配置化,只需在浏览器配置监控模板 `YML` 就能使用这些协议去自定义采集想要的指标。您相信只需简单配置即可快速适配一款 `K8s` 或 `Docker` 等新的监控类型吗? +- 同理我们内置的所有监控类型(mysql,website,jvm,k8s)也一一映射为对应的监控模板,用户可以新增修改监控模板来自定义监控功能。 + +![HertzBeat](/img/home/9.png) + +### 采集集群 + +- 用户可以通过配置采集器集群来实现对大规模监控任务的分布式采集。 +- 采集器集群支持多节点部署,支持自动负载均衡,自动故障转移等。 +- 支持多隔离网络的统一管理,云边协同。 + +![HertzBeat](/img/home/18.png) + +### 状态页面 + +- 基于 HertzBeat 快速构建自己产品的对外状态页,轻松向用户传达您产品服务的实时状态。例如 Github 提供的服务状态页 [https://www.githubstatus.com](https://www.githubstatus.com)。 +- 支持状态页组件状态和监控状态联动同步,故障事件维护管理机制等。提高您的透明度,专业度和用户信任,降低沟通成本。 + +![HertzBeat](/img/home/19.png) + +![HertzBeat](/img/home/status.png) + +--- + +**更多功能欢迎探索呀。Have Fun!** + +--- + +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**Home: [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/design.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/design.md new file mode 100644 index 00000000000..7f3854c3e12 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/design.md @@ -0,0 +1,9 @@ +--- +id: design +title: 设计文档 +sidebar_label: 设计文档 +--- + +### HertzBeat 架构 + +![architecture](/img/docs/hertzbeat-arch.svg) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/resource.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/resource.md new file mode 100644 index 00000000000..910499fe860 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/others/resource.md @@ -0,0 +1,19 @@ +--- +id: resource +title: 相关资源 +sidebar_label: 相关资源 +--- + +## 图标资源 + +### HertzBeat LOGO + +![logo](/img/hertzbeat-logo.svg) + +Download: [SVG](/img/hertzbeat-logo.svg) [PNG](/img/hertzbeat-logo.png) + +### HertzBeat Brand LOGO + +![logo](/img/hertzbeat-brand.svg) + +Download: [SVG](/img/hertzbeat-brand.svg) [PNG](/img/hertzbeat-brand.png) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/account-modify.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/account-modify.md new file mode 100644 index 00000000000..9818ff86207 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/account-modify.md @@ -0,0 +1,159 @@ +--- +id: account-modify +title: 配置修改账户密码和加密密钥 +sidebar_label: 更新账户和密钥 +--- + +## 更新账户 + +Apache HertzBeat™ 默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat +若需要新增删除修改账户或密码,可以通过配置 `sureness.yml` 实现,若无此需求可忽略此步骤 +修改位于安装目录下的 `/hertzbeat/config/sureness.yml` 的配置文件,docker环境目录为`opt/hertzbeat/config/sureness.yml`,建议提前挂载映射 +配置文件内容参考如下 + +```yaml + +resourceRole: + - /api/account/auth/refresh===post===[admin,user,guest] + - /api/apps/**===get===[admin,user,guest] + - /api/monitor/**===get===[admin,user,guest] + - /api/monitor/**===post===[admin,user] + - /api/monitor/**===put===[admin,user] + - /api/monitor/**===delete==[admin] + - /api/monitors/**===get===[admin,user,guest] + - /api/monitors/**===post===[admin,user] + - /api/monitors/**===put===[admin,user] + - /api/monitors/**===delete===[admin] + - /api/alert/**===get===[admin,user,guest] + - /api/alert/**===post===[admin,user] + - /api/alert/**===put===[admin,user] + - /api/alert/**===delete===[admin] + - /api/alerts/**===get===[admin,user,guest] + - /api/alerts/**===post===[admin,user] + - /api/alerts/**===put===[admin,user] + - /api/alerts/**===delete===[admin] + - /api/notice/**===get===[admin,user,guest] + - /api/notice/**===post===[admin,user] + - /api/notice/**===put===[admin,user] + - /api/notice/**===delete===[admin] + - /api/tag/**===get===[admin,user,guest] + - /api/tag/**===post===[admin,user] + - /api/tag/**===put===[admin,user] + - /api/tag/**===delete===[admin] + - /api/summary/**===get===[admin,user,guest] + - /api/summary/**===post===[admin,user] + - /api/summary/**===put===[admin,user] + - /api/summary/**===delete===[admin] + - /api/collector/**===get===[admin,user,guest] + - /api/collector/**===post===[admin,user] + - /api/collector/**===put===[admin,user] + - /api/collector/**===delete===[admin] + - /api/status/page/**===get===[admin,user,guest] + - /api/status/page/**===post===[admin,user] + - /api/status/page/**===put===[admin,user] + - /api/status/page/**===delete===[admin] + +# 需要被过滤保护的资源,不认证鉴权直接访问 +# /api/v1/source3===get 表示 /api/v1/source3===get 可以被任何人访问 无需登录认证鉴权 +excludedResource: + - /api/account/auth/**===* + - /api/i18n/**===get + - /api/apps/hierarchy===get + - /api/push/**===* + - /api/status/page/public/**===* + # web ui resource + - /===get + - /dashboard/**===get + - /monitors/**===get + - /alert/**===get + - /account/**===get + - /setting/**===get + - /passport/**===get + - /status/**===get + - /**/*.html===get + - /**/*.js===get + - /**/*.css===get + - /**/*.ico===get + - /**/*.ttf===get + - /**/*.png===get + - /**/*.gif===get + - /**/*.jpg===get + - /**/*.svg===get + - /**/*.json===get + - /**/*.woff===get + - /**/*.eot===get + # swagger ui resource + - /swagger-resources/**===get + - /v2/api-docs===get + - /v3/api-docs===get + # h2 database + - /h2-console/**===* + +# 用户账户信息 +# 下面有 admin tom lili 三个账户 +# eg: admin 拥有[admin]角色,密码为 hertzbeat +# eg: tom 拥有[user],密码为 hertzbeat +# eg: lili 拥有[guest],明文密码为 hertzbeat, 加盐 123 后密码为 94C6B34E7A199A9F9D4E1F208093B489 +account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] +``` + +修改`sureness.yml`的如下**部分参数**:**[注意⚠️sureness配置的其它默认参数需保留]** + +```yaml + +# 用户账户信息 +# 下面有 admin tom lili 三个账户 +# eg: admin 拥有[admin,user]角色,密码为hertzbeat +# eg: tom 拥有[user],密码为hertzbeat +# eg: lili 拥有[guest],明文密码为 hertzbeat, 加盐 123 后密码为 94C6B34E7A199A9F9D4E1F208093B489 +account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] +``` + +## 更新安全密钥 + +> 此密钥为账户安全加密管理的密钥,需要更新为相同长度的你自定义密钥串。 + +更新 `config` 目录下的 `application.yml` 文件,修改 `sureness.jwt.secret` 参数为你自定义的相同长度的密钥串。 + +```yaml +sureness: + jwt: + secret: 'CyaFv0bwq2Eik0jdrKUtsA6bx4sDJeFV643R + LnfKefTjsIfJLBa2YkhEqEGtcHDTNe4CU6+9 + 8tVt4bisXQ13rbN0oxhUZR73M6EByXIO+SV5 + dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' +``` + +**重启 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可探索使用 HertzBeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/baota-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/baota-deploy.md new file mode 100644 index 00000000000..0bbfa27cf5e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/baota-deploy.md @@ -0,0 +1,44 @@ +--- +id: baota-deploy +title: 使用 宝塔面板 部署 HertzBeat +sidebar_label: 基于宝塔面板部署 +--- + +Apache HertzBeat™ 支持在宝塔面板的 `Docker` 应用商店一键部署。 + +## 前提 + +安装宝塔面板,前往[宝塔面板](https://www.bt.cn/new/index.html)官网,选择对应的脚本下载安装。 + +## 部署 + +1. 登录宝塔面板,在菜单栏中点击 `Docker`,根据提示安装 `Docker` 和 `Docker Compose` 服务。 + + > 在宝塔面板安装 Docker 服务,若已有则跳过。 + + ![HertzBeat](/img/docs/start/install-to-baota-1.png) + +2. 在`Docker-应用商店`中找到 `HertzBeat`,点击`安装` + + ![HertzBeat](/img/docs/start/install-to-baota-2.png) + +3. 设置域名等基本信息,点击`确定` + + ![HertzBeat](/img/docs/start/install-to-baota-3.png) + + - 名称:应用名称,默认`HertzBeat-随机字符` + - 版本选择:默认`latest` + - 域名:如需通过域名直接访问,请在此配置域名并将域名解析到服务器 + - 允许外部访问:如您需通过`IP+Port`直接访问,请勾选,如您已经设置了域名,请不要勾选此处 + - 端口:默认`1157`,可自行修改 + +4. 提交后面板会自动进行应用初始化,大概需要`1-3`分钟,初始化完成后即可访问。 + +## 访问 HertzBeat + +- 如您设置了域名,请直接在浏览器地址栏中输入域名访问,如`http://demo.hertzbeat.apache.org`,即可访问 `HertzBeat` 控制台。 +- 如您选择了通过`IP+Port`访问,请在浏览器地址栏中输入域名访问 `http://<宝塔面板IP>:1157`,即可访问 `HertzBeat` 控制台。 + +![HertzBeat](/img/home/0.png) + +> 默认用户名`admin`默认密码`hertzbeat` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/custom-config.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/custom-config.md new file mode 100644 index 00000000000..03c9538218a --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/custom-config.md @@ -0,0 +1,42 @@ +--- +id: custom-config +title: 常见参数配置 +sidebar_label: 常见参数配置 +--- + +这里描述了如何配置告警自定义参数等。 + +**`hertzbeat`的配置文件`application.yml`** + +配置HertzBeat的配置文件 + +- 修改位于 `hertzbeat/config/application.yml` 的配置文件 +- **Docker部署:** ⚠️docker容器方式需要将 `application.yml` 文件挂载到主机本地 +- **安装包方式:** 解压修改位于 `hertzbeat/config/application.yml` 的配置文件即可 + +## 1. 配置告警自定义参数 + +```yaml +alerter: + # 自定义控制台地址 + console-url: https://console.tancloud.io +``` + +## 2. 使用外置redis代替内存存储实时指标数据 + +> 默认我们的指标实时数据存储在内存中,可以配置如下来使用redis代替内存存储。 + +注意⚠️ `memory.enabled: false, redis.enabled: true` + +```yaml +warehouse: + store: + memory: + enabled: false + init-size: 1024 + redis: + enabled: true + host: 127.0.0.1 + port: 6379 + password: 123456 +``` diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-compose-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-compose-deploy.md new file mode 100644 index 00000000000..32e7333b95c --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-compose-deploy.md @@ -0,0 +1,67 @@ +--- +id: docker-compose-deploy +title: 通过 Docker Compose 方式安装 HertzBeat +sidebar_label: Docker Compose方式安装 +--- + +:::tip +推荐使用 Docker Compose 方式一键部署 HertzBeat 及其依赖服务。 +::: + +:::note +需您的环境中已经拥有 Docker 环境 和 Docker Compose 环境 ,若未安装请参考 [Docker官网文档](https://docs.docker.com/compose/install/) +执行命令 `docker compose version` 检查是否拥有 Docker Compose 环境。 +::: + +1. 下载启动脚本包 + + 从 [下载地址](/docs/download) 下载安装脚本包 `apache-hertzbeat-xxx-docker-compose.tar.gz` + +2. 选择使用 HertzBeat + PostgreSQL + VictoriaMetrics 方案 + + :::tip + + - `apache-hertzbeat-${version}-docker-compose.tar.gz` 解压后包含多个部署方案,这里我们推荐选择 `hertzbeat-postgresql-victoria-metrics` 方案。 + - 其它部署方式请详细阅读各个部署方案的 README.md 文件, MySQL 方案需要自行准备 MySQL 驱动包。 + + ::: + + - 解压脚本包 + + ```shell + tar zxvf apache-hertzbeat-${version}-docker-compose.tar.gz + ``` + + - 进入解压目录, 选择 `HertzBeat + PostgreSQL + VictoriaMetrics` 一键部署 + + ```shell + cd apache-hertzbeat-${version}-docker-compose + cd hertzbeat-postgresql-victoria-metrics + ``` + + - 一键启动 + + > 在 `hertzbeat-postgresql-victoria-metrics` 目录下执行以下命令 + + ```shell + docker-compose up -d + ``` + + - 查看服务状态 + + > 查看各个容器的运行状态,up 为正常运行状态 + + ```shell + docker-compose ps + ``` + +3. 开始探索 HertzBeat + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +---- + +### 部署常见问题 + +**最多的问题就是容器网络问题,请先提前排查** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-deploy.md new file mode 100644 index 00000000000..06fa83e496e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/docker-deploy.md @@ -0,0 +1,150 @@ +--- +id: docker-deploy +title: 通过 Docker 方式安装 HertzBeat +sidebar_label: Docker方式安装 +--- + +:::tip +使用 Docker 方式一键启动 HertzBeat 最小可用环境,无外部服务依赖,方便快速体验。 +但不建议在生产环境中使用,生产环境建议使用 Docker Compose 方式部署, 安装包方式部署, Kubernetes 方式部署。 +::: + +:::note +需您的环境中已经拥有 Docker 环境,若未安装请参考 [Docker官网文档](https://docs.docker.com/get-docker/) +::: + +### 部署 HertzBeat Server + +1. 执行以下命令 + + ```shell + $ docker run -d -p 1157:1157 -p 1158:1158 \ + -v $(pwd)/data:/opt/hertzbeat/data \ + -v $(pwd)/logs:/opt/hertzbeat/logs \ + -v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml \ + -v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml \ + --restart=always \ + --name hertzbeat apache/hertzbeat + ``` + + > 命令参数详解 + + - `docker run -d` : 通过 Docker 后台运行容器 + - `-p 1157:1157 -p 1158:1158` : 映射容器端口到主机端口(前面是宿主机的端口号,后面是容器的端口号)。1157是页面端口,1158是集群端口。 + - `-v $(pwd)/data:/opt/hertzbeat/data` : (可选,数据持久化) 重要,挂载数据库文件到本地主机,保证数据不会因为容器的创建删除而丢失 + - `-v $(pwd)/logs:/opt/hertzbeat/logs` : (可选) 挂载日志文件到本地主机方便查看 + - `-v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml` : (可选) 挂载配置文件到容器中(请确保本地已有此文件)。[下载源](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + - `-v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (可选) 挂载账户配置文件到容器中(请确保本地已有此文件)。[下载源](https://github.com/apache/hertzbeat/raw/master/script/sureness.yml) + - `-v $(pwd)/ext-lib:/opt/hertzbeat/ext-lib` : (可选) 挂载外部的第三方 JAR 包 [mysql-jdbc](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) [oracle-jdbc](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) [oracle-i18n](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar) + - `--name hertzbeat` : (可选) 命名容器名称为 hertzbeat + - `--restart=always` : (可选) 配置容器自动重启。 + - `apache/hertzbeat` : 使用[官方应用镜像](https://hub.docker.com/r/apache/hertzbeat)来启动容器, 若网络超时可用`quay.io/tancloud/hertzbeat`代替。 + + :::tip + + - 标记为可选的参数,非必填项,若不需要则删除。 + - 此将容器的 1157,1158 端口映射到宿主机的 1157,1158 端口上。若宿主机该端口已被占用,则需修改主机映射端口。 + - 挂载文件时,前面参数为你自定义本地文件地址,后面参数为容器内文件地址。挂载时请确保你本地已有此文件。 + - 可执行```docker update --restart=always hertzbeat```配置容器自动重启。 + + ::: + +2. 开始探索 HertzBeat + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +### 部署 HertzBeat Collector 集群(可选) + +:::note +HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数据发送到 HertzBeat Server。 +通过部署多个 HertzBeat Collector 可以实现数据的高可用,负载均衡和云边协同。 +::: + +![HertzBeat](/img/docs/cluster-arch.png) + +1. 执行以下命令 + + ```shell + $ docker run -d \ + -e IDENTITY=custom-collector-name \ + -e MODE=public \ + -e MANAGER_HOST=127.0.0.1 \ + -e MANAGER_PORT=1158 \ + --name hertzbeat-collector apache/hertzbeat-collector + ``` + + > 命令参数详解 + + - `docker run -d` : 通过 Docker 后台运行容器 + - `-e IDENTITY=custom-collector-name` : (可选) 设置采集器的唯一标识名称。注意多采集器时名称需保证唯一性。 + - `-e MODE=public` : 配置运行模式(public or private), 公共集群模式或私有云边模式。 + - `-e MANAGER_HOST=127.0.0.1` : 重要, 配置连接的 HertzBeat Server 地址,127.0.0.1 需替换为 HertzBeat Server 对外 IP 地址。 + - `-e MANAGER_PORT=1158` : (可选) 配置连接的 HertzBeat Server 端口,默认 1158. + - `-v $(pwd)/logs:/opt/hertzbeat-collector/logs` : (可选)挂载日志文件到本地主机方便查看 + - `--name hertzbeat-collector` : 命名容器名称为 hertzbeat-collector + - `apache/hertzbeat-collector` : 使用[官方应用镜像](https://hub.docker.com/r/apache/hertzbeat-collector)来启动容器, 若网络超时可用`quay.io/tancloud/hertzbeat-collector`代替。 + + :::tip + + - `MANAGER_HOST=127.0.0.1` 中的 `127.0.0.1` 需被替换为 HertzBeat Server 对外 IP 地址。 + - 标记为可选的参数,非必填项,若不需要则删除。 + - 挂载文件时,前面参数为你自定义本地文件地址,后面参数为容器内文件地址。挂载时请确保你本地已有此文件。 + - 可执行```docker update --restart=always hertzbeat-collector```配置容器自动重启。 + + ::: + +2. 开始探索 HertzBeat Collector + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +---- + +### Docker 方式部署常见问题 + +**最多的问题就是网络问题,请先提前排查** + +1. MYSQL,TDENGINE或IotDB和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败 + 此问题本质为Docker容器访问宿主机端口连接失败,由于docker默认网络模式为Bridge模式,其通过localhost访问不到宿主机。 + + > 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP + > 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....` + +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 + 请参考下面几点排查问题: + + > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 + > 二:HertzBeat的配置文件 `application.yml` 里面的依赖服务IP账户密码等配置是否正确 + > 三:若都无问题可以 `docker logs hertzbeat` 查看容器日志是否有明显错误,提issue或交流群或社区反馈 + +3. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - + > 安装初始化此时序数据库 + +4. 安装配置了时序数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 请检查配置的时许数据库参数是否正确 + > 时序数据库对应的 enable 是否设置为true + > 注意⚠️若hertzbeat和外置数据库都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP + > 可根据logs目录下启动日志排查 + +5. application.yml 是干什么用的 + + > 此文件是HertzBeat的配置文件,用于配置HertzBeat的各种参数,如数据库连接信息,时序数据库配置等。 + + 下载 `application.yml` 文件到主机目录下,例如: $(pwd)/application.yml + 下载源 [github/script/application.yml](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + + - 若需使用邮件发送告警,需替换 `application.yml` 里面的邮件服务器参数 + - 若需使用外置Mysql数据库替换内置H2数据库,需替换`application.yml`里面的`spring.datasource`参数 具体步骤参见 [H2数据库切换为MYSQL](mysql-change)) + - 若需使用时序数据库TDengine来存储指标数据,需替换`application.yml`里面的`warehouse.store.victoria-metrics`参数 具体步骤参见 [使用victoria-metrics存储指标数据](victoria-metrics-init) + +6. sureness.yml 是干什么用的 + + > 此文件是HertzBeat的用户配置文件,用于配置HertzBeat的用户信息,如账户密码等。 + + HertzBeat默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过配置 `sureness.yml` 实现,若无此需求可忽略此步骤 + 下载 `sureness.yml` 文件到主机目录下,例如: $(pwd)/sureness.yml + 下载源 [github/script/sureness.yml](https://github.com/apache/hertzbeat/raw/master/script/sureness.yml) + 具体修改步骤参考 [配置修改账户密码](account-modify) diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/greptime-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/greptime-init.md new file mode 100644 index 00000000000..8c8843647ce --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/greptime-init.md @@ -0,0 +1,74 @@ +--- +id: greptime-init +title: 依赖时序数据库服务 Greptime 安装初始化 (推荐) +sidebar_label: 指标数据存储 Greptime (推荐) +--- + +Apache HertzBeat 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 Greptime 作为存储。 + +[Greptime](https://github.com/GreptimeTeam/greptimedb) 是一个开源的云原生统一可观测性数据库,用于度量、日志和追踪,支持SQL/PromQL/流式处理。 + +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +### 通过Docker方式安装Greptime + +1. 下载安装Docker环境 +Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 +安装完毕后终端查看Docker版本是否正常输出。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装Greptime + + ```shell + $ docker run -d -p 127.0.0.1:4000-4003:4000-4003 \ + -v "$(pwd)/greptimedb:/tmp/greptimedb" \ + --name greptime \ + greptime/greptimedb:latest standalone start \ + --http-addr 0.0.0.0:4000 \ + --rpc-addr 0.0.0.0:4001 \ + --mysql-addr 0.0.0.0:4002 \ + --postgres-addr 0.0.0.0:4003 + ``` + + `-v "$(pwd)/greptimedb:/tmp/greptimedb` 为 greptimedb 数据目录本地持久化挂载,需将 `$(pwd)/greptimedb` 替换为实际本地存在的目录,默认使用执行命令的当前目录下的 `greptimedb` 目录作为数据目录。 + + 使用```$ docker ps```查看数据库是否启动成功 + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 [/script/application.yml](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.greptime`数据源参数,URL账户密码,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + jpa: + enabled: false + greptime: + enabled: true + grpc-endpoints: localhost:4001 + http-endpoint: http://localhost:4000 + database: public + username: greptime + password: greptime + ``` + + 默认数据库是内置的 `public` ,若制定其它数据库名称,需要在 `greptimeDB` 提前创建。 + eg: 创建名称为 `hertzbeat` 数据有效期90天的数据库 SQL: `CREATE DATABASE IF NOT EXISTS hertzbeat WITH(ttl='90d')` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库是否都需要配置,能不能都用 + + > 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/influxdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/influxdb-init.md new file mode 100644 index 00000000000..fde3b031ad7 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/influxdb-init.md @@ -0,0 +1,75 @@ +--- +id: influxdb-init +title: 依赖时序数据库服务InfluxDB安装初始化(可选) +sidebar_label: 指标数据存储InfluxDB +--- + +Apache HertzBeat 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 VictoriaMetrics 作为存储。 + +InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读、高性能写、高效存储与实时分析等。 注意支持⚠️ 1.x版本。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +### 1. 直接使用华为云服务 GaussDB For Influx + +> 开通使用[华为云云数据库 GaussDB For Influx](https://www.huaweicloud.com/intl/zh-cn/product/gaussdb.html) +> +> 获取云数据库对外暴露连接地址,账户密码即可 + +⚠️注意云数据库默认开启了SSL,云数据库地址应使用 `https:` + +### 2. 通过Docker方式安装InfluxDB + +1. 下载安装Docker环境 +Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 +安装完毕后终端查看Docker版本是否正常输出。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装InfluxDB 1.x + + ```shell + $ docker run -p 8086:8086 \ + -v /opt/influxdb:/var/lib/influxdb \ + influxdb:1.8 + ``` + + `-v /opt/influxdb:/var/lib/influxdb` 为influxdb数据目录本地持久化挂载,需将`/opt/influxdb`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.influxdb`数据源参数,URL账户密码,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + influxdb: + enabled: true + server-url: http://localhost:8086 + username: root + password: root + expire-time: '30d' + replication: 1 + ``` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库InfluxDb, IoTDB和TDengine是否都需要配置,能不能都用 + + > 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/iotdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/iotdb-init.md new file mode 100644 index 00000000000..4ede42430ab --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/iotdb-init.md @@ -0,0 +1,125 @@ +--- +id: iotdb-init +title: 依赖时序数据库服务IoTDB安装初始化(可选) +sidebar_label: 指标数据存储IoTDB +--- + +Apache HertzBeat 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 VictoriaMetrics 作为存储。 + +Apache IoTDB是一体化收集、存储、管理与分析物联网时序数据的软件系统,我们使用其存储分析采集到的监控指标历史数据。支持V1.*版本,废弃V0.*版本的支持。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** + +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有IoTDB环境,可直接跳到YML配置那一步。 + +### 通过Docker方式安装IoTDB + +> 可参考官方网站[安装教程](https://iotdb.apache.org/zh/UserGuide/V0.13.x/QuickStart/WayToGetIoTDB.html) + +1. 下载安装Docker环境 + Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后终端查看Docker版本是否正常输出。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装IoTDB + + ```shell + $ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ + -v /opt/iotdb/data:/iotdb/data \ + --name iotdb \ + apache/iotdb:1.2.2-standalone + ``` + + `-v /opt/iotdb/data:/iotdb/data` 为IoTDB数据目录本地持久化挂载,需将`/iotdb/data`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +3. 在hertzbeat的`application.yml`配置文件配置IoTDB数据库连接 + + 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置`warehouse.store.iot-db`数据源参数,HOST账户密码等,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + # 启用IotDB + iot-db: + enabled: true + host: 127.0.0.1 + rpc-port: 6667 + username: root + password: root + # use default queryTimeoutInMs = -1 + query-timeout-in-ms: -1 + # 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期) + expire-time: '7776000000' + ``` + + **IoTDB集群版配置** + 如果您使用IoTDB为集群请参考下面配置 + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + # 启用IotDB + iot-db: + enabled: true + node-urls: ['127.0.0.1:6667','127.0.0.2:6667','127.0.0.3:6667''] + username: root + password: root + # if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0 + query-timeout-in-ms: -1 + # 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期) + expire-time: '7776000000' + ``` + + 参数说明: + + | 参数名称 | 参数说明 | + |---------------------|-------------------------------------------| + | enabled | 是否启用 | + | host | IoTDB数据库地址 | + | rpc-port | IoTDB数据库端口 | + | node-urls | IoTDB集群地址 | + | username | IoTDB数据库账户 | + | password | IoTDB数据库密码 | + | version | IoTDB数据库版本,已废弃,仅支持V1.* | + | query-timeout-in-ms | 查询超时时间 | + | expire-time | 数据存储时间,默认'7776000000'(90天,单位为毫秒,-1代表永不过期) | + + > 如果集群配置`node-urls`和单机配置同时设置,以集群`node-urls`配置稳准 + +4. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用 + + > 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + +2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库 + +3. 安装配置了IotDB数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 请检查配置参数是否正确 + > iot-db enable是否设置为true + > 注意⚠️若hertzbeat和IotDB都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP + > 可根据logs目录下启动日志排查 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/mysql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/mysql-change.md new file mode 100644 index 00000000000..ba579d3cedb --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/mysql-change.md @@ -0,0 +1,116 @@ +--- +id: mysql-change +title: 关系型数据库使用 Mysql 替换依赖的 H2 存储系统元数据(可选) +sidebar_label: 元数据存储Mysql +--- + +MYSQL是一款值得信赖的关系型数据库,Apache HertzBeat™ 除了支持使用默认内置的H2数据库外,还可以切换为使用MYSQL存储监控信息,告警信息,配置信息等结构化关系数据。 + +注意⚠️ 使用外置MySQL数据库替换内置H2数据库为可选项,但建议生产环境配置,以提供更好的性能 + +> 如果您已有MYSQL环境,并且MYSQL版本符合要求,可直接跳到数据库创建那一步。 + +### 支持的MYSQL版本 + +请确保使用支持的 MySQL 版本。HertzBeat 仅支持 MySQL 5.7+ 或 8 版本。你可以通过以下命令查看 MySQL 版本: + +```shell +$ mysql --version +mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) +``` + +### 通过Docker方式安装MYSQL + +1. 下载安装Docker环境 + Docker 的安装请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 + 安装完毕后请于终端检查Docker版本输出是否正常。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装MYSQL + + ```shell + $ docker run -d --name mysql \ + -p 3306:3306 \ + -v /opt/data:/var/lib/mysql \ + -e MYSQL_ROOT_PASSWORD=123456 \ + --restart=always \ + mysql:5.7 + ``` + + `-v /opt/data:/var/lib/mysql` 为mysql数据目录本地持久化挂载,需将`/opt/data`替换为实际本地存在的目录 + 使用```$ docker ps```查看数据库是否启动成功 + +### 数据库创建 + +1. 进入MYSQL或使用客户端连接MYSQL服务 + `mysql -uroot -p123456` +2. 创建名称为hertzbeat的数据库 + `create database hertzbeat default charset utf8mb4 collate utf8mb4_general_ci;` +3. 查看hertzbeat数据库是否创建成功 + `show databases;` + +### 添加 MYSQL jdbc 驱动 jar + +- 下载 MYSQL jdbc driver jar, 例如 mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) +- 将此 jar 包拷贝放入 HertzBeat 的安装目录下的 `ext-lib` 目录下. + +### 修改hertzbeat的配置文件application.yml切换数据源 + +- 配置 HertzBeat 的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + 替换里面的`spring.database`数据源参数,IP端口账户密码驱动 + ⚠️注意`application.yml`文件内容需完整,除下方修改内容外其他参数需保留,完整内容见[/script/application.yml](https://github.com/hertzbeat/hertzbeat/raw/master/script/application.yml) + + 需修改部分原参数: + +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE +``` + +具体替换参数如下,需根据mysql环境配置账户密码IP: + +```yaml +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + url: jdbc:mysql://mysql:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false + hikari: + max-lifetime: 120000 + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: mysql + properties: + eclipselink: + logging: + level: SEVERE +``` + +- 通过docker启动时,建议修改host为宿主机的外网IP地址,包括mysql连接字符串。 + +> 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./mysql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 + +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/package-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/package-deploy.md new file mode 100644 index 00000000000..d55c0476cd3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/package-deploy.md @@ -0,0 +1,139 @@ +--- +id: package-deploy +title: 通过安装包安装 HertzBeat +sidebar_label: 安装包方式安装 +--- + +:::tip +Apache HertzBeat™ 支持在Linux Windows Mac系统安装运行,CPU支持X86/ARM64。 +由于1.6.0及以后版本使用 `Java 17` ,且安装包不再提供内置jdk的版本,参考以下情况使用新版Hertzbeat。 + +- 当你的服务器中默认环境变量为 `Java 17` 时,这一步你无需任何操作。 +- 当你的服务器中默认环境变量不为 `Java 17`时,如 `Java 8` 、 `Java 11` ,若你服务器中**没有**其他应用需要低版本 `Java` ,根据你的系统,到 [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 选择相应的发行版下载,并在搜索引擎搜索如何设置新的环境变量指向新的`Java 17`。 +- 当你的服务器中默认环境变量不为`Java 17`时,如 `Java 8` 、 `Java 11` ,若你服务器中**有**其他应用需要低版本 `Java` ,你不想更改环境变量,根据你的系统,到 [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 选择相应的发行版下载,并将解压后的文件夹重命名为`java`,复制到Hertzbeat的解压目录下。 + +::: + +### 部署 HertzBeat Server + +1. 下载安装包 + + 从 [下载页面](/docs/download) 下载您系统环境对应的安装包版本 `apache-hertzbeat-xxx-bin.tar.gz` + +2. 设置配置文件(可选) + + 解压安装包到主机 eg: /opt/hertzbeat + + ```shell + tar zxvf apache-hertzbeat-xxx-bin.tar.gz + ``` + + :::tip + 位于 `config/application.yml` 的配置文件,您可以根据需求修改配置文件来配置外部依赖的服务,如数据库,时序数据库等参数。 + HertzBeat 启动时默认全使用内部服务,但生产环境建议切换为外部数据库服务。 + ::: + + 建议元数据存储使用 [PostgreSQL](postgresql-change), 指标数据存储使用 [VictoriaMetrics](victoria-metrics-init), 具体步骤参见 + + - [内置 H2 数据库切换为 PostgreSQL](postgresql-change) + - [使用 VictoriaMetrics 存储指标数据](victoria-metrics-init) + +3. 配置账户文件(可选) + + HertzBeat 默认内置三个用户账户,分别为 admin/hertzbeat tom/hertzbeat guest/hertzbeat + 若需要新增删除修改账户或密码,可以通过修改位于 `config/sureness.yml` 的配置文件实现,具体参考 + + - [配置修改账户密码](account-modify) + +4. 启动 + + 执行位于安装目录 bin 下的启动脚本 startup.sh, windows 环境下为 startup.bat + + ```shell + ./startup.sh + ``` + +5. 开始探索HertzBeat + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即刻开始探索使用HertzBeat,默认账户密码 admin/hertzbeat。 + +### 部署 HertzBeat Collector 集群(可选) + +:::note +HertzBeat Collector 是一个轻量级的数据采集器,用于采集并将数据发送到 HertzBeat Server。 +通过部署多个 HertzBeat Collector 可以实现数据的高可用,负载均衡和云边协同。 +::: + +![HertzBeat](/img/docs/cluster-arch.png) + +1. 下载安装包 + + 从 [下载页面](/docs/download) 下载您系统环境对应的安装包版本 `apache-hertzbeat-collector-xxx-bin.tar.gz` + +2. 设置配置文件 + + 解压安装包到主机 eg: /opt/hertzbeat-collector + + ```shell + tar zxvf apache-hertzbeat-collector-xxx-bin.tar.gz + ``` + + 配置采集器的配置文件 `config/application.yml` 里面的 HertzBeat Server 连接 IP, 端口, 采集器名称(需保证唯一性)等参数。 + + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY:} + mode: ${MODE:public} + manager-host: ${MANAGER_HOST:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + + > 参数详解 + + - `identity` : (可选) 设置采集器的唯一标识名称。注意多采集器时名称需保证唯一性。 + - `mode` : 配置运行模式(public or private), 公共集群模式或私有云边模式。 + - `manager-host` : 重要, 配置连接的 HertzBeat Server 地址, + - `manager-port` : (可选) 配置连接的 HertzBeat Server 端口,默认 1158. + +3. 启动 + + 执行位于安装目录 hertzbeat-collector/bin/ 下的启动脚本 startup.sh, windows 环境下为 startup.bat + + ```shell + ./startup.sh + ``` + +4. 开始探索 HertzBeat Collector + 浏览器访问 [http://ip:1157/](http://ip:1157/) 即可开始探索使用,默认账户密码 admin/hertzbeat。 + +**HAVE FUN** + +---- + +### 安装包部署常见问题 + +**最多的问题就是网络环境问题,请先提前排查** + +1. 启动失败,需您提前准备JAVA运行环境 + + 安装JAVA运行环境-可参考[官方网站](https://www.oracle.com/java/technologies/downloads/) + 要求:JAVA17环境 + 下载JAVA安装包: [镜像站](https://mirrors.huaweicloud.com/openjdk/) + 安装后命令行检查是否成功安装 + + ```shell + $ java -version + java version "17.0.9" + Java(TM) SE Runtime Environment 17.0.9 (build 17.0.9+8-LTS-237) + Java HotSpot(TM) 64-Bit Server VM 17.0.9 (build 17.0.9+8-LTS-237, mixed mode) + ``` + +2. 按照流程部署,访问 [http://ip:1157/](http://ip:1157/) 无界面 + 请参考下面几点排查问题: + + > 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功 + > 二:HertzBeat的配置文件 `hertzbeat/config/application.yml` 里面的依赖服务IP账户密码等配置是否正确 + > 三:若都无问题可以查看 `hertzbeat/logs/` 目录下面的运行日志是否有明显错误,提issue或交流群或社区反馈 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/postgresql-change.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/postgresql-change.md new file mode 100644 index 00000000000..a7e083b9f50 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/postgresql-change.md @@ -0,0 +1,103 @@ +--- +id: postgresql-change +title: 关系型数据库使用 PostgreSQL 替换依赖的 H2 存储系统元数据(推荐) +sidebar_label: 元数据存储PostgreSQL(推荐) +--- + +PostgreSQL 是一个功能强大,开源的关系型数据库管理系统(RDBMS)。Apache HertzBeat™ 除了支持使用默认内置的 H2 数据库外,还可以切换为使用 PostgreSQL 存储监控信息,告警信息,配置信息等结构化关系数据。 + +注意⚠️ 使用外置 PostgreSQL 数据库替换内置 H2 数据库为可选项,但建议生产环境配置,以提供更好的性能 + +> 如果您已有 PostgreSQL 环境,可直接跳到数据库创建那一步。 + +### 通过 Docker 方式安装 PostgreSQL + +1. 下载安装 Docker 环境 + Docker 的安装请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。安装完毕后请于终端检查 Docker 版本输出是否正常。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker 安装 PostgreSQL + + ```shell + docker run -d --name postgresql -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgres:15 + ``` + + 使用 ```$ docker ps``` 查看数据库是否启动成功 + +### 数据库创建 + +1. 进入 PostgreSQL 或使用客户端连接 PostgreSQL 服务 + + ```shell + su - postgres + psql + ``` + +2. 创建名称为 hertzbeat 的数据库 + + ```sql + CREATE DATABASE hertzbeat; + ``` + +3. 查看 hertzbeat 数据库是否创建成功 + + ```sql + SELECT * FROM pg_database where datname='hertzbeat'; + ``` + +### 修改 hertzbeat 的配置文件 application.yml 切换数据源 + +1. 配置 HertzBeat 的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️ docker 容器方式需要将 application.yml 文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + 替换里面的 `spring.database` 数据源参数,IP 端口账户密码驱动 + ⚠️注意 `application.yml` 文件内容需完整,除下方修改内容外其他参数需保留,完整内容见[/script/application.yml](https://github.com/hertzbeat/hertzbeat/raw/master/script/application.yml) + +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE +``` + +具体替换参数如下,需根据 PostgreSQL 环境配置账户密码 IP: + +```yaml +spring: + datasource: + driver-class-name: org.postgresql.Driver + username: root + password: 123456 + url: jdbc:postgresql://postgresql:5432/hertzbeat + hikari: + max-lifetime: 120000 + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform + database: postgresql + properties: + eclipselink: + logging: + level: SEVERE +``` + +> 注意:上述是针对下载安装包的方式,对于本地切换数据源,只需完成[数据库创建](./postgresql-change#数据库创建)以及修改`hertzbeat-startup/src/main/resources/application.yml`中的配置即可。 + +**启动 HertzBeat 浏览器访问 [http://ip:1157/](http://ip:1157/) 开始使用HertzBeat进行监控告警,默认账户密码 admin/hertzbeat** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/questdb-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/questdb-init.md new file mode 100644 index 00000000000..ba8446bad8b --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/questdb-init.md @@ -0,0 +1,127 @@ +--- +id: questdb-init +title: 依赖时序数据库服务QuestDB安装初始化(可选) +sidebar_label: 指标数据存储QuestDB +--- + +Apache HertzBeat™ 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 VictoriaMetrics 作为存储。 + +QuestDB 是一款开源的时序数据库,因其高性能和低延迟等特点,在时序数据处理领域备受关注,我们使用其存储分析采集到的监控指标历史数据。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** + +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有QuestDB环境,可直接跳到YML配置那一步。 + +### 安装QuestDB + +1. 下载安装包 + + 从官方 GitHub 下载对应系统的最新版本: + + ```shell + # Linux/macOS(以v7.3.9为例,可替换为最新版本号) + wget https://github.com/questdb/questdb/releases/download/7.3.9/questdb-7.3.9-no-jre-bin.tar.gz + + # 解压 + tar -zxvf questdb-7.3.9-no-jre-bin.tar.gz + mv questdb-7.3.9 /opt/questdb # 移动到常用目录 + ``` + + Windows 用户: + 下载 zip 包后解压到`C:\questdb`或自定义目录。 + +2. 启动 QuestDB + + ```shell + # Linux/macOS:进入安装目录,启动服务 + cd /opt/questdb/bin + ./questdb start + + # Windows(命令提示符): + cd C:\questdb\bin + questdb.exe start + ``` + +3. 设置访问密码 + + QuestDB 通过配置文件启用认证,需手动修改配置。 + + 编辑配置文件: + + ```shell + # Linux/macOS + vi /opt/questdb/conf/server.conf + + # Windows + notepad C:\questdb\conf\server.conf + ``` + + 启用认证并配置密码: + + ```shell + # 启用认证(默认关闭) + http.security.enabled=true + pg.security.enabled=true # PostgreSQL协议认证 + + # 设置管理员账号密码(自定义) + http.security.admin.username=admin + http.security.admin.password=YourStrongPassword123! + + # 可选:限制Web控制台访问IP(如只允许本地) + http.bind.to=127.0.0.1:9000 + ``` + + 重启后生效: + + ```shell + # Linux/macOS + ./questdb stop + ./questdb start + + # Windows + questdb.exe stop + questdb.exe start + ``` + +4. 在hertzbeat的`application.yml`配置文件配置QuestDB数据库连接 + + 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置`warehouse.store.questdb`数据源参数,HOST账户密码等,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + # 启用IotDB + questdb: + enabled: true + url: localhost:9000 + username: admin + password: quest + ``` + + 参数说明: + + | 参数名称 | 参数说明 | + | -------- | ---------------- | + | enabled | 是否启用 | + | url | QuestDB的URL地址 | + | username | QuestDB据库账户 | + | password | QuestDB据库密码 | + + > **注意:** 因为 QuestDB 架构设计原因,如果对数据的过期时间有要求可以前往 QuestDB 的配置文件 `server.conf` 中配置: + > + > ```ini + > cairo.default.ttl=30d + > ``` + +5. 重启 HertzBeat diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/quickstart.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/quickstart.md new file mode 100644 index 00000000000..26232a5180e --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/quickstart.md @@ -0,0 +1,88 @@ +--- +id: quickstart +title: 快速开始 +sidebar_label: 快速开始 +--- + +### 🐕 开始使用 + +- 如果您是想将 Apache HertzBeat™ 部署到本地搭建监控系统,请参考下面的部署文档进行操作。 + +### 🍞 HertzBeat安装 + +> HertzBeat支持通过源码安装启动,Docker容器运行和安装包方式安装部署,CPU架构支持X86/ARM64。 + +#### 方式一:Docker方式快速安装 + +1. `docker` 环境仅需一条命令即可开始 + + ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat``` + + ```或者使用 quay.io (若 dockerhub 网络链接超时)``` + + ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat``` + +2. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +3. 部署采集器集群(可选) + + ```shell + docker run -d -e IDENTITY=custom-collector-name -e MANAGER_HOST=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector apache/hertzbeat-collector + ``` + + - `-e IDENTITY=custom-collector-name` : 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。 + - `-e MODE=public` : 配置运行模式(public or private), 公共集群模式或私有云边模式。 + - `-e MANAGER_HOST=127.0.0.1` : 配置连接主HertzBeat服务的对外IP。 + - `-e MANAGER_PORT=1158` : 配置连接主HertzBeat服务的对外端口,默认1158。 + +更多配置详细步骤参考 [通过Docker方式安装HertzBeat](docker-deploy) + +#### 方式二:通过安装包安装 + +1. 下载您系统环境对应的安装包`hertzbeat-xx.tar.gz` [Download Page](https://hertzbeat.apache.org/docs/download) +2. 配置 HertzBeat 的配置文件 `hertzbeat/config/application.yml`(可选) +3. 部署启动 `$ ./bin/startup.sh` 或 `bin/startup.bat` +4. 浏览器访问 `http://localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` +5. 部署采集器集群(可选) + - 下载您系统环境对应采集器安装包`hertzbeat-collector-xx.tar.gz`到规划的另一台部署主机上 [Download Page](https://hertzbeat.apache.org/docs/download) + - 配置采集器的配置文件 `hertzbeat-collector/config/application.yml` 里面的连接主HertzBeat服务的对外IP,端口,当前采集器名称(需保证唯一性)等参数 `identity` `mode` (public or private) `manager-host` `manager-port` + + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY:} + mode: ${MODE:public} + manager-host: ${MANAGER_HOST:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + + - 启动 `$ ./bin/startup.sh` 或 `bin/startup.bat` + - 浏览器访问主HertzBeat服务 `http://localhost:1157` 查看概览页面即可看到注册上来的新采集器 + +更多配置详细步骤参考 [通过安装包安装HertzBeat](package-deploy) + +#### 方式三:本地代码启动 + +1. 此为前后端分离项目,本地代码调试需要分别启动后端工程`hertzbeat-startup`和前端工程`web-app` +2. 后端:需要`maven3+`, `java17`和`lombok`环境,修改`YML`配置信息并启动`hertzbeat-startup`服务 +3. 前端:需要`nodejs npm angular-cli`环境,待本地后端启动后,在`web-app`目录下启动 `ng serve --open` +4. 浏览器访问 `http://localhost:4200` 即可开始,默认账号密码 `admin/hertzbeat` + +详细步骤参考 [参与贡献之本地代码启动](../community/contribution) + +##### 方式四:Docker-Compose 统一安装 hertzbeat+postgresql+tsdb + +通过 [docker-compose部署脚本](https://github.com/apache/hertzbeat/tree/master/script/docker-compose) 一次性把 postgresql/mysql 数据库, victoria-metrics/iotdb/tdengine 时序数据库和 hertzbeat 安装部署。 + +详细步骤参考 [docker-compose部署方案](https://github.com/apache/hertzbeat/tree/master/script/docker-compose/README.md) + +##### 方式五:Kubernetes Helm Charts 部署 hertzbeat+collector+postgresql+tsdb + +通过 Helm Chart 一次性将 HertzBeat 集群组件部署到 Kubernetes 集群中。 + +详细步骤参考 [Artifact Hub](https://artifacthub.io/packages/helm/hertzbeat/hertzbeat) + +**HAVE FUN** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/rainbond-deploy.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/rainbond-deploy.md new file mode 100644 index 00000000000..4ed3002af86 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/rainbond-deploy.md @@ -0,0 +1,50 @@ +--- +id: rainbond-deploy +title: 使用 Rainbond 部署 HertzBeat +sidebar_label: 基于Rainbond部署 +--- + +如果你不熟悉 Kubernetes,想在 Kubernetes 中安装 Apache HertzBeat,可以使用 Rainbond 来部署。Rainbond 是一个基于 Kubernetes 构建的云原生应用管理平台,可以很简单的将你的应用部署到 Kubernetes中。 + +## Rainbond Cloud 部署 + +如果想在 “Rainbond Cloud” 上一键部署 “HertzBeat”,可以按照以下步骤进行操作 + +- 打开 [HertzBeat 应用详情](https://hub.grapps.cn/marketplace/apps/753) + +![HertzBeat应用详情](/img/docs/start/hertzbeat-desc.png) + +- 登录 Rainbond Cloud 帐号,没有帐号,提前注册帐号! + +![Rainbond Cloud](/img/docs/start/rainbond-cloud.png) + +- 选择版本安装 + +![hertzbeat 版本](/img/docs/start/hertzbeat-versions.png) + +## 开源 Rainbond 部署 + +### 前提 + +安装 Rainbond,请参阅 [Rainbond 快速安装](https://www.rainbond.com/docs/quick-start/quick-install)。 + +### 部署 HertzBeat + +登录 Rainbond 后,点击左侧菜单中的 `应用市场`,切换到开源应用商店,在搜索框中搜索 `HertzBeat`,点击安装按钮。 + +![HertzBeat](/img/docs/start/install-to-rainbond.png) + +填写以下信息,然后点击确认按钮进行安装。 + +- 团队:选择现有团队或创建新的团队 +- 集群:选择对应的集群 +- 应用:选择现有应用或创建新的应用 +- 版本:选择要安装的 HertzBeat 版本 + +等待安装完成,即可访问 HertzBeat 应用。 + +![HertzBeat](/img/docs/start/hertzbeat-topology.png) + +:::tip +通过 Rainbond 安装的 HertzBeat,默认使用了外部的 Mysql 数据库 和 Redis 以及 IoTDB。同时也挂载了 HertzBeat 的配置文件,可以在 `组件 -> 环境配置 -> 配置文件设置` 中修改配置文件。 +::: diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/tdengine-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/tdengine-init.md new file mode 100644 index 00000000000..6d629944297 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/tdengine-init.md @@ -0,0 +1,137 @@ +--- +id: tdengine-init +title: 依赖时序数据库服务TDengine安装初始化(可选) +sidebar_label: 指标数据存储TDengine +--- + +Apache HertzBeat 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 VictoriaMetrics 作为存储。 + +TDengine是一款开源物联网时序型数据库,我们用其存储采集到的监控指标历史数据。 注意支持⚠️ 3.x版本。 + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有TDengine环境,可直接跳到创建数据库实例那一步。 + +### 通过Docker方式安装TDengine + +1. 下载安装Docker环境 +Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 +安装完毕后终端查看Docker版本是否正常输出。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装TDengine + + ```shell + $ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \ + -v /opt/taosdata:/var/lib/taos \ + --name tdengine -e TZ=Asia/Shanghai \ + tdengine/tdengine:3.0.4.0 + ``` + + `-v /opt/taosdata:/var/lib/taos` 为tdengine数据目录本地持久化挂载,需将`/opt/taosdata`替换为实际本地存在的目录 + `-e TZ="Asia/Shanghai"` 为tdengine设置时区,这里可选设置对应的时区 + 使用```$ docker ps```查看数据库是否启动成功 + +### 创建数据库实例 + +> [TDengine CLI 小技巧](https://docs.taosdata.com/develop/) + +1. 进入数据库Docker容器 + + ```shell + docker exec -it tdengine /bin/bash + ``` + +2. 修改账户密码 + + > 建议您修改密码。TDengine默认的账户密码是 root/taosdata + > 进入容器后,执行 `taos` 命令进入TDengine CLI , 如下: + + ```shell + root@tdengine-server:~/TDengine-server# taos + Welcome to the TDengine shell from Linux, Client Version + Copyright (c) 2020 by TAOS Data, Inc. All rights reserved. + taos> + ``` + + > 在 TDengine CLI 中使用 alter user 命令可以修改用户密码,缺省密码为 taosdata + +3. 创建名称为hertzbeat的数据库 + + 执行创建数据库命令 + + ```shell + taos> show databases; + taos> CREATE DATABASE hertzbeat KEEP 90 DURATION 10 BUFFER 16; + ``` + + 上述语句将创建一个名为 hertzbeat 的库,这个库的数据将保留90天(超过90天将被自动删除),每 10 天一个数据文件,每个 VNode 的写入内存池的大小为 16 MB + +4. 查看hertzbeat数据库是否成功创建 + + ```shell + taos> show databases; + taos> use hertzbeat; + ``` + +5. 退出TDengine CLI + + ```text + 输入 q 或 quit 或 exit 回车 + ``` + +**注意⚠️若是安装包安装的TDengine** + +> 除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter + +### 在hertzbeat的`application.yml`配置文件配置此数据库连接 + +1. 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置里面的`warehouse.store.td-engine`数据源参数,URL账户密码,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + td-engine: + enabled: true + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:TAOS-RS://localhost:6041/hertzbeat + username: root + password: taosdata + ``` + +2. 重启 HertzBeat + +### 常见问题 + +1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用 + + > 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。 + +2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库 + +3. 监控详情历史图片不展示或无数据,已经配置了TDengine + + > 请确认是否安装的TDengine版本为3.0以上,版本2.x不支持兼容 + +4. 安装配置了TDengine数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库] + + > 请检查配置参数是否正确 + > td-engine enable是否设置为true + > 注意⚠️若hertzbeat和TDengine都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP + > 可根据logs目录下启动日志排查 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.6.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.6.0.md new file mode 100644 index 00000000000..f41e6b85af3 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.6.0.md @@ -0,0 +1,280 @@ +--- +id: 1.6.0-update +title: 如何升级到 1.6.0 +sidebar_label: 1.6.0 升级指南 +--- + +## HertzBeat 1.6.0 升级指南 + +### 注意:该指南适用于1.5.0向1.6.0版本升级 + +### 如果你使用更老的版本,建议使用导出功能重新安装,或先升级到1.5.0再按本指南升级到1.6.0 + +### 二进制安装包升级 + +1. 升级Java环境 + + 由于1.6.0版本使用Java17,且安装包不再提供内置jdk的版本,参考以下情况使用新版Hertzbeat。 + + - 当你的服务器中默认环境变量为Java17时,这一步你无需任何操作。 + - 当你的服务器中默认环境变量不为Java17时,如Java8、Java11,若你服务器中**没有**其他应用需要低版本Java,根据你的系统,到 [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 选择相应的发行版下载,并在搜索引擎搜索如何设置新的环境变量指向新的Java17。 + - 当你的服务器中默认环境变量不为Java17时,如Java8、Java11,若你服务器中**有**其他应用需要低版本Java,根据你的系统,到 [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) 选择相应的发行版下载,并将解压后的文件夹重命名为java,复制到Hertzbeat的解压目录下。 + +2. 升级数据库 + + 打开[https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration](https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration), + 选择你使用的数据库的目录下相应的 `V160__update_column.sql`文件执行升级sql。 + +3. 升级配置文件 + + 由于 `application.yml`和 `sureness.yml`更新变动较大,建议直接使用新的yml配置文件,然后在自己的需求基础上进行修改。 + + - `application.yml`一般需要修改以下部分 + + 默认为: + + ```yaml + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE + ``` + + 如若修改为mysql数据库,给出一个示例: + + ```yaml + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: mysql + properties: + eclipselink: + logging: + level: SEVERE + ``` + + - `sureness.yml`修改是可选的,一般在你需要修改账号密码时 + + ```yaml + # account info config + # eg: admin has role [admin,user], password is hertzbeat + # eg: tom has role [user], password is hertzbeat + # eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 + account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] + ``` + +4. 添加相应的数据库驱动 + +由于apache基金会对于license合规的要求,HertzBeat的安装包不能包含mysql,oracle等gpl许可的依赖,需要用户自行添加,用户可通过以下链接自行下载驱动,复制到安装目录下`ext-lib`中。 + +mysql:[https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip) +oracle(如果你要监控oracle,这两个驱动是必须的): + [https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) + [https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar?utm_source=mavenlibs.com) +接下来,像之前那样运行启动脚本,即可体验最新的HertzBeat1.6.0! + +### Docker 方式升级 - Mysql数据库 + +1. 关闭 HertzBeat 容器 + + ```shell + docker stop hertzbeat + ``` + +2. 升级数据库脚本 + + 打开[https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration](https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration), + 选择你使用的数据库的目录下相应的 `V160__update_column.sql`文件在 Mysql 执行升级sql。 + +3. 升级配置文件 + + 由于 `application.yml`和 `sureness.yml`更新变动较大,建议直接挂载使用新的yml配置文件,然后在自己的需求基础上进行修改。 + + - `application.yml`一般需要修改以下部分 + + 默认为: + + ```yaml + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: mysql + properties: + eclipselink: + logging: + level: SEVERE + ``` + + - `sureness.yml`修改是可选的,一般在你需要修改账号密码时 + + ```yaml + # account info config + # eg: admin has role [admin,user], password is hertzbeat + # eg: tom has role [user], password is hertzbeat + # eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 + account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] + ``` + +4. 添加相应的数据库驱动 + +由于apache基金会对于license合规的要求,HertzBeat的安装包不能包含mysql,oracle等gpl许可的依赖,需要用户自行添加,用户可通过以下链接自行下载驱动 jar 放到本地 `ext-lib`目录下,然后启动时将`ext-lib`挂载到容器的 `/opt/hertzbeat/ext-lib`目录。 + +mysql:[https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip) +oracle(如果你要监控oracle,这两个驱动是必须的): + [https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) + [https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar?utm_source=mavenlibs.com) +接下来,像之前那样 Docker 运行启动 HertzBeat,即可体验最新的HertzBeat1.6.0! + +### Docker安装升级 - H2内置数据库(生产环境不推荐使用H2) + +1. 关闭 HertzBeat 容器 + + ```shell + docker stop hertzbeat + ``` + +2. 编辑H2数据库文件 + + 前题你已经将 H2 数据库文件 data 目录挂载到本地,或者启动老容器手动将 /opt/hertzbeat/data 目录拷贝出来。 + 下载 h2 驱动 jar [https://mvnrepository.com/artifact/com.h2database/h2/2.2.220](https://mvnrepository.com/artifact/com.h2database/h2/2.2.220) + 使用 h2 驱动 jar 本地启动数据库 + + ```shell + java -jar h2-2.2.220.jar -url jdbc:h2:file:./hertzbeat -user sa -password 123456 + ``` + + 打开[https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration](https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration), + 选择你使用的数据库的目录下相应的 `V160__update_column.sql`文件在 H2 执行升级sql。 + +3. 升级配置文件 + + 由于 `application.yml`和 `sureness.yml`更新变动较大,建议直接挂载使用新的yml配置文件,然后在自己的需求基础上进行修改。 + + - `application.yml`一般需要修改以下部分 + + 默认为: + + ```yaml + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE + ``` + + - `sureness.yml`修改是可选的,一般在你需要修改账号密码时 + + ```yaml + # account info config + # eg: admin has role [admin,user], password is hertzbeat + # eg: tom has role [user], password is hertzbeat + # eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 + account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] + ``` + +4. 添加相应的数据库驱动 + +由于apache基金会对于license合规的要求,HertzBeat的安装包不能包含mysql,oracle等gpl许可的依赖,需要用户自行添加,用户可通过以下链接自行下载驱动 jar 放到本地 `ext-lib`目录下,然后启动时将`ext-lib`挂载到容器的 `/opt/hertzbeat/ext-lib`目录。 + +mysql:[https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.zip) +oracle(如果你要监控oracle,这两个驱动是必须的): + [https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) + [https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar?utm_source=mavenlibs.com) +接下来,像之前那样 Docker 运行启动,即可体验最新的HertzBeat1.6.0! + +### 通过导出导入升级 + +> 若不想如上繁琐的脚本升级方式,可以直接将老环境的监控任务和阈值信息导出导入 + +1. 部署一套最新版本的新环境 +2. 在页面上将老环境的监控任务和阈值信息导出。 +3. 在页面上将监控任务和阈值信息文件导入。 + +⚠️注意此方式只保留了老环境的监控任务信息和阈值信息,没有其它数据。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.7.0.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.7.0.md new file mode 100644 index 00000000000..7a4f5b3d016 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/update-1.7.0.md @@ -0,0 +1,41 @@ +--- +id: 1.7.0-update +title: 如何升级到 1.7.0 +sidebar_label: 1.7.0 升级指南 +--- + +## HertzBeat 1.7.0 升级指南 + +:::note +该指南适用于 1.6.x 向1.6.0 版本升级 1.7.0 +如果你使用更老的版本,建议使用导出功能重新安装,或先升级到 1.6.0 再按本指南升级到 1.7.0 +::: + +其它请参考 [版本更新指引](upgrade) + +## 升级注意 + +### 变更数据库 + +在 1.7.0 中,我们使用 `label` 代替 `tag`,在某些环境中,我们需要删除数据库中的表 `hzb_tag_monitor_bind`。 + +```sql +DELETE FROM hzb_tag_monitor_bind; +``` + +### 更新告警阈值 + +在 1.7.0 中,我们重新设计了新的告警阈值,包括实时阈值和计划阈值。 +我们需要手动重新配置告警阈值和告警分组。 + +:::tip +新版本没有内置的默认阈值规则,比如之前的可用性阈值。 +如果您发现监控下线后没有告警,您需要自己配置相应的可用性阈值。 +::: + +## 通过导出导入升级 + +若不想如上繁琐的脚本升级方式,可以直接将老环境的监控任务导出导入。 + +- 部署一套最新版本的新环境 +- 在页面上将老环境的监控任务导出再导入 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/upgrade.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/upgrade.md new file mode 100644 index 00000000000..1bcaf797155 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/upgrade.md @@ -0,0 +1,46 @@ +--- +id: upgrade +title: HertzBeat 新版本更新指引 +sidebar_label: 版本更新指引 +--- + +**Apache HertzBeat 的发布版本列表** + +- [下载页面](https://hertzbeat.apache.org/docs/download) +- [Github Release](https://github.com/apache/hertzbeat/releases) +- [DockerHub Release](https://hub.docker.com/r/apache/hertzbeat/tags) + +HertzBeat 的元数据信息保存在 H2 或 Mysql, PostgreSQL 关系型数据库内, 采集指标数据存储在 TDengine, IotDB 等时序数据库内。 + +**升级前您需要保存备份好数据库的数据文件和监控模板文件** + +### Docker部署方式的升级 + +1. 若使用了自定义监控模板 + - 需要备份 `docker cp hertzbeat:/opt/hertzbeat/define ./define` 当前运行 docker 容器里面的 `/opt/hertzbeat/define` 目录到当前主机下 + - `docker cp hertzbeat:/opt/hertzbeat/define ./define` + - 然后在后续升级启动 docker 容器的时候需要挂载上这个 define 目录,`-v $(pwd)/define:/opt/hertzbeat/define` + - `-v $(pwd)/define:/opt/hertzbeat/define` +2. 若使用内置默认 H2 数据库 + - 需挂载或备份 `-v $(pwd)/data:/opt/hertzbeat/data` 容器内的数据库文件目录 `/opt/hertzbeat/data` + - 停止并删除容器,删除本地 HertzBeat docker 镜像,拉取新版本镜像 + - 参考 [Docker安装HertzBeat](docker-deploy) 使用新镜像创建新的容器,注意需要将数据库文件目录挂载 `-v $(pwd)/data:/opt/hertzbeat/data` +3. 若使用外置关系型数据库 Mysql, PostgreSQL + - 无需挂载备份容器内的数据库文件目录 + - 停止并删除容器,删除本地 HertzBeat docker 镜像,拉取新版本镜像 + - 参考 [Docker安装HertzBeat](docker-deploy) 使用新镜像创建新的容器,`application.yml`配置数据库连接即可 + +### 安装包部署方式的升级 + +1. 若使用内置默认 H2 数据库 + - 备份安装包下的数据库文件目录 `/opt/hertzbeat/data` + - 若有自定义监控模板,需备份 `/opt/hertzbeat/define` 下的模板YML + - `bin/shutdown.sh` 停止 HertzBeat 进程,下载新安装包 + - 参考 [安装包安装HertzBeat](package-deploy) 使用新安装包启动 +2. 若使用外置关系型数据库 Mysql, PostgreSQL + - 无需备份安装包下的数据库文件目录 + - 若有自定义监控模板,需备份 `/opt/hertzbeat/define` 下的模板YML + - `bin/shutdown.sh` 停止 HertzBeat 进程,下载新安装包 + - 参考 [安装包安装HertzBeat](package-deploy) 使用新安装包启动,`application.yml`配置数据库连接即可 + +**HAVE FUN** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/linux-os-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/linux-os-practice.md new file mode 100644 index 00000000000..da446a0de61 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/linux-os-practice.md @@ -0,0 +1,94 @@ +--- +id: linux-os-practice +title: Linux 操作系统监控案例 +sidebar_label: Linux 操作系统监控案例 +--- + +这篇文章介绍如何使用 Hertzbeat 监控系统对Linux操作系统的通用性能指标进行采集监控,并在文件系统使用率过高时给我们发告警消息。 + +## HertzBeat 是什么 + +Apache HertzBeat (incubating) 一个拥有强大自定义监控能力,无需 Agent 的实时监控工具。网站监测,端口可用性,数据库,操作系统,阈值告警,告警通知(邮件微信钉钉飞书)。 + +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) + +## 安装 + +1. `docker` 环境仅需一条命令即可安装 + + ```bash + docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat + ``` + +2. 安装成功浏览器访问 `http://ip:1157` 即可开始探索使用,默认账户密码 `admin/hertzbeat` + +:::note +生产环境建议完整部署方式, 参考 [Docker Compose 方式安装 HertzBeat](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## 监控 Linux 操作系统 + +### 1. 新增监控 + +> 系统页面 -> 监控中心 -> 新增监控 -> 操作系统监控 -> Linux 操作系统 -> 新增 Linux 操作系统监控 + +![HertzBeat](/img/docs/start/linux-os-practice-1.png) + +### 2. 配置参数 + +- **目标Host**:被监控的对端IPV4,IPV6或域名。注意️不带协议头(eg: https://, http://)) +- **端口**:Linux SSH对外提供的端口,默认为 22 +- **超时时间**:设置连接的超时时间,单位为毫秒,默认 6000 毫秒 +- **复用连接**: 设置 SSH 连接是否复用,默认开启。如果关闭则每次获取信息都会创建一个连接 +- **用户名**: SSH 连接用户名 +- **密码**: SSH 连接密码,可选 + +> 更多参数和高级设置请查看帮助文档:[监控:Linux操作系统监控](https://hertzbeat.apache.org/zh-cn/docs/help/linux) + +可以使用标签分类来管理任务,如添加`OS=Linux`等相关标签。 + +![HertzBeat](/img/docs/start/linux-os-practice-2.png) + +### 3. 查看监控数据 + +在监控列表可以查看任务状态,点击这个监控详情可以查看指标数据图表等。 + +![HertzBeat](/img/docs/start/linux-os-practice-3.png) + +![HertzBeat](/img/docs/start/linux-os-practice-4.png) + +### 4. 设置阈值规则 + +这里我们设置一个阈值规则,当**文件系统中某个目录使用率过高**时触发告警。 + +> 系统页面 -> 阈值规则 -> 新增 -> 新增实时计算阈值 +> +> 配置阈值,配置告警表达式-当指标`文件系统使用率`大于等于 `50%` 触发,也支持设置告警级别和通知模板信息等。 + +![HertzBeat](/img/docs/start/linux-os-practice-5.png) + +> 阈值规则还有其它功能可以配置, 比如阈值关联指定监控, 触发次数, 关联标签等等。 + +最终可以在告警中心看到已触发的告警。 + +![HertzBeat](/img/docs/start/linux-os-practice-6.png) + +### 5. 消息通知 + +> 系统页面 -> 消息通知 -> 通知媒介 -> 新增接收对象 + +![HertzBeat](/img/docs/start/linux-os-practice-7.png) + +> 系统页面 -> 消息通知 -> 通知策略 -> 新增通知策略 -> 选择接收对象并启用通知 + +![HertzBeat](/img/docs/start/linux-os-practice-8.png) + +当阈值触发后就可以收到对应告警消息,如果没有配置消息通知,也可以在**告警中心**查看告警信息。 + +---- + +## 总结 + +监控 Linux 操作系统的实践就到这里,当然对 Hertzbeat 来说这个功能只是冰山一角,如果您觉得 Hertzbeat 这个开源项目不错的话欢迎给我们 Star 哦,非常感谢各位的支持! + +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/springboot-auto-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/springboot-auto-practice.md new file mode 100644 index 00000000000..1564b1b6bb2 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/springboot-auto-practice.md @@ -0,0 +1,256 @@ +--- +id: springboot-auto-practice +title: SpringBoot Web应用监控案例 +sidebar_label: SpringBoot Web应用监控案例 +--- + +:::tip + +在云原生时代,SpringBoot应用的监控与可视化已然成为运维体系的核心环节,实时监控应用性能是保障系统稳定性的关键。 + +::: + +这篇文章介绍使用 HertzBeat 监控系统实现从指标采集、可视化到告警通知的一体化解决方案,并展示完整操作流程与监控实践。 + +## HertzBeat 是什么 + +Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +## 安装 HertzBeat + +> 生产环境中推荐使用 **PostgreSQL** + **VictoriaMetrics** 服务的方式部署 HertzBeat。 + +1. 部署 HertzBeat + + > 下载安装包 + > + > 从 [下载页面](https://hertzbeat.apache.org/zh-cn/docs/download) 下载您系统环境对应的安装包版本 `apache-hertzbeat-xxx-incubating-bin.tar.gz`。解压安装包到主机,如: `/opt/hertzbeat` + + ```sh + tar zxvf apache-hertzbeat-xxx-incubating-bin.tar.gz + ``` + +2. 快速安装 PostgreSQL + VictoriaMetrics 服务 + + > Docker 安装 PostgreSQL + + ```sh + docker run -d --name postgresql -p 5432:5432 -v "$PWD/postgresql:/var/lib/postgresql/data" -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgres:15 + ``` + + > Docker 安装 VictoriaMetrics + + ```sh + docker run -d -p 8428:8428 -v "$PWD/victoria-metrics-data:/victoria-metrics-data" --name victoria-metrics victoriametrics/victoria-metrics:v1.95.1 + ``` + +3. 修改 HertzBeat 的配置文件 + + > 切换元数据储存数据源 + > + > 修改位于 `hertzbeat/config/application.yml` 的配置文件,替换为 PostgreSQL 服务。 + + :::note + + PostgreSQL 配置请查阅文档:[元数据存储PostgreSQL(推荐)](https://hertzbeat.apache.org/zh-cn/docs/start/postgresql-change) + ::: + + > 配置时序数据库存储指标 + > + > 同理,修改 `hertzbeat/config/application.yml` 的配置文件,开启 VictoriaMetrics 服务用于存储指标。 + + :::note + + VictoriaMetrics 配置请查阅文档:[指标数据存储VictoriaMetrics(推荐)](https://hertzbeat.apache.org/zh-cn/docs/start/victoria-metrics-init) + ::: + +4. 启动 HertzBeat + + > 在上述解压好的安装目录 bin 下的启动脚本 `startup.sh`,windows 环境下为 `startup.bat`。 + > + > 启动成功后,浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat`。 + + ```sh + ./startup.sh + ``` + +## SpringBoot 应用配置 + +1. 开启 Actuator 配置 + + > 在项目 `pom.xml` 中添加依赖: + > + + ```xml + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-registry-prometheus + + ``` + + > 配置 `application.yml` 暴露端点: + > + + ```yml + management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: true + metrics: + export: + prometheus: + enabled: true + ``` + + > *注意:如果你的项目里还引入了认证相关的依赖,比如 springboot-security ,那么 SpringBoot Actuator 暴露出的接口可能会被拦截,此时需要你手动放开这些接口,以 springboot-security 为例,需要在 SecurityConfig 配置类中加入以下代码:* + + ```java + public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // 配置要放开的接口 + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // ... + } + } + ``` + +2. 验证端点 + + > SpringBoot 程序启动后,请求URL: + > + > - `http://:/actuator`: 验证已启用的端点, + > - `http://:/actuator/prometheus`: 应返回指标数据。 + +## 监控 SpringBoot 应用 + +1. 新增 AUTO 监控 + + > 系统页面 -> 监控中心 -> 新增监控 -> AUTO -> Prometheus任务 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-1.png) + +2. 填写关键参数 + + > **目标Host**:SpringBoot 应用服务器地址(不带协议头,例如: https://, http:// ) + > + > **端口**:应用服务端口(例如: 8080) + > + > **端点路径**:`/actuator/prometheus` + > + > 可以使用标签分类来管理任务,如添加`env=test`等业务相关标签。 + + ![HertzBeat](/img/docs/start/springboot-auto-practice-2.png) + +3. 查看检测指标数据 + + > 点击进入新建监控,可以查看指标数据详情及指标历史图表等。 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-3.png) + + ![HertzBeat](/img/docs/start/springboot-auto-practice-4.png) + +## Grafana可视化集成 (可选) + +1. Grafana 图表配置 + + > 需启用 Grafana 可嵌入功能,并开启匿名访问。 + + :::note + + 完整配置请参考文档:[Grafana历史图表](https://hertzbeat.apache.org/zh-cn/docs/help/grafana_dashboard) + ::: + +2. 在 HertzBeat 监控中嵌入 Grafana 仪表盘 + + > 配置启用 Grafana 后,重启 HertzBeat 服务,在新增的 AUTO 监控中启用并上传 Grafana 模板。 + > + > 比如:Grafana 数据源选择`hertzbeat-victoria-metrics`,然后在仪表盘点击:「Share」→「Export」→「Save to file」下载模板并上传至 HertzBeat 监控中。 + + ![HertzBeat](/img/docs/start/springboot-auto-practice-5.png) + +3. 查看 Grafana 图表 + + > 进入新增 AUTO 监控页面,点击 Grafana 图标按钮,即可查看 Grafana 图表。 + + ![HertzBeat](/img/docs/start/springboot-auto-practice-6.png) + +## 告警与通知联动 + +1. HertzBeat 告警配置 + + > 系统页面 -> 告警 -> 阈值规则 -> 新增 -> 新增阈值 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-7.png) + + > HertzBeat 提供了 **实时计算** 和 **计划周期** 两种类型的阈值规则设置,这里我们以 **计划周期** 阈值规则为例。 + > + > - **阈值名称**:阈值规则名称 + > - **阈值规则**:填写指标监测的规则(支持 `PromQL`) + > - **执行周期**:周期性执行阈值计算的时间间隔 + > - **告警级别**:触发阈值的告警级别,从低到高依次为: 警告-warning,严重-critical,紧急-emergency + > - **触发次数**:设置触发阈值多少次之后才会发送告警 + > - **告警内容**:填写监测告警的内容(支持填写变量) + +2. 设置阈值规则 + + > 比如监测 SpringBoot 应用程序的 CPU 占用,添加阈值规则:`system_cpu_usage{job="Jolly_Vulture_43vT"} > 0.01` + > + > 可以设置的阈值规则组合有很多,用户可以根据自身需要设置更丰富的告警规则。 + + ![HertzBeat](/img/docs/start/springboot-auto-practice-8.png) + + > 最后可以在 告警中心 看到已触发的告警。 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-9.png) + +3. 告警通知 + + > 系统页面 -> 消息通知 -> 通知媒介 -> 新增接收对象 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-10.png) + + > 系统页面 -> 消息通知 -> 通知策略 -> 新增通知策略 -> 选择接收对象并启用通知 + > + + ![HertzBeat](/img/docs/start/springboot-auto-practice-11.png) + +4. OK!当阈值规则触发后我们就可以收到对应告警消息啦,如果没有配置通知,也可以在告警中心查看告警信息。 + +## 小总结 + +这篇文章通过简洁的监控配置,用户在几分钟之内就可搭建完整的监控体系,这充分体现了 HertzBeat 的几点优势: + +- 无需部署 Exporter 和 Agent 即可监控 SpringBoot Actuator 端点,支持自定义指标采集与告警规则。 +- 轻量化:相比传统 Prometheus + AlertManager 组合,HertzBeat 简化了部署和维护流程。 +- 无缝集成 Grafana,HertzBeat 将采集的时序数据实时推送至 Grafana 构建可视化仪表盘。 +- 监控+告警+通知功能整合联动,全协议覆盖 + 实时/周期阈值检测 + 多通道通知(钉钉/飞书/Webhook等)。 + +------ + +## 结束搞定 + +监控 SpringBoot 应用的实践就到这里,当然对 HertzBeat 来说这个功能只是冰山一角,如果您觉得 HertzBeat 这个开源项目不错的话欢迎在 GitHub、Gitee 点 **Star** 哦,您的 Star 是我们持续优化的动力!欢迎点亮小星星✨ + +**让监控更简单,期待与您共建生态!** 💝 + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/sslcert-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/sslcert-practice.md new file mode 100644 index 00000000000..6e5dcc59a59 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/sslcert-practice.md @@ -0,0 +1,94 @@ +--- +id: ssl-cert-practice +title: SSL 证书过期监控案例 +sidebar_label: SSL 证书过期监控案例 +--- + +:::tip +现在大部分网站都默认支持 HTTPS,我们申请的证书一般是3个月或者1年,很容易随着时间的流逝SSL证书过期了我们却没有第一时间发现,或者在过期之前没有及时更新证书。 +::: + +这篇文章介绍如果使用 hertzbeat 监控系统来检测我们网站的SSL证书有效期,当证书过期时或证书快过期前几天,给我们发告警消息。 + +## HertzBeat 是什么 + +Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 + +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) + +## 安装 HertzBeat + +1. `docker` 环境仅需一条命令即可安装 + + `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` + +2. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +:::note +生产环境建议完整部署方式, 参考 [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## 监控 SSL 证书 + +1. 新增 SSL 证书监控 + + > 系统页面 -> 监控中心 -> 新增监控 -> 应用服务监控 -> SSL 证书 -> 新增 SSL 证书 + + ![HertzBeat](/img/docs/start/ssl_1.png) + +2. 配置监控网站 + + > 我们这里举例监控百度网站, 配置监控host域名,名称,采集间隔等。 + + ![HertzBeat](/img/docs/start/ssl_2.png) + +3. 查看检测指标数据 + + > 在监控列表可以查看任务状态,进监控详情可以查看指标数据图表等。 + + ![HertzBeat](/img/docs/start/ssl_3.png) + + ![HertzBeat](/img/docs/start/ssl_4.png) + +4. 设置阈值(证书过期时触发) + + > 系统页面 -> 告警 -> 告警阈值 -> 新增阈值 -> 新增实时阈值规则 + > 配置阈值,选择SSL证书指标对象,配置告警表达式-当指标`expired`为`true`触发,即`equals(expired,"true")` , 设置告警级别通知模板信息等。 + + ![HertzBeat](/img/docs/start/ssl_5.png) + + > 阈值规则还有其它功能可以配置, 比如阈值关联指定监控, 触发次数, 关联标签等等。 + +5. 设置阈值(证书过期前一周触发) + + > 同理如上,选择代码阈值规则,新增配置阈值,配置告警表达式-当指标有效期时间戳 `end_timestamp`,`now()`函数为当前时间戳,若配置提前一周触发告警即:`end_timestamp <= (now() + 604800000)` , 其中 `604800000` 为7天总时间差毫秒值。 + + ![HertzBeat](/img/docs/start/ssl_6.png) + + > 最终可以在告警中心看到已触发的告警。 + + ![HertzBeat](/img/docs/start/ssl_7.png) + +6. 告警通知(通过钉钉微信飞书等及时通知) + + > 系统页面 -> 消息通知 -> 通知媒介 -> 新增接收对象 + + ![HertzBeat](/img/docs/start/notice_receiver_1.png) + + 钉钉微信飞书等 token 配置可以参考帮助文档 + + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) + + > 消息通知 -> 通知策略 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知 + + ![HertzBeat](/img/docs/start/notice_policy_1.png) + +7. OK 当阈值触发后我们就可以收到对应告警消息啦,如果没有配通知,也可以在告警中心查看告警信息。 + +---- + +## 结束搞定 + +监控SSL证书的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话欢迎给我们在GitHub Gitee star哦,灰常感谢。感谢老铁们的支持。笔芯! + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/tdengine-practice.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/tdengine-practice.md new file mode 100644 index 00000000000..630993fe2e6 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/usecase/tdengine-practice.md @@ -0,0 +1,171 @@ +--- +id: tdengine-practice +title: TDengine 监控案例 +sidebar_label: TDengine 监控案例 +--- + +:::tip +TDengine TSDB 是一款 开源、高性能、云原生 的时序数据库(Time Series Database, TSDB, 它专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一款极简的时序数据处理平台。 +::: + +这篇文章介绍如何使用 Hertzbeat 监控系统对 TDengine 通用性能指标进行采集监控 + +## HertzBeat 是什么 + +Apache HertzBeat 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。 + +> **github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +## 安装 HertzBeat + +1. `docker` 环境仅需一条命令即可安装 + + `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` + +2. 安装成功浏览器访问 `localhost:1157` 即可开始,默认账号密码 `admin/hertzbeat` + +:::note +生产环境建议完整部署方式, 参考:[https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## 启用 TDengine 监控 + +:::tip +TDengine TSDB 集成了多种监控指标收集机制,并通过 taosKeeper 进行汇总,taosKeeper 是 TDengine TSDB 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine TSDB 的运行状态,参考:[https://docs.taosdata.com/reference/components/taoskeeper/](https://docs.taosdata.com/reference/components/taoskeeper/) +::: + +## 监控 TDengine(PromQL) + +1. 新增 TDengine-PromQL 监控 + + > 系统页面 -> 监控中心 -> 新增监控 -> 自定义监控 -> TDengine-PromQL任务 + + ![HertzBeat](/img/docs/start/tdengine_1.png) + +2. 填写关键参数 + + > **目标Host**:Prometheus 应用服务器地址(不带协议头,例如: https://, http:// ) + > + > **端口**:Prometheus api 端口,默认值:9090 + > + > **端点路径**:Prometheus查询PromQL的URL,默认值:`/api/v1/query` + > + > 可以使用标签分类来管理任务,如添加`env=test`等业务相关标签。 + + ![HertzBeat](/img/docs/start/tdengine_2.png) + +3. 查看检测指标数据 + + > 在监控列表可以查看任务状态,进监控详情可以查看指标数据图表等。 + + ![HertzBeat](/img/docs/start/tdengine_3.png) + + ![HertzBeat](/img/docs/start/tdengine_4.png) + +## 监控 TDengine(Prometheus) + +1. 新增 AUTO 监控 + + > 系统页面 -> 监控中心 -> 新增监控 -> AUTO -> Prometheus任务 + + ![HertzBeat](/img/docs/start/tdengine_1_1.png) + +2. 填写关键参数 + + > **目标Host** taosKeeper 服务地址(不带协议头,例如: https://, http:// ) + > + > **端口**:taosKeeper服务端口(例如: 6043) + > + > **端点路径**:`/metrics` + > + > 可以使用标签分类来管理任务,如添加`env=test`等业务相关标签。 + + ![HertzBeat](/img/docs/start/tdengine_1_2.png) + +3. 查看检测指标数据 + + > 在监控列表可以查看任务状态,进监控详情可以查看指标数据图表等。 + + ![HertzBeat](/img/docs/start/tdengine_1_3.png) + + ![HertzBeat](/img/docs/start/tdengine_1_4.png) + +### Grafana可视化集成 (可选) + +1. Grafana 图表配置 + + > 需启用 Grafana 可嵌入功能,并开启匿名访问。 + + :::note + + 完整配置请参考文档:[Grafana历史图表](https://hertzbeat.apache.org/zh-cn/docs/help/grafana_dashboard) + ::: + +2. 在 HertzBeat 监控中嵌入 Grafana 仪表盘 + + > 配置启用 Grafana 后,重启 HertzBeat 服务,在新增的 AUTO 监控中启用并上传 Grafana 模板。 + > + > 比如:Grafana 数据源选择`hertzbeat-victoria-metrics`,然后在仪表盘点击:「Share」→「Export」→「Save to file」下载模板并上传至 HertzBeat 监控中,可参考:[taoskeeper-prometheus-dashboard](https://grafana.com/grafana/dashboards/15164-taoskeeper-prometheus-dashboard/) + + ![HertzBeat](/img/docs/start/tdengine_1_5.png) + +3. 查看 Grafana 图表 + + > 进入新增 AUTO 监控页面,点击 Grafana 图标按钮,即可查看 Grafana 图表。 + + ![HertzBeat](/img/docs/start/tdengine_1_6.png) + +## 告警与通知联动 + +1. HertzBeat 告警配置 + + > 系统页面 -> 告警 -> 阈值规则 -> 新增 -> 新增阈值 + > + + ![HertzBeat](/img/docs/start/tdengine_5.png) + + > HertzBeat 提供了 **实时计算** 和 **计划周期** 两种类型的阈值规则设置,这里我们以 **计划周期** 阈值规则为例。 + > + > - **阈值名称**:阈值规则名称 + > - **阈值规则**:填写指标监测的规则(支持 `PromQL`) + > - **执行周期**:周期性执行阈值计算的时间间隔 + > - **告警级别**:触发阈值的告警级别,从低到高依次为: 警告-warning,严重-critical,紧急-emergency + > - **触发次数**:设置触发阈值多少次之后才会发送告警 + > - **告警内容**:填写监测告警的内容(支持填写变量) + +2. 设置阈值规则 + + > 比如监测 Dnode 节点的系统使用的 CPU 百分比,添加阈值规则:`taos_dnodes_info_cpu_system_value > 20` + > + > 可以设置的阈值规则组合有很多,用户可以根据自身需要设置更丰富的告警规则。 + + ![HertzBeat](/img/docs/start/tdengine_6.png) + + > 最后可以在 告警中心 看到已触发的告警。 + > + + ![HertzBeat](/img/docs/start/tdengine_7.png) + +3. 告警通知 + + > 系统页面 -> 消息通知 -> 通知媒介 -> 新增接收对象 + > + + ![HertzBeat](/img/docs/start/tdengine_8.png) + + > 系统页面 -> 消息通知 -> 通知策略 -> 新增通知策略 -> 选择接收对象并启用通知 + > + + ![HertzBeat](/img/docs/start/tdengine_9.png) + +4. OK!当阈值规则触发后我们就可以收到对应告警消息啦,如果没有配置通知,也可以在告警中心查看告警信息。 + +## 总结 + +监控 TDengine 应用的实践就到这里,当然对 HertzBeat 来说这个功能只是冰山一角,如果您觉得 HertzBeat 这个开源项目不错的话欢迎在 GitHub、Gitee 点 **Star** 哦,您的 Star 是我们持续优化的动力!欢迎点亮小星星✨ + +**让监控更简单,期待与您共建生态!** 💝 + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/victoria-metrics-init.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/victoria-metrics-init.md new file mode 100644 index 00000000000..fcb0bb3a9cc --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/start/victoria-metrics-init.md @@ -0,0 +1,157 @@ +--- +id: victoria-metrics-init +title: 依赖时序数据库服务VictoriaMetrics安装初始化 +sidebar_label: 指标数据存储VictoriaMetrics(推荐) +--- + +Apache HertzBeat 的历史数据存储依赖时序数据库,任选其一安装初始化即可,也可不安装(注意⚠️但强烈建议生产环境配置) + +> 我们推荐使用并长期支持 VictoriaMetrics 作为存储。 + +VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库,兼容 Prometheus 生态。推荐版本(VictoriaMetrics:v1.95.1+, HertzBeat:v1.4.3+) + +**注意⚠️ 时序数据库安装配置为可选项,但强烈建议生产环境配置,以提供更完善的历史图表功能,高性能和稳定性** +**⚠️ 若不配置时序数据库,则只会留最近一小时历史数据** + +> 如果您已有VictoriaMetrics环境,可直接跳到YML配置那一步。 + +### 通过Docker方式安装VictoriaMetrics + +1. 下载安装Docker环境 +Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)。 +安装完毕后终端查看Docker版本是否正常输出。 + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Docker安装VictoriaMetrics + + ```shell + $ docker run -d -p 8428:8428 \ + -v $(pwd)/victoria-metrics-data:/victoria-metrics-data \ + --name victoria-metrics \ + victoriametrics/victoria-metrics:v1.95.1 + ``` + + `-v $(pwd)/victoria-metrics-data:/victoria-metrics-data` 为VictoriaMetrics数据目录本地持久化挂载 + 使用```$ docker ps```查看数据库是否启动成功 + +3. 在hertzbeat的`application.yml`配置文件配置VictoriaMetrics数据库连接 + + 配置HertzBeat的配置文件 + 修改位于 `hertzbeat/config/application.yml` 的配置文件 + 注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可 + + **修改里面的`warehouse.store.jpa.enabled`参数为`false`, 配置`warehouse.store.victoria-metrics`数据源参数,HOST账户密码等,并启用`enabled`为`true`** + + ```yaml + warehouse: + store: + # 关闭默认JPA + jpa: + enabled: false + # 启用 victoria-metrics + victoria-metrics: + enabled: true + url: http://localhost:8428 + username: root + password: root + ``` + +4. 重启 HertzBeat + +### 使用 VictoriaMetrics 集群模式(Cluster Mode) + +VictoriaMetrics 支持 **集群模式**,将数据写入(`vminsert`)、存储(`vmstorage`)与查询(`vmselect`)分别由独立组件负责。以下是如何部署 VictoriaMetrics 集群并集成至 HertzBeat 的说明。 + +#### 1. 使用 Docker Compose 部署 VictoriaMetrics 集群 + +创建一个名为 `docker-compose.yml` 的文件,内容如下: + +```yaml +version: "3" + +services: + vmstorage1: + image: victoriametrics/vmstorage + command: + - "-retentionPeriod=1" + - "-storageDataPath=/storage" + volumes: + - vmstorage-data:/storage + ports: + - "8400:8400" # 提供给 vminsert 写入连接 + - "8401:8401" # 提供给 vmselect 查询连接 + + vminsert: + image: victoriametrics/vminsert + command: + - "-storageNode=vmstorage1:8400" + - "-httpAuth.username=root" + - "-httpAuth.password=root" + ports: + - "8480:8480" # 数据写入端口 + + vmselect: + image: victoriametrics/vmselect + command: + - "-storageNode=vmstorage1:8401" + - "-httpAuth.username=root" + - "-httpAuth.password=root" + ports: + - "8481:8481" # 查询接口端口 + +volumes: + vmstorage-data: +``` + +使用以下命令启动集群: + +```shell +docker-compose up -d +``` + +使用以下命令确认所有组件是否运行成功: + +```shell +docker ps +``` + +#### 2. 配置 HertzBeat 使用集群模式 + +修改 `hertzbeat/config/application.yml` 配置文件,内容如下: + +```yaml +warehouse: + store: + jpa: + enabled: false + victoria-metrics: + cluster: + enabled: true + select: + url: http://127.0.0.1:8481 + username: root + password: root + insert: + url: http://127.0.0.1:8480 + username: root + password: root +``` + +**注意事项:** + +- `cluster.enabled` 设置为 `true` 表示启用集群模式; +- `select.url` 和 `insert.url` 需与部署时的地址保持一致,确保网络互通。 + +#### 3. 重启 HertzBeat + +完成配置后,重启 HertzBeat 以连接至 VictoriaMetrics 集群。 + +### 常见问题 + +1. 时序数据库是否都需要配置,能不能都用 + + > 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,但会影响历史图表数据和存储时长等。 diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/template.md b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/template.md new file mode 100644 index 00000000000..37c0cbfa433 --- /dev/null +++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/version-1.7.x/template.md @@ -0,0 +1,95 @@ +--- +id: template +title: 监控模板中心 +sidebar_label: 监控模板 +--- + +> Apache HertzBeat™ 是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警工具。 +> +> 我们将`Http, Jmx, Ssh, Snmp, Jdbc, Prometheus`等协议规范可配置化,您只需在浏览器配置`YML`就能使用这些协议去自定义采集任何您想要的指标。 +> 您相信只需简单配置即可快速适配一款`K8s`或`Docker`等新的监控类型吗? + +这是它的架构原理: + +![hertzBeat](/img/docs/hertzbeat-arch.png) + +**我们将所有监控采集类型(mysql,website,jvm,k8s)都定义为yml模板,用户可以导入这些模板到hertzbeat系统中,使其支持对应类型的监控,非常方便!** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +**欢迎大家一起贡献你使用过程中自定义的通用监控类型YML模板,可用的模板如下:** + +### 应用服务监控模板 + + 👉 [Website monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml)
+ 👉 [HTTP API](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml)
+ 👉 [PING Connectivity](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml)
+ 👉 [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml)
+ 👉 [Full site monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml)
+ 👉 [SSL Cert monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml)
+ 👉 [JVM monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml)
+ 👉 [SpringBoot2.0](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml)
+ 👉 [SpringBoot3.0](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml)
+ 👉 [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml)
+ +### 数据库监控模板 + + 👉 [MYSQL database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml)
+ 👉 [MariaDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml)
+ 👉 [PostgreSQL database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml)
+ 👉 [SqlServer database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml)
+ 👉 [Oracle database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml)
+ 👉 [DM database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml)
+ 👉 [OpenGauss database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml)
+ 👉 [IoTDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml)
+ 👉 [ElasticSearch database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml)
+ 👉 [MongoDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml)
+ 👉 [ClickHouse database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml)
+ 👉 [Redis database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml)
+ 👉 [Redis Sentinel database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml)
+ 👉 [Redis Cluster database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml)
+ +### 操作系统监控模板 + + 👉 [Linux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml)
+ 👉 [Windows operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml)
+ 👉 [Ubuntu operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml)
+ 👉 [Centos operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml)
+ 👉 [EulerOS operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml)
+ 👉 [Fedora CoreOS operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml)
+ 👉 [OpenSUSE operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml)
+ 👉 [Rocky Linux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml)
+ 👉 [Red Hat operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml)
+ 👉 [FreeBSD operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml)
+ 👉 [AlmaLinux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml)
+ 👉 [Debian operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml)
+ +### 中间件监控模板 + + 👉 [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml)
+ 👉 [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml)
+ 👉 [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml)
+ 👉 [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml)
+ 👉 [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml)
+ 👉 [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml)
+ 👉 [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml)
+ 👉 [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml)
+ 👉 [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml)
+ 👉 [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml)
+ +### 云原生监控模板 + + 👉 [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml)
+ 👉 [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml)
+ +### 网络监控模板 + + 👉 [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml)
+ 👉 [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml)
+ 👉 [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml)
+ 👉 [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml)
+ 👉 [H3CSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml)
+ +--- + +**Have Fun!** diff --git a/home/package.json b/home/package.json index c6baf834a1f..da3cd556af6 100644 --- a/home/package.json +++ b/home/package.json @@ -19,32 +19,33 @@ "github-avatar": "node github-avatar.js" }, "dependencies": { - "@docusaurus/core": "2.3.1", - "@docusaurus/plugin-client-redirects": "2.3.1", - "@docusaurus/plugin-ideal-image": "2.3.1", - "@docusaurus/plugin-pwa": "2.3.1", - "@docusaurus/preset-classic": "2.3.1", - "@docusaurus/remark-plugin-npm2yarn": "2.3.1", - "@docusaurus/theme-live-codeblock": "2.3.1", - "@docusaurus/theme-search-algolia": "2.3.1", + "@docusaurus/core": "3.9.2", + "@docusaurus/plugin-client-redirects": "3.9.2", + "@docusaurus/plugin-ideal-image": "3.9.2", + "@docusaurus/plugin-pwa": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@docusaurus/remark-plugin-npm2yarn": "3.9.2", + "@docusaurus/theme-live-codeblock": "3.9.2", + "@docusaurus/theme-search-algolia": "3.9.2", "@douyinfe/semi-ui": "2.24.1", - "@mdx-js/react": "1.6.22", - "@svgr/webpack": "5.5.0", + "@mdx-js/react": "^3.1.0", + "@svgr/webpack": "^8.1.0", "aos": "^2.3.4", - "clsx": "1.2.1", + "clsx": "^2.1.1", "color": "3.2.1", "docusaurus-plugin-matomo": "^0.0.8", - "file-loader": "6.2.0", + "file-loader": "^6.2.0", "markdownlint-cli2": "^0.13.0", - "react": "17.0.2", - "react-dom": "17.0.2", + "prism-react-renderer": "^2.3.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", "react-slick": "0.29.0", - "sharp": "0.33.3", + "sharp": "^0.33.5", "slick-carousel": "1.8.1", - "swiper": "7.4.1", - "url-loader": "4.1.1", - "workbox-routing": "6.5.3", - "workbox-strategies": "6.5.3" + "swiper": "^7.4.1", + "url-loader": "^4.1.1", + "workbox-routing": "^7.3.0", + "workbox-strategies": "^7.3.0" }, "pnpm": { "overrides": { diff --git a/home/pnpm-lock.yaml b/home/pnpm-lock.yaml index 94a55f4be35..2b5a25781e7 100644 --- a/home/pnpm-lock.yaml +++ b/home/pnpm-lock.yaml @@ -12,83 +12,86 @@ importers: .: dependencies: '@docusaurus/core': - specifier: 2.3.1 - version: 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) '@docusaurus/plugin-client-redirects': - specifier: 2.3.1 - version: 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) '@docusaurus/plugin-ideal-image': - specifier: 2.3.1 - version: 2.3.1(prop-types@15.8.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) '@docusaurus/plugin-pwa': - specifier: 2.3.1 - version: 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) '@docusaurus/preset-classic': - specifier: 2.3.1 - version: 2.3.1(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@algolia/client-search@5.41.0)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3) '@docusaurus/remark-plugin-npm2yarn': - specifier: 2.3.1 - version: 2.3.1 + specifier: 3.9.2 + version: 3.9.2 '@docusaurus/theme-live-codeblock': - specifier: 2.3.1 - version: 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) '@docusaurus/theme-search-algolia': - specifier: 2.3.1 - version: 2.3.1(@algolia/client-search@5.41.0)(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)(typescript@5.9.3) + specifier: 3.9.2 + version: 3.9.2(@algolia/client-search@5.41.0)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3) '@douyinfe/semi-ui': specifier: 2.24.1 - version: 2.24.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + version: 2.24.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mdx-js/react': - specifier: 1.6.22 - version: 1.6.22(react@17.0.2) + specifier: ^3.1.0 + version: 3.1.1(@types/react@19.2.2)(react@18.3.1) '@svgr/webpack': - specifier: 5.5.0 - version: 5.5.0 + specifier: ^8.1.0 + version: 8.1.0(typescript@5.9.3) aos: specifier: ^2.3.4 version: 2.3.4 clsx: - specifier: 1.2.1 - version: 1.2.1 + specifier: ^2.1.1 + version: 2.1.1 color: specifier: 3.2.1 version: 3.2.1 docusaurus-plugin-matomo: specifier: ^0.0.8 - version: 0.0.8(@docusaurus/core@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)) + version: 0.0.8(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)) file-loader: - specifier: 6.2.0 + specifier: ^6.2.0 version: 6.2.0(webpack@5.102.1) markdownlint-cli2: specifier: ^0.13.0 version: 0.13.0 + prism-react-renderer: + specifier: ^2.3.1 + version: 2.4.1(react@18.3.1) react: - specifier: 17.0.2 - version: 17.0.2 + specifier: ^18.3.1 + version: 18.3.1 react-dom: - specifier: 17.0.2 - version: 17.0.2(react@17.0.2) + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) react-slick: specifier: 0.29.0 - version: 0.29.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + version: 0.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) sharp: - specifier: 0.33.3 - version: 0.33.3 + specifier: ^0.33.5 + version: 0.33.5 slick-carousel: specifier: 1.8.1 version: 1.8.1(jquery@3.7.1) swiper: - specifier: 7.4.1 + specifier: ^7.4.1 version: 7.4.1 url-loader: - specifier: 4.1.1 + specifier: ^4.1.1 version: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) workbox-routing: - specifier: 6.5.3 - version: 6.5.3 + specifier: ^7.3.0 + version: 7.4.0 workbox-strategies: - specifier: 6.5.3 - version: 6.5.3 + specifier: ^7.3.0 + version: 7.4.0 packages: @@ -116,32 +119,14 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/cache-browser-local-storage@4.25.2': - resolution: {integrity: sha512-tA1rqAafI+gUdewjZwyTsZVxesl22MTgLWRKt1+TBiL26NiKx7SjRqTI3pzm8ngx1ftM5LSgXkVIgk2+SRgPTg==} - - '@algolia/cache-common@4.25.2': - resolution: {integrity: sha512-E+aZwwwmhvZXsRA1+8DhH2JJIwugBzHivASTnoq7bmv0nmForLyH7rMG5cOTiDK36DDLnKq1rMGzxWZZ70KZag==} - - '@algolia/cache-in-memory@4.25.2': - resolution: {integrity: sha512-KYcenhfPKgR+WJ6IEwKVEFMKKCWLZdnYuw08+3Pn1cxAXbJcTIKjoYgEXzEW6gJmDaau2l55qNrZo6MBbX7+sw==} - '@algolia/client-abtesting@5.41.0': resolution: {integrity: sha512-iRuvbEyuHCAhIMkyzG3tfINLxTS7mSKo7q8mQF+FbQpWenlAlrXnfZTN19LRwnVjx0UtAdZq96ThMWGS6cQ61A==} engines: {node: '>= 14.0.0'} - '@algolia/client-account@4.25.2': - resolution: {integrity: sha512-IfRGhBxvjli9mdexrCxX2N4XT9NBN3tvZK5zCaL8zkDcgsthiM9WPvGIZS/pl/FuXB7hA0lE5kqOzsQDP6OmGQ==} - - '@algolia/client-analytics@4.25.2': - resolution: {integrity: sha512-4Yxxhxh+XjXY8zPyo+h6tQuyoJWDBn8E3YLr8j+YAEy5p+r3/5Tp+ANvQ+hNaQXbwZpyf5d4ViYOBjJ8+bWNEg==} - '@algolia/client-analytics@5.41.0': resolution: {integrity: sha512-OIPVbGfx/AO8l1V70xYTPSeTt/GCXPEl6vQICLAXLCk9WOUbcLGcy6t8qv0rO7Z7/M/h9afY6Af8JcnI+FBFdQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@4.25.2': - resolution: {integrity: sha512-HXX8vbJPYW29P18GxciiwaDpQid6UhpPP9nW9WE181uGUgFhyP5zaEkYWf9oYBrjMubrGwXi5YEzJOz6Oa4faA==} - '@algolia/client-common@5.41.0': resolution: {integrity: sha512-8Mc9niJvfuO8dudWN5vSUlYkz7U3M3X3m1crDLc9N7FZrIVoNGOUETPk3TTHviJIh9y6eKZKbq1hPGoGY9fqPA==} engines: {node: '>= 14.0.0'} @@ -150,9 +135,6 @@ packages: resolution: {integrity: sha512-vXzvCGZS6Ixxn+WyzGUVDeR3HO/QO5POeeWy1kjNJbEf6f+tZSI+OiIU9Ha+T3ntV8oXFyBEuweygw4OLmgfiQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@4.25.2': - resolution: {integrity: sha512-K81PRaHF77mHv2u8foWTHnIf5c+QNf/SnKNM7rB8JPi7TMYi4E5o2mFbgdU1ovd8eg9YMOEAuLkl1Nz1vbM3zQ==} - '@algolia/client-personalization@5.41.0': resolution: {integrity: sha512-tkymXhmlcc7w/HEvLRiHcpHxLFcUB+0PnE9FcG6hfFZ1ZXiWabH+sX+uukCVnluyhfysU9HRU2kUmUWfucx1Dg==} engines: {node: '>= 14.0.0'} @@ -161,9 +143,6 @@ packages: resolution: {integrity: sha512-vyXDoz3kEZnosNeVQQwf0PbBt5IZJoHkozKRIsYfEVm+ylwSDFCW08qy2YIVSHdKy69/rWN6Ue/6W29GgVlmKQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@4.25.2': - resolution: {integrity: sha512-pO/LpVnQlbJpcHRk+AroWyyFnh01eOlO6/uLZRUmYvr/hpKZKxI6n7ufgTawbo0KrAu2CePfiOkStYOmDuRjzQ==} - '@algolia/client-search@5.41.0': resolution: {integrity: sha512-G9I2atg1ShtFp0t7zwleP6aPS4DcZvsV4uoQOripp16aR6VJzbEnKFPLW4OFXzX7avgZSpYeBAS+Zx4FOgmpPw==} engines: {node: '>= 14.0.0'} @@ -175,47 +154,26 @@ packages: resolution: {integrity: sha512-sxU/ggHbZtmrYzTkueTXXNyifn+ozsLP+Wi9S2hOBVhNWPZ8uRiDTDcFyL7cpCs1q72HxPuhzTP5vn4sUl74cQ==} engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.25.2': - resolution: {integrity: sha512-aUXpcodoIpLPsnVc2OHgC9E156R7yXWLW2l+Zn24Cyepfq3IvmuVckBvJDpp7nPnXkEzeMuvnVxQfQsk+zP/BA==} - - '@algolia/logger-console@4.25.2': - resolution: {integrity: sha512-H3Y+UB0Ty0htvMJ6zDSufhFTSDlg3Pyj3AXilfDdDRcvfhH4C/cJNVm+CTaGORxL5uKABGsBp+SZjsEMTyAunQ==} - '@algolia/monitoring@1.41.0': resolution: {integrity: sha512-UQ86R6ixraHUpd0hn4vjgTHbViNO8+wA979gJmSIsRI3yli2v89QSFF/9pPcADR6PbtSio/99PmSNxhZy+CR3Q==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@4.25.2': - resolution: {integrity: sha512-puRrGeXwAuVa4mLdvXvmxHRFz9MkcCOLPcjz7MjU4NihlpIa+lZYgikJ7z0SUAaYgd6l5Bh00hXiU/OlX5ffXQ==} - '@algolia/recommend@5.41.0': resolution: {integrity: sha512-DxP9P8jJ8whJOnvmyA5mf1wv14jPuI0L25itGfOHSU6d4ZAjduVfPjTS3ROuUN5CJoTdlidYZE+DtfWHxJwyzQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@4.25.2': - resolution: {integrity: sha512-aAjfsI0AjWgXLh/xr9eoR8/9HekBkIER3bxGoBf9d1XWMMoTo/q92Da2fewkxwLE6mla95QJ9suJGOtMOewXXQ==} - '@algolia/requester-browser-xhr@5.41.0': resolution: {integrity: sha512-C21J+LYkE48fDwtLX7YXZd2Fn7Fe0/DOEtvohSfr/ODP8dGDhy9faaYeWB0n1AvmZltugjkjAXT7xk0CYNIXsQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-common@4.25.2': - resolution: {integrity: sha512-Q4wC3sgY0UFjV3Rb3icRLTpPB5/M44A8IxzJHM9PNeK1T3iX7X/fmz7ATUYQYZTpwHCYATlsQKWiTpql1hHjVg==} - '@algolia/requester-fetch@5.41.0': resolution: {integrity: sha512-FhJy/+QJhMx1Hajf2LL8og4J7SqOAHiAuUXq27cct4QnPhSIuIGROzeRpfDNH5BUbq22UlMuGd44SeD4HRAqvA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@4.25.2': - resolution: {integrity: sha512-Ja/FYB7W9ZM+m8UrMIlawNUAKpncvb9Mo+D8Jq5WepGTUyQ9CBYLsjwxv9O8wbj3TSWqTInf4uUBJ2FKR8G7xw==} - '@algolia/requester-node-http@5.41.0': resolution: {integrity: sha512-tYv3rGbhBS0eZ5D8oCgV88iuWILROiemk+tQ3YsAKZv2J4kKUNvKkrX/If/SreRy4MGP2uJzMlyKcfSfO2mrsQ==} engines: {node: '>= 14.0.0'} - '@algolia/transporter@4.25.2': - resolution: {integrity: sha512-yw3RLHWc6V+pbdsFtq8b6T5bJqLDqnfKWS7nac1Vzcmgvs/V/Lfy7/6iOF9XRilu5aBDOBHoP1SOeIDghguzWw==} - '@apideck/better-ajv-errors@0.3.6': resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} engines: {node: '>=10'} @@ -230,10 +188,6 @@ packages: resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} - '@babel/core@7.12.9': - resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} - engines: {node: '>=6.9.0'} - '@babel/core@7.28.5': resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} @@ -289,9 +243,6 @@ packages: resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.10.4': - resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} @@ -367,12 +318,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-proposal-object-rest-spread@7.12.1': - resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -396,22 +341,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.12.1': - resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} @@ -819,6 +754,306 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} + '@csstools/cascade-layer-name-parser@2.0.5': + resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/postcss-alpha-function@1.0.1': + resolution: {integrity: sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-cascade-layers@5.0.2': + resolution: {integrity: sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-function-display-p3-linear@1.0.1': + resolution: {integrity: sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-function@4.0.12': + resolution: {integrity: sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-mix-function@3.0.12': + resolution: {integrity: sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2': + resolution: {integrity: sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-content-alt-text@2.0.8': + resolution: {integrity: sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-contrast-color-function@2.0.12': + resolution: {integrity: sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-exponential-functions@2.0.9': + resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-font-format-keywords@4.0.0': + resolution: {integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-gamut-mapping@2.0.11': + resolution: {integrity: sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-gradients-interpolation-method@5.0.12': + resolution: {integrity: sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-hwb-function@4.0.12': + resolution: {integrity: sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-ic-unit@4.0.4': + resolution: {integrity: sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-initial@2.0.1': + resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-is-pseudo-class@5.0.3': + resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-light-dark-function@2.0.11': + resolution: {integrity: sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-float-and-clear@3.0.0': + resolution: {integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-overflow@2.0.0': + resolution: {integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-overscroll-behavior@2.0.0': + resolution: {integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-resize@3.0.0': + resolution: {integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-logical-viewport-units@3.0.4': + resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-media-minmax@2.0.9': + resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': + resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-nested-calc@4.0.0': + resolution: {integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-normalize-display-values@4.0.1': + resolution: {integrity: sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-oklab-function@4.0.12': + resolution: {integrity: sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-position-area-property@1.0.0': + resolution: {integrity: sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-progressive-custom-properties@4.2.1': + resolution: {integrity: sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-property-rule-prelude-list@1.0.0': + resolution: {integrity: sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-random-function@2.0.1': + resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-relative-color-syntax@3.0.12': + resolution: {integrity: sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-scope-pseudo-class@4.0.1': + resolution: {integrity: sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-sign-functions@1.1.4': + resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-stepped-value-functions@4.0.9': + resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1': + resolution: {integrity: sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-system-ui-font-family@1.0.0': + resolution: {integrity: sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-text-decoration-shorthand@4.0.3': + resolution: {integrity: sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-trigonometric-functions@4.0.9': + resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-unset-value@4.0.0': + resolution: {integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/selector-resolve-nested@3.1.0': + resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@csstools/utilities@2.0.0': + resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -843,135 +1078,161 @@ packages: search-insights: optional: true - '@docusaurus/core@2.3.1': - resolution: {integrity: sha512-0Jd4jtizqnRAr7svWaBbbrCCN8mzBNd2xFLoT/IM7bGfFie5y58oz97KzXliwiLY3zWjqMXjQcuP1a5VgCv2JA==} - engines: {node: '>=16.14'} + '@docusaurus/babel@3.9.2': + resolution: {integrity: sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==} + engines: {node: '>=20.0'} + + '@docusaurus/bundler@3.9.2': + resolution: {integrity: sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==} + engines: {node: '>=20.0'} + peerDependencies: + '@docusaurus/faster': '*' + peerDependenciesMeta: + '@docusaurus/faster': + optional: true + + '@docusaurus/core@3.9.2': + resolution: {integrity: sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==} + engines: {node: '>=20.0'} hasBin: true peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@mdx-js/react': ^3.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/cssnano-preset@2.3.1': - resolution: {integrity: sha512-7mIhAROES6CY1GmCjR4CZkUfjTL6B3u6rKHK0ChQl2d1IevYXq/k/vFgvOrJfcKxiObpMnE9+X6R2Wt1KqxC6w==} - engines: {node: '>=16.14'} + '@docusaurus/cssnano-preset@3.9.2': + resolution: {integrity: sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==} + engines: {node: '>=20.0'} - '@docusaurus/logger@2.3.1': - resolution: {integrity: sha512-2lAV/olKKVr9qJhfHFCaqBIl8FgYjbUFwgUnX76+cULwQYss+42ZQ3grHGFvI0ocN2X55WcYe64ellQXz7suqg==} - engines: {node: '>=16.14'} + '@docusaurus/logger@3.9.2': + resolution: {integrity: sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==} + engines: {node: '>=20.0'} - '@docusaurus/lqip-loader@2.3.1': - resolution: {integrity: sha512-pdZUh6FjvoVszGTaMHX4nhLfORdQ7ZnOv9wcfncsiR/iUzpHin+Dq3yOXPgB9C/yPvsaITzpCrJdGYfET29/dQ==} - engines: {node: '>=16.14'} + '@docusaurus/lqip-loader@3.9.2': + resolution: {integrity: sha512-Q9QO0E+HLKhcpKVOIXRVBdJ1bbxxpfSwBll5NsmGxcx1fArH0fFi68cpEztqBg7WwbFRb976MTlqlBuGrMLpuw==} + engines: {node: '>=20.0'} - '@docusaurus/mdx-loader@2.3.1': - resolution: {integrity: sha512-Gzga7OsxQRpt3392K9lv/bW4jGppdLFJh3luKRknCKSAaZrmVkOQv2gvCn8LAOSZ3uRg5No7AgYs/vpL8K94lA==} - engines: {node: '>=16.14'} + '@docusaurus/mdx-loader@3.9.2': + resolution: {integrity: sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/module-type-aliases@2.3.1': - resolution: {integrity: sha512-6KkxfAVOJqIUynTRb/tphYCl+co3cP0PlHiMDbi+SzmYxMdgIrwYqH9yAnGSDoN6Jk2ZE/JY/Azs/8LPgKP48A==} + '@docusaurus/module-type-aliases@3.9.2': + resolution: {integrity: sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==} peerDependencies: react: '*' react-dom: '*' - '@docusaurus/plugin-client-redirects@2.3.1': - resolution: {integrity: sha512-Ye0z36/L8685ni0DIxHqPPaHIXFXiSF90QYiYfpODBX6NxvvveUTyylsDBU1GQhPXPn1bd39QgaOuZ+j9gfaog==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-client-redirects@3.9.2': + resolution: {integrity: sha512-lUgMArI9vyOYMzLRBUILcg9vcPTCyyI2aiuXq/4npcMVqOr6GfmwtmBYWSbNMlIUM0147smm4WhpXD0KFboffw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-content-blog@2.3.1': - resolution: {integrity: sha512-f5LjqX+9WkiLyGiQ41x/KGSJ/9bOjSD8lsVhPvYeUYHCtYpuiDKfhZE07O4EqpHkBx4NQdtQDbp+aptgHSTuiw==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-content-blog@3.9.2': + resolution: {integrity: sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-content-docs': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-content-docs@2.3.1': - resolution: {integrity: sha512-DxztTOBEruv7qFxqUtbsqXeNcHqcVEIEe+NQoI1oi2DBmKBhW/o0MIal8lt+9gvmpx3oYtlwmLOOGepxZgJGkw==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-content-docs@3.9.2': + resolution: {integrity: sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-content-pages@2.3.1': - resolution: {integrity: sha512-E80UL6hvKm5VVw8Ka8YaVDtO6kWWDVUK4fffGvkpQ/AJQDOg99LwOXKujPoICC22nUFTsZ2Hp70XvpezCsFQaA==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-content-pages@3.9.2': + resolution: {integrity: sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-debug@2.3.1': - resolution: {integrity: sha512-Ujpml1Ppg4geB/2hyu2diWnO49az9U2bxM9Shen7b6qVcyFisNJTkVG2ocvLC7wM1efTJcUhBO6zAku2vKJGMw==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-css-cascade-layers@3.9.2': + resolution: {integrity: sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==} + engines: {node: '>=20.0'} + + '@docusaurus/plugin-debug@3.9.2': + resolution: {integrity: sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-analytics@2.3.1': - resolution: {integrity: sha512-OHip0GQxKOFU8n7gkt3TM4HOYTXPCFDjqKbMClDD3KaDnyTuMp/Zvd9HSr770lLEscgPWIvzhJByRAClqsUWiQ==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-google-analytics@3.9.2': + resolution: {integrity: sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-gtag@2.3.1': - resolution: {integrity: sha512-uXtDhfu4+Hm+oqWUySr3DNI5cWC/rmP6XJyAk83Heor3dFjZqDwCbkX8yWPywkRiWev3Dk/rVF8lEn0vIGVocA==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-google-gtag@3.9.2': + resolution: {integrity: sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-tag-manager@2.3.1': - resolution: {integrity: sha512-Ww2BPEYSqg8q8tJdLYPFFM3FMDBCVhEM4UUqKzJaiRMx3NEoly3qqDRAoRDGdIhlC//Rf0iJV9cWAoq2m6k3sw==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-google-tag-manager@3.9.2': + resolution: {integrity: sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-ideal-image@2.3.1': - resolution: {integrity: sha512-hN/TbpG8Hsct06RNRZz69iCpxsXzryq+5o/8r62sGwhTAmMCN8ms8an+ubRk4bub0y3Gvg7YUcwmmFf6kE2fJg==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-ideal-image@3.9.2': + resolution: {integrity: sha512-YYYbmC2wSYFd7o4//5rPXt9+DkZwfwjCUmyGi5OIVqEbwELK80o3COXs2Xd0BtVIpuRvG7pKCYrMQwVo32Y9qw==} + engines: {node: '>=20.0'} peerDependencies: jimp: '*' - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: jimp: optional: true - '@docusaurus/plugin-pwa@2.3.1': - resolution: {integrity: sha512-Flo513wqK+OlNxMrKgcMkqiVVKFqaCqZortu+3MKvL3uN4KleA7UJjgEfTvBIg7XXj7OrFVXPZv+OEB0gRwGTA==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-pwa@3.9.2': + resolution: {integrity: sha512-1nSKCCf3xF0W+y8AM7VbXXFXYpmXrNwb6xMQ2Aw5jqzK1qe4js5Db+1bf1neyDyuVgSisQu+gPXARUfb93TlRQ==} + engines: {node: '>=20.0'} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + + '@docusaurus/plugin-sitemap@3.9.2': + resolution: {integrity: sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-sitemap@2.3.1': - resolution: {integrity: sha512-8Yxile/v6QGYV9vgFiYL+8d2N4z4Er3pSHsrD08c5XI8bUXxTppMwjarDUTH/TRTfgAWotRbhJ6WZLyajLpozA==} - engines: {node: '>=16.14'} + '@docusaurus/plugin-svgr@3.9.2': + resolution: {integrity: sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/preset-classic@2.3.1': - resolution: {integrity: sha512-OQ5W0AHyfdUk0IldwJ3BlnZ1EqoJuu2L2BMhqLbqwNWdkmzmSUvlFLH1Pe7CZSQgB2YUUC/DnmjbPKk/qQD0lQ==} - engines: {node: '>=16.14'} + '@docusaurus/preset-classic@3.9.2': + resolution: {integrity: sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/react-loadable@5.5.2': - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + '@docusaurus/react-loadable@6.0.0': + resolution: {integrity: sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==} peerDependencies: react: '*' - '@docusaurus/remark-plugin-npm2yarn@2.3.1': - resolution: {integrity: sha512-eN3P9/J8tzD5ERWiaG+nFcd5KpfSmb35mOxnI4vQEmAufovQZyZnf5KAmracPTUJfm3p9OH5EnbzfVFT9e48Pw==} - engines: {node: '>=16.14'} + '@docusaurus/remark-plugin-npm2yarn@3.9.2': + resolution: {integrity: sha512-Upr5W5Yvg97fD9ozDYgHBY0PPi80/1fbqW47v+yY/4o+Fiwwq9m/E5yuTNN3rO9h4+ueO/jrDMOFI/cG/mOV+A==} + engines: {node: '>=20.0'} '@docusaurus/responsive-loader@1.7.1': resolution: {integrity: sha512-jAebZ43f8GVpZSrijLGHVVp7Y0OMIPRaL+HhiIWQ+f/b72lTsKLkSkOVHEzvd2psNJ9lsoiM3gt6akpak6508w==} @@ -985,65 +1246,56 @@ packages: sharp: optional: true - '@docusaurus/theme-classic@2.3.1': - resolution: {integrity: sha512-SelSIDvyttb7ZYHj8vEUhqykhAqfOPKk+uP0z85jH72IMC58e7O8DIlcAeBv+CWsLbNIl9/Hcg71X0jazuxJug==} - engines: {node: '>=16.14'} + '@docusaurus/theme-classic@3.9.2': + resolution: {integrity: sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-common@2.3.1': - resolution: {integrity: sha512-RYmYl2OR2biO+yhmW1aS5FyEvnrItPINa+0U2dMxcHpah8reSCjQ9eJGRmAgkZFchV1+aIQzXOI1K7LCW38O0g==} - engines: {node: '>=16.14'} + '@docusaurus/theme-common@3.9.2': + resolution: {integrity: sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-content-docs': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-live-codeblock@2.3.1': - resolution: {integrity: sha512-BCxDPjnXs98tgLSteZZYsor3WQR/xkoFRdrwMzp624nQ5P/LoGmwym/7XzbrYKObwn4E0ffUjp2RpSAOtn+JKw==} - engines: {node: '>=16.14'} + '@docusaurus/theme-live-codeblock@3.9.2': + resolution: {integrity: sha512-cgxxZh18dI5Q4iV0GLmwqXtgZbTLOnb0TYgZRiUh0mnIGbuNWFUhUYXXl5owKbDfIXFdFAiI/owJKM83howEAw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-search-algolia@2.3.1': - resolution: {integrity: sha512-JdHaRqRuH1X++g5fEMLnq7OtULSGQdrs9AbhcWRQ428ZB8/HOiaN6mj3hzHvcD3DFgu7koIVtWPQnvnN7iwzHA==} - engines: {node: '>=16.14'} + '@docusaurus/theme-search-algolia@3.9.2': + resolution: {integrity: sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==} + engines: {node: '>=20.0'} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-translations@2.3.1': - resolution: {integrity: sha512-BsBZzAewJabVhoGG1Ij2u4pMS3MPW6gZ6sS4pc+Y7czevRpzxoFNJXRtQDVGe7mOpv/MmRmqg4owDK+lcOTCVQ==} - engines: {node: '>=16.14'} + '@docusaurus/theme-translations@3.9.2': + resolution: {integrity: sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==} + engines: {node: '>=20.0'} - '@docusaurus/types@2.3.1': - resolution: {integrity: sha512-PREbIRhTaNNY042qmfSE372Jb7djZt+oVTZkoqHJ8eff8vOIc2zqqDqBVc5BhOfpZGPTrE078yy/torUEZy08A==} + '@docusaurus/types@3.9.2': + resolution: {integrity: sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==} peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/utils-common@2.3.1': - resolution: {integrity: sha512-pVlRpXkdNcxmKNxAaB1ya2hfCEvVsLDp2joeM6K6uv55Oc5nVIqgyYSgSNKZyMdw66NnvMfsu0RBylcwZQKo9A==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils-common@3.9.2': + resolution: {integrity: sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==} + engines: {node: '>=20.0'} - '@docusaurus/utils-validation@2.3.1': - resolution: {integrity: sha512-7n0208IG3k1HVTByMHlZoIDjjOFC8sbViHVXJx0r3Q+3Ezrx+VQ1RZ/zjNn6lT+QBCRCXlnlaoJ8ug4HIVgQ3w==} - engines: {node: '>=16.14'} + '@docusaurus/utils-validation@3.9.2': + resolution: {integrity: sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==} + engines: {node: '>=20.0'} - '@docusaurus/utils@2.3.1': - resolution: {integrity: sha512-9WcQROCV0MmrpOQDXDGhtGMd52DHpSFbKLfkyaYumzbTstrbA5pPOtiGtxK1nqUHkiIv8UwexS54p0Vod2I1lg==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils@3.9.2': + resolution: {integrity: sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==} + engines: {node: '>=20.0'} '@douyinfe/semi-animation-react@2.24.1': resolution: {integrity: sha512-E2eCF/4Wxn/irWSL8mQCybgaP9vvMOCMooDrRKXWDS5c5adevj3GUeSsWDsT68NPPRueaBplYJoj6v+d+Lc/hA==} @@ -1079,20 +1331,8 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' - '@emnapi/runtime@1.6.0': - resolution: {integrity: sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==} - - '@endiliey/react-ideal-image@0.0.11': - resolution: {integrity: sha512-QxMjt/Gvur/gLxSoCy7VIyGGGrGmDN+VHcXkN3R2ApoWX0EYUE+hMgPHSW/PV6VVebZ1Nd4t2UnGRBDihu16JQ==} - engines: {node: '>= 8.9.0', npm: '> 3'} - peerDependencies: - prop-types: '>=15' - react: '>=0.14.x' - react-waypoint: '>=9.0.2' - - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1100,119 +1340,135 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@img/sharp-darwin-arm64@0.33.3': - resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.3': - resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + libc: [glibc] - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + libc: [glibc] - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + libc: [musl] - '@img/sharp-linux-arm64@0.33.3': - resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] - '@img/sharp-linux-arm@0.33.3': - resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] - '@img/sharp-linux-s390x@0.33.3': - resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] - '@img/sharp-linux-x64@0.33.3': - resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.33.3': - resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] - '@img/sharp-linuxmusl-x64@0.33.3': - resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] - '@img/sharp-wasm32@0.33.3': - resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.3': - resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.3': - resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1240,19 +1496,57 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/buffers@1.2.1': + resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/codegen@1.0.0': + resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.21.0': + resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pointer@1.0.2': + resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.9.0': + resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@mdx-js/mdx@1.6.22': - resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@mdx-js/react@1.6.22': - resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} + '@mdx-js/react@3.1.1': + resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: - react: ^16.13.1 || ^17.0.0 + '@types/react': '>=16' + react: '>=16' - '@mdx-js/util@1.6.22': - resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1266,10 +1560,56 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@peculiar/asn1-cms@2.6.0': + resolution: {integrity: sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==} + + '@peculiar/asn1-csr@2.6.0': + resolution: {integrity: sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==} + + '@peculiar/asn1-ecc@2.6.0': + resolution: {integrity: sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==} + + '@peculiar/asn1-pfx@2.6.0': + resolution: {integrity: sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==} + + '@peculiar/asn1-pkcs8@2.6.0': + resolution: {integrity: sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==} + + '@peculiar/asn1-pkcs9@2.6.0': + resolution: {integrity: sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==} + + '@peculiar/asn1-rsa@2.6.0': + resolution: {integrity: sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==} + + '@peculiar/asn1-schema@2.6.0': + resolution: {integrity: sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==} + + '@peculiar/asn1-x509-attr@2.6.0': + resolution: {integrity: sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==} + + '@peculiar/asn1-x509@2.6.0': + resolution: {integrity: sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==} + + '@peculiar/x509@1.14.3': + resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} + engines: {node: '>=20.0.0'} + '@philpl/buble@0.19.7': resolution: {integrity: sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA==} hasBin: true + '@pnpm/config.env-replace@1.1.0': + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + + '@pnpm/network.ca-file@1.0.2': + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} + + '@pnpm/npm-conf@3.0.2': + resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} + engines: {node: '>=12'} + '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -1284,23 +1624,44 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-node-resolve@11.2.1': - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0 + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true '@rollup/plugin-replace@2.4.2': resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/pluginutils@3.1.0': resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -1313,158 +1674,111 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@0.14.0': - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@sindresorhus/is@5.6.0': + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@slorber/static-site-generator-webpack-plugin@4.0.7': - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} + '@slorber/react-helmet-async@1.3.0': + resolution: {integrity: sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@slorber/remark-comment@1.0.0': + resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@svgr/babel-plugin-add-jsx-attribute@5.4.0': - resolution: {integrity: sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-add-jsx-attribute@6.5.1': - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-attribute@5.4.0': - resolution: {integrity: sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==} - engines: {node: '>=10'} - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1': - resolution: {integrity: sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==} - engines: {node: '>=10'} - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1': - resolution: {integrity: sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-dynamic-title@5.4.0': - resolution: {integrity: sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-svg-dynamic-title@6.5.1': - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} + '@svgr/babel-plugin-svg-dynamic-title@8.0.0': + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-svg-em-dimensions@5.4.0': - resolution: {integrity: sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-svg-em-dimensions@6.5.1': - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} + '@svgr/babel-plugin-svg-em-dimensions@8.0.0': + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-react-native-svg@5.4.0': - resolution: {integrity: sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-transform-react-native-svg@6.5.1': - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} + '@svgr/babel-plugin-transform-react-native-svg@8.1.0': + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-plugin-transform-svg-component@5.5.0': - resolution: {integrity: sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==} - engines: {node: '>=10'} - - '@svgr/babel-plugin-transform-svg-component@6.5.1': - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + '@svgr/babel-plugin-transform-svg-component@8.0.0': + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/babel-preset@5.5.0': - resolution: {integrity: sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==} - engines: {node: '>=10'} - - '@svgr/babel-preset@6.5.1': - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} + '@svgr/babel-preset@8.1.0': + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 - '@svgr/core@5.5.0': - resolution: {integrity: sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==} - engines: {node: '>=10'} - - '@svgr/core@6.5.1': - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} - - '@svgr/hast-util-to-babel-ast@5.5.0': - resolution: {integrity: sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==} - engines: {node: '>=10'} - - '@svgr/hast-util-to-babel-ast@6.5.1': - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/core@8.1.0': + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} - '@svgr/plugin-jsx@5.5.0': - resolution: {integrity: sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@8.0.0': + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} - '@svgr/plugin-jsx@6.5.1': - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} + '@svgr/plugin-jsx@8.1.0': + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} peerDependencies: - '@svgr/core': ^6.0.0 - - '@svgr/plugin-svgo@5.5.0': - resolution: {integrity: sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==} - engines: {node: '>=10'} + '@svgr/core': '*' - '@svgr/plugin-svgo@6.5.1': - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} + '@svgr/plugin-svgo@8.1.0': + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} peerDependencies: '@svgr/core': '*' - '@svgr/webpack@5.5.0': - resolution: {integrity: sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==} - engines: {node: '>=10'} - - '@svgr/webpack@6.5.1': - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} + '@svgr/webpack@8.1.0': + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} - '@szmarczak/http-timer@1.1.2': - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + '@szmarczak/http-timer@5.0.1': + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} @@ -1482,12 +1796,18 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} @@ -1500,11 +1820,14 @@ packages: '@types/express-serve-static-core@5.1.0': resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} - '@types/express@4.17.24': - resolution: {integrity: sha512-Mbrt4SRlXSTWryOnHAh2d4UQ/E7n9lZyGSi6KgX+4hkuL9soYbLOVXVhnk/ODp12YsGc95f4pOvqywJ6kngUwg==} + '@types/express@4.17.25': + resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + '@types/gtag.js@0.0.12': + resolution: {integrity: sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/history@4.7.11': resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} @@ -1512,6 +1835,9 @@ packages: '@types/html-minifier-terser@6.1.0': resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} @@ -1530,17 +1856,17 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/node-forge@1.3.14': - resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} @@ -1548,14 +1874,8 @@ packages: '@types/node@24.9.1': resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/parse5@5.0.3': - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - - '@types/q@1.5.8': - resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} + '@types/prismjs@1.26.5': + resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} '@types/qs@6.14.0': resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} @@ -1575,14 +1895,11 @@ packages: '@types/react@19.2.2': resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} - '@types/resolve@1.17.1': - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} '@types/sax@1.2.7': resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} @@ -1608,6 +1925,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} @@ -1617,6 +1937,9 @@ packages: '@types/yargs@17.0.34': resolution: {integrity: sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -1746,9 +2069,6 @@ packages: peerDependencies: algoliasearch: '>= 3.1 < 6' - algoliasearch@4.25.2: - resolution: {integrity: sha512-lYx98L6kb1VvXypbPI7Z54C4BJB2VT5QvOYthvPq6/POufZj+YdyeZSKjoLBKHJgGmYWQTHOKtcCTdKf98WOCA==} - algoliasearch@5.41.0: resolution: {integrity: sha512-9E4b3rJmYbBkn7e3aAPt1as+VVnRhsR4qwRRgOzpeyz4PAOuwKh0HI4AN6mTrqK0S0M9fCCSTOUnuJ8gPY/tvA==} engines: {node: '>= 14.0.0'} @@ -1756,6 +2076,10 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} engines: {'0': node >= 0.8.0} @@ -1781,6 +2105,9 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1808,16 +2135,17 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.reduce@1.0.8: - resolution: {integrity: sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asn1js@3.0.7: + resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==} + engines: {node: '>=12.0.0'} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} @@ -1833,8 +2161,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + autoprefixer@10.4.23: + resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1844,27 +2172,24 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@0.25.0: - resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} - - babel-loader@8.4.1: - resolution: {integrity: sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==} - engines: {node: '>= 8.9'} + b4a@1.7.3: + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true - babel-plugin-apply-mdx-type-prop@1.6.22: - resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} + engines: {node: '>= 14.15.0'} peerDependencies: - '@babel/core': ^7.11.6 + '@babel/core': ^7.12.0 + webpack: '>=5' babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - babel-plugin-extract-import-names@1.6.22: - resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} - babel-plugin-polyfill-corejs2@0.4.14: resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: @@ -1880,14 +2205,49 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.5.2: + resolution: {integrity: sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.6.2: + resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.7.0: + resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.3.2: + resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1896,6 +2256,10 @@ packages: resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} hasBin: true + baseline-browser-mapping@2.9.15: + resolution: {integrity: sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==} + hasBin: true + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -1922,14 +2286,14 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - boxen@6.2.1: resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -1945,8 +2309,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buble@0.19.6: - resolution: {integrity: sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-from@1.1.2: @@ -1955,9 +2320,9 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} @@ -1967,9 +2332,17 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} + bytestreamjs@2.0.1: + resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} + engines: {node: '>=6.0.0'} + + cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + + cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} @@ -1990,22 +2363,25 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} caniuse-lite@1.0.30001751: resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} - ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + caniuse-lite@1.0.30001764: + resolution: {integrity: sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2015,21 +2391,32 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - cheerio@1.1.2: - resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} - engines: {node: '>=20.18.1'} + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -2042,9 +2429,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -2063,10 +2447,6 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -2079,23 +2459,12 @@ packages: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - coa@2.0.2: - resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} - engines: {node: '>= 4.0'} - - collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2130,12 +2499,20 @@ packages: resolution: {integrity: sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==} engines: {node: '>=10'} - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -2148,19 +2525,13 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - component-props@1.1.1: - resolution: {integrity: sha512-69pIRJs9fCCHRqCz3390YF2LV1Lu6iEMZ5zuVqqUn+G20V9BNXlMs0cWawWeW9g4Ynmg29JmkG6R7/lUJoGd1Q==} - - component-xor@0.0.4: - resolution: {integrity: sha512-ZIt6sla8gfo+AFVRZoZOertcnD5LJaY2T9CKE2j13NJxQt/mUafD69Bl7/Y4AnpI2LGjiXH7cOfJDx/n2G9edA==} - compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2175,19 +2546,20 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + configstore@6.0.0: + resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} + engines: {node: '>=12'} connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} - consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - - consolidated-events@2.0.2: - resolution: {integrity: sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} content-disposition@0.5.2: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} @@ -2201,9 +2573,6 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2218,10 +2587,6 @@ packages: resolution: {integrity: sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==} engines: {node: '>=6'} - copy-text-to-clipboard@3.2.2: - resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==} - engines: {node: '>=12'} - copy-webpack-plugin@11.0.0: resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} @@ -2234,24 +2599,12 @@ packages: core-js-pure@3.46.0: resolution: {integrity: sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==} - core-js@2.6.12: - resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} - deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - core-js@3.46.0: resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -2261,9 +2614,6 @@ packages: typescript: optional: true - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -2272,12 +2622,28 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - css-declaration-sorter@6.4.1: - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-blank-pseudo@7.0.1: + resolution: {integrity: sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + css-declaration-sorter@7.3.1: + resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 + css-has-pseudo@7.0.3: + resolution: {integrity: sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + css-loader@6.11.0: resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} engines: {node: '>= 12.13.0'} @@ -2290,8 +2656,8 @@ packages: webpack: optional: true - css-minimizer-webpack-plugin@4.2.2: - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + css-minimizer-webpack-plugin@5.0.1: + resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} peerDependencies: '@parcel/css': '*' @@ -2315,11 +2681,11 @@ packages: lightningcss: optional: true - css-select-base-adapter@0.1.1: - resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} - - css-select@2.1.0: - resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==} + css-prefers-color-scheme@10.0.0: + resolution: {integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -2327,54 +2693,53 @@ packages: css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - css-tree@1.0.0-alpha.37: - resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==} - engines: {node: '>=8.0.0'} - - css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - css-what@3.4.2: - resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} - engines: {node: '>= 6'} + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.2.2: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} + cssdb@8.7.0: + resolution: {integrity: sha512-UxiWVpV953ENHqAKjKRPZHNDfRo3uOymvO5Ef7MFCWlenaohkYj7PTO7WCBdjZm8z/aDZd6rXyUIlwZ0AjyFSg==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - cssnano-preset-advanced@5.3.10: - resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano-preset-advanced@6.1.2: + resolution: {integrity: sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano-preset-default@6.1.2: + resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano-utils@4.0.2: + resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} + cssnano@6.1.2: + resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2420,9 +2785,8 @@ packages: supports-color: optional: true - decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -2436,12 +2800,17 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.4.0: + resolution: {integrity: sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==} + engines: {node: '>=18'} - defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} @@ -2451,14 +2820,14 @@ packages: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - depd@1.1.2: resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} engines: {node: '>= 0.6'} @@ -2467,13 +2836,14 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -2481,16 +2851,14 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - detect-port@1.6.1: resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} engines: {node: '>= 4.0.0'} hasBin: true + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2508,12 +2876,6 @@ packages: dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - dom-iterator@1.0.2: - resolution: {integrity: sha512-BMelEjhy08OpoWF3v/jrPtx7PZCyP1VM9yiB7rJk19UVmt7zTN5rqoC0Jea+EyT0M6v/VokL0LxIlGLUOBJZ2g==} - - dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} - dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -2523,9 +2885,6 @@ packages: dom7@4.0.6: resolution: {integrity: sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==} - domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} - domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -2537,9 +2896,6 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} - domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} @@ -2549,17 +2905,14 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2577,18 +2930,24 @@ packages: electron-to-chromium@1.5.240: resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==} + electron-to-chromium@1.5.267: + resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - emoticon@3.2.0: - resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} + emoticon@4.1.0: + resolution: {integrity: sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==} encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} @@ -2598,9 +2957,6 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2629,9 +2985,6 @@ packages: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} - es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -2655,13 +3008,19 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} + escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -2674,6 +3033,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -2695,9 +3058,36 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.5.0: + resolution: {integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -2717,6 +3107,9 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -2729,8 +3122,8 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + express@4.22.1: + resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} engines: {node: '>= 0.10.0'} extend-shallow@2.0.1: @@ -2743,6 +3136,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -2756,23 +3152,30 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} - fbemitter@3.0.0: - resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} - - fbjs-css-vars@1.0.2: - resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} - - fbjs@3.0.5: - resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + file-loader@6.2.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -2782,10 +3185,6 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2794,31 +3193,18 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flux@4.0.4: - resolution: {integrity: sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==} - peerDependencies: - react: ^15.0.2 || ^16.0.0 || ^17.0.0 - follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -2832,26 +3218,24 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} @@ -2860,17 +3244,14 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - fs-monkey@1.1.0: - resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2908,14 +3289,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2938,9 +3311,20 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regex.js@1.2.0: + resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2949,14 +3333,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -2977,9 +3353,12 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} + got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -3022,31 +3401,37 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} + has-yarn@3.0.0: + resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - hast-util-raw@6.0.1: - resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -3061,9 +3446,6 @@ packages: hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -3072,12 +3454,17 @@ packages: engines: {node: '>=12'} hasBin: true + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + html-tags@3.3.1: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} - html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} html-webpack-plugin@5.6.4: resolution: {integrity: sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==} @@ -3091,12 +3478,12 @@ packages: webpack: optional: true - htmlparser2@10.0.0: - resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} - htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -3127,18 +3514,22 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -3155,21 +3546,18 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - image-size@1.2.1: - resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} hasBin: true - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -3179,8 +3567,8 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - infima@0.2.0-alpha.42: - resolution: {integrity: sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==} + infima@0.2.0-alpha.45: + resolution: {integrity: sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==} engines: {node: '>=12'} inflight@1.0.6: @@ -3200,17 +3588,13 @@ packages: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -3222,11 +3606,11 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} @@ -3254,16 +3638,12 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true is-core-module@2.16.1: @@ -3278,14 +3658,19 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -3310,8 +3695,13 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} @@ -3328,9 +3718,13 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} + is-network-error@1.3.0: + resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} + engines: {node: '>=16'} + + is-npm@6.1.0: + resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} @@ -3348,22 +3742,18 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} @@ -3376,10 +3766,6 @@ packages: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} - is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -3419,18 +3805,17 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - - is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is-yarn-global@0.4.1: + resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} + engines: {node: '>=12'} isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -3448,6 +3833,10 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -3457,10 +3846,6 @@ packages: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -3499,8 +3884,8 @@ packages: engines: {node: '>=6'} hasBin: true - json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -3532,8 +3917,8 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -3543,9 +3928,9 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} + latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} launch-editor@2.11.1: resolution: {integrity: sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==} @@ -3554,9 +3939,9 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -3572,31 +3957,13 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.flow@3.5.0: - resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -3612,6 +3979,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3619,13 +3989,13 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} + lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} + lru-cache@11.2.4: + resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} + engines: {node: 20 || >=22} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3633,17 +4003,20 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + markdown-table@2.0.0: + resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + markdownlint-cli2-formatter-default@0.0.4: resolution: {integrity: sha512-xm2rM0E+sWgjpPn1EesPXx5hIyrN2ddUnUwnbCsD/ONxYtw3PX6LydvdH6dciWAoFDpwzbHM1TO7uHfcMd6IYg==} peerDependencies: @@ -3666,26 +4039,65 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} + mdast-util-directive@3.1.0: + resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - mdn-data@2.0.4: - resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -3694,9 +4106,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + memfs@4.53.0: + resolution: {integrity: sha512-TKFRsKjJA30iAc9ZeGH/77v5nLcNUD0GBOL/tAj4O63RPIKNxGDZ54ZyuQM4KjEKEj7gfer/Ta1xAzB+HrEnrA==} memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -3715,6 +4126,129 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-directive@3.0.2: + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -3743,6 +4277,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -3752,14 +4290,14 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + mini-css-extract-plugin@2.9.4: resolution: {integrity: sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==} engines: {node: '>= 12.13.0'} @@ -3769,6 +4307,10 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3779,13 +4321,13 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -3800,6 +4342,9 @@ packages: resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} hasBin: true + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3826,61 +4371,47 @@ packages: resolution: {integrity: sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==} engines: {node: '>=10'} - node-addon-api@5.1.0: - resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} - - node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} node-releases@2.0.26: resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} + normalize-url@8.1.1: + resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} + engines: {node: '>=14.16'} npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm-to-yarn@1.3.0: - resolution: {integrity: sha512-07nTERZViiQvQJpVxhUyJgV5zLaMrAxW+nfSv/ELHe3Fv9bSSxRS1lTw9MplkuLtynQru3fvEm9r4a5+IE7j2A==} - engines: {node: '>=6.0.0'} + npm-to-yarn@3.0.1: + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - nth-check@1.0.2: - resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==} - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + null-loader@4.0.1: + resolution: {integrity: sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -3897,14 +4428,6 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.8: - resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} - engines: {node: '>= 0.8'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} @@ -3923,6 +4446,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -3939,46 +4466,45 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + p-retry@6.2.1: + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} + engines: {node: '>=16.17'} - package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -3986,8 +4512,8 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} @@ -3999,12 +4525,6 @@ packages: parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} - - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -4015,13 +4535,9 @@ packages: pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -4037,6 +4553,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -4061,64 +4581,168 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkijs@3.3.3: + resolution: {integrity: sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==} + engines: {node: '>=16.0.0'} possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + postcss-attribute-case-insensitive@7.0.1: + resolution: {integrity: sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-calc@9.0.1: + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 - postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-clamp@4.1.0: + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 + + postcss-color-functional-notation@7.0.12: + resolution: {integrity: sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-color-hex-alpha@10.0.0: + resolution: {integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-color-rebeccapurple@10.0.0: + resolution: {integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-colormin@6.1.0: + resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@6.1.0: + resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-custom-media@11.0.6: + resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-custom-properties@14.0.6: + resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-custom-selectors@8.0.5: + resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-dir-pseudo-class@9.0.1: + resolution: {integrity: sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-discard-comments@6.0.2: + resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@6.0.3: + resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@6.0.3: + resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@6.0.2: + resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-unused@6.0.5: + resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-double-position-gradients@6.0.4: + resolution: {integrity: sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 - postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-focus-visible@10.0.1: + resolution: {integrity: sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 - postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-focus-within@9.0.1: + resolution: {integrity: sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-font-variant@5.0.0: + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.1.0 - postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-gap-properties@6.0.0: + resolution: {integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 - postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-image-set-function@7.0.0: + resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 - postcss-discard-unused@5.1.0: - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-lab-function@7.0.12: + resolution: {integrity: sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} @@ -4127,47 +4751,53 @@ packages: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 - postcss-merge-idents@5.1.1: - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-logical@8.1.0: + resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-merge-idents@6.0.3: + resolution: {integrity: sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-merge-longhand@6.0.5: + resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-merge-rules@6.1.1: + resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-font-values@6.1.0: + resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-gradients@6.0.3: + resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-params@6.1.0: + resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-minify-selectors@6.0.4: + resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} @@ -4193,83 +4823,135 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-nesting@13.0.2: + resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-normalize-charset@6.0.2: + resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-display-values@6.0.2: + resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-positions@6.0.2: + resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-repeat-style@6.0.2: + resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-string@6.0.2: + resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-timing-functions@6.0.2: + resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-unicode@6.1.0: + resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-url@6.0.2: + resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-normalize-whitespace@6.0.2: + resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-opacity-percentage@3.0.0: + resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-ordered-values@6.0.2: + resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-overflow-shorthand@6.0.0: + resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-page-break@3.0.4: + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} + peerDependencies: + postcss: ^8 + + postcss-place@10.0.0: + resolution: {integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-preset-env@10.6.1: + resolution: {integrity: sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-pseudo-class-any-link@10.0.1: + resolution: {integrity: sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-reduce-idents@6.0.3: + resolution: {integrity: sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@6.1.0: + resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-reduce-idents@5.2.0: - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-reduce-transforms@6.0.2: + resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-replace-overflow-wrap@4.0.0: + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.0.3 - postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-selector-not@8.0.1: + resolution: {integrity: sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==} + engines: {node: '>=18'} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4 postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} @@ -4279,32 +4961,32 @@ packages: resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} - postcss-sort-media-queries@4.4.1: - resolution: {integrity: sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==} - engines: {node: '>=10.0.0'} + postcss-sort-media-queries@5.2.0: + resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} + engines: {node: '>=14.0.0'} peerDependencies: - postcss: ^8.4.16 + postcss: ^8.4.23 - postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-svgo@6.0.3: + resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} + engines: {node: ^14 || ^16 || >= 18} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 - postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-unique-selectors@6.0.4: + resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss-zindex@5.1.0: - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} + postcss-zindex@6.0.2: + resolution: {integrity: sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} @@ -4315,10 +4997,6 @@ packages: engines: {node: '>=10'} hasBin: true - prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -4330,10 +5008,10 @@ packages: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} - prism-react-renderer@1.3.5: - resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} + prism-react-renderer@2.4.1: + resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==} peerDependencies: - react: '>=0.14.9' + react: '>=16.0.0' prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} @@ -4342,9 +5020,6 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - promise@7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} - prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4352,8 +5027,11 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -4370,30 +5048,31 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} - - pure-color@1.3.0: - resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} + pupa@3.3.0: + resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} + engines: {node: '>=12.20'} - q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - deprecated: |- - You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + pvtsutils@1.3.6: + resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + pvutils@1.1.5: + resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} + engines: {node: '>=16.0.0'} qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - queue-microtask@1.2.3: + qs@6.14.1: + resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -4414,23 +5093,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-base16-styling@0.6.0: - resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} - - react-dev-utils@12.0.1: - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - - react-dom@17.0.2: - resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: 17.0.2 + react: ^18.3.1 react-draggable@4.5.0: resolution: {integrity: sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==} @@ -4438,44 +5104,24 @@ packages: react: '>= 16.3.0' react-dom: '>= 16.3.0' - react-error-overlay@6.1.0: - resolution: {integrity: sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==} - react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-helmet-async@1.3.0: - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - - react-helmet-async@2.0.5: - resolution: {integrity: sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-json-view@1.21.3: - resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==} + react-json-view-lite@2.5.0: + resolution: {integrity: sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==} + engines: {node: '>=18'} peerDependencies: - react: ^17.0.0 || ^16.3.0 || ^15.5.4 - react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 + react: ^18.0.0 || ^19.0.0 - react-lifecycles-compat@3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - - react-live@2.2.3: - resolution: {integrity: sha512-tpKruvfytNETuzO3o1mrQUj180GVrq35IE8F5gH1NJVPt4szYCx83/dOSCOyjgRhhc3gQvl0pQ3k/CjOjwJkKQ==} + react-live@4.1.8: + resolution: {integrity: sha512-B2SgNqwPuS2ekqj4lcxi5TibEcjWkdVyYykBEUBshPAPDQ527x2zPEZg560n8egNtAjUpwXFQm7pcXV65aAYmg==} engines: {node: '>= 0.12.0', npm: '>= 2.0.0'} peerDependencies: - react: '*' - react-dom: '*' + react: '>=18.0.0' + react-dom: '>=18.0.0' react-loadable-ssr-addon-v5-slorber@1.0.1: resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} @@ -4506,12 +5152,6 @@ packages: peerDependencies: react: '>=15' - react-simple-code-editor@0.10.0: - resolution: {integrity: sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA==} - peerDependencies: - react: ^16.0.0 - react-dom: ^16.0.0 - react-slick@0.29.0: resolution: {integrity: sha512-TGdOKE+ZkJHHeC4aaoH85m8RnFyWqdqRfAGkhd6dirmATXMZWAxOpTLmw2Ll/jPTQ3eEG7ercFr/sbzdeYCJXA==} peerDependencies: @@ -4525,17 +5165,6 @@ packages: react: ^16.3.0 || ^17.0.0 react-dom: ^16.3.0 || ^17.0.0 - react-textarea-autosize@8.5.9: - resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-waypoint@10.3.0: - resolution: {integrity: sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==} - peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-window@1.8.11: resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} engines: {node: '>8.0.0'} @@ -4543,8 +5172,8 @@ packages: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react@17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} readable-stream@2.3.8: @@ -4558,16 +5187,22 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} @@ -4596,13 +5231,13 @@ packages: resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} - registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} + registry-auth-token@5.1.1: + resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} + engines: {node: '>=14'} - registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} + registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} regjsgen@0.5.2: resolution: {integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==} @@ -4618,24 +5253,40 @@ packages: resolution: {integrity: sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==} hasBin: true + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} - remark-emoji@2.2.0: - resolution: {integrity: sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==} + remark-directive@3.0.1: + resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} - remark-footnotes@2.0.0: - resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} + remark-emoji@4.0.1: + resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + remark-frontmatter@5.0.0: + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} - remark-mdx@1.6.22: - resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -4657,6 +5308,9 @@ packages: resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4669,8 +5323,9 @@ packages: engines: {node: '>= 0.4'} hasBin: true - responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} @@ -4680,35 +5335,23 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup-plugin-terser@7.0.2: - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 - rollup@2.79.2: resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true - rtl-detect@1.1.2: - resolution: {integrity: sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==} - - rtlcss@3.5.0: - resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==} + rtlcss@4.3.0: + resolution: {integrity: sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==} + engines: {node: '>=12.0.0'} hasBin: true + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -4730,22 +5373,14 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - scheduler@0.20.2: - resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} - - schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} + schema-dts@1.1.5: + resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -4768,17 +5403,13 @@ packages: select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} + selfsigned@5.5.0: + resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} + engines: {node: '>=18'} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semver-diff@4.0.0: + resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} + engines: {node: '>=12'} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -4793,9 +5424,6 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -4822,9 +5450,6 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} @@ -4838,13 +5463,13 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - sharp@0.30.7: - resolution: {integrity: sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==} - engines: {node: '>=12.13.0'} + sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} - sharp@0.33.3: - resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -4858,11 +5483,6 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -4882,6 +5502,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -4903,6 +5527,10 @@ packages: engines: {node: '>=12.0.0', npm: '>=5.6.0'} hasBin: true + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4920,11 +5548,17 @@ packages: peerDependencies: jquery: '>=1.8.0' + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + sort-css-media-queries@2.2.0: + resolution: {integrity: sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==} engines: {node: '>= 6.3.0'} source-map-js@1.2.1: @@ -4934,14 +5568,14 @@ packages: source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} @@ -4951,8 +5585,8 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -4964,16 +5598,13 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + srcset@4.0.0: + resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} + engines: {node: '>=12'} + ssr-window@4.0.2: resolution: {integrity: sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==} - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - - state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -4989,6 +5620,9 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + string-convert@0.2.1: resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} @@ -5022,6 +5656,9 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + stringify-object@3.3.0: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} @@ -5054,14 +5691,22 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} - stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} + stylehacks@6.1.1: + resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.2.15 + postcss: ^8.4.31 + + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -5082,25 +5727,15 @@ packages: svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@1.3.2: - resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==} - engines: {node: '>=4.0.0'} - deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x. - hasBin: true - - svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} hasBin: true swiper@7.4.1: resolution: {integrity: sha512-dhbL4tpYFvHug1J7GnKElfTi6EYhlZy/vNZRhHkWFyUsWZ1Vovipxj3la5gqllMogygXJMe3zvVv+f6eppvWiA==} engines: {node: '>= 4.7.0'} - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -5108,10 +5743,16 @@ packages: tar-fs@2.1.4: resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + tar-fs@3.1.1: + resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} @@ -5141,8 +5782,21 @@ packages: engines: {node: '>=10'} hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + thingies@2.5.0: + resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} @@ -5153,9 +5807,13 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -5169,25 +5827,34 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + tree-dump@1.1.0: + resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - deprecated: Use String.prototype.trim() instead + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsyringe@4.10.0: + resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} + engines: {node: '>= 6.0.0'} + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -5195,8 +5862,12 @@ packages: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} type-fest@2.19.0: @@ -5231,10 +5902,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - ua-parser-js@1.0.41: - resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} - hasBin: true - uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} @@ -5245,21 +5912,14 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - - unescape@1.0.1: - resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==} - engines: {node: '>=0.10.0'} - - unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} @@ -5276,42 +5936,34 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unified@9.2.0: - resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} - - unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - unist-builder@2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - - unist-util-generated@1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} - unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -5321,9 +5973,6 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unquote@1.1.1: - resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} - upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -5334,9 +5983,15 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@6.0.2: + resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} + engines: {node: '>=14.16'} uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -5351,48 +6006,14 @@ packages: file-loader: optional: true - url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - - use-composed-ref@1.4.0: - resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-isomorphic-layout-effect@1.2.1: - resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-latest@1.3.0: - resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + use-editable@2.3.3: + resolution: {integrity: sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: '>= 16.8.0' util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util.promisify@1.0.1: - resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==} - utila@0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} @@ -5415,22 +6036,14 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} - - vlq@1.0.1: - resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - - wait-on@6.0.1: - resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} - engines: {node: '>=10.0.0'} - hasBin: true + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} watchpack@2.4.4: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} @@ -5439,11 +6052,8 @@ packages: wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -5453,18 +6063,21 @@ packages: engines: {node: '>= 10.13.0'} hasBin: true - webpack-dev-middleware@5.3.4: - resolution: {integrity: sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==} - engines: {node: '>= 12.13.0'} + webpack-dev-middleware@7.4.5: + resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==} + engines: {node: '>= 18.12.0'} peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true - webpack-dev-server@4.15.2: - resolution: {integrity: sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==} - engines: {node: '>= 12.13.0'} + webpack-dev-server@5.2.3: + resolution: {integrity: sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==} + engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: - webpack: ^4.37.0 || ^5.0.0 + webpack: ^5.0.0 webpack-cli: '*' peerDependenciesMeta: webpack: @@ -5476,6 +6089,10 @@ packages: resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} engines: {node: '>=10.0.0'} + webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} + webpack-sources@3.3.3: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} @@ -5490,9 +6107,9 @@ packages: webpack-cli: optional: true - webpackbar@5.0.2: - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} + webpackbar@6.0.1: + resolution: {integrity: sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==} + engines: {node: '>=14.21.3'} peerDependencies: webpack: 3 || 4 || 5 @@ -5504,17 +6121,6 @@ packages: resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -5534,19 +6140,11 @@ packages: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -5554,65 +6152,54 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - workbox-background-sync@6.6.0: - resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} - - workbox-broadcast-update@6.6.0: - resolution: {integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==} - - workbox-build@6.6.0: - resolution: {integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==} - engines: {node: '>=10.0.0'} - - workbox-cacheable-response@6.6.0: - resolution: {integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==} - deprecated: workbox-background-sync@6.6.0 + workbox-background-sync@7.4.0: + resolution: {integrity: sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w==} - workbox-core@6.5.3: - resolution: {integrity: sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==} + workbox-broadcast-update@7.4.0: + resolution: {integrity: sha512-+eZQwoktlvo62cI0b+QBr40v5XjighxPq3Fzo9AWMiAosmpG5gxRHgTbGGhaJv/q/MFVxwFNGh/UwHZ/8K88lA==} - workbox-core@6.6.0: - resolution: {integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==} + workbox-build@7.4.0: + resolution: {integrity: sha512-Ntk1pWb0caOFIvwz/hfgrov/OJ45wPEhI5PbTywQcYjyZiVhT3UrwwUPl6TRYbTm4moaFYithYnl1lvZ8UjxcA==} + engines: {node: '>=20.0.0'} - workbox-expiration@6.6.0: - resolution: {integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==} + workbox-cacheable-response@7.4.0: + resolution: {integrity: sha512-0Fb8795zg/x23ISFkAc7lbWes6vbw34DGFIMw31cwuHPgDEC/5EYm6m/ZkylLX0EnEbbOyOCLjKgFS/Z5g0HeQ==} - workbox-google-analytics@6.6.0: - resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==} - deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained + workbox-core@7.4.0: + resolution: {integrity: sha512-6BMfd8tYEnN4baG4emG9U0hdXM4gGuDU3ectXuVHnj71vwxTFI7WOpQJC4siTOlVtGqCUtj0ZQNsrvi6kZZTAQ==} - workbox-navigation-preload@6.6.0: - resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==} + workbox-expiration@7.4.0: + resolution: {integrity: sha512-V50p4BxYhtA80eOvulu8xVfPBgZbkxJ1Jr8UUn0rvqjGhLDqKNtfrDfjJKnLz2U8fO2xGQJTx/SKXNTzHOjnHw==} - workbox-precaching@6.6.0: - resolution: {integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==} + workbox-google-analytics@7.4.0: + resolution: {integrity: sha512-MVPXQslRF6YHkzGoFw1A4GIB8GrKym/A5+jYDUSL+AeJw4ytQGrozYdiZqUW1TPQHW8isBCBtyFJergUXyNoWQ==} - workbox-range-requests@6.6.0: - resolution: {integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==} + workbox-navigation-preload@7.4.0: + resolution: {integrity: sha512-etzftSgdQfjMcfPgbfaZCfM2QuR1P+4o8uCA2s4rf3chtKTq/Om7g/qvEOcZkG6v7JZOSOxVYQiOu6PbAZgU6w==} - workbox-recipes@6.6.0: - resolution: {integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==} + workbox-precaching@7.4.0: + resolution: {integrity: sha512-VQs37T6jDqf1rTxUJZXRl3yjZMf5JX/vDPhmx2CPgDDKXATzEoqyRqhYnRoxl6Kr0rqaQlp32i9rtG5zTzIlNg==} - workbox-routing@6.5.3: - resolution: {integrity: sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==} + workbox-range-requests@7.4.0: + resolution: {integrity: sha512-3Vq854ZNuP6Y0KZOQWLaLC9FfM7ZaE+iuQl4VhADXybwzr4z/sMmnLgTeUZLq5PaDlcJBxYXQ3U91V7dwAIfvw==} - workbox-routing@6.6.0: - resolution: {integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==} + workbox-recipes@7.4.0: + resolution: {integrity: sha512-kOkWvsAn4H8GvAkwfJTbwINdv4voFoiE9hbezgB1sb/0NLyTG4rE7l6LvS8lLk5QIRIto+DjXLuAuG3Vmt3cxQ==} - workbox-strategies@6.5.3: - resolution: {integrity: sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==} + workbox-routing@7.4.0: + resolution: {integrity: sha512-C/ooj5uBWYAhAqwmU8HYQJdOjjDKBp9MzTQ+otpMmd+q0eF59K+NuXUek34wbL0RFrIXe/KKT+tUWcZcBqxbHQ==} - workbox-strategies@6.6.0: - resolution: {integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==} + workbox-strategies@7.4.0: + resolution: {integrity: sha512-T4hVqIi5A4mHi92+5EppMX3cLaVywDp8nsyUgJhOZxcfSV/eQofcOA6/EMo5rnTNmNTpw0rUgjAI6LaVullPpg==} - workbox-streams@6.6.0: - resolution: {integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==} + workbox-streams@7.4.0: + resolution: {integrity: sha512-QHPBQrey7hQbnTs5GrEVoWz7RhHJXnPT+12qqWM378orDMo5VMJLCkCM1cnCk+8Eq92lccx/VgRZ7WAzZWbSLg==} - workbox-sw@6.6.0: - resolution: {integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==} + workbox-sw@7.4.0: + resolution: {integrity: sha512-ltU+Kr3qWR6BtbdlMnCjobZKzeV1hN+S6UvDywBrwM19TTyqA03X66dzw1tEIdJvQ4lYKkBFox6IAEhoSEZ8Xw==} - workbox-window@6.6.0: - resolution: {integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==} + workbox-window@7.4.0: + resolution: {integrity: sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==} wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -5652,31 +6239,27 @@ packages: utf-8-validate: optional: true - xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + + xdg-basedir@5.1.0: + resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} + engines: {node: '>=12'} xml-js@1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} - zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: @@ -5715,16 +6298,6 @@ snapshots: '@algolia/client-search': 5.41.0 algoliasearch: 5.41.0 - '@algolia/cache-browser-local-storage@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - - '@algolia/cache-common@4.25.2': {} - - '@algolia/cache-in-memory@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - '@algolia/client-abtesting@5.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5732,19 +6305,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/client-account@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/transporter': 4.25.2 - - '@algolia/client-analytics@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/client-analytics@5.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5752,11 +6312,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/client-common@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/client-common@5.41.0': {} '@algolia/client-insights@5.41.0': @@ -5766,12 +6321,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/client-personalization@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/client-personalization@5.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5786,12 +6335,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/client-search@4.25.2': - dependencies: - '@algolia/client-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/client-search@5.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5808,12 +6351,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/logger-common@4.25.2': {} - - '@algolia/logger-console@4.25.2': - dependencies: - '@algolia/logger-common': 4.25.2 - '@algolia/monitoring@1.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5821,20 +6358,6 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/recommend@4.25.2': - dependencies: - '@algolia/cache-browser-local-storage': 4.25.2 - '@algolia/cache-common': 4.25.2 - '@algolia/cache-in-memory': 4.25.2 - '@algolia/client-common': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/logger-console': 4.25.2 - '@algolia/requester-browser-xhr': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/requester-node-http': 4.25.2 - '@algolia/transporter': 4.25.2 - '@algolia/recommend@5.41.0': dependencies: '@algolia/client-common': 5.41.0 @@ -5842,34 +6365,18 @@ snapshots: '@algolia/requester-fetch': 5.41.0 '@algolia/requester-node-http': 5.41.0 - '@algolia/requester-browser-xhr@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - '@algolia/requester-browser-xhr@5.41.0': dependencies: '@algolia/client-common': 5.41.0 - '@algolia/requester-common@4.25.2': {} - '@algolia/requester-fetch@5.41.0': dependencies: '@algolia/client-common': 5.41.0 - '@algolia/requester-node-http@4.25.2': - dependencies: - '@algolia/requester-common': 4.25.2 - '@algolia/requester-node-http@5.41.0': dependencies: '@algolia/client-common': 5.41.0 - '@algolia/transporter@4.25.2': - dependencies: - '@algolia/cache-common': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': dependencies: ajv: 8.17.1 @@ -5885,27 +6392,6 @@ snapshots: '@babel/compat-data@7.28.5': {} - '@babel/core@7.12.9': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.12.9) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - convert-source-map: 1.9.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: 4.17.21 - resolve: 1.22.11 - semver: 5.7.2 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - '@babel/core@7.28.5': dependencies: '@babel/code-frame': 7.27.1 @@ -5993,15 +6479,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6015,8 +6492,6 @@ snapshots: dependencies: '@babel/types': 7.28.5 - '@babel/helper-plugin-utils@7.10.4': {} - '@babel/helper-plugin-utils@7.27.1': {} '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': @@ -6102,13 +6577,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.12.9) - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6128,21 +6596,11 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6393,11 +6851,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.12.9)': - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -6687,25 +7140,334 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@discoveryjs/json-ext@0.5.7': {} + '@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@docsearch/css@3.9.0': {} + '@csstools/color-helpers@5.1.0': {} - '@docsearch/react@3.9.0(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)': + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.41.0)(algoliasearch@5.41.0) - '@docsearch/css': 3.9.0 - algoliasearch: 5.41.0 - optionalDependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-tokenizer@3.0.4': {} + + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.6)': + dependencies: + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-color-function@4.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.6)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.6)': + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-gamut-mapping@2.0.11(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.6)': + dependencies: + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-initial@2.0.1(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': + dependencies: + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.6)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.6)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 + + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.6)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 + + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.6)': + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-normalize-display-values@4.0.1(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-position-area-property@1.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-property-rule-prelude-list@1.0.0(postcss@8.5.6)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-random-function@2.0.1(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.6)': + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1(postcss@8.5.6)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-system-ui-font-family@1.0.0(postcss@8.5.6)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.6)': + dependencies: + '@csstools/color-helpers': 5.1.0 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.6)': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 + + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + dependencies: + postcss-selector-parser: 7.1.0 + + '@csstools/utilities@2.0.0(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + + '@discoveryjs/json-ext@0.5.7': {} + + '@docsearch/css@3.9.0': {} + + '@docsearch/react@3.9.0(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.41.0)(algoliasearch@5.41.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.41.0)(algoliasearch@5.41.0) + '@docsearch/css': 3.9.0 + algoliasearch: 5.41.0 + optionalDependencies: '@types/react': 19.2.2 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/core@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/babel@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -6717,71 +7479,110 @@ snapshots: '@babel/runtime': 7.28.4 '@babel/runtime-corejs3': 7.28.4 '@babel/traverse': 7.28.5 - '@docusaurus/cssnano-preset': 2.3.1 - '@docusaurus/logger': 2.3.1 - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/react-loadable': 5.5.2(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@slorber/static-site-generator-webpack-plugin': 4.0.7 - '@svgr/webpack': 6.5.1 - autoprefixer: 10.4.21(postcss@8.5.6) - babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.102.1) + '@docusaurus/logger': 3.9.2 + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) babel-plugin-dynamic-import-node: 2.3.3 + fs-extra: 11.3.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - react + - react-dom + - supports-color + - uglify-js + - webpack-cli + + '@docusaurus/bundler@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@babel/core': 7.28.5 + '@docusaurus/babel': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/cssnano-preset': 3.9.2 + '@docusaurus/logger': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.102.1) + clean-css: 5.3.3 + copy-webpack-plugin: 11.0.0(webpack@5.102.1) + css-loader: 6.11.0(webpack@5.102.1) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.102.1) + cssnano: 6.1.2(postcss@8.5.6) + file-loader: 6.2.0(webpack@5.102.1) + html-minifier-terser: 7.2.0 + mini-css-extract-plugin: 2.9.4(webpack@5.102.1) + null-loader: 4.0.1(webpack@5.102.1) + postcss: 8.5.6 + postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1) + postcss-preset-env: 10.6.1(postcss@8.5.6) + terser-webpack-plugin: 5.3.14(webpack@5.102.1) + tslib: 2.8.1 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + webpack: 5.102.1 + webpackbar: 6.0.1(webpack@5.102.1) + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - csso + - esbuild + - lightningcss + - react + - react-dom + - supports-color + - typescript + - uglify-js + - webpack-cli + + '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/babel': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/bundler': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@18.3.1) boxen: 6.2.1 chalk: 4.1.2 chokidar: 3.6.0 - clean-css: 5.3.3 cli-table3: 0.6.5 combine-promises: 1.2.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.102.1) core-js: 3.46.0 - css-loader: 6.11.0(webpack@5.102.1) - css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.3)(webpack@5.102.1) - cssnano: 5.1.15(postcss@8.5.6) - del: 6.1.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 - file-loader: 6.2.0(webpack@5.102.1) - fs-extra: 10.1.0 - html-minifier-terser: 6.1.0 + eval: 0.1.8 + execa: 5.1.1 + fs-extra: 11.3.3 html-tags: 3.3.1 html-webpack-plugin: 5.6.4(webpack@5.102.1) - import-fresh: 3.3.1 leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.9.4(webpack@5.102.1) - postcss: 8.5.6 - postcss-loader: 7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1) + open: 8.4.2 + p-map: 4.0.0 prompts: 2.4.2 - react: 17.0.2 - react-dev-utils: 12.0.1(typescript@5.9.3)(webpack@5.102.1) - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 1.3.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@17.0.2)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2(react@17.0.2))(webpack@5.102.1) - react-router: 5.3.4(react@17.0.2) - react-router-config: 5.1.1(react-router@5.3.4(react@17.0.2))(react@17.0.2) - react-router-dom: 5.3.4(react@17.0.2) - rtl-detect: 1.1.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)' + react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.102.1) + react-router: 5.3.4(react@18.3.1) + react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) semver: 7.7.3 serve-handler: 6.1.6 - shelljs: 0.8.5 - terser-webpack-plugin: 5.3.14(webpack@5.102.1) + tinypool: 1.1.1 tslib: 2.8.1 - update-notifier: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) - wait-on: 6.0.1 + update-notifier: 6.0.2 webpack: 5.102.1 webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.102.1) - webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.102.1) + webpack-dev-server: 5.2.3(webpack@5.102.1) + webpack-merge: 6.0.1 transitivePeerDependencies: - - '@docusaurus/types' + - '@docusaurus/faster' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -6790,99 +7591,107 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/cssnano-preset@2.3.1': + '@docusaurus/cssnano-preset@3.9.2': dependencies: - cssnano-preset-advanced: 5.3.10(postcss@8.5.6) + cssnano-preset-advanced: 6.1.2(postcss@8.5.6) postcss: 8.5.6 - postcss-sort-media-queries: 4.4.1(postcss@8.5.6) + postcss-sort-media-queries: 5.2.0(postcss@8.5.6) tslib: 2.8.1 - '@docusaurus/logger@2.3.1': + '@docusaurus/logger@3.9.2': dependencies: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/lqip-loader@2.3.1(webpack@5.102.1)': + '@docusaurus/lqip-loader@3.9.2(webpack@5.102.1)': dependencies: - '@docusaurus/logger': 2.3.1 + '@docusaurus/logger': 3.9.2 file-loader: 6.2.0(webpack@5.102.1) lodash: 4.17.21 - sharp: 0.30.7 + sharp: 0.32.6 tslib: 2.8.1 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a - webpack - '@docusaurus/mdx-loader@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@docusaurus/mdx-loader@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/parser': 7.28.5 - '@babel/traverse': 7.28.5 - '@docusaurus/logger': 2.3.1 - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@mdx-js/mdx': 1.6.22 + '@docusaurus/logger': 3.9.2 + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mdx-js/mdx': 3.1.1 + '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 + estree-util-value-to-estree: 3.5.0 file-loader: 6.2.0(webpack@5.102.1) - fs-extra: 10.1.0 - image-size: 1.2.1 - mdast-util-to-string: 2.0.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - remark-emoji: 2.2.0 + fs-extra: 11.3.3 + image-size: 2.0.2 + mdast-util-mdx: 3.0.0 + mdast-util-to-string: 4.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rehype-raw: 7.0.0 + remark-directive: 3.0.1 + remark-emoji: 4.0.1 + remark-frontmatter: 5.0.0 + remark-gfm: 4.0.1 stringify-object: 3.3.0 tslib: 2.8.1 - unified: 9.2.2 - unist-util-visit: 2.0.3 + unified: 11.0.5 + unist-util-visit: 5.0.0 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + vfile: 6.0.3 webpack: 5.102.1 transitivePeerDependencies: - - '@docusaurus/types' - '@swc/core' - esbuild - supports-color - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@docusaurus/module-type-aliases@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/react-loadable': 5.5.2(react@17.0.2) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 '@types/react': 19.2.2 '@types/react-router-config': 5.0.11 '@types/react-router-dom': 5.3.3 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 2.0.5(react@17.0.2) - react-loadable: '@docusaurus/react-loadable@5.5.2(react@17.0.2)' + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)' + react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' transitivePeerDependencies: - '@swc/core' - esbuild + - supports-color - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-client-redirects@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/logger': 2.3.1 - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) eta: 2.2.0 - fs-extra: 10.1.0 + fs-extra: 11.3.3 lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: - - '@docusaurus/types' + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -6891,36 +7700,39 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-blog@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/logger': 2.3.1 - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - cheerio: 1.1.2 + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + cheerio: 1.0.0-rc.12 feed: 4.2.2 - fs-extra: 10.1.0 + fs-extra: 11.3.3 lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - reading-time: 1.5.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + schema-dts: 1.1.5 + srcset: 4.0.0 tslib: 2.8.1 - unist-util-visit: 2.0.3 + unist-util-visit: 5.0.0 utility-types: 3.11.0 webpack: 5.102.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -6929,36 +7741,38 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/logger': 2.3.1 - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/module-type-aliases': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) + '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 - fs-extra: 10.1.0 - import-fresh: 3.3.1 + fs-extra: 11.3.3 js-yaml: 4.1.0 lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 webpack: 5.102.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -6967,28 +7781,28 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fs-extra: 11.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 webpack: 5.102.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -6997,54 +7811,79 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@2.3.1(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-json-view: 1.21.3(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - lightningcss + - react + - react-dom + - supports-color + - typescript + - uglify-js + - utf-8-validate + - webpack-cli + + '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fs-extra: 11.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-json-view-lite: 2.5.0(react@18.3.1) + tslib: 2.8.1 + transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' - - '@types/react' - bufferutil - csso - debug - - encoding - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7053,24 +7892,25 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/gtag.js': 0.0.12 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7079,24 +7919,24 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7105,72 +7945,74 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-ideal-image@2.3.1(prop-types@15.8.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/lqip-loader': 2.3.1(webpack@5.102.1) - '@docusaurus/responsive-loader': 1.7.1(sharp@0.30.7) - '@docusaurus/theme-translations': 2.3.1 - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@endiliey/react-ideal-image': 0.0.11(prop-types@15.8.1)(react-waypoint@10.3.0(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-waypoint: 10.3.0(react@17.0.2) - sharp: 0.30.7 + '@docusaurus/plugin-ideal-image@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/lqip-loader': 3.9.2(webpack@5.102.1) + '@docusaurus/responsive-loader': 1.7.1(sharp@0.32.6) + '@docusaurus/theme-translations': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + sharp: 0.32.6 tslib: 2.8.1 webpack: 5.102.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - bare-abort-controller + - bare-buffer - bufferutil - csso - debug - esbuild - - eslint - lightningcss - - prop-types + - react-native-b4a - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-pwa@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/plugin-pwa@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.28.5) - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-translations': 2.3.1 - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - babel-loader: 8.4.1(@babel/core@7.28.5)(webpack@5.102.1) - clsx: 1.2.1 + '@docusaurus/bundler': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-translations': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + babel-loader: 9.2.1(@babel/core@7.28.5)(webpack@5.102.1) + clsx: 2.1.1 core-js: 3.46.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - terser-webpack-plugin: 5.3.14(webpack@5.102.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 webpack: 5.102.1 webpack-merge: 5.10.0 - workbox-build: 6.6.0 - workbox-precaching: 6.6.0 - workbox-window: 6.6.0 + workbox-build: 7.4.0 + workbox-precaching: 7.4.0 + workbox-window: 7.4.0 transitivePeerDependencies: + - '@docusaurus/faster' + - '@docusaurus/plugin-content-docs' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7180,29 +8022,59 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/logger': 2.3.1 - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fs-extra: 11.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) sitemap: 7.1.2 tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - webpack-cli + + '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@svgr/core': 8.1.0(typescript@5.9.3) + '@svgr/webpack': 8.1.0(typescript@5.9.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.8.1 + webpack: 5.102.1 + transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7211,34 +8083,36 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@2.3.1(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-blog': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-debug': 2.3.1(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-google-analytics': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-google-gtag': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-google-tag-manager': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-sitemap': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-classic': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-search-algolia': 2.3.1(@algolia/client-search@5.41.0)(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)(typescript@5.9.3) - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.41.0)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-classic': 3.9.2(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.41.0)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3) + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@algolia/client-search' + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7247,136 +8121,124 @@ snapshots: - bufferutil - csso - debug - - encoding - esbuild - - eslint - lightningcss - search-insights - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/react-loadable@5.5.2(react@17.0.2)': + '@docusaurus/react-loadable@6.0.0(react@18.3.1)': dependencies: '@types/react': 19.2.2 - prop-types: 15.8.1 - react: 17.0.2 + react: 18.3.1 - '@docusaurus/remark-plugin-npm2yarn@2.3.1': + '@docusaurus/remark-plugin-npm2yarn@3.9.2': dependencies: - npm-to-yarn: 1.3.0 + mdast-util-mdx: 3.0.0 + npm-to-yarn: 3.0.1 tslib: 2.8.1 - unist-util-visit: 2.0.3 + unified: 11.0.5 + unist-util-visit: 5.0.0 + transitivePeerDependencies: + - supports-color - '@docusaurus/responsive-loader@1.7.1(sharp@0.30.7)': + '@docusaurus/responsive-loader@1.7.1(sharp@0.32.6)': dependencies: loader-utils: 2.0.4 optionalDependencies: - sharp: 0.30.7 - - '@docusaurus/theme-classic@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': - dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/module-type-aliases': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-translations': 2.3.1 - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@mdx-js/react': 1.6.22(react@17.0.2) - clsx: 1.2.1 - copy-text-to-clipboard: 3.2.2 - infima: 0.2.0-alpha.42 + sharp: 0.32.6 + + '@docusaurus/theme-classic@3.9.2(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-translations': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@18.3.1) + clsx: 2.1.1 + infima: 0.2.0-alpha.45 lodash: 4.17.21 nprogress: 0.2.0 postcss: 8.5.6 - prism-react-renderer: 1.3.5(react@17.0.2) + prism-react-renderer: 2.4.1(react@18.3.1) prismjs: 1.30.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-router-dom: 5.3.4(react@17.0.2) - rtlcss: 3.5.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + rtlcss: 4.3.0 tslib: 2.8.1 utility-types: 3.11.0 transitivePeerDependencies: + - '@docusaurus/faster' - '@parcel/css' - '@rspack/core' - '@swc/core' - '@swc/css' + - '@types/react' - bufferutil - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/mdx-loader': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/module-type-aliases': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - '@docusaurus/plugin-content-blog': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-docs': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/plugin-content-pages': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) + '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 '@types/react': 19.2.2 '@types/react-router-config': 5.0.11 - clsx: 1.2.1 + clsx: 2.1.1 parse-numeric-range: 1.3.0 - prism-react-renderer: 1.3.5(react@17.0.2) - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + prism-react-renderer: 2.4.1(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 - use-sync-external-store: 1.6.0(react@17.0.2) utility-types: 3.11.0 transitivePeerDependencies: - - '@docusaurus/types' - - '@parcel/css' - - '@rspack/core' - '@swc/core' - - '@swc/css' - - bufferutil - - csso - - debug - esbuild - - eslint - - lightningcss - supports-color - - typescript - uglify-js - - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-live-codeblock@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)': + '@docusaurus/theme-live-codeblock@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-translations': 2.3.1 - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-translations': 3.9.2 + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@philpl/buble': 0.19.7 - clsx: 1.2.1 - fs-extra: 10.1.0 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-live: 2.2.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + clsx: 2.1.1 + fs-extra: 11.3.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-live: 4.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 transitivePeerDependencies: - - '@docusaurus/types' + - '@docusaurus/faster' + - '@docusaurus/plugin-content-docs' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7385,38 +8247,37 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-search-algolia@2.3.1(@algolia/client-search@5.41.0)(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3)(typescript@5.9.3)': - dependencies: - '@docsearch/react': 3.9.0(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(search-insights@2.17.3) - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/logger': 2.3.1 - '@docusaurus/plugin-content-docs': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-common': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) - '@docusaurus/theme-translations': 2.3.1 - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - '@docusaurus/utils-validation': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) - algoliasearch: 4.25.2 - algoliasearch-helper: 3.26.0(algoliasearch@4.25.2) - clsx: 1.2.1 + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.41.0)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3)': + dependencies: + '@docsearch/react': 3.9.0(@algolia/client-search@5.41.0)(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/logger': 3.9.2 + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-translations': 3.9.2 + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + algoliasearch: 5.41.0 + algoliasearch-helper: 3.26.0(algoliasearch@5.41.0) + clsx: 2.1.1 eta: 2.2.0 - fs-extra: 10.1.0 + fs-extra: 11.3.3 lodash: 4.17.21 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 utility-types: 3.11.0 transitivePeerDependencies: - '@algolia/client-search' - - '@docusaurus/types' + - '@docusaurus/faster' + - '@mdx-js/react' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -7426,83 +8287,100 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - search-insights - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-translations@2.3.1': + '@docusaurus/theme-translations@3.9.2': dependencies: - fs-extra: 10.1.0 + fs-extra: 11.3.3 tslib: 2.8.1 - '@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@docusaurus/types@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 + '@types/mdast': 4.0.4 '@types/react': 19.2.2 commander: 5.1.0 joi: 17.13.3 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-helmet-async: 1.3.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)' utility-types: 3.11.0 webpack: 5.102.1 webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' - esbuild + - supports-color - uglify-js - webpack-cli - '@docusaurus/utils-common@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))': + '@docusaurus/utils-common@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 - optionalDependencies: - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - react + - react-dom + - supports-color + - uglify-js + - webpack-cli - '@docusaurus/utils-validation@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))': + '@docusaurus/utils-validation@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/logger': 2.3.1 - '@docusaurus/utils': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)) + '@docusaurus/logger': 3.9.2 + '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fs-extra: 11.3.3 joi: 17.13.3 js-yaml: 4.1.0 + lodash: 4.17.21 tslib: 2.8.1 transitivePeerDependencies: - - '@docusaurus/types' - '@swc/core' - esbuild + - react + - react-dom - supports-color - uglify-js - webpack-cli - '@docusaurus/utils@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))': + '@docusaurus/utils@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/logger': 2.3.1 - '@svgr/webpack': 6.5.1 + '@docusaurus/logger': 3.9.2 + '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) escape-string-regexp: 4.0.0 + execa: 5.1.1 file-loader: 6.2.0(webpack@5.102.1) - fs-extra: 10.1.0 + fs-extra: 11.3.3 github-slugger: 1.5.0 globby: 11.1.0 gray-matter: 4.0.3 + jiti: 1.21.7 js-yaml: 4.1.0 lodash: 4.17.21 micromatch: 4.0.8 + p-queue: 6.6.2 + prompts: 2.4.2 resolve-pathname: 3.0.0 - shelljs: 0.8.5 tslib: 2.8.1 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.1))(webpack@5.102.1) + utility-types: 3.11.0 webpack: 5.102.1 - optionalDependencies: - '@docusaurus/types': 2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) transitivePeerDependencies: - '@swc/core' - esbuild + - react + - react-dom - supports-color - uglify-js - webpack-cli @@ -7535,26 +8413,26 @@ snapshots: memoize-one: 5.2.1 scroll-into-view-if-needed: 2.2.31 - '@douyinfe/semi-icons@2.24.1(react@17.0.2)': + '@douyinfe/semi-icons@2.24.1(react@18.3.1)': dependencies: classnames: 2.5.1 - react: 17.0.2 + react: 18.3.1 - '@douyinfe/semi-illustrations@2.24.1(react@17.0.2)': + '@douyinfe/semi-illustrations@2.24.1(react@18.3.1)': dependencies: - react: 17.0.2 + react: 18.3.1 '@douyinfe/semi-theme-default@2.24.1': dependencies: glob: 7.2.3 - '@douyinfe/semi-ui@2.24.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2)': + '@douyinfe/semi-ui@2.24.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@douyinfe/semi-animation': 2.24.1 '@douyinfe/semi-animation-react': 2.24.1 '@douyinfe/semi-foundation': 2.24.1 - '@douyinfe/semi-icons': 2.24.1(react@17.0.2) - '@douyinfe/semi-illustrations': 2.24.1(react@17.0.2) + '@douyinfe/semi-icons': 2.24.1(react@18.3.1) + '@douyinfe/semi-illustrations': 2.24.1(react@18.3.1) '@douyinfe/semi-theme-default': 2.24.1 async-validator: 3.5.2 classnames: 2.5.1 @@ -7563,109 +8441,116 @@ snapshots: date-fns-tz: 1.3.8(date-fns@2.30.0) lodash: 4.17.21 prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-resizable: 1.11.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react-sortable-hoc: 2.0.0(prop-types@15.8.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - react-window: 1.8.11(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-resizable: 1.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-sortable-hoc: 2.0.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-window: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resize-observer-polyfill: 1.5.1 scroll-into-view-if-needed: 2.2.31 utility-types: 3.11.0 - '@emnapi/runtime@1.6.0': + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 optional: true - '@endiliey/react-ideal-image@0.0.11(prop-types@15.8.1)(react-waypoint@10.3.0(react@17.0.2))(react@17.0.2)': - dependencies: - prop-types: 15.8.1 - react: 17.0.2 - react-waypoint: 10.3.0(react@17.0.2) - - '@fastify/busboy@2.1.1': {} - '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': dependencies: '@hapi/hoek': 9.3.0 - '@img/sharp-darwin-arm64@0.33.3': + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.3': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.3': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.3': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.3': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.3': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.3': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.3': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.3': + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.6.0 + '@emnapi/runtime': 1.8.1 optional: true - '@img/sharp-win32-ia32@0.33.3': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.3': + '@img/sharp-win32-x64@0.33.5': optional: true + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 @@ -7703,37 +8588,81 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 2.5.0(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + tslib: 2.8.1 + '@leichtgewicht/ip-codec@2.0.5': {} - '@mdx-js/mdx@1.6.22': - dependencies: - '@babel/core': 7.12.9 - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - babel-plugin-apply-mdx-type-prop: 1.6.22(@babel/core@7.12.9) - babel-plugin-extract-import-names: 1.6.22 - camelcase-css: 2.0.1 - detab: 2.0.4 - hast-util-raw: 6.0.1 - lodash.uniq: 4.5.0 - mdast-util-to-hast: 10.0.1 - remark-footnotes: 2.0.0 - remark-mdx: 1.6.22 - remark-parse: 8.0.3 - remark-squeeze-paragraphs: 4.0.0 - style-to-object: 0.3.0 - unified: 9.2.0 - unist-builder: 2.0.3 - unist-util-visit: 2.0.3 + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.15.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@mdx-js/react@1.6.22(react@17.0.2)': + '@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1)': dependencies: - react: 17.0.2 + '@types/mdx': 2.0.13 + '@types/react': 19.2.2 + react: 18.3.1 - '@mdx-js/util@1.6.22': {} + '@noble/hashes@1.4.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -7747,6 +8676,96 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@peculiar/asn1-cms@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-csr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-ecc@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pfx@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs8@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-pkcs9@2.6.0': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-pfx': 2.6.0 + '@peculiar/asn1-pkcs8': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + '@peculiar/asn1-x509-attr': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-rsa@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-schema@2.6.0': + dependencies: + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/asn1-x509-attr@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + asn1js: 3.0.7 + tslib: 2.8.1 + + '@peculiar/asn1-x509@2.6.0': + dependencies: + '@peculiar/asn1-schema': 2.6.0 + asn1js: 3.0.7 + pvtsutils: 1.3.6 + tslib: 2.8.1 + + '@peculiar/x509@1.14.3': + dependencies: + '@peculiar/asn1-cms': 2.6.0 + '@peculiar/asn1-csr': 2.6.0 + '@peculiar/asn1-ecc': 2.6.0 + '@peculiar/asn1-pkcs9': 2.6.0 + '@peculiar/asn1-rsa': 2.6.0 + '@peculiar/asn1-schema': 2.6.0 + '@peculiar/asn1-x509': 2.6.0 + pvtsutils: 1.3.6 + reflect-metadata: 0.2.2 + tslib: 2.8.1 + tsyringe: 4.10.0 + '@philpl/buble@0.19.7': dependencies: acorn: 6.4.2 @@ -7759,6 +8778,18 @@ snapshots: os-homedir: 1.0.2 regexpu-core: 4.8.0 + '@pnpm/config.env-replace@1.1.0': {} + + '@pnpm/network.ca-file@1.0.2': + dependencies: + graceful-fs: 4.2.10 + + '@pnpm/npm-conf@3.0.2': + dependencies: + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 + '@polka/url@1.0.0-next.29': {} '@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(rollup@2.79.2)': @@ -7770,14 +8801,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': + '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 + '@rollup/pluginutils': 5.3.0(rollup@2.79.2) + '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.11 + optionalDependencies: rollup: 2.79.2 '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': @@ -7786,6 +8817,14 @@ snapshots: magic-string: 0.25.9 rollup: 2.79.2 + '@rollup/plugin-terser@0.4.4(rollup@2.79.2)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.44.0 + optionalDependencies: + rollup: 2.79.2 + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: '@types/estree': 0.0.39 @@ -7793,6 +8832,14 @@ snapshots: picomatch: 2.3.1 rollup: 2.79.2 + '@rollup/pluginutils@5.3.0(rollup@2.79.2)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 2.79.2 + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 @@ -7803,15 +8850,27 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@sindresorhus/is@0.14.0': {} + '@sindresorhus/is@4.6.0': {} + + '@sindresorhus/is@5.6.0': {} '@sindresorhus/merge-streams@2.3.0': {} - '@slorber/static-site-generator-webpack-plugin@4.0.7': + '@slorber/react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - eval: 0.1.8 - p-map: 4.0.0 - webpack-sources: 3.3.3 + '@babel/runtime': 7.28.4 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + shallowequal: 1.1.0 + + '@slorber/remark-comment@1.0.0': + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: @@ -7820,165 +8879,102 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@svgr/babel-plugin-add-jsx-attribute@5.4.0': {} - - '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-remove-jsx-attribute@5.4.0': {} - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1': {} - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1': {} - - '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-svg-dynamic-title@5.4.0': {} - - '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-svg-em-dimensions@5.4.0': {} - - '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-transform-react-native-svg@5.4.0': {} - - '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-transform-svg-component@5.5.0': {} - - '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-preset@5.5.0': - dependencies: - '@svgr/babel-plugin-add-jsx-attribute': 5.4.0 - '@svgr/babel-plugin-remove-jsx-attribute': 5.4.0 - '@svgr/babel-plugin-remove-jsx-empty-expression': 5.0.1 - '@svgr/babel-plugin-replace-jsx-attribute-value': 5.0.1 - '@svgr/babel-plugin-svg-dynamic-title': 5.4.0 - '@svgr/babel-plugin-svg-em-dimensions': 5.4.0 - '@svgr/babel-plugin-transform-react-native-svg': 5.4.0 - '@svgr/babel-plugin-transform-svg-component': 5.5.0 - - '@svgr/babel-preset@6.5.1(@babel/core@7.28.5)': + '@svgr/babel-preset@8.1.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.28.5) + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.28.5) '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.28.5) '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.28.5) - '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.28.5) - '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.28.5) - '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.28.5) - '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.28.5) - '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.28.5) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.28.5) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.28.5) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.28.5) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.28.5) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.28.5) - '@svgr/core@5.5.0': - dependencies: - '@svgr/plugin-jsx': 5.5.0 - camelcase: 6.3.0 - cosmiconfig: 7.1.0 - transitivePeerDependencies: - - supports-color - - '@svgr/core@6.5.1': + '@svgr/core@8.1.0(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-preset': 6.5.1(@babel/core@7.28.5) - '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) + '@svgr/babel-preset': 8.1.0(@babel/core@7.28.5) camelcase: 6.3.0 - cosmiconfig: 7.1.0 + cosmiconfig: 8.3.6(typescript@5.9.3) + snake-case: 3.0.4 transitivePeerDependencies: - supports-color + - typescript - '@svgr/hast-util-to-babel-ast@5.5.0': - dependencies: - '@babel/types': 7.28.5 - - '@svgr/hast-util-to-babel-ast@6.5.1': - dependencies: - '@babel/types': 7.28.5 - entities: 4.5.0 - - '@svgr/plugin-jsx@5.5.0': - dependencies: - '@babel/core': 7.28.5 - '@svgr/babel-preset': 5.5.0 - '@svgr/hast-util-to-babel-ast': 5.5.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color + '@svgr/hast-util-to-babel-ast@8.0.0': + dependencies: + '@babel/types': 7.28.5 + entities: 4.5.0 - '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))': dependencies: '@babel/core': 7.28.5 - '@svgr/babel-preset': 6.5.1(@babel/core@7.28.5) - '@svgr/core': 6.5.1 - '@svgr/hast-util-to-babel-ast': 6.5.1 + '@svgr/babel-preset': 8.1.0(@babel/core@7.28.5) + '@svgr/core': 8.1.0(typescript@5.9.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@5.5.0': - dependencies: - cosmiconfig: 7.1.0 - deepmerge: 4.3.1 - svgo: 1.3.2 - - '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@svgr/core': 6.5.1 - cosmiconfig: 7.1.0 + '@svgr/core': 8.1.0(typescript@5.9.3) + cosmiconfig: 8.3.6(typescript@5.9.3) deepmerge: 4.3.1 - svgo: 2.8.0 - - '@svgr/webpack@5.5.0': - dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.5) - '@babel/preset-env': 7.28.5(@babel/core@7.28.5) - '@babel/preset-react': 7.28.5(@babel/core@7.28.5) - '@svgr/core': 5.5.0 - '@svgr/plugin-jsx': 5.5.0 - '@svgr/plugin-svgo': 5.5.0 - loader-utils: 2.0.4 + svgo: 3.3.2 transitivePeerDependencies: - - supports-color + - typescript - '@svgr/webpack@6.5.1': + '@svgr/webpack@8.1.0(typescript@5.9.3)': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.5) '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/preset-react': 7.28.5(@babel/core@7.28.5) '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@svgr/core': 6.5.1 - '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) - '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) + '@svgr/core': 8.1.0(typescript@5.9.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3) transitivePeerDependencies: - supports-color + - typescript - '@szmarczak/http-timer@1.1.2': + '@szmarczak/http-timer@5.0.1': dependencies: - defer-to-connect: 1.1.3 + defer-to-connect: 2.0.1 '@trysound/sax@0.2.0': {} @@ -8000,6 +8996,10 @@ snapshots: dependencies: '@types/node': 24.9.1 + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -8010,6 +9010,10 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.8 + '@types/estree@0.0.39': {} '@types/estree@1.0.8': {} @@ -8028,21 +9032,25 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 1.2.1 - '@types/express@4.17.24': + '@types/express@4.17.25': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.7 '@types/qs': 6.14.0 '@types/serve-static': 1.15.10 - '@types/hast@2.3.10': + '@types/gtag.js@0.0.12': {} + + '@types/hast@3.0.4': dependencies: - '@types/unist': 2.0.11 + '@types/unist': 3.0.3 '@types/history@4.7.11': {} '@types/html-minifier-terser@6.1.0': {} + '@types/http-cache-semantics@4.0.4': {} + '@types/http-errors@2.0.5': {} '@types/http-proxy@1.17.17': @@ -8061,19 +9069,15 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/keyv@3.1.4': + '@types/mdast@4.0.4': dependencies: - '@types/node': 24.9.1 + '@types/unist': 3.0.3 - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 + '@types/mdx@2.0.13': {} '@types/mime@1.3.5': {} - '@types/node-forge@1.3.14': - dependencies: - '@types/node': 24.9.1 + '@types/ms@2.1.0': {} '@types/node@17.0.45': {} @@ -8081,11 +9085,7 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/parse-json@4.0.2': {} - - '@types/parse5@5.0.3': {} - - '@types/q@1.5.8': {} + '@types/prismjs@1.26.5': {} '@types/qs@6.14.0': {} @@ -8112,19 +9112,13 @@ snapshots: dependencies: csstype: 3.1.3 - '@types/resolve@1.17.1': - dependencies: - '@types/node': 24.9.1 - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 24.9.1 + '@types/resolve@1.20.2': {} - '@types/retry@0.12.0': {} + '@types/retry@0.12.2': {} '@types/sax@1.2.7': dependencies: - '@types/node': 17.0.45 + '@types/node': 24.9.1 '@types/send@0.17.6': dependencies: @@ -8137,7 +9131,7 @@ snapshots: '@types/serve-index@1.9.4': dependencies: - '@types/express': 4.17.24 + '@types/express': 4.17.25 '@types/serve-static@1.15.10': dependencies: @@ -8153,6 +9147,8 @@ snapshots: '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} + '@types/ws@8.18.1': dependencies: '@types/node': 24.9.1 @@ -8163,6 +9159,8 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@ungap/structured-clone@1.3.0': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -8264,6 +9262,10 @@ snapshots: dependencies: acorn: 6.4.2 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-walk@8.3.4: dependencies: acorn: 8.15.0 @@ -8306,28 +9308,10 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - algoliasearch-helper@3.26.0(algoliasearch@4.25.2): + algoliasearch-helper@3.26.0(algoliasearch@5.41.0): dependencies: '@algolia/events': 4.0.1 - algoliasearch: 4.25.2 - - algoliasearch@4.25.2: - dependencies: - '@algolia/cache-browser-local-storage': 4.25.2 - '@algolia/cache-common': 4.25.2 - '@algolia/cache-in-memory': 4.25.2 - '@algolia/client-account': 4.25.2 - '@algolia/client-analytics': 4.25.2 - '@algolia/client-common': 4.25.2 - '@algolia/client-personalization': 4.25.2 - '@algolia/client-search': 4.25.2 - '@algolia/logger-common': 4.25.2 - '@algolia/logger-console': 4.25.2 - '@algolia/recommend': 4.25.2 - '@algolia/requester-browser-xhr': 4.25.2 - '@algolia/requester-common': 4.25.2 - '@algolia/requester-node-http': 4.25.2 - '@algolia/transporter': 4.25.2 + algoliasearch: 5.41.0 algoliasearch@5.41.0: dependencies: @@ -8350,6 +9334,10 @@ snapshots: dependencies: string-width: 4.2.3 + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + ansi-html-community@0.0.8: {} ansi-regex@5.0.1: {} @@ -8366,6 +9354,8 @@ snapshots: ansi-styles@6.2.3: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -8394,17 +9384,6 @@ snapshots: array-union@2.1.0: {} - array.prototype.reduce@1.0.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-array-method-boxes-properly: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - is-string: 1.1.1 - arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -8415,7 +9394,13 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - asap@2.0.6: {} + asn1js@3.0.7: + dependencies: + pvtsutils: 1.3.6 + pvutils: 1.1.5 + tslib: 2.8.1 + + astring@1.9.0: {} async-function@1.0.0: {} @@ -8425,12 +9410,11 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.23(postcss@8.5.6): dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001751 - fraction.js: 4.3.7 - normalize-range: 0.1.2 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001764 + fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -8439,35 +9423,19 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axios@0.25.0: - dependencies: - follow-redirects: 1.15.11 - transitivePeerDependencies: - - debug + b4a@1.7.3: {} - babel-loader@8.4.1(@babel/core@7.28.5)(webpack@5.102.1): + babel-loader@9.2.1(@babel/core@7.28.5)(webpack@5.102.1): dependencies: '@babel/core': 7.28.5 - find-cache-dir: 3.3.2 - loader-utils: 2.0.4 - make-dir: 3.1.0 - schema-utils: 2.7.1 + find-cache-dir: 4.0.0 + schema-utils: 4.3.3 webpack: 5.102.1 - babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@mdx-js/util': 1.6.22 - babel-plugin-dynamic-import-node@2.3.3: dependencies: object.assign: 4.1.7 - babel-plugin-extract-import-names@1.6.22: - dependencies: - '@babel/helper-plugin-utils': 7.10.4 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: '@babel/compat-data': 7.28.5 @@ -8492,16 +9460,53 @@ snapshots: transitivePeerDependencies: - supports-color - bail@1.0.5: {} + bail@2.0.2: {} balanced-match@1.0.2: {} - base16@1.0.0: {} + bare-events@2.8.2: {} + + bare-fs@4.5.2: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.7.0(bare-events@2.8.2) + bare-url: 2.3.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + optional: true + + bare-os@3.6.2: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.6.2 + optional: true + + bare-stream@2.7.0(bare-events@2.8.2): + dependencies: + streamx: 2.23.0 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + optional: true + + bare-url@2.3.2: + dependencies: + bare-path: 3.0.0 + optional: true base64-js@1.5.1: {} baseline-browser-mapping@2.8.20: {} + baseline-browser-mapping@2.9.15: {} + batch@0.6.1: {} bezier-easing@2.1.0: {} @@ -8540,22 +9545,22 @@ snapshots: boolbase@1.0.0: {} - boxen@5.1.2: + boxen@6.2.1: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 chalk: 4.1.2 - cli-boxes: 2.2.1 - string-width: 4.2.3 - type-fest: 0.20.2 - widest-line: 3.1.0 - wrap-ansi: 7.0.0 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.19.0 + widest-line: 4.0.1 + wrap-ansi: 8.1.0 - boxen@6.2.1: + boxen@7.1.1: dependencies: ansi-align: 3.0.1 - camelcase: 6.3.0 - chalk: 4.1.2 + camelcase: 7.0.1 + chalk: 5.6.2 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -8583,14 +9588,13 @@ snapshots: node-releases: 2.0.26 update-browserslist-db: 1.1.4(browserslist@4.27.0) - buble@0.19.6: + browserslist@4.28.1: dependencies: - chalk: 2.4.2 - magic-string: 0.25.9 - minimist: 1.2.8 - os-homedir: 1.0.2 - regexpu-core: 4.8.0 - vlq: 1.0.1 + baseline-browser-mapping: 2.9.15 + caniuse-lite: 1.0.30001764 + electron-to-chromium: 1.5.267 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) buffer-from@1.1.2: {} @@ -8599,21 +9603,27 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 bytes@3.0.0: {} bytes@3.1.2: {} - cacheable-request@6.1.0: + bytestreamjs@2.0.1: {} + + cacheable-lookup@7.0.0: {} + + cacheable-request@10.2.14: dependencies: - clone-response: 1.0.3 - get-stream: 5.2.0 + '@types/http-cache-semantics': 4.0.4 + get-stream: 6.0.1 http-cache-semantics: 4.2.0 - keyv: 3.1.0 - lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 + keyv: 4.5.4 + mimic-response: 4.0.0 + normalize-url: 8.1.1 + responselike: 3.0.0 call-bind-apply-helpers@1.0.2: dependencies: @@ -8639,20 +9649,22 @@ snapshots: pascal-case: 3.1.2 tslib: 2.8.1 - camelcase-css@2.0.1: {} - camelcase@6.3.0: {} + camelcase@7.0.1: {} + caniuse-api@3.0.0: dependencies: - browserslist: 4.27.0 - caniuse-lite: 1.0.30001751 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001764 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 caniuse-lite@1.0.30001751: {} - ccount@1.1.0: {} + caniuse-lite@1.0.30001764: {} + + ccount@2.0.1: {} chalk@2.4.2: dependencies: @@ -8665,11 +9677,17 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - character-entities-legacy@1.1.4: {} + chalk@5.6.2: {} + + char-regex@1.0.2: {} - character-entities@1.2.4: {} + character-entities-html4@2.1.0: {} - character-reference-invalid@1.1.4: {} + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} cheerio-select@2.1.0: dependencies: @@ -8680,19 +9698,15 @@ snapshots: domhandler: 5.0.3 domutils: 3.2.2 - cheerio@1.1.2: + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 - encoding-sniffer: 0.2.1 - htmlparser2: 10.0.0 + htmlparser2: 8.0.2 parse5: 7.3.0 parse5-htmlparser2-tree-adapter: 7.1.0 - parse5-parser-stream: 7.1.2 - undici: 5.28.4 - whatwg-mimetype: 4.0.0 chokidar@3.6.0: dependencies: @@ -8710,8 +9724,6 @@ snapshots: chrome-trace-event@1.0.4: {} - ci-info@2.0.0: {} - ci-info@3.9.0: {} classlist-polyfill@1.2.0: {} @@ -8724,8 +9736,6 @@ snapshots: clean-stack@2.2.0: {} - cli-boxes@2.2.1: {} - cli-boxes@3.0.0: {} cli-table3@0.6.5: @@ -8740,21 +9750,9 @@ snapshots: kind-of: 6.0.3 shallow-clone: 3.0.1 - clone-response@1.0.3: - dependencies: - mimic-response: 1.0.1 - - clsx@1.2.1: {} - clsx@2.1.1: {} - coa@2.0.2: - dependencies: - '@types/q': 1.5.8 - chalk: 2.4.2 - q: 1.5.1 - - collapse-white-space@1.0.6: {} + collapse-white-space@2.1.0: {} color-convert@1.9.3: dependencies: @@ -8789,23 +9787,23 @@ snapshots: combine-promises@1.2.0: {} - comma-separated-tokens@1.0.8: {} + comma-separated-tokens@2.0.3: {} + + commander@10.0.1: {} commander@2.20.3: {} + commander@4.1.1: {} + commander@5.1.0: {} commander@7.2.0: {} commander@8.3.0: {} - common-tags@1.8.2: {} - - commondir@1.0.1: {} + common-path-prefix@3.0.0: {} - component-props@1.1.1: {} - - component-xor@0.0.4: {} + common-tags@1.8.2: {} compressible@2.0.18: dependencies: @@ -8827,20 +9825,22 @@ snapshots: concat-map@0.0.1: {} - configstore@5.0.1: + config-chain@1.1.13: dependencies: - dot-prop: 5.3.0 + ini: 1.3.8 + proto-list: 1.2.4 + + configstore@6.0.0: + dependencies: + dot-prop: 6.0.1 graceful-fs: 4.2.11 - make-dir: 3.1.0 - unique-string: 2.0.0 + unique-string: 3.0.0 write-file-atomic: 3.0.3 - xdg-basedir: 4.0.0 + xdg-basedir: 5.1.0 connect-history-api-fallback@2.0.0: {} - consola@2.15.3: {} - - consolidated-events@2.0.2: {} + consola@3.4.2: {} content-disposition@0.5.2: {} @@ -8850,8 +9850,6 @@ snapshots: content-type@1.0.5: {} - convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} cookie-signature@1.0.6: {} @@ -8860,8 +9858,6 @@ snapshots: copy-text-to-clipboard@2.2.0: {} - copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.102.1): dependencies: fast-glob: 3.3.3 @@ -8878,28 +9874,10 @@ snapshots: core-js-pure@3.46.0: {} - core-js@2.6.12: {} - core-js@3.46.0: {} core-util-is@1.0.3: {} - cosmiconfig@6.0.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 @@ -8909,12 +9887,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - cross-fetch@3.2.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -8923,9 +9895,25 @@ snapshots: crypto-random-string@2.0.0: {} - css-declaration-sorter@6.4.1(postcss@8.5.6): + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + + css-blank-pseudo@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + css-declaration-sorter@7.3.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + css-has-pseudo@7.0.3(postcss@8.5.6): dependencies: + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 css-loader@6.11.0(webpack@5.102.1): dependencies: @@ -8940,26 +9928,21 @@ snapshots: optionalDependencies: webpack: 5.102.1 - css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.3)(webpack@5.102.1): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.102.1): dependencies: - cssnano: 5.1.15(postcss@8.5.6) + '@jridgewell/trace-mapping': 0.3.31 + cssnano: 6.1.2(postcss@8.5.6) jest-worker: 29.7.0 postcss: 8.5.6 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - source-map: 0.6.1 webpack: 5.102.1 optionalDependencies: clean-css: 5.3.3 - css-select-base-adapter@0.1.1: {} - - css-select@2.1.0: + css-prefers-color-scheme@10.0.0(postcss@8.5.6): dependencies: - boolbase: 1.0.0 - css-what: 3.4.2 - domutils: 1.7.0 - nth-check: 1.0.2 + postcss: 8.5.6 css-select@4.3.0: dependencies: @@ -8977,79 +9960,80 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-tree@1.0.0-alpha.37: + css-tree@2.2.1: dependencies: - mdn-data: 2.0.4 - source-map: 0.6.1 + mdn-data: 2.0.28 + source-map-js: 1.2.1 - css-tree@1.1.3: + css-tree@2.3.1: dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - - css-what@3.4.2: {} + mdn-data: 2.0.30 + source-map-js: 1.2.1 css-what@6.2.2: {} + cssdb@8.7.0: {} + cssesc@3.0.0: {} - cssnano-preset-advanced@5.3.10(postcss@8.5.6): + cssnano-preset-advanced@6.1.2(postcss@8.5.6): dependencies: - autoprefixer: 10.4.21(postcss@8.5.6) - cssnano-preset-default: 5.2.14(postcss@8.5.6) + autoprefixer: 10.4.23(postcss@8.5.6) + browserslist: 4.28.1 + cssnano-preset-default: 6.1.2(postcss@8.5.6) postcss: 8.5.6 - postcss-discard-unused: 5.1.0(postcss@8.5.6) - postcss-merge-idents: 5.1.1(postcss@8.5.6) - postcss-reduce-idents: 5.2.0(postcss@8.5.6) - postcss-zindex: 5.1.0(postcss@8.5.6) + postcss-discard-unused: 6.0.5(postcss@8.5.6) + postcss-merge-idents: 6.0.3(postcss@8.5.6) + postcss-reduce-idents: 6.0.3(postcss@8.5.6) + postcss-zindex: 6.0.2(postcss@8.5.6) - cssnano-preset-default@5.2.14(postcss@8.5.6): + cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: - css-declaration-sorter: 6.4.1(postcss@8.5.6) - cssnano-utils: 3.1.0(postcss@8.5.6) + browserslist: 4.28.1 + css-declaration-sorter: 7.3.1(postcss@8.5.6) + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 - postcss-calc: 8.2.4(postcss@8.5.6) - postcss-colormin: 5.3.1(postcss@8.5.6) - postcss-convert-values: 5.1.3(postcss@8.5.6) - postcss-discard-comments: 5.1.2(postcss@8.5.6) - postcss-discard-duplicates: 5.1.0(postcss@8.5.6) - postcss-discard-empty: 5.1.1(postcss@8.5.6) - postcss-discard-overridden: 5.1.0(postcss@8.5.6) - postcss-merge-longhand: 5.1.7(postcss@8.5.6) - postcss-merge-rules: 5.1.4(postcss@8.5.6) - postcss-minify-font-values: 5.1.0(postcss@8.5.6) - postcss-minify-gradients: 5.1.1(postcss@8.5.6) - postcss-minify-params: 5.1.4(postcss@8.5.6) - postcss-minify-selectors: 5.2.1(postcss@8.5.6) - postcss-normalize-charset: 5.1.0(postcss@8.5.6) - postcss-normalize-display-values: 5.1.0(postcss@8.5.6) - postcss-normalize-positions: 5.1.1(postcss@8.5.6) - postcss-normalize-repeat-style: 5.1.1(postcss@8.5.6) - postcss-normalize-string: 5.1.0(postcss@8.5.6) - postcss-normalize-timing-functions: 5.1.0(postcss@8.5.6) - postcss-normalize-unicode: 5.1.1(postcss@8.5.6) - postcss-normalize-url: 5.1.0(postcss@8.5.6) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.6) - postcss-ordered-values: 5.1.3(postcss@8.5.6) - postcss-reduce-initial: 5.1.2(postcss@8.5.6) - postcss-reduce-transforms: 5.1.0(postcss@8.5.6) - postcss-svgo: 5.1.0(postcss@8.5.6) - postcss-unique-selectors: 5.1.1(postcss@8.5.6) - - cssnano-utils@3.1.0(postcss@8.5.6): + postcss-calc: 9.0.1(postcss@8.5.6) + postcss-colormin: 6.1.0(postcss@8.5.6) + postcss-convert-values: 6.1.0(postcss@8.5.6) + postcss-discard-comments: 6.0.2(postcss@8.5.6) + postcss-discard-duplicates: 6.0.3(postcss@8.5.6) + postcss-discard-empty: 6.0.3(postcss@8.5.6) + postcss-discard-overridden: 6.0.2(postcss@8.5.6) + postcss-merge-longhand: 6.0.5(postcss@8.5.6) + postcss-merge-rules: 6.1.1(postcss@8.5.6) + postcss-minify-font-values: 6.1.0(postcss@8.5.6) + postcss-minify-gradients: 6.0.3(postcss@8.5.6) + postcss-minify-params: 6.1.0(postcss@8.5.6) + postcss-minify-selectors: 6.0.4(postcss@8.5.6) + postcss-normalize-charset: 6.0.2(postcss@8.5.6) + postcss-normalize-display-values: 6.0.2(postcss@8.5.6) + postcss-normalize-positions: 6.0.2(postcss@8.5.6) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.6) + postcss-normalize-string: 6.0.2(postcss@8.5.6) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.6) + postcss-normalize-unicode: 6.1.0(postcss@8.5.6) + postcss-normalize-url: 6.0.2(postcss@8.5.6) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.6) + postcss-ordered-values: 6.0.2(postcss@8.5.6) + postcss-reduce-initial: 6.1.0(postcss@8.5.6) + postcss-reduce-transforms: 6.0.2(postcss@8.5.6) + postcss-svgo: 6.0.3(postcss@8.5.6) + postcss-unique-selectors: 6.0.4(postcss@8.5.6) + + cssnano-utils@4.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - cssnano@5.1.15(postcss@8.5.6): + cssnano@6.1.2(postcss@8.5.6): dependencies: - cssnano-preset-default: 5.2.14(postcss@8.5.6) - lilconfig: 2.1.0 + cssnano-preset-default: 6.1.2(postcss@8.5.6) + lilconfig: 3.1.3 postcss: 8.5.6 - yaml: 1.10.2 - csso@4.2.0: + csso@5.0.5: dependencies: - css-tree: 1.1.3 + css-tree: 2.2.1 csstype@3.1.3: {} @@ -9089,9 +10073,9 @@ snapshots: dependencies: ms: 2.1.3 - decompress-response@3.3.0: + decode-named-character-reference@1.2.0: dependencies: - mimic-response: 1.0.1 + character-entities: 2.0.2 decompress-response@6.0.0: dependencies: @@ -9101,11 +10085,14 @@ snapshots: deepmerge@4.3.1: {} - default-gateway@6.0.3: + default-browser-id@5.0.1: {} + + default-browser@5.4.0: dependencies: - execa: 5.1.1 + bundle-name: 4.1.0 + default-browser-id: 5.0.1 - defer-to-connect@1.1.3: {} + defer-to-connect@2.0.1: {} define-data-property@1.1.4: dependencies: @@ -9115,44 +10102,26 @@ snapshots: define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - del@6.1.1: - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - depd@1.1.2: {} depd@2.0.0: {} - destroy@1.2.0: {} + dequal@2.0.3: {} - detab@2.0.4: - dependencies: - repeat-string: 1.6.1 + destroy@1.2.0: {} detect-libc@2.1.2: {} detect-node@2.1.0: {} - detect-port-alt@1.1.6: - dependencies: - address: 1.2.2 - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - detect-port@1.6.1: dependencies: address: 1.2.2 @@ -9160,6 +10129,10 @@ snapshots: transitivePeerDependencies: - supports-color + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -9168,24 +10141,14 @@ snapshots: dependencies: '@leichtgewicht/ip-codec': 2.0.5 - docusaurus-plugin-matomo@0.0.8(@docusaurus/core@2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3)): + docusaurus-plugin-matomo@0.0.8(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)): dependencies: - '@docusaurus/core': 2.3.1(@docusaurus/types@2.3.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2))(react-dom@17.0.2(react@17.0.2))(react@17.0.2)(typescript@5.9.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) dom-converter@0.2.0: dependencies: utila: 0.4.0 - dom-iterator@1.0.2: - dependencies: - component-props: 1.1.1 - component-xor: 0.0.4 - - dom-serializer@0.2.2: - dependencies: - domelementtype: 2.3.0 - entities: 2.2.0 - dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 @@ -9202,8 +10165,6 @@ snapshots: dependencies: ssr-window: 4.0.2 - domelementtype@1.3.1: {} - domelementtype@2.3.0: {} domhandler@4.3.1: @@ -9214,11 +10175,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@1.7.0: - dependencies: - dom-serializer: 0.2.2 - domelementtype: 1.3.1 - domutils@2.8.0: dependencies: dom-serializer: 1.4.1 @@ -9236,7 +10192,7 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 - dot-prop@5.3.0: + dot-prop@6.0.1: dependencies: is-obj: 2.0.0 @@ -9246,8 +10202,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - duplexer3@0.1.5: {} - duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -9260,23 +10214,22 @@ snapshots: electron-to-chromium@1.5.240: {} + electron-to-chromium@1.5.267: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + emojilib@2.4.0: {} + emojis-list@3.0.0: {} - emoticon@3.2.0: {} + emoticon@4.1.0: {} encodeurl@1.0.2: {} encodeurl@2.0.0: {} - encoding-sniffer@0.2.1: - dependencies: - iconv-lite: 0.6.3 - whatwg-encoding: 3.1.1 - end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -9355,8 +10308,6 @@ snapshots: unbox-primitive: 1.1.0 which-typed-array: 1.1.19 - es-array-method-boxes-properly@1.0.0: {} - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -9380,9 +10331,23 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.15.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + escalade@3.2.0: {} - escape-goat@2.1.1: {} + escape-goat@4.0.0: {} escape-html@1.0.3: {} @@ -9390,6 +10355,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -9405,8 +10372,47 @@ snapshots: estraverse@5.3.0: {} + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-value-to-estree@3.5.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + estree-walker@1.0.1: {} + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + esutils@2.0.3: {} eta@2.2.0: {} @@ -9420,6 +10426,12 @@ snapshots: eventemitter3@4.0.7: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} execa@5.1.1: @@ -9436,7 +10448,7 @@ snapshots: expand-template@2.0.3: {} - express@4.21.2: + express@4.22.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -9459,7 +10471,7 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.13.0 + qs: 6.14.1 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.0 @@ -9480,6 +10492,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9496,33 +10510,25 @@ snapshots: dependencies: reusify: 1.1.0 - faye-websocket@0.11.4: + fault@2.0.1: dependencies: - websocket-driver: 0.7.4 + format: 0.2.2 - fbemitter@3.0.0: + faye-websocket@0.11.4: dependencies: - fbjs: 3.0.5 - transitivePeerDependencies: - - encoding + websocket-driver: 0.7.4 - fbjs-css-vars@1.0.2: {} + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 - fbjs@3.0.5: + feed@4.2.2: dependencies: - cross-fetch: 3.2.0 - fbjs-css-vars: 1.0.2 - loose-envify: 1.4.0 - object-assign: 4.1.1 - promise: 7.3.1 - setimmediate: 1.0.5 - ua-parser-js: 1.0.41 - transitivePeerDependencies: - - encoding + xml-js: 1.6.11 - feed@4.2.2: + figures@3.2.0: dependencies: - xml-js: 1.6.11 + escape-string-regexp: 1.0.5 file-loader@6.2.0(webpack@5.102.1): dependencies: @@ -9534,8 +10540,6 @@ snapshots: dependencies: minimatch: 5.1.6 - filesize@8.0.7: {} - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -9552,69 +10556,42 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - find-up@4.1.0: + find-cache-dir@4.0.0: dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 - find-up@5.0.0: + find-up@6.3.0: dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 + locate-path: 7.2.0 + path-exists: 5.0.0 flat@5.0.2: {} - flux@4.0.4(react@17.0.2): - dependencies: - fbemitter: 3.0.0 - fbjs: 3.0.5 - react: 17.0.2 - transitivePeerDependencies: - - encoding - follow-redirects@1.15.11: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 - fork-ts-checker-webpack-plugin@6.5.3(typescript@5.9.3)(webpack@5.102.1): + foreground-child@3.3.1: dependencies: - '@babel/code-frame': 7.27.1 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.7.3 - tapable: 1.1.3 - typescript: 5.9.3 - webpack: 5.102.1 + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@2.1.4: {} + + format@0.2.2: {} forwarded@0.2.0: {} - fraction.js@4.3.7: {} + fraction.js@5.3.4: {} fresh@0.5.2: {} fs-constants@1.0.0: {} - fs-extra@10.1.0: + fs-extra@11.3.3: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 @@ -9627,8 +10604,6 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-monkey@1.1.0: {} - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -9671,14 +10646,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@4.1.0: - dependencies: - pump: 3.0.3 - - get-stream@5.2.0: - dependencies: - pump: 3.0.3 - get-stream@6.0.1: {} get-symbol-description@1.1.0: @@ -9699,8 +10666,21 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regex.js@1.2.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + glob-to-regexp@0.4.1: {} + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.1.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -9714,16 +10694,6 @@ snapshots: dependencies: ini: 2.0.0 - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -9757,21 +10727,21 @@ snapshots: gopd@1.2.0: {} - got@9.6.0: - dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 + got@12.6.1: + dependencies: + '@sindresorhus/is': 5.6.0 + '@szmarczak/http-timer': 5.0.1 + cacheable-lookup: 7.0.0 + cacheable-request: 10.2.14 + decompress-response: 6.0.0 + form-data-encoder: 2.1.4 + get-stream: 6.0.1 + http2-wrapper: 2.2.1 + lowercase-keys: 3.0.0 + p-cancelable: 3.0.0 + responselike: 3.0.0 + + graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} @@ -9808,61 +10778,105 @@ snapshots: dependencies: has-symbols: 1.1.0 - has-yarn@2.1.0: {} + has-yarn@3.0.0: {} hasown@2.0.2: dependencies: function-bind: 1.1.2 - hast-to-hyperscript@9.0.1: + hast-util-from-parse5@8.0.3: dependencies: - '@types/unist': 2.0.11 - comma-separated-tokens: 1.0.8 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - style-to-object: 0.3.0 - unist-util-is: 4.1.0 - web-namespaces: 1.1.4 - - hast-util-from-parse5@6.0.1: - dependencies: - '@types/parse5': 5.0.3 - hastscript: 6.0.0 - property-information: 5.6.0 - vfile: 4.2.1 - vfile-location: 3.2.0 - web-namespaces: 1.1.4 - - hast-util-parse-selector@2.2.5: {} - - hast-util-raw@6.0.1: - dependencies: - '@types/hast': 2.3.10 - hast-util-from-parse5: 6.0.1 - hast-util-to-parse5: 6.0.0 - html-void-elements: 1.0.5 - parse5: 6.0.1 - unist-util-position: 3.1.0 - vfile: 4.2.1 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - - hast-util-to-parse5@6.0.0: - dependencies: - hast-to-hyperscript: 9.0.1 - property-information: 5.6.0 - web-namespaces: 1.1.4 - xtend: 4.0.2 - zwitch: 1.0.5 - - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 he@1.2.0: {} @@ -9886,8 +10900,6 @@ snapshots: readable-stream: 2.3.8 wbuf: 1.7.3 - html-entities@2.6.0: {} - html-escaper@2.0.2: {} html-minifier-terser@6.1.0: @@ -9900,9 +10912,19 @@ snapshots: relateurl: 0.2.7 terser: 5.44.0 + html-minifier-terser@7.2.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 10.0.1 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.44.0 + html-tags@3.3.1: {} - html-void-elements@1.0.5: {} + html-void-elements@3.0.0: {} html-webpack-plugin@5.6.4(webpack@5.102.1): dependencies: @@ -9914,13 +10936,6 @@ snapshots: optionalDependencies: webpack: 5.102.1 - htmlparser2@10.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 6.0.1 - htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 @@ -9928,6 +10943,13 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-cache-semantics@4.2.0: {} http-deceiver@1.2.7: {} @@ -9949,7 +10971,7 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-middleware@2.0.9(@types/express@4.17.24): + http-proxy-middleware@2.0.9(@types/express@4.17.25): dependencies: '@types/http-proxy': 1.17.17 http-proxy: 1.18.1 @@ -9957,7 +10979,7 @@ snapshots: is-plain-obj: 3.0.0 micromatch: 4.0.8 optionalDependencies: - '@types/express': 4.17.24 + '@types/express': 4.17.25 transitivePeerDependencies: - debug @@ -9969,13 +10991,16 @@ snapshots: transitivePeerDependencies: - debug + http2-wrapper@2.2.1: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + human-signals@2.1.0: {} - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 + hyperdyperid@1.2.0: {} - iconv-lite@0.6.3: + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -9989,24 +11014,20 @@ snapshots: ignore@5.3.2: {} - image-size@1.2.1: - dependencies: - queue: 6.0.2 - - immer@9.0.21: {} + image-size@2.0.2: {} import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-lazy@2.1.0: {} + import-lazy@4.0.0: {} imurmurhash@0.1.4: {} indent-string@4.0.0: {} - infima@0.2.0-alpha.42: {} + infima@0.2.0-alpha.45: {} inflight@1.0.6: dependencies: @@ -10021,7 +11042,7 @@ snapshots: ini@2.0.0: {} - inline-style-parser@0.1.1: {} + inline-style-parser@0.2.7: {} internal-slot@1.1.0: dependencies: @@ -10029,8 +11050,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - interpret@1.4.0: {} - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -10039,12 +11058,12 @@ snapshots: ipaddr.js@2.2.0: {} - is-alphabetical@1.0.4: {} + is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: + is-alphanumerical@2.0.1: dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 is-array-buffer@3.0.5: dependencies: @@ -10077,13 +11096,11 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-callable@1.2.7: {} - is-ci@2.0.0: + is-ci@3.0.1: dependencies: - ci-info: 2.0.0 + ci-info: 3.9.0 is-core-module@2.16.1: dependencies: @@ -10100,10 +11117,12 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-decimal@1.0.4: {} + is-decimal@2.0.1: {} is-docker@2.2.1: {} + is-docker@3.0.0: {} + is-extendable@0.1.1: {} is-extglob@2.1.1: {} @@ -10126,7 +11145,11 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: {} + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 is-installed-globally@0.4.0: dependencies: @@ -10139,7 +11162,9 @@ snapshots: is-negative-zero@2.0.3: {} - is-npm@5.0.0: {} + is-network-error@1.3.0: {} + + is-npm@6.1.0: {} is-number-object@1.1.1: dependencies: @@ -10152,14 +11177,12 @@ snapshots: is-obj@2.0.0: {} - is-path-cwd@2.2.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@2.1.0: {} - is-plain-obj@3.0.0: {} + is-plain-obj@4.1.0: {} + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 @@ -10173,8 +11196,6 @@ snapshots: is-regexp@1.0.0: {} - is-root@2.1.0: {} - is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -10211,15 +11232,15 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-whitespace-character@1.0.4: {} - - is-word-character@1.0.4: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - is-yarn-global@0.3.0: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is-yarn-global@0.4.1: {} isarray@0.0.1: {} @@ -10231,6 +11252,10 @@ snapshots: isobject@3.0.1: {} + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + jake@10.9.4: dependencies: async: 3.2.6 @@ -10246,12 +11271,6 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-worker@26.6.2: - dependencies: - '@types/node': 24.9.1 - merge-stream: 2.0.0 - supports-color: 7.2.0 - jest-worker@27.5.1: dependencies: '@types/node': 24.9.1 @@ -10292,7 +11311,7 @@ snapshots: jsesc@3.1.0: {} - json-buffer@3.0.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -10318,17 +11337,17 @@ snapshots: jsonpointer@5.0.1: {} - keyv@3.1.0: + keyv@4.5.4: dependencies: - json-buffer: 3.0.0 + json-buffer: 3.0.1 kind-of@6.0.3: {} kleur@3.0.3: {} - latest-version@5.1.0: + latest-version@7.0.0: dependencies: - package-json: 6.5.0 + package-json: 8.1.1 launch-editor@2.11.1: dependencies: @@ -10337,7 +11356,7 @@ snapshots: leven@3.1.0: {} - lilconfig@2.1.0: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -10353,138 +11372,592 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - loader-utils@3.3.1: {} + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.debounce@4.0.8: {} + + lodash.memoize@4.1.2: {} + + lodash.sortby@4.7.0: {} + + lodash.throttle@4.1.1: {} + + lodash.uniq@4.5.0: {} + + lodash@4.17.21: {} + + longest-streak@3.1.0: {} - locate-path@3.0.0: + loose-envify@1.4.0: dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 + js-tokens: 4.0.0 - locate-path@5.0.0: + lower-case@2.0.2: dependencies: - p-locate: 4.1.0 + tslib: 2.8.1 + + lowercase-keys@3.0.0: {} - locate-path@6.0.0: + lru-cache@11.2.4: {} + + lru-cache@5.1.1: dependencies: - p-locate: 5.0.0 + yallist: 3.1.1 - lodash.curry@4.1.1: {} + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 - lodash.debounce@4.0.8: {} + markdown-extensions@2.0.0: {} - lodash.flow@3.5.0: {} + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 - lodash.memoize@4.1.2: {} + markdown-table@2.0.0: + dependencies: + repeat-string: 1.6.1 - lodash.sortby@4.7.0: {} + markdown-table@3.0.4: {} - lodash.throttle@4.1.1: {} + markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.13.0): + dependencies: + markdownlint-cli2: 0.13.0 - lodash.uniq@4.5.0: {} + markdownlint-cli2@0.13.0: + dependencies: + globby: 14.0.1 + js-yaml: 4.1.0 + jsonc-parser: 3.2.1 + markdownlint: 0.34.0 + markdownlint-cli2-formatter-default: 0.0.4(markdownlint-cli2@0.13.0) + micromatch: 4.0.5 + + markdownlint-micromark@0.1.9: {} + + markdownlint@0.34.0: + dependencies: + markdown-it: 14.1.0 + markdownlint-micromark: 0.1.9 + + math-intrinsics@1.1.0: {} + + mdast-util-directive@3.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-visit-parents: 6.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + mdurl@2.0.0: {} + + media-typer@0.3.0: {} + + memfs@4.53.0: + dependencies: + '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + glob-to-regex.js: 1.2.0(tslib@2.8.1) + thingies: 2.5.0(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 + + memoize-one@5.2.1: {} + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-directive@3.0.2: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + parse-entities: 4.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - lodash@4.17.21: {} + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 - loose-envify@1.4.0: + micromark-extension-mdx-md@2.0.0: dependencies: - js-tokens: 4.0.0 + micromark-util-types: 2.0.2 - lower-case@2.0.2: + micromark-extension-mdxjs-esm@3.0.0: dependencies: - tslib: 2.8.1 + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 - lowercase-keys@1.0.1: {} + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 - lowercase-keys@2.0.0: {} + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - lru-cache@5.1.1: + micromark-factory-label@2.0.1: dependencies: - yallist: 3.1.1 + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - magic-string@0.25.9: + micromark-factory-mdx-expression@2.0.3: dependencies: - sourcemap-codec: 1.4.8 + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 - make-dir@3.1.0: + micromark-factory-space@1.1.0: dependencies: - semver: 6.3.1 + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 - markdown-escapes@1.0.4: {} + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 - markdown-it@14.1.0: + micromark-factory-title@2.0.1: dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - markdownlint-cli2-formatter-default@0.0.4(markdownlint-cli2@0.13.0): + micromark-factory-whitespace@2.0.1: dependencies: - markdownlint-cli2: 0.13.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - markdownlint-cli2@0.13.0: + micromark-util-character@1.2.0: dependencies: - globby: 14.0.1 - js-yaml: 4.1.0 - jsonc-parser: 3.2.1 - markdownlint: 0.34.0 - markdownlint-cli2-formatter-default: 0.0.4(markdownlint-cli2@0.13.0) - micromatch: 4.0.5 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 - markdownlint-micromark@0.1.9: {} + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - markdownlint@0.34.0: + micromark-util-chunked@2.0.1: dependencies: - markdown-it: 14.1.0 - markdownlint-micromark: 0.1.9 + micromark-util-symbol: 2.0.1 - math-intrinsics@1.1.0: {} + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - mdast-squeeze-paragraphs@4.0.0: + micromark-util-combine-extensions@2.0.1: dependencies: - unist-util-remove: 2.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 - mdast-util-definitions@4.0.0: + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: - unist-util-visit: 2.0.3 + micromark-util-symbol: 2.0.1 - mdast-util-to-hast@10.0.1: + micromark-util-decode-string@2.0.1: dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - mdast-util-definitions: 4.0.0 - mdurl: 1.0.1 - unist-builder: 2.0.3 - unist-util-generated: 1.1.6 - unist-util-position: 3.1.0 - unist-util-visit: 2.0.3 + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 - mdast-util-to-string@2.0.0: {} + micromark-util-encode@2.0.1: {} - mdn-data@2.0.14: {} + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 - mdn-data@2.0.4: {} + micromark-util-html-tag-name@2.0.1: {} - mdurl@1.0.1: {} + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 - mdurl@2.0.0: {} + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 - media-typer@0.3.0: {} + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 - memfs@3.5.3: + micromark-util-subtokenize@2.1.0: dependencies: - fs-monkey: 1.1.0 + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - memoize-one@5.2.1: {} + micromark-util-symbol@1.1.0: {} - merge-descriptors@1.0.3: {} + micromark-util-symbol@2.0.1: {} - merge-stream@2.0.0: {} + micromark-util-types@1.1.0: {} - merge2@1.4.1: {} + micromark-util-types@2.0.2: {} - methods@1.1.2: {} + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color micromatch@4.0.5: dependencies: @@ -10510,14 +11983,18 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mimic-fn@2.1.0: {} - mimic-response@1.0.1: {} - mimic-response@3.1.0: {} + mimic-response@4.0.0: {} + mini-css-extract-plugin@2.9.4(webpack@5.102.1): dependencies: schema-utils: 4.3.3 @@ -10526,6 +12003,10 @@ snapshots: minimalistic-assert@1.0.1: {} + minimatch@10.1.1: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -10536,11 +12017,9 @@ snapshots: minimist@1.2.8: {} - mkdirp-classic@0.5.3: {} + minipass@7.1.2: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 + mkdirp-classic@0.5.3: {} mrmime@2.0.1: {} @@ -10553,6 +12032,12 @@ snapshots: dns-packet: 5.6.1 thunky: 1.1.0 + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} napi-build-utils@2.0.0: {} @@ -10572,43 +12057,40 @@ snapshots: dependencies: semver: 7.7.3 - node-addon-api@5.1.0: {} + node-addon-api@6.1.0: {} - node-emoji@1.11.0: + node-emoji@2.2.0: dependencies: - lodash: 4.17.21 - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-forge@1.3.1: {} + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 node-releases@2.0.26: {} - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} + node-releases@2.0.27: {} - normalize-url@4.5.1: {} + normalize-path@3.0.0: {} - normalize-url@6.1.0: {} + normalize-url@8.1.1: {} npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - npm-to-yarn@1.3.0: {} + npm-to-yarn@3.0.1: {} nprogress@0.2.0: {} - nth-check@1.0.2: + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - nth-check@2.1.1: + null-loader@4.0.1(webpack@5.102.1): dependencies: - boolbase: 1.0.0 + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.102.1 object-assign@4.1.1: {} @@ -10625,23 +12107,6 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 - object.getownpropertydescriptors@2.1.8: - dependencies: - array.prototype.reduce: 1.0.8 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 - gopd: 1.2.0 - safe-array-concat: 1.1.3 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - obuf@1.1.2: {} on-finished@2.4.1: @@ -10658,6 +12123,13 @@ snapshots: dependencies: mimic-fn: 2.1.0 + open@10.2.0: + dependencies: + default-browser: 5.4.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -10674,45 +12146,45 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - p-cancelable@1.1.0: {} + p-cancelable@3.0.0: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 + p-finally@1.0.0: {} - p-limit@3.1.0: + p-limit@4.0.0: dependencies: - yocto-queue: 0.1.0 + yocto-queue: 1.2.2 - p-locate@3.0.0: + p-locate@6.0.0: dependencies: - p-limit: 2.3.0 + p-limit: 4.0.0 - p-locate@4.1.0: + p-map@4.0.0: dependencies: - p-limit: 2.3.0 + aggregate-error: 3.1.0 - p-locate@5.0.0: + p-queue@6.6.2: dependencies: - p-limit: 3.1.0 + eventemitter3: 4.0.7 + p-timeout: 3.2.0 - p-map@4.0.0: + p-retry@6.2.1: dependencies: - aggregate-error: 3.1.0 + '@types/retry': 0.12.2 + is-network-error: 1.3.0 + retry: 0.13.1 - p-retry@4.6.2: + p-timeout@3.2.0: dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 + p-finally: 1.0.0 - p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} - package-json@6.5.0: + package-json@8.1.1: dependencies: - got: 9.6.0 - registry-auth-token: 4.2.2 - registry-url: 5.1.0 - semver: 6.3.1 + got: 12.6.1 + registry-auth-token: 5.1.1 + registry-url: 6.0.1 + semver: 7.7.3 param-case@3.0.4: dependencies: @@ -10723,14 +12195,15 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@2.0.0: + parse-entities@4.0.2: dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.2.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 parse-json@5.2.0: dependencies: @@ -10746,12 +12219,6 @@ snapshots: domhandler: 5.0.3 parse5: 7.3.0 - parse5-parser-stream@7.1.2: - dependencies: - parse5: 7.3.0 - - parse5@6.0.1: {} - parse5@7.3.0: dependencies: entities: 6.0.1 @@ -10763,9 +12230,7 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 - path-exists@3.0.0: {} - - path-exists@4.0.0: {} + path-exists@5.0.0: {} path-is-absolute@1.0.1: {} @@ -10775,6 +12240,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.4 + minipass: 7.1.2 + path-to-regexp@0.1.12: {} path-to-regexp@1.9.0: @@ -10791,57 +12261,167 @@ snapshots: picomatch@2.3.1: {} - pkg-dir@4.2.0: + picomatch@4.0.3: {} + + pirates@4.0.7: {} + + pkg-dir@7.0.0: dependencies: - find-up: 4.1.0 + find-up: 6.3.0 - pkg-up@3.1.0: + pkijs@3.3.3: dependencies: - find-up: 3.0.0 + '@noble/hashes': 1.4.0 + asn1js: 3.0.7 + bytestreamjs: 2.0.1 + pvtsutils: 1.3.6 + pvutils: 1.1.5 + tslib: 2.8.1 possible-typed-array-names@1.1.0: {} - postcss-calc@8.2.4(postcss@8.5.6): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-calc@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.5.6): + postcss-clamp@4.1.0(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-color-functional-notation@7.0.12(postcss@8.5.6): + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + + postcss-color-hex-alpha@10.0.0(postcss@8.5.6): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-color-rebeccapurple@10.0.0(postcss@8.5.6): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-colormin@6.1.0(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.5.6): + postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-custom-media@11.0.6(postcss@8.5.6): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 + + postcss-custom-properties@14.0.6(postcss@8.5.6): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-discard-comments@5.1.2(postcss@8.5.6): + postcss-custom-selectors@8.0.5(postcss@8.5.6): + dependencies: + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-discard-comments@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-duplicates@5.1.0(postcss@8.5.6): + postcss-discard-duplicates@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-empty@5.1.1(postcss@8.5.6): + postcss-discard-empty@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-overridden@5.1.0(postcss@8.5.6): + postcss-discard-overridden@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-unused@5.1.0(postcss@8.5.6): + postcss-discard-unused@6.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 + postcss-double-position-gradients@6.0.4(postcss@8.5.6): + dependencies: + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-focus-visible@10.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-focus-within@9.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-font-variant@5.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-gap-properties@6.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-image-set-function@7.0.0(postcss@8.5.6): + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-lab-function@7.0.12(postcss@8.5.6): + dependencies: + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.9.3)(webpack@5.102.1): dependencies: cosmiconfig: 8.3.6(typescript@5.9.3) @@ -10852,46 +12432,51 @@ snapshots: transitivePeerDependencies: - typescript - postcss-merge-idents@5.1.1(postcss@8.5.6): + postcss-logical@8.1.0(postcss@8.5.6): dependencies: - cssnano-utils: 3.1.0(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-merge-longhand@5.1.7(postcss@8.5.6): + postcss-merge-idents@6.0.3(postcss@8.5.6): dependencies: + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.5.6) - postcss-merge-rules@5.1.4(postcss@8.5.6): + postcss-merge-longhand@6.0.5(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.1(postcss@8.5.6) + + postcss-merge-rules@6.1.1(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.5.6) + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@5.1.0(postcss@8.5.6): + postcss-minify-font-values@6.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.5.6): + postcss-minify-gradients@6.0.3(postcss@8.5.6): dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.5.6) + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.5.6): + postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.27.0 - cssnano-utils: 3.1.0(postcss@8.5.6) + browserslist: 4.28.1 + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.5.6): + postcss-minify-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 @@ -10917,74 +12502,187 @@ snapshots: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-normalize-charset@5.1.0(postcss@8.5.6): + postcss-nesting@13.0.2(postcss@8.5.6): + dependencies: + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-normalize-charset@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-normalize-display-values@5.1.0(postcss@8.5.6): + postcss-normalize-display-values@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.5.6): + postcss-normalize-positions@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.5.6): + postcss-normalize-repeat-style@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.5.6): + postcss-normalize-string@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.5.6): + postcss-normalize-timing-functions@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.5.6): + postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.5.6): + postcss-normalize-url@6.0.2(postcss@8.5.6): dependencies: - normalize-url: 6.1.0 postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.5.6): + postcss-normalize-whitespace@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-ordered-values@5.1.3(postcss@8.5.6): + postcss-opacity-percentage@3.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-ordered-values@6.0.2(postcss@8.5.6): dependencies: - cssnano-utils: 3.1.0(postcss@8.5.6) + cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-idents@5.2.0(postcss@8.5.6): + postcss-overflow-shorthand@6.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-initial@5.1.2(postcss@8.5.6): + postcss-page-break@3.0.4(postcss@8.5.6): dependencies: - browserslist: 4.27.0 + postcss: 8.5.6 + + postcss-place@10.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-preset-env@10.6.1(postcss@8.5.6): + dependencies: + '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.6) + '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.6) + '@csstools/postcss-color-function': 4.0.12(postcss@8.5.6) + '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.6) + '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.6) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.6) + '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.6) + '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.6) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.6) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.6) + '@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.6) + '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.6) + '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.6) + '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.6) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.6) + '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.6) + '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.6) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.6) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.6) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.6) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6) + '@csstools/postcss-normalize-display-values': 4.0.1(postcss@8.5.6) + '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.6) + '@csstools/postcss-position-area-property': 1.0.0(postcss@8.5.6) + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.6) + '@csstools/postcss-property-rule-prelude-list': 1.0.0(postcss@8.5.6) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) + '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.6) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-syntax-descriptor-syntax-production': 1.0.1(postcss@8.5.6) + '@csstools/postcss-system-ui-font-family': 1.0.0(postcss@8.5.6) + '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.6) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) + autoprefixer: 10.4.23(postcss@8.5.6) + browserslist: 4.28.1 + css-blank-pseudo: 7.0.1(postcss@8.5.6) + css-has-pseudo: 7.0.3(postcss@8.5.6) + css-prefers-color-scheme: 10.0.0(postcss@8.5.6) + cssdb: 8.7.0 + postcss: 8.5.6 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6) + postcss-clamp: 4.1.0(postcss@8.5.6) + postcss-color-functional-notation: 7.0.12(postcss@8.5.6) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.6) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.6) + postcss-custom-media: 11.0.6(postcss@8.5.6) + postcss-custom-properties: 14.0.6(postcss@8.5.6) + postcss-custom-selectors: 8.0.5(postcss@8.5.6) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.6) + postcss-double-position-gradients: 6.0.4(postcss@8.5.6) + postcss-focus-visible: 10.0.1(postcss@8.5.6) + postcss-focus-within: 9.0.1(postcss@8.5.6) + postcss-font-variant: 5.0.0(postcss@8.5.6) + postcss-gap-properties: 6.0.0(postcss@8.5.6) + postcss-image-set-function: 7.0.0(postcss@8.5.6) + postcss-lab-function: 7.0.12(postcss@8.5.6) + postcss-logical: 8.1.0(postcss@8.5.6) + postcss-nesting: 13.0.2(postcss@8.5.6) + postcss-opacity-percentage: 3.0.0(postcss@8.5.6) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.6) + postcss-page-break: 3.0.4(postcss@8.5.6) + postcss-place: 10.0.0(postcss@8.5.6) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.6) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.6) + postcss-selector-not: 8.0.1(postcss@8.5.6) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-reduce-idents@6.0.3(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@6.1.0(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 caniuse-api: 3.0.0 postcss: 8.5.6 - postcss-reduce-transforms@5.1.0(postcss@8.5.6): + postcss-reduce-transforms@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-selector-not@8.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -10995,25 +12693,25 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@4.4.1(postcss@8.5.6): + postcss-sort-media-queries@5.2.0(postcss@8.5.6): dependencies: postcss: 8.5.6 - sort-css-media-queries: 2.1.0 + sort-css-media-queries: 2.2.0 - postcss-svgo@5.1.0(postcss@8.5.6): + postcss-svgo@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - svgo: 2.8.0 + svgo: 3.3.2 - postcss-unique-selectors@5.1.1(postcss@8.5.6): + postcss-unique-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss-zindex@5.1.0(postcss@8.5.6): + postcss-zindex@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -11038,8 +12736,6 @@ snapshots: tar-fs: 2.1.4 tunnel-agent: 0.6.0 - prepend-http@2.0.0: {} - pretty-bytes@5.6.0: {} pretty-error@4.0.0: @@ -11049,18 +12745,16 @@ snapshots: pretty-time@1.1.0: {} - prism-react-renderer@1.3.5(react@17.0.2): + prism-react-renderer@2.4.1(react@18.3.1): dependencies: - react: 17.0.2 + '@types/prismjs': 1.26.5 + clsx: 2.1.1 + react: 18.3.1 prismjs@1.30.0: {} process-nextick-args@2.0.1: {} - promise@7.3.1: - dependencies: - asap: 2.0.6 - prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -11072,9 +12766,9 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@5.6.0: - dependencies: - xtend: 4.0.2 + property-information@7.1.0: {} + + proto-list@1.2.4: {} proxy-addr@2.0.7: dependencies: @@ -11090,23 +12784,27 @@ snapshots: punycode@2.3.1: {} - pupa@2.1.1: + pupa@3.3.0: dependencies: - escape-goat: 2.1.1 + escape-goat: 4.0.0 - pure-color@1.3.0: {} + pvtsutils@1.3.6: + dependencies: + tslib: 2.8.1 - q@1.5.1: {} + pvutils@1.1.5: {} qs@6.13.0: dependencies: side-channel: 1.1.0 + qs@6.14.1: + dependencies: + side-channel: 1.1.0 + queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 + quick-lru@5.1.1: {} randombytes@2.1.0: dependencies: @@ -11128,145 +12826,68 @@ snapshots: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 - strip-json-comments: 2.0.1 - - react-base16-styling@0.6.0: - dependencies: - base16: 1.0.0 - lodash.curry: 4.1.1 - lodash.flow: 3.5.0 - pure-color: 1.3.0 - - react-dev-utils@12.0.1(typescript@5.9.3)(webpack@5.102.1): - dependencies: - '@babel/code-frame': 7.27.1 - address: 1.2.2 - browserslist: 4.27.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - detect-port-alt: 1.1.6 - escape-string-regexp: 4.0.0 - filesize: 8.0.7 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.9.3)(webpack@5.102.1) - global-modules: 2.0.0 - globby: 11.1.0 - gzip-size: 6.0.0 - immer: 9.0.21 - is-root: 2.1.0 - loader-utils: 3.3.1 - open: 8.4.2 - pkg-up: 3.1.0 - prompts: 2.4.2 - react-error-overlay: 6.1.0 - recursive-readdir: 2.2.3 - shell-quote: 1.8.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - webpack: 5.102.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler + strip-json-comments: 2.0.1 - react-dom@17.0.2(react@17.0.2): + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 - react: 17.0.2 - scheduler: 0.20.2 + react: 18.3.1 + scheduler: 0.23.2 - react-draggable@4.5.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-draggable@4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: clsx: 2.1.1 prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - - react-error-overlay@6.1.0: {} + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-fast-compare@3.2.2: {} - react-helmet-async@1.3.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): - dependencies: - '@babel/runtime': 7.28.4 - invariant: 2.2.4 - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - - react-helmet-async@2.0.5(react@17.0.2): - dependencies: - invariant: 2.2.4 - react: 17.0.2 - react-fast-compare: 3.2.2 - shallowequal: 1.1.0 - react-is@16.13.1: {} - react-is@18.3.1: {} - - react-json-view@1.21.3(@types/react@19.2.2)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-json-view-lite@2.5.0(react@18.3.1): dependencies: - flux: 4.0.4(react@17.0.2) - react: 17.0.2 - react-base16-styling: 0.6.0 - react-dom: 17.0.2(react@17.0.2) - react-lifecycles-compat: 3.0.4 - react-textarea-autosize: 8.5.9(@types/react@19.2.2)(react@17.0.2) - transitivePeerDependencies: - - '@types/react' - - encoding + react: 18.3.1 - react-lifecycles-compat@3.0.4: {} - - react-live@2.2.3(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-live@4.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - buble: 0.19.6 - core-js: 2.6.12 - dom-iterator: 1.0.2 - prism-react-renderer: 1.3.5(react@17.0.2) - prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-simple-code-editor: 0.10.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) - unescape: 1.0.1 + prism-react-renderer: 2.4.1(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + sucrase: 3.35.1 + use-editable: 2.3.3(react@18.3.1) - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2(react@17.0.2))(webpack@5.102.1): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.102.1): dependencies: '@babel/runtime': 7.28.4 - react-loadable: '@docusaurus/react-loadable@5.5.2(react@17.0.2)' + react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' webpack: 5.102.1 - react-resizable@1.11.1(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-resizable@1.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - react-draggable: 4.5.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-draggable: 4.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-router-config@5.1.1(react-router@5.3.4(react@17.0.2))(react@17.0.2): + react-router-config@5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 - react: 17.0.2 - react-router: 5.3.4(react@17.0.2) + react: 18.3.1 + react-router: 5.3.4(react@18.3.1) - react-router-dom@5.3.4(react@17.0.2): + react-router-dom@5.3.4(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 17.0.2 - react-router: 5.3.4(react@17.0.2) + react: 18.3.1 + react-router: 5.3.4(react@18.3.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router@5.3.4(react@17.0.2): + react-router@5.3.4(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 history: 4.10.1 @@ -11274,62 +12895,39 @@ snapshots: loose-envify: 1.4.0 path-to-regexp: 1.9.0 prop-types: 15.8.1 - react: 17.0.2 + react: 18.3.1 react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-simple-code-editor@0.10.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): - dependencies: - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - - react-slick@0.29.0(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-slick@0.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: classnames: 2.5.1 enquire.js: 2.1.6 json2mq: 0.2.0 lodash.debounce: 4.0.8 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) resize-observer-polyfill: 1.5.1 - react-sortable-hoc@2.0.0(prop-types@15.8.1)(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-sortable-hoc@2.0.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 invariant: 2.2.4 prop-types: 15.8.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) - - react-textarea-autosize@8.5.9(@types/react@19.2.2)(react@17.0.2): - dependencies: - '@babel/runtime': 7.28.4 - react: 17.0.2 - use-composed-ref: 1.4.0(@types/react@19.2.2)(react@17.0.2) - use-latest: 1.3.0(@types/react@19.2.2)(react@17.0.2) - transitivePeerDependencies: - - '@types/react' - - react-waypoint@10.3.0(react@17.0.2): - dependencies: - '@babel/runtime': 7.28.4 - consolidated-events: 2.0.2 - prop-types: 15.8.1 - react: 17.0.2 - react-is: 18.3.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-window@1.8.11(react-dom@17.0.2(react@17.0.2))(react@17.0.2): + react-window@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.28.4 memoize-one: 5.2.1 - react: 17.0.2 - react-dom: 17.0.2(react@17.0.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react@17.0.2: + react@18.3.1: dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 readable-stream@2.3.8: dependencies: @@ -11351,15 +12949,36 @@ snapshots: dependencies: picomatch: 2.3.1 - reading-time@1.5.0: {} + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 - rechoir@0.6.2: + recma-jsx@1.0.1(acorn@8.15.0): dependencies: - resolve: 1.22.11 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 - recursive-readdir@2.2.3: + recma-parse@1.0.0: dependencies: - minimatch: 3.1.2 + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + reflect-metadata@0.2.2: {} reflect.getprototypeof@1.0.10: dependencies: @@ -11409,11 +13028,11 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 - registry-auth-token@4.2.2: + registry-auth-token@5.1.1: dependencies: - rc: 1.2.8 + '@pnpm/npm-conf': 3.0.2 - registry-url@5.1.0: + registry-url@6.0.1: dependencies: rc: 1.2.8 @@ -11429,51 +13048,88 @@ snapshots: dependencies: jsesc: 0.5.0 + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + relateurl@0.2.7: {} - remark-emoji@2.2.0: + remark-directive@3.0.1: dependencies: - emoticon: 3.2.0 - node-emoji: 1.11.0 - unist-util-visit: 2.0.3 + '@types/mdast': 4.0.4 + mdast-util-directive: 3.1.0 + micromark-extension-directive: 3.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color - remark-footnotes@2.0.0: {} + remark-emoji@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + emoticon: 4.1.0 + mdast-util-find-and-replace: 3.0.2 + node-emoji: 2.2.0 + unified: 11.0.5 - remark-mdx@1.6.22: + remark-frontmatter@5.0.0: dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.10.4 - '@babel/plugin-proposal-object-rest-spread': 7.12.1(@babel/core@7.12.9) - '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) - '@mdx-js/util': 1.6.22 - is-alphabetical: 1.0.4 - remark-parse: 8.0.3 - unified: 9.2.0 + '@types/mdast': 4.0.4 + mdast-util-frontmatter: 2.0.1 + micromark-extension-frontmatter: 2.0.0 + unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-parse@8.0.3: + remark-gfm@4.0.1: dependencies: - ccount: 1.1.0 - collapse-white-space: 1.0.6 - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - is-whitespace-character: 1.0.4 - is-word-character: 1.0.4 - markdown-escapes: 1.0.4 - parse-entities: 2.0.0 - repeat-string: 1.6.1 - state-toggle: 1.0.3 - trim: 0.0.1 - trim-trailing-lines: 1.1.4 - unherit: 1.1.3 - unist-util-remove-position: 2.0.1 - vfile-location: 3.2.0 - xtend: 4.0.2 + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color - remark-squeeze-paragraphs@4.0.0: + remark-rehype@11.1.2: dependencies: - mdast-squeeze-paragraphs: 4.0.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 renderkid@3.0.0: dependencies: @@ -11493,6 +13149,8 @@ snapshots: resize-observer-polyfill@1.5.1: {} + resolve-alpn@1.2.1: {} + resolve-from@4.0.0: {} resolve-pathname@3.0.0: {} @@ -11503,47 +13161,31 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - responselike@1.0.2: + responselike@3.0.0: dependencies: - lowercase-keys: 1.0.1 + lowercase-keys: 3.0.0 retry@0.13.1: {} reusify@1.1.0: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rollup-plugin-terser@7.0.2(rollup@2.79.2): - dependencies: - '@babel/code-frame': 7.27.1 - jest-worker: 26.6.2 - rollup: 2.79.2 - serialize-javascript: 4.0.0 - terser: 5.44.0 - rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 - rtl-detect@1.1.2: {} - - rtlcss@3.5.0: + rtlcss@4.3.0: dependencies: - find-up: 5.0.0 + escalade: 3.2.0 picocolors: 1.1.1 postcss: 8.5.6 strip-json-comments: 3.1.1 + run-applescript@7.1.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -11569,26 +13211,13 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.2.4: {} - sax@1.4.1: {} - scheduler@0.20.2: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 - object-assign: 4.1.1 - - schema-utils@2.7.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@2.7.1: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + schema-dts@1.1.5: {} schema-utils@3.3.0: dependencies: @@ -11616,16 +13245,14 @@ snapshots: select-hose@2.0.0: {} - selfsigned@2.4.1: + selfsigned@5.5.0: dependencies: - '@types/node-forge': 1.3.14 - node-forge: 1.3.1 + '@peculiar/x509': 1.14.3 + pkijs: 3.3.3 - semver-diff@3.1.1: + semver-diff@4.0.0: dependencies: - semver: 6.3.1 - - semver@5.7.2: {} + semver: 7.7.3 semver@6.3.1: {} @@ -11649,10 +13276,6 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@4.0.0: - dependencies: - randombytes: 2.1.0 - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -11710,8 +13333,6 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 - setimmediate@1.0.5: {} - setprototypeof@1.1.0: {} setprototypeof@1.2.0: {} @@ -11722,42 +13343,46 @@ snapshots: shallowequal@1.1.0: {} - sharp@0.30.7: + sharp@0.32.6: dependencies: color: 4.2.3 detect-libc: 2.1.2 - node-addon-api: 5.1.0 + node-addon-api: 6.1.0 prebuild-install: 7.1.3 semver: 7.7.3 simple-get: 4.0.1 - tar-fs: 2.1.4 + tar-fs: 3.1.1 tunnel-agent: 0.6.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a - sharp@0.33.3: + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.1.2 semver: 7.7.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.3 - '@img/sharp-darwin-x64': 0.33.3 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.3 - '@img/sharp-linux-arm64': 0.33.3 - '@img/sharp-linux-s390x': 0.33.3 - '@img/sharp-linux-x64': 0.33.3 - '@img/sharp-linuxmusl-arm64': 0.33.3 - '@img/sharp-linuxmusl-x64': 0.33.3 - '@img/sharp-wasm32': 0.33.3 - '@img/sharp-win32-ia32': 0.33.3 - '@img/sharp-win32-x64': 0.33.3 + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 shebang-command@2.0.0: dependencies: @@ -11767,12 +13392,6 @@ snapshots: shell-quote@1.8.3: {} - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -11803,6 +13422,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-concat@1.0.1: {} simple-get@4.0.1: @@ -11830,6 +13451,10 @@ snapshots: arg: 5.0.2 sax: 1.4.1 + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + slash@3.0.0: {} slash@4.0.0: {} @@ -11840,13 +13465,20 @@ snapshots: dependencies: jquery: 3.7.1 + smob@1.5.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - sort-css-media-queries@2.1.0: {} + sort-css-media-queries@2.2.0: {} source-map-js@1.2.1: {} @@ -11855,17 +13487,17 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 - source-map@0.5.7: {} - source-map@0.6.1: {} + source-map@0.7.6: {} + source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 sourcemap-codec@1.4.8: {} - space-separated-tokens@1.1.5: {} + space-separated-tokens@2.0.2: {} spdy-transport@3.0.0: dependencies: @@ -11890,11 +13522,9 @@ snapshots: sprintf-js@1.0.3: {} - ssr-window@4.0.2: {} - - stable@0.1.8: {} + srcset@4.0.0: {} - state-toggle@1.0.3: {} + ssr-window@4.0.2: {} statuses@1.5.0: {} @@ -11907,6 +13537,15 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + streamx@2.23.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + string-convert@0.2.1: {} string-width@4.2.3: @@ -11968,6 +13607,11 @@ snapshots: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 @@ -11992,16 +13636,30 @@ snapshots: strip-json-comments@3.1.1: {} - style-to-object@0.3.0: + style-to-js@1.1.21: dependencies: - inline-style-parser: 0.1.1 + style-to-object: 1.0.14 - stylehacks@5.1.1(postcss@8.5.6): + style-to-object@1.0.14: dependencies: - browserslist: 4.27.0 + inline-style-parser: 0.2.7 + + stylehacks@6.1.1(postcss@8.5.6): + dependencies: + browserslist: 4.28.1 postcss: 8.5.6 postcss-selector-parser: 6.1.2 + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.15 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -12018,39 +13676,21 @@ snapshots: svg-parser@2.0.4: {} - svgo@1.3.2: - dependencies: - chalk: 2.4.2 - coa: 2.0.2 - css-select: 2.1.0 - css-select-base-adapter: 0.1.1 - css-tree: 1.0.0-alpha.37 - csso: 4.2.0 - js-yaml: 3.14.1 - mkdirp: 0.5.6 - object.values: 1.2.1 - sax: 1.2.4 - stable: 0.1.8 - unquote: 1.1.1 - util.promisify: 1.0.1 - - svgo@2.8.0: + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 + css-select: 5.2.2 + css-tree: 2.3.1 + css-what: 6.2.2 + csso: 5.0.5 picocolors: 1.1.1 - stable: 0.1.8 swiper@7.4.1: dependencies: dom7: 4.0.6 ssr-window: 4.0.2 - tapable@1.1.3: {} - tapable@2.3.0: {} tar-fs@2.1.4: @@ -12060,6 +13700,18 @@ snapshots: pump: 3.0.3 tar-stream: 2.2.0 + tar-fs@3.1.1: + dependencies: + pump: 3.0.3 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 4.5.2 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -12068,6 +13720,15 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + tar-stream@3.1.7: + dependencies: + b4a: 1.7.3 + fast-fifo: 1.3.2 + streamx: 2.23.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + temp-dir@2.0.0: {} tempy@0.6.0: @@ -12093,7 +13754,23 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-table@0.2.0: {} + text-decoder@1.2.3: + dependencies: + b4a: 1.7.3 + transitivePeerDependencies: + - react-native-b4a + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + thingies@2.5.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 thunky@1.1.0: {} @@ -12101,7 +13778,12 @@ snapshots: tiny-warning@1.0.3: {} - to-readable-stream@1.0.0: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinypool@1.1.1: {} to-regex-range@5.0.1: dependencies: @@ -12111,27 +13793,37 @@ snapshots: totalist@3.0.1: {} - tr46@0.0.3: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 - trim-trailing-lines@1.1.4: {} + tree-dump@1.1.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + trim-lines@3.0.1: {} - trim@0.0.1: {} + trough@2.2.0: {} - trough@1.0.5: {} + ts-interface-checker@0.1.13: {} + + tslib@1.14.1: {} tslib@2.8.1: {} + tsyringe@4.10.0: + dependencies: + tslib: 1.14.1 + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 type-fest@0.16.0: {} - type-fest@0.20.2: {} + type-fest@0.21.3: {} + + type-fest@1.4.0: {} type-fest@2.19.0: {} @@ -12177,9 +13869,8 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@5.9.3: {} - - ua-parser-js@1.0.41: {} + typescript@5.9.3: + optional: true uc.micro@2.1.0: {} @@ -12192,21 +13883,10 @@ snapshots: undici-types@7.16.0: {} - undici@5.28.4: - dependencies: - '@fastify/busboy': 2.1.1 - - unescape@1.0.1: - dependencies: - extend-shallow: 2.0.1 - - unherit@1.1.3: - dependencies: - inherits: 2.0.4 - xtend: 4.0.2 - unicode-canonical-property-names-ecmascript@2.0.1: {} + unicode-emoji-modifier-base@1.0.0: {} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 @@ -12218,67 +13898,55 @@ snapshots: unicorn-magic@0.1.0: {} - unified@9.2.0: + unified@11.0.5: dependencies: - '@types/unist': 2.0.11 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - - unified@9.2.2: - dependencies: - '@types/unist': 2.0.11 - bail: 1.0.5 + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - unist-builder@2.0.3: {} - - unist-util-generated@1.1.6: {} - - unist-util-is@4.1.0: {} + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 - unist-util-position@3.1.0: {} + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 - unist-util-remove-position@2.0.1: + unist-util-position-from-estree@2.0.0: dependencies: - unist-util-visit: 2.0.3 + '@types/unist': 3.0.3 - unist-util-remove@2.1.0: + unist-util-position@5.0.0: dependencies: - unist-util-is: 4.1.0 + '@types/unist': 3.0.3 - unist-util-stringify-position@2.0.3: + unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 2.0.11 + '@types/unist': 3.0.3 - unist-util-visit-parents@3.1.1: + unist-util-visit-parents@6.0.2: dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 - unist-util-visit@2.0.3: + unist-util-visit@5.0.0: dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universalify@2.0.1: {} unpipe@1.0.0: {} - unquote@1.1.1: {} - upath@1.2.0: {} update-browserslist-db@1.1.4(browserslist@4.27.0): @@ -12287,22 +13955,28 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-notifier@5.1.0: + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - boxen: 5.1.2 - chalk: 4.1.2 - configstore: 5.0.1 - has-yarn: 2.1.0 - import-lazy: 2.1.0 - is-ci: 2.0.0 + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + update-notifier@6.0.2: + dependencies: + boxen: 7.1.1 + chalk: 5.6.2 + configstore: 6.0.0 + has-yarn: 3.0.0 + import-lazy: 4.0.0 + is-ci: 3.0.1 is-installed-globally: 0.4.0 - is-npm: 5.0.0 - is-yarn-global: 0.3.0 - latest-version: 5.1.0 - pupa: 2.1.1 + is-npm: 6.1.0 + is-yarn-global: 0.4.1 + latest-version: 7.0.0 + pupa: 3.3.0 semver: 7.7.3 - semver-diff: 3.1.1 - xdg-basedir: 4.0.0 + semver-diff: 4.0.0 + xdg-basedir: 5.1.0 uri-js@4.4.1: dependencies: @@ -12317,42 +13991,12 @@ snapshots: optionalDependencies: file-loader: 6.2.0(webpack@5.102.1) - url-parse-lax@3.0.0: - dependencies: - prepend-http: 2.0.0 - - use-composed-ref@1.4.0(@types/react@19.2.2)(react@17.0.2): - dependencies: - react: 17.0.2 - optionalDependencies: - '@types/react': 19.2.2 - - use-isomorphic-layout-effect@1.2.1(@types/react@19.2.2)(react@17.0.2): - dependencies: - react: 17.0.2 - optionalDependencies: - '@types/react': 19.2.2 - - use-latest@1.3.0(@types/react@19.2.2)(react@17.0.2): - dependencies: - react: 17.0.2 - use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.2)(react@17.0.2) - optionalDependencies: - '@types/react': 19.2.2 - - use-sync-external-store@1.6.0(react@17.0.2): + use-editable@2.3.3(react@18.3.1): dependencies: - react: 17.0.2 + react: 18.3.1 util-deprecate@1.0.2: {} - util.promisify@1.0.1: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.24.0 - has-symbols: 1.1.0 - object.getownpropertydescriptors: 2.1.8 - utila@0.4.0: {} utility-types@3.11.0: {} @@ -12365,31 +14009,20 @@ snapshots: vary@1.1.2: {} - vfile-location@3.2.0: {} - - vfile-message@2.0.4: + vfile-location@5.0.3: dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 2.0.3 + '@types/unist': 3.0.3 + vfile: 6.0.3 - vfile@4.2.1: + vfile-message@4.0.3: dependencies: - '@types/unist': 2.0.11 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 - vlq@1.0.1: {} - - wait-on@6.0.1: + vfile@6.0.3: dependencies: - axios: 0.25.0 - joi: 17.13.3 - lodash: 4.17.21 - minimist: 1.2.8 - rxjs: 7.8.2 - transitivePeerDependencies: - - debug + '@types/unist': 3.0.3 + vfile-message: 4.0.3 watchpack@2.4.4: dependencies: @@ -12400,9 +14033,7 @@ snapshots: dependencies: minimalistic-assert: 1.0.1 - web-namespaces@1.1.4: {} - - webidl-conversions@3.0.1: {} + web-namespaces@2.0.1: {} webidl-conversions@4.0.2: {} @@ -12424,20 +14055,23 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@5.3.4(webpack@5.102.1): + webpack-dev-middleware@7.4.5(webpack@5.102.1): dependencies: colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 + memfs: 4.53.0 + mime-types: 3.0.2 + on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 + optionalDependencies: webpack: 5.102.1 - webpack-dev-server@4.15.2(webpack@5.102.1): + webpack-dev-server@5.2.3(webpack@5.102.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.24 + '@types/express': 4.17.25 + '@types/express-serve-static-core': 4.19.7 '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.10 '@types/sockjs': 0.3.36 @@ -12448,22 +14082,19 @@ snapshots: colorette: 2.0.20 compression: 1.8.1 connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.21.2 + express: 4.22.1 graceful-fs: 4.2.11 - html-entities: 2.6.0 - http-proxy-middleware: 2.0.9(@types/express@4.17.24) + http-proxy-middleware: 2.0.9(@types/express@4.17.25) ipaddr.js: 2.2.0 launch-editor: 2.11.1 - open: 8.4.2 - p-retry: 4.6.2 - rimraf: 3.0.2 + open: 10.2.0 + p-retry: 6.2.1 schema-utils: 4.3.3 - selfsigned: 2.4.1 + selfsigned: 5.5.0 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.102.1) + webpack-dev-middleware: 7.4.5(webpack@5.102.1) ws: 8.18.3 optionalDependencies: webpack: 5.102.1 @@ -12479,6 +14110,12 @@ snapshots: flat: 5.0.2 wildcard: 2.0.1 + webpack-merge@6.0.1: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + webpack-sources@3.3.3: {} webpack@5.102.1: @@ -12491,7 +14128,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.27.0 + browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.3 es-module-lexer: 1.7.0 @@ -12513,13 +14150,17 @@ snapshots: - esbuild - uglify-js - webpackbar@5.0.2(webpack@5.102.1): + webpackbar@6.0.1(webpack@5.102.1): dependencies: + ansi-escapes: 4.3.2 chalk: 4.1.2 - consola: 2.15.3 + consola: 3.4.2 + figures: 3.2.0 + markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.10.0 webpack: 5.102.1 + wrap-ansi: 7.0.0 websocket-driver@0.7.4: dependencies: @@ -12529,17 +14170,6 @@ snapshots: websocket-extensions@0.1.4: {} - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 @@ -12587,146 +14217,128 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 - which@1.3.1: - dependencies: - isexe: 2.0.0 - which@2.0.2: dependencies: isexe: 2.0.0 - widest-line@3.1.0: - dependencies: - string-width: 4.2.3 - widest-line@4.0.1: dependencies: string-width: 5.1.2 wildcard@2.0.1: {} - workbox-background-sync@6.6.0: + workbox-background-sync@7.4.0: dependencies: idb: 7.1.1 - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-broadcast-update@6.6.0: + workbox-broadcast-update@7.4.0: dependencies: - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-build@6.6.0: + workbox-build@7.4.0: dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) '@babel/core': 7.28.5 '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.5)(rollup@2.79.2) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) + '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) + '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 - glob: 7.2.3 + glob: 11.1.0 lodash: 4.17.21 pretty-bytes: 5.6.0 rollup: 2.79.2 - rollup-plugin-terser: 7.0.2(rollup@2.79.2) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 tempy: 0.6.0 upath: 1.2.0 - workbox-background-sync: 6.6.0 - workbox-broadcast-update: 6.6.0 - workbox-cacheable-response: 6.6.0 - workbox-core: 6.6.0 - workbox-expiration: 6.6.0 - workbox-google-analytics: 6.6.0 - workbox-navigation-preload: 6.6.0 - workbox-precaching: 6.6.0 - workbox-range-requests: 6.6.0 - workbox-recipes: 6.6.0 - workbox-routing: 6.6.0 - workbox-strategies: 6.6.0 - workbox-streams: 6.6.0 - workbox-sw: 6.6.0 - workbox-window: 6.6.0 + workbox-background-sync: 7.4.0 + workbox-broadcast-update: 7.4.0 + workbox-cacheable-response: 7.4.0 + workbox-core: 7.4.0 + workbox-expiration: 7.4.0 + workbox-google-analytics: 7.4.0 + workbox-navigation-preload: 7.4.0 + workbox-precaching: 7.4.0 + workbox-range-requests: 7.4.0 + workbox-recipes: 7.4.0 + workbox-routing: 7.4.0 + workbox-strategies: 7.4.0 + workbox-streams: 7.4.0 + workbox-sw: 7.4.0 + workbox-window: 7.4.0 transitivePeerDependencies: - '@types/babel__core' - supports-color - workbox-cacheable-response@6.6.0: + workbox-cacheable-response@7.4.0: dependencies: - workbox-core: 6.6.0 - - workbox-core@6.5.3: {} + workbox-core: 7.4.0 - workbox-core@6.6.0: {} + workbox-core@7.4.0: {} - workbox-expiration@6.6.0: + workbox-expiration@7.4.0: dependencies: idb: 7.1.1 - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-google-analytics@6.6.0: + workbox-google-analytics@7.4.0: dependencies: - workbox-background-sync: 6.6.0 - workbox-core: 6.6.0 - workbox-routing: 6.6.0 - workbox-strategies: 6.6.0 + workbox-background-sync: 7.4.0 + workbox-core: 7.4.0 + workbox-routing: 7.4.0 + workbox-strategies: 7.4.0 - workbox-navigation-preload@6.6.0: + workbox-navigation-preload@7.4.0: dependencies: - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-precaching@6.6.0: + workbox-precaching@7.4.0: dependencies: - workbox-core: 6.6.0 - workbox-routing: 6.6.0 - workbox-strategies: 6.6.0 + workbox-core: 7.4.0 + workbox-routing: 7.4.0 + workbox-strategies: 7.4.0 - workbox-range-requests@6.6.0: + workbox-range-requests@7.4.0: dependencies: - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-recipes@6.6.0: + workbox-recipes@7.4.0: dependencies: - workbox-cacheable-response: 6.6.0 - workbox-core: 6.6.0 - workbox-expiration: 6.6.0 - workbox-precaching: 6.6.0 - workbox-routing: 6.6.0 - workbox-strategies: 6.6.0 + workbox-cacheable-response: 7.4.0 + workbox-core: 7.4.0 + workbox-expiration: 7.4.0 + workbox-precaching: 7.4.0 + workbox-routing: 7.4.0 + workbox-strategies: 7.4.0 - workbox-routing@6.5.3: + workbox-routing@7.4.0: dependencies: - workbox-core: 6.5.3 + workbox-core: 7.4.0 - workbox-routing@6.6.0: + workbox-strategies@7.4.0: dependencies: - workbox-core: 6.6.0 + workbox-core: 7.4.0 - workbox-strategies@6.5.3: + workbox-streams@7.4.0: dependencies: - workbox-core: 6.5.3 + workbox-core: 7.4.0 + workbox-routing: 7.4.0 - workbox-strategies@6.6.0: - dependencies: - workbox-core: 6.6.0 - - workbox-streams@6.6.0: - dependencies: - workbox-core: 6.6.0 - workbox-routing: 6.6.0 - - workbox-sw@6.6.0: {} + workbox-sw@7.4.0: {} - workbox-window@6.6.0: + workbox-window@7.4.0: dependencies: '@types/trusted-types': 2.0.7 - workbox-core: 6.6.0 + workbox-core: 7.4.0 wrap-ansi@7.0.0: dependencies: @@ -12753,18 +14365,18 @@ snapshots: ws@8.18.3: {} - xdg-basedir@4.0.0: {} + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 + + xdg-basedir@5.1.0: {} xml-js@1.6.11: dependencies: sax: 1.4.1 - xtend@4.0.2: {} - yallist@3.1.1: {} - yaml@1.10.2: {} - - yocto-queue@0.1.0: {} + yocto-queue@1.2.2: {} - zwitch@1.0.5: {} + zwitch@2.0.4: {} diff --git a/home/sidebars.json b/home/sidebars.json index 665c6d336db..bda68ea497e 100755 --- a/home/sidebars.json +++ b/home/sidebars.json @@ -51,7 +51,8 @@ }, { "type": "category", - "label": "use-case", + "label": "Use Case", + "key": "quickstart-use-case", "items": [ "start/usecase/ssl-cert-practice", "start/usecase/springboot-auto-practice", @@ -70,7 +71,8 @@ "help/mcp_server", { "type": "category", - "label": "use-case", + "label": "Use Case", + "key": "guides-use-case", "items": [ "start/usecase/ssl-cert-practice", "start/usecase/springboot-auto-practice", @@ -80,7 +82,8 @@ }, { "type": "category", - "label": "log", + "label": "Log (Beta)", + "key": "log", "items": [ "help/log_integration", "help/log_stream", @@ -300,7 +303,8 @@ }, { "type": "category", - "label": "custom", + "label": "Custom", + "key": "help-custom", "items": ["help/kafka_promql", "help/influxdb_promql", "help/tdengine_promql"] }, "help/status", @@ -315,7 +319,8 @@ }, { "type": "category", - "label": "custom", + "label": "Custom", + "key": "advanced-custom", "items": [ "advanced/extend-point", "advanced/extend-tutorial", diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-http-default.md b/home/versioned_docs/version-1.6.x/advanced/extend-http-default.md similarity index 92% rename from home/versioned_docs/version-v1.6.x/advanced/extend-http-default.md rename to home/versioned_docs/version-1.6.x/advanced/extend-http-default.md index 9770143af31..8281718aa0a 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-http-default.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-http-default.md @@ -96,9 +96,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md b/home/versioned_docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md similarity index 92% rename from home/versioned_docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md rename to home/versioned_docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md index 5b96870be48..76ea0b4974c 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-http-example-hertzbeat.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-http-example-hertzbeat.md @@ -78,9 +78,9 @@ name: en-US: HertzBeat # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -217,4 +217,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-http-example-token.md b/home/versioned_docs/version-1.6.x/advanced/extend-http-example-token.md similarity index 90% rename from home/versioned_docs/version-v1.6.x/advanced/extend-http-example-token.md rename to home/versioned_docs/version-1.6.x/advanced/extend-http-example-token.md index e353340422c..d935329708d 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-http-example-token.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-http-example-token.md @@ -60,9 +60,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -128,9 +128,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -267,9 +267,9 @@ name: en-US: HertzBeat(Token) # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。
您可以点击 “新建 HertzBeat监控(Token)” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "New HertzBeat Monitor(Token)" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。
您可以點擊“新建HertzBeat監控(Token)”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token @@ -405,4 +405,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-http-jsonpath.md b/home/versioned_docs/version-1.6.x/advanced/extend-http-jsonpath.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-http-jsonpath.md rename to home/versioned_docs/version-1.6.x/advanced/extend-http-jsonpath.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-http.md b/home/versioned_docs/version-1.6.x/advanced/extend-http.md similarity index 94% rename from home/versioned_docs/version-v1.6.x/advanced/extend-http.md rename to home/versioned_docs/version-1.6.x/advanced/extend-http.md index 3296ce42fcc..1b7330f75eb 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-http.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-http.md @@ -45,9 +45,9 @@ name: en-US: EXAMPLE APP # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-jdbc.md b/home/versioned_docs/version-1.6.x/advanced/extend-jdbc.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-jdbc.md rename to home/versioned_docs/version-1.6.x/advanced/extend-jdbc.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-jmx.md b/home/versioned_docs/version-1.6.x/advanced/extend-jmx.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-jmx.md rename to home/versioned_docs/version-1.6.x/advanced/extend-jmx.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-ngql.md b/home/versioned_docs/version-1.6.x/advanced/extend-ngql.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-ngql.md rename to home/versioned_docs/version-1.6.x/advanced/extend-ngql.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-point.md b/home/versioned_docs/version-1.6.x/advanced/extend-point.md similarity index 90% rename from home/versioned_docs/version-v1.6.x/advanced/extend-point.md rename to home/versioned_docs/version-1.6.x/advanced/extend-point.md index 57b51e18ffb..dc3046d15af 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-point.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-point.md @@ -40,9 +40,9 @@ name: en-US: EXAMPLE WEBSITE # The description and help of this monitoring type help: - zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。
定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 - en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type.
Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." - zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。
定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-push.md b/home/versioned_docs/version-1.6.x/advanced/extend-push.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-push.md rename to home/versioned_docs/version-1.6.x/advanced/extend-push.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-snmp.md b/home/versioned_docs/version-1.6.x/advanced/extend-snmp.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-snmp.md rename to home/versioned_docs/version-1.6.x/advanced/extend-snmp.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-ssh.md b/home/versioned_docs/version-1.6.x/advanced/extend-ssh.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-ssh.md rename to home/versioned_docs/version-1.6.x/advanced/extend-ssh.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-telnet.md b/home/versioned_docs/version-1.6.x/advanced/extend-telnet.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/advanced/extend-telnet.md rename to home/versioned_docs/version-1.6.x/advanced/extend-telnet.md diff --git a/home/versioned_docs/version-v1.6.x/advanced/extend-tutorial.md b/home/versioned_docs/version-1.6.x/advanced/extend-tutorial.md similarity index 93% rename from home/versioned_docs/version-v1.6.x/advanced/extend-tutorial.md rename to home/versioned_docs/version-1.6.x/advanced/extend-tutorial.md index 321b65ee356..f78d8b5329a 100644 --- a/home/versioned_docs/version-v1.6.x/advanced/extend-tutorial.md +++ b/home/versioned_docs/version-1.6.x/advanced/extend-tutorial.md @@ -80,9 +80,9 @@ name: en-US: HertzBeat Monitor # The description and help of this monitoring type help: - zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。
您可以点击 “新建 HertzBeat监控系统” 并进行配置,或者选择“更多操作”,导入已有配置。 - en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "New HertzBeat Monitor" button and proceed with the configuration or import an existing setup through the "More Actions" menu. - zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。
您可以點擊“新建HertzBeat監控系統”並進行配寘,或者選擇“更多操作”,導入已有配寘。 + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 helpLink: zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat en-US: https://hertzbeat.apache.org/docs/help/hertzbeat @@ -229,4 +229,4 @@ This is the end of the practice of custom monitoring of the HTTP protocol. The H If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. Thanks for the old iron support. Refill! -**github: ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-v1.6.x/community/become_committer.md b/home/versioned_docs/version-1.6.x/community/become_committer.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/community/become_committer.md rename to home/versioned_docs/version-1.6.x/community/become_committer.md diff --git a/home/versioned_docs/version-v1.6.x/community/become_pmc_member.md b/home/versioned_docs/version-1.6.x/community/become_pmc_member.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/community/become_pmc_member.md rename to home/versioned_docs/version-1.6.x/community/become_pmc_member.md diff --git a/home/versioned_docs/version-v1.6.x/community/code-style-and-quality-guide.md b/home/versioned_docs/version-1.6.x/community/code-style-and-quality-guide.md similarity index 95% rename from home/versioned_docs/version-v1.6.x/community/code-style-and-quality-guide.md rename to home/versioned_docs/version-1.6.x/community/code-style-and-quality-guide.md index 32b85edf13b..14e99295f8d 100644 --- a/home/versioned_docs/version-v1.6.x/community/code-style-and-quality-guide.md +++ b/home/versioned_docs/version-1.6.x/community/code-style-and-quality-guide.md @@ -129,7 +129,7 @@ Error code description: 1. Prioritize selecting nouns for variable naming, it's easier to distinguish between `variables` or `methods`. ```java - Cache publicKeyCache; + Cache`` publicKeyCache; ``` 2. Pinyin abbreviations are prohibited for variables (excluding nouns such as place names), such as chengdu. @@ -210,7 +210,7 @@ Error code description: - The referenced `package` or `resource` name doesn't need to be extracted as constant. -3. Variables that have not been reassigned must also be declared as final types. +3. Variables that have not been reassigned must also be declared as `` final `` types. 4. About the arrangement order of `constant/variable` lines @@ -229,7 +229,7 @@ Error code description: For example, if the parameter cannot be null, it is best to add a `@Nonnull` annotation. If the returned value can be null, the `@Nullable` annotation should be added first. - Note: that the package name is javax.validation.requirements + `` Note: that the package name is ``javax.validation.requirements`` `` 3. If there are too many lines of code in the method, please have a try on using multiple sub methods at appropriate points to segment the method body. @@ -245,9 +245,9 @@ Error code description: ### 3.4 Collection Rule 1. For `collection` returned values, unless there are special `concurrent` (such as thread safety), always return the `interface`, such as: - - returns List if use `ArrayList` - - returns Map if use `HashMap` - - returns Set if use `HashSet` + - returns `` List `` if use `ArrayList` + - returns `` Map `` if use `HashMap` + - returns `` Set `` if use `HashSet` 2. If there are multiple threads, the following declaration or returned types can be used: ```java @@ -276,7 +276,7 @@ Error code description: 1. The `thread pool` needs to be managed, using a unified entry point to obtain the `thread pool`. - Note: During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. + `` Note: During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. `` 2. `Thread pool` needs to be resource constrained to prevent resource leakage caused by improper handling @@ -618,7 +618,7 @@ public void process(String input) { ```java // ignored declaration lines. - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); LOG.debug("All users: {}", getAllUserIds(userList)); ``` @@ -628,7 +628,7 @@ public void process(String input) { ```java // ignored declaration lines. - List userList = getUsersByBatch(1000); + List`` userList = getUsersByBatch(1000); if (LOG.isDebugEnabled()) { LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); } @@ -642,8 +642,8 @@ public void process(String input) { ## References -- -- -- -- -- +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/versioned_docs/version-v1.6.x/community/contact.md b/home/versioned_docs/version-1.6.x/community/contact.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/community/contact.md rename to home/versioned_docs/version-1.6.x/community/contact.md diff --git a/home/versioned_docs/version-v1.6.x/community/contribution.md b/home/versioned_docs/version-1.6.x/community/contribution.md similarity index 99% rename from home/versioned_docs/version-v1.6.x/community/contribution.md rename to home/versioned_docs/version-1.6.x/community/contribution.md index c17e5fabc07..3655fe8a8c5 100644 --- a/home/versioned_docs/version-v1.6.x/community/contribution.md +++ b/home/versioned_docs/version-1.6.x/community/contribution.md @@ -85,7 +85,7 @@ Of course, if you have a good idea, you can also propose it directly on GitHub D 2. Then download the code locally with git command: ```shell - git clone git@github.com:${YOUR_USERNAME}/hertzbeat.git #Recommended + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended ``` 3. After the download is complete, please refer to the getting started guide or README file of the target repository to initialize the project. diff --git a/home/versioned_docs/version-v1.6.x/community/development.md b/home/versioned_docs/version-1.6.x/community/development.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/community/development.md rename to home/versioned_docs/version-1.6.x/community/development.md diff --git a/home/versioned_docs/version-v1.6.x/community/document.md b/home/versioned_docs/version-1.6.x/community/document.md similarity index 94% rename from home/versioned_docs/version-v1.6.x/community/document.md rename to home/versioned_docs/version-1.6.x/community/document.md index d0e33a972e7..946da59b450 100644 --- a/home/versioned_docs/version-v1.6.x/community/document.md +++ b/home/versioned_docs/version-1.6.x/community/document.md @@ -40,8 +40,8 @@ This website is compiled using node, using Docusaurus framework components 1. Download and install nodejs (version 18.8.0) 2. Clone the code to the local `git clone git@github.com:apache/hertzbeat.git` 3. In `home` directory run `npm install` to install the required dependent libraries. -4. In `home` directory run `npm run start`, you can visit to view the English mode preview of the site -5. In `home` directory run `npm run start-zh-cn`, you can visit to view the Chinese mode preview of the site +4. In `home` directory run `npm run start`, you can visit [http://localhost:3000](http://localhost:3000) to view the English mode preview of the site +5. In `home` directory run `npm run start-zh-cn`, you can visit [http://localhost:3000](http://localhost:3000) to view the Chinese mode preview of the site 6. To generate static website resource files, run `npm run build`. The static resources of the build are in the build directory. ## Document Format Inspection diff --git a/home/versioned_docs/version-v1.6.x/community/how-to-release.md b/home/versioned_docs/version-1.6.x/community/how-to-release.md similarity index 83% rename from home/versioned_docs/version-v1.6.x/community/how-to-release.md rename to home/versioned_docs/version-1.6.x/community/how-to-release.md index 0da7b084d11..2fcb93226c9 100644 --- a/home/versioned_docs/version-v1.6.x/community/how-to-release.md +++ b/home/versioned_docs/version-1.6.x/community/how-to-release.md @@ -49,10 +49,10 @@ What keysize do you want? (3072) 4096 # Please enter 4096 here Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire - = key expires in n days -w = key expires in n weeks -m = key expires in n months -y = key expires in n years +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years Key is valid for? (0) 0 # Please enter 0 Key does not expire at all Is this correct? (y/N) y # Please enter y here @@ -63,7 +63,7 @@ Real name: muchunjin # Please enter 'gpg real name' Email address: muchunjin@apache.org # Please enter your apache email address here Comment: apache key # Please enter some comments here You selected this USER-ID: - "muchunjin (apache key) " + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here We need to generate a lot of random bytes. It is a good idea to perform @@ -79,7 +79,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ # Here you need to re-enter the password in the previous step. @@ -88,7 +88,7 @@ generator a better chance to gain enough entropy. │ │ │ Passphrase: _______________________________________ │ │ │ -│ │ +│ `` `` │ └─────────────────────────────────────────────────────┘ gpg: key ACFB69E705016886 marked as ultimately trusted gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' @@ -96,7 +96,7 @@ public and secret key created and signed. pub rsa4096 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid muchunjin (apache key) +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096 2023-05-01 [E] ``` @@ -110,7 +110,7 @@ $ gpg --keyid-format SHORT --list-keys ------------------------ pub rsa4096/05016886 2023-05-01 [SC] 85778A4CE4DD04B7E07813ABACFB69E705016886 -uid [ultimate] muchunjin (apache key) +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) sub rsa4096/0C5A4E1C 2023-05-01 [E] # Send public key to keyserver via key id @@ -124,17 +124,17 @@ Verify whether it is synchronized to the public network, it will take about a mi ```shell $ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success -gpg: key ACFB69E705016886: "muchunjin (apache key) " not changed +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed gpg: Total number processed: 1 gpg: unchanged: 1 ``` -Or enter address in the browser, enter the name of the key and click 'Search key' to search if existed. +Or enter [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) address in the browser, enter the name of the key and click 'Search key' to search if existed. #### 2.4 Add the gpg public key to the KEYS file of the Apache SVN project repo -- Apache HertzBeat Branch Dev -- Apache HertzBeat Branch Release +- Apache HertzBeat Branch Dev [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat Branch Release [https://dist.apache.org/repos/dist/release/incubator/hertzbeat](https://dist.apache.org/repos/dist/release/incubator/hertzbeat) ##### 2.4.1 Add public key to KEYS in dev branch @@ -170,7 +170,7 @@ $ svn ci -m "add gpg key for muchunjin" ### Build Package -#### 3.1 Based on the master branch, create a release-${release_version}-rcx branch, such as release-1.6.0-rc1, And create a tag named v1.6.0-rc1 based on the release-1.6.0-rc1 branch, and set this tag as pre-release +#### 3.1 Based on the master branch, create a release-`release_version`-rcx branch, such as release-1.6.0-rc1, And create a tag named v1.6.0-rc1 based on the release-1.6.0-rc1 branch, and set this tag as pre-release ```shell git checkout master @@ -277,15 +277,15 @@ $ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done apache-hertzbeat-1.6.0-incubating-src.tar.gz gpg: Signature made Tue May 2 12:16:35 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat_2.11-1.6.0-incubating-bin.tar.gz gpg: Signature made Tue May 2 12:16:36 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: Good signature from "muchunjin (apache key) " [ultimate] +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] apache-hertzbeat_2.12-1.6.0-incubating-bin.tar.gz gpg: Signature made Tue May 2 12:16:37 2023 CST gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 -gpg: BAD signature from "muchunjin (apache key) " [ultimate] +gpg: BAD signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] # Verify SHA512 $ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done @@ -313,7 +313,7 @@ svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat - Copy the material package to the dev directory -Create a version number directory and name it in the form of ${release_version}-${RC_version}. RC_version starts from 1, that is, the candidate version starts from RC1. During the release process, there is a problem that causes the vote to fail. +Create a version number directory and name it in the form of `release_version`-`RC_version`. RC_version starts from 1, that is, the candidate version starts from RC1. During the release process, there is a problem that causes the vote to fail. If it needs to be corrected, it needs to iterate the RC version , the RC version number needs to be +1. For example: Vote for version 1.6.0-RC1. If the vote passes without any problems, the RC1 version material will be released as the final version material. If there is a problem (when the hertzbeat/incubator community votes, the voters will strictly check various release requirements and compliance issues) and need to be corrected, then re-initiate the vote after the correction, and the candidate version for the next vote is 1.6.0- RC2. @@ -341,7 +341,7 @@ svn commit -m "release for HertzBeat 1.6.0" - Check Apache SVN Commit Results -> Visit the address in the browser, check if existed the new material package +> Visit the address [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) in the browser, check if existed the new material package ## 4. Enter the community voting stage @@ -349,7 +349,7 @@ svn commit -m "release for HertzBeat 1.6.0" Send a voting email in the community requires at least three `+1` and no `-1`. -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat 1.6.0 rc1
> `Body`: @@ -405,7 +405,7 @@ Thanks! After 72 hours, the voting results will be counted, and the voting result email will be sent, as follows. -> `Send to`:
+> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -434,14 +434,14 @@ Best, ChunJin Mu ``` -One item of the email content is `Vote thread`, and the link is obtained here: +One item of the email content is `Vote thread`, and the link is obtained here: [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) #### 3.2 Send Incubator Community voting mail Send a voting email in the incubator community requires at least three `+1` and no `-1`. -> `Send to`:
-> `cc`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)、[private@hertzbeat.apache.org](mailto:private@hertzbeat.apache.org)
> `Title`: [VOTE] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -495,7 +495,7 @@ ChunJin Mu If there is no -1 after 72 hours, reply to the email as follows -> `Send to`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
> `Body`: ```text @@ -507,7 +507,7 @@ Chunjin Mu Then the voting results will be counted, and the voting result email will be sent, as follows. -> `Send to`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat 1.6.0-rc1
> `Body`: @@ -533,7 +533,7 @@ Best, ChunJin Mu ``` -One item of the email content is `Vote thread`, and the link is obtained here: +One item of the email content is `Vote thread`, and the link is obtained here: [https://lists.apache.org/list.html?general@incubator.apache.org](https://lists.apache.org/list.html?general@incubator.apache.org) Wait a day to see if the tutor has any other comments, if not, send the following announcement email @@ -547,10 +547,10 @@ svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.6.0-RC1 https://dist.a #### 4.2 Add the new version download address to the official website - - +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) -Open the official website address to see if there is a new version of the download +Open the official website address [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) to see if there is a new version of the download > It should be noted that the download link may take effect after an hour, so please pay attention to it. @@ -583,8 +583,8 @@ The rename the release-1.6.0-rc1 branch to release-1.6.0. #### 4.5 Send new version announcement email -> `Send to`:
-> `cc`:
+> `Send to`: [general@incubator.apache.org](mailto:general@incubator.apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
> `Title`: [ANNOUNCE] Apache HertzBeat 1.6.0 released
> `Body`: diff --git a/home/versioned_docs/version-v1.6.x/community/how-to-verify.md b/home/versioned_docs/version-1.6.x/community/how-to-verify.md similarity index 82% rename from home/versioned_docs/version-v1.6.x/community/how-to-verify.md rename to home/versioned_docs/version-1.6.x/community/how-to-verify.md index 9f99406a870..6ee4622f161 100644 --- a/home/versioned_docs/version-v1.6.x/community/how-to-verify.md +++ b/home/versioned_docs/version-1.6.x/community/how-to-verify.md @@ -8,7 +8,7 @@ sidebar_position: 4 For detailed check list, please refer to the official [check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) -Version content accessible in browser +Version content accessible in browser [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) ### 1. Download the candidate version @@ -22,9 +22,9 @@ If the network is poor, downloading may be time-consuming. The download is compl ```shell #If there is svn locally, you can clone to the local -$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/ +$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ #or download the material file directly -$ wget https://dist.apache.org/repos/dist/dev/hertzbeat/${release_version}-${rc_version}/xxx.xxx +$ wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx ``` ### 2. Verify that the uploaded version is compliant @@ -125,10 +125,10 @@ check as follows: > If the binary/web-binary package is uploaded, check the binary package. -Unzip `apache-hertzbeat-${release_version}-incubating-src.tar.gz` +Unzip `apache-hertzbeat-`release_version`-incubating-src.tar.gz` ```shell -cd apache-hertzbeat-${release_version}-incubating-src +cd apache-hertzbeat-`release_version`-incubating-src ``` compile the source code: [Build HertzBeat Binary Package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) @@ -152,13 +152,13 @@ If you initiate a posting vote, you can refer to this response example to reply When replying to the email, you must bring the information that you have checked by yourself. Simply replying to `+1 approve` is invalid. -When PPMC votes in the hertzbeat community, Please bring the binding suffix to indicate that it has a binding vote for the vote in the hertzbeat community, and it is convenient to count the voting results. +When PPMC votes in the [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) hertzbeat community, Please bring the binding suffix to indicate that it has a binding vote for the vote in the hertzbeat community, and it is convenient to count the voting results. -When IPMC votes in the incubator community. Please bring the binding suffix to indicate that the voting in the incubator community has a binding vote, which is convenient for counting the voting results. +When IPMC votes in the [general@incubator.apache.org](mailto:general@incubator.apache.org) incubator community. Please bring the binding suffix to indicate that the voting in the incubator community has a binding vote, which is convenient for counting the voting results. :::caution -If you have already voted on , you can take it directly to the incubator community when you reply to the vote, such as: +If you have already voted on [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), you can take it directly to the incubator community when you reply to the vote, such as: ```html //Incubator community voting, only IPMC members have binding binding,PPMC needs to be aware of binding changes diff --git a/home/versioned_docs/version-v1.6.x/community/mailing_lists.md b/home/versioned_docs/version-1.6.x/community/mailing_lists.md similarity index 74% rename from home/versioned_docs/version-v1.6.x/community/mailing_lists.md rename to home/versioned_docs/version-1.6.x/community/mailing_lists.md index ef1a0a20329..938b1b5160b 100644 --- a/home/versioned_docs/version-v1.6.x/community/mailing_lists.md +++ b/home/versioned_docs/version-1.6.x/community/mailing_lists.md @@ -34,7 +34,7 @@ Before you post anything to the mailing lists, be sure that you already **subscr | List Name | Address | Subscribe | Unsubscribe | Archive | |--------------------|--------------------------|--------------------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------| -| **Developer List** | | [subscribe](mailto:dev-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:dev-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | +| **Developer List** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [subscribe](mailto:dev-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:dev-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | ### Notification List @@ -42,16 +42,16 @@ Before you post anything to the mailing lists, be sure that you already **subscr | List Name | Address | Subscribe | Unsubscribe | Archive | |-----------------------|------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------| -| **Notification List** | | [subscribe](mailto:notifications-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | +| **Notification List** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [subscribe](mailto:notifications-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | ## Steps for Subscription Sending a subscription email is also very simple. The steps are as follows: - 1、**Subscribe**: Click the **subscribe** button in the above table, and it redirects to your mail client. The subject and content are arbitrary. - After that, you will receive a confirmation email from (if not received, please confirm whether the email is automatically classified as SPAM, promotion email, subscription email, etc.). + After that, you will receive a confirmation email from [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) (if not received, please confirm whether the email is automatically classified as SPAM, promotion email, subscription email, etc.). - 2、**Confirm**: Reply directly to the confirmation email, or click on the link in the email to reply quickly. The subject and content are arbitrary. -- 3、**Welcome**: After completing the above steps, you will receive a welcome email with the subject WELCOME to , and you have successfully subscribed to the Apache HertzBeat mailing list. +- 3、**Welcome**: After completing the above steps, you will receive a welcome email with the subject WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and you have successfully subscribed to the Apache HertzBeat mailing list. ## Post Plain Text Mails diff --git a/home/versioned_docs/version-v1.6.x/community/new_committer_process.md b/home/versioned_docs/version-1.6.x/community/new_committer_process.md similarity index 90% rename from home/versioned_docs/version-v1.6.x/community/new_committer_process.md rename to home/versioned_docs/version-1.6.x/community/new_committer_process.md index 6670d357198..36a6187bed5 100644 --- a/home/versioned_docs/version-v1.6.x/community/new_committer_process.md +++ b/home/versioned_docs/version-1.6.x/community/new_committer_process.md @@ -69,17 +69,17 @@ NEW_COMMITTER_NAME This Must Be Public Name, Not Github Name Or Id. ```text To: private@hertzbeat.apache.org -Subject: [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hi HertzBeat PPMC, -This is a formal vote about inviting ${NEW_COMMITTER_NAME} as our community new committer. +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. Work list: https://github.com/apache/hertzbeat/commits?author=xxx -Here is the list of ${NEW_COMMITTER_NAME}'s contributions in HertzBeat Community: +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: > [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) > @@ -96,7 +96,7 @@ Submitted Issues (18 commits) Please vote: -+1: I support this proposal and will welcome ${NEW_COMMITTER_NAME} as a committer. ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. +0: I don't care. -1: I object to this proposal and here are my reasons. @@ -117,7 +117,7 @@ Note that, Voting ends one week from today, i.e. ```text To: private@hertzbeat.apache.org -Subject: [RESULT] [VOTE] New committer: ${NEW_COMMITTER_NAME} +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` ``` ```text @@ -137,13 +137,13 @@ The vote is ***successful/not successful*** ### Committer Invite Template ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org -Subject: Invitation to become HertzBeat committer: ${NEW_COMMITTER_NAME} +Subject: Invitation to become HertzBeat committer: `NEW_COMMITTER_NAME` ``` ```text -Hello ${NEW_COMMITTER_NAME}, +Hello `NEW_COMMITTER_NAME`, The HertzBeat Project Management Committee (PMC) hereby offers you committer privileges to the project. @@ -216,7 +216,7 @@ establishing you as a committer. ### Committer Accept Template ```text -To: ${NEW_COMMITTER_EMAIL} +To: `NEW_COMMITTER_EMAIL` Cc: private@hertzbeat.apache.org Subject: Re: invitation to become HertzBeat committer ``` @@ -266,18 +266,18 @@ The Apache HertzBeat PPMC ### Announce New Committer Template ```text -To: dev@hertzbeat.apache.org, ${NEW_COMMITTER_EMAIL} -Subject: [ANNOUNCE] New committer: ${NEW_COMMITTER_NAME} +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` ``` ```text Hello Community, The Podling Project Management Committee (PPMC) for Apache HertzBeat -has invited ${NEW_COMMITTER_NAME} to become a committer and we are pleased to +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to announce that he has accepted. -${NEW_COMMITTER_NAME} is active in the Apache HertzBeat community, hope to see your +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your further interactions with the community! Thanks for your contributions. diff --git a/home/versioned_docs/version-1.6.x/community/new_pmc_member_process.md b/home/versioned_docs/version-1.6.x/community/new_pmc_member_process.md new file mode 100644 index 00000000000..b1f90a7cae5 --- /dev/null +++ b/home/versioned_docs/version-1.6.x/community/new_pmc_member_process.md @@ -0,0 +1,284 @@ +--- +id: 'new_pmc_ember_process' +title: 'New PPMC Member Process' +sidebar_position: 5 +--- + + + +[Apache New Committer Guideline](https://community.apache.org/newcommitter.html#new-committer-process) + +## The process of new PPMC member + +- Call a vote in mailing `private@hertzbeat.apache.org` + + see **PMC Member Vote Template** + +- Close the vote + + see **Close Vote Template** + +- Board Approval of new PPMC member + + see **Board Approval of new PPMC member** + +- If the result is positive, invite the new PPMC member + + see **PMC member Invite Template** + +- If accept, then: Accept the PPMC member + + see **PMC Member Accept Template** + +- Notify the PPMC member of completion + + see **PMC Member Done Template** + +- Announce the new PPMC member + + see **PMC Member Announce Template** + +## Template + +Note that, there are three placeholder in template should be replaced before using + +- NEW_PMC_NAME +- NEW_PMC_EMAIL +- NEW_PMC_APACHE_NAME + +### PPMC Member Vote Template + +```text +To: private@hertzbeat.apache.org +Subject: [VOTE] New PPMC member candidate: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat PPMC, + +This is a formal vote about inviting `NEW_PMC_NAME` as our new PPMC member. + +${Work list}[1] + +[1] https://github.com/apache/hertzbeat/commits?author=`NEW_PMC_NAME` +``` + +Note that, Voting ends one week from today, i.e. [midnight UTC on YYYY-MM-DD](https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD) +[Apache Voting Guidelines](https://community.apache.org/newcommitter.html) + +### Close Vote Template + +```text +To: private@hertzbeat.apache.org +Subject: [RESULT] [VOTE] New PPMC member: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat PPMC, + +The vote has now closed. The results are: + +Binding Votes: + ++1 [TOTAL BINDING +1 VOTES] + 0 [TOTAL BINDING +0/-0 VOTES] +-1 [TOTAL BINDING -1 VOTES] + +The vote is ***successful/not successful*** +``` + +### Board Approval of new PPMC member Template + +```text +To: board@apache.org +Cc: private@``.apache.org +Subject: [NOTICE] `NEW_PMC_NAME` for HertzBeat PPMC member +``` + +```text +HertzBeat proposes to invite `NEW_PMC_NAME` to join the PMC. + +The vote result is available here: https://lists.apache.org/... +``` + +[Apache New Pmc Guide](https://www.apache.org/dev/pmc.html#newpmc) + +### PPMC Member Invite Template + +```text +To: `NEW_PMC_EMAIL` +Cc: private@hertzbeat.apache.org +Subject: Invitation to become HertzBeat PPMC member: `NEW_PMC_NAME` +``` + +```text +Hello `NEW_PMC_NAME`, + +The HertzBeat Project Management Committee (PMC) +hereby offers you committer privileges to the project +as well as membership in the PMC. +These privileges are offered on the understanding that +you'll use them reasonably and with common sense. +We like to work on trust rather than unnecessary constraints. + +Being a PPMC member enables you to guide the direction of the project. + +Being a PPMC member does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will +probably find that you spend more time here. + +Of course, you can decline and instead remain as a +contributor, participating as you do now. + +A. This personal invitation is a chance for you to +accept or decline in private. Either way, please +let us know in reply to the private@hertzbeat.apache.org +address only. + +B. If you accept, the next step is to register an iCLA: + 1. Details of the iCLA and the forms are found + through this link: https://www.apache.org/licenses/#clas + + 2. Instructions for its completion and return to + the Secretary of the ASF are found at + https://www.apache.org/licenses/#submitting + + 3. When you transmit the completed iCLA, request + to notify the Apache HertzBeat and choose a + unique Apache ID. Look to see if your preferred + ID is already taken at + https://people.apache.org/committer-index.html + This will allow the Secretary to notify the PPMC + when your iCLA has been recorded. + +When recording of your iCLA is noted, you will +receive a follow-up message with the next steps for +establishing you as a PPMC member. +``` + +### PPMC Member Accept Template + +```text +To: `NEW_PMC_EMAIL` +Cc: private@hertzbeat.apache.org +Subject: Re: invitation to become HertzBeat PPMC member +``` + +```text +Welcome. Here are the next steps in becoming a project PMC. After that +we will make an announcement to the dev@hertzbeat.apache.org list. + +You need to send a Contributor License Agreement to the ASF. +Normally you would send an Individual CLA. If you also make +contributions done in work time or using work resources, +see the Corporate CLA. Ask us if you have any issues. +https://www.apache.org/licenses/#clas. + +You need to choose a preferred ASF user name and alternatives. +In order to ensure it is available you can view a list of taken IDs at +https://people.apache.org/committer-index.html + +Please notify us when you have submitted the CLA and by what means +you did so. This will enable us to monitor its progress. + +We will arrange for your Apache user account when the CLA has +been recorded. + +After that is done, please make followup replies to the dev@hertzbeat.apache.org list. +We generally discuss everything there and keep the +private@hertzbeat.apache.org list for occasional matters which must be private. + +The developer section of the website describes roles within the ASF and provides other +resources: + https://www.apache.org/foundation/how-it-works.html + https://www.apache.org/dev/ + +The incubator also has some useful information for new PMC +in incubating projects: + https://incubator.apache.org/guides/committer.html + https://incubator.apache.org/guides/ppmc.html + +Just as before you became a PPMC member, participation in any ASF community +requires adherence to the ASF Code of Conduct: + https://www.apache.org/foundation/policies/conduct.html + +Yours, +The Apache HertzBeat PPMC +``` + +### PPMC Member Done Template + +```text +To: private@hertzbeat.apache.org, `NEW_PMC_EMAIL` +Subject: account request: `NEW_PMC_NAME` +``` + +```text +`NEW_PMC_EMAIL`, as you know, the ASF Infrastructure has set up your +committer account with the username '`NEW_PMC_APACHE_NAME`'. + +Please follow the instructions to set up your SSH, +svn password, svn configuration, email forwarding, etc. +https://www.apache.org/dev/#committers + +You have commit access to specific sections of the +ASF repository, as follows: + +The general "committers" at: + https://svn.apache.org/repos/private/committers + +If you have any questions during this phase, then please +see the following resources: + +Apache developer's pages: https://www.apache.org/dev/ +Incubator committer guide: https://incubator.apache.org/guides/committer.html + +Naturally, if you don't understand anything be sure to ask us on the dev@hertzbeat.apache.org mailing list. +Documentation is maintained by volunteers and hence can be out-of-date and incomplete - of course +you can now help fix that. + +A PPMC member will announce your election to the dev list soon. +``` + +### PPMC Member Announce Template + +```text +To: dev@hertzbeat.apache.org +[ANNONCE] New PPMC member: `NEW_PMC_NAME` +``` + +```text +Hi HertzBeat Community, + +The Podling Project Management Committee (PPMC) for Apache HertzBeat +has invited `NEW_PMC_NAME` to become our PPMC member and +we are pleased to announce that he has accepted. + +### add specific details here ### + +Please join me in congratulating `NEW_PMC_NAME`! + +Being a committer enables easier contribution to the +project since there is no need to go via the patch +submission process. This should enable better productivity. +A PPMC member helps manage and guide the direction of the project. + +Thanks, +On behalf of the Apache HertzBeat PPMC +``` diff --git a/home/versioned_docs/version-v1.6.x/community/submit-code.md b/home/versioned_docs/version-1.6.x/community/submit-code.md similarity index 94% rename from home/versioned_docs/version-v1.6.x/community/submit-code.md rename to home/versioned_docs/version-1.6.x/community/submit-code.md index 4b5f5dacf42..c58670ef2f6 100644 --- a/home/versioned_docs/version-v1.6.x/community/submit-code.md +++ b/home/versioned_docs/version-1.6.x/community/submit-code.md @@ -20,7 +20,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> -* First from the remote repository fork a copy of the code into your own repository +* First from the remote repository [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) fork a copy of the code into your own repository * The remote dev and merge branch is `master`. diff --git a/home/versioned_docs/version-v1.6.x/download.md b/home/versioned_docs/version-1.6.x/download.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/download.md rename to home/versioned_docs/version-1.6.x/download.md index 5b27aa59888..fc2fea7bb8a 100644 --- a/home/versioned_docs/version-v1.6.x/download.md +++ b/home/versioned_docs/version-1.6.x/download.md @@ -30,8 +30,8 @@ Previous releases of HertzBeat may be affected by security issues, please use th > Apache HertzBeat™ provides a docker image for each release. You can pull the image from the [Docker Hub](https://hub.docker.com/r/apache/hertzbeat). -- HertzBeat -- HertzBeat Collector +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) ## All Archived Releases diff --git a/home/versioned_docs/version-1.6.x/help/activemq.md b/home/versioned_docs/version-1.6.x/help/activemq.md new file mode 100644 index 00000000000..17b5248feef --- /dev/null +++ b/home/versioned_docs/version-1.6.x/help/activemq.md @@ -0,0 +1,145 @@ +--- +id: activemq +title: Monitoring Apache ActiveMQ +sidebar_label: Apache ActiveMQ +keywords: [open source monitoring tool, monitoring Apache ActiveMQ metrics] +--- + +> Monitoring the running status of Apache ActiveMQ message middleware, nodes, topics and other related metrics. + +**Use Protocol: JMX** + +### Pre-monitoring Operations + +> You need to enable the `JMX` service on ActiveMQ, HertzBeat uses the JMX protocol to collect metrics from ActiveMQ. + +1. Modify the `conf/activemq.xml` file in the installation directory to enable JMX + + > Add `userJmx="true"` attribute in `broker` tag + + ```xml + + + + ``` + +2. Modify the `bin/env` file in the installation directory, configure the JMX port IP, etc. + + The original configuration information will be as follows + + ```text + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" + ``` + + Update to the following configuration, ⚠️ pay attention to modify `local external IP` + + ```text + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=`ACTIVEMQ_CONF`/jmx.password" + # ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=`ACTIVEMQ_CONF`/jmx.access" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=11099" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.authenticate=false" + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=本机对外IP" + + ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote" + ``` + +3. Restart the ACTIVEMQ service, and add the corresponding ActiveMQ monitoring in HertzBeat. The parameters use the IP port configured by JMX. + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| JMX port | The HTTP port provided by JMX, the default is 11099. | +| JMX URL | Optional, customize the JMX URL connection | +| Username | Username used for authentication | +| password | password used for authentication | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect Metrics + +#### metrics: broker + +| Metric Name | Unit | Description | +|-------------------------|------|-----------------------------------------------------------------------| +| BrokerName | None | The name of the broker. | +| BrokerVersion | None | The version of the broker. | +| Uptime | None | Uptime of the broker. | +| UptimeMillis | ms | Uptime of the broker in milliseconds. | +| Persistent | None | Messages are synchronized to disk. | +| MemoryPercentUsage | % | Percent of memory limit used. | +| StorePercentUsage | % | Percent of store limit used. | +| TempPercentUsage | % | Percent of temp limit used. | +| CurrentConnectionsCount | None | Attribute exposed for management | +| TotalConnectionsCount | None | Attribute exposed for management | +| TotalEnqueueCount | None | Number of messages that have been sent to the broker. | +| TotalDequeueCount | None | Number of messages that have been acknowledged on the broker. | +| TotalConsumerCount | None | Number of message consumers subscribed to destinations on the broker. | +| TotalProducerCount | None | Number of message producers active on destinations on the broker. | +| TotalMessageCount | None | Number of unacknowledged messages on the broker. | +| AverageMessageSize | None | Average message size on this broker | +| MaxMessageSize | None | Max message size on this broker | +| MinMessageSize | None | Min message size on this broker | + +#### metrics: topic + +| Metric Name | Unit | Description | +|--------------------|------|-------------------------------------------------------------------------------------------| +| Name | None | Name of this destination. | +| MemoryLimit | MB | Memory limit, in bytes, used by undelivered messages before paging to temporary storage. | +| MemoryPercentUsage | None | The percentage of the memory limit used | +| ProducerCount | None | Number of producers attached to this destination | +| ConsumerCount | None | Number of consumers subscribed to this destination. | +| EnqueueCount | None | Number of messages that have been sent to the destination. | +| DequeueCount | None | Number of messages that has been acknowledged (and removed) from the destination. | +| ForwardCount | None | Number of messages that have been forwarded (to a networked broker) from the destination. | +| InFlightCount | None | Number of messages that have been dispatched to, but not acknowledged by, consumers. | +| DispatchCount | None | Number of messages that has been delivered to consumers, including those not acknowledged | +| ExpiredCount | None | Number of messages that have been expired. | +| StoreMessageSize | B | The memory size of all messages in this destination's store. | +| AverageEnqueueTime | ms | Average time a message was held on this destination. | +| MaxEnqueueTime | ms | The longest time a message was held on this destination | +| MinEnqueueTime | ms | The shortest time a message was held on this destination | +| TotalBlockedTime | ms | Total time (ms) messages have been blocked by flow control | +| AverageMessageSize | B | Average message size on this destination | +| MaxMessageSize | B | Max message size on this destination | +| MinMessageSize | B | Min message size on this destination | + +#### metrics: memory_pool + +| Metric Name | Unit | Description | +|-------------|------|--------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### metrics: class_loading + +| Metric Name | Unit | Description | +|-----------------------|------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### metrics: thread + +| Metric Name | Unit | Description | +|-------------------------|------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-v1.6.x/help/ai_config.md b/home/versioned_docs/version-1.6.x/help/ai_config.md similarity index 78% rename from home/versioned_docs/version-v1.6.x/help/ai_config.md rename to home/versioned_docs/version-1.6.x/help/ai_config.md index f6c704646e7..46742f5bb97 100644 --- a/home/versioned_docs/version-v1.6.x/help/ai_config.md +++ b/home/versioned_docs/version-1.6.x/help/ai_config.md @@ -23,15 +23,15 @@ keywords: [AI] |-----------------------|-----------------------------------------------------|-----------------------------------------------------------------| | type | zhiPu (must be exactly the same as example) | | | model | glm-4-0520、glm-4 、glm-4-air、glm-4-airx、 glm-4-flash | | -| api-key | xxxxx.xxxxxx | | +| api-key | xxxxx.xxxxxx | [https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys](https://open.bigmodel.cn/login?redirect=%2Fusercenter%2Fapikeys) | #### Alibaba AI | Name of the parameter | Example | Link | |-----------------------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------| | type | alibabaAi (must be exactly the same as example) | | -| model | qwen-turbo、qwen-plus、qwen-max、qwen-max-0428、qwen-max-0403、qwen-max-0107、qwen-max-longcontext | | -| api-key | xxxxxxxxxxx | | +| model | qwen-turbo、qwen-plus、qwen-max、qwen-max-0428、qwen-max-0403、qwen-max-0107、qwen-max-longcontext | [https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH](https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.4e0246c1RQFKMH) | +| api-key | xxxxxxxxxxx | [https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10](https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key?spm=a2c4g.11186623.0.i10) | #### Kimi AI @@ -39,18 +39,18 @@ keywords: [AI] |-----------------------|-------------------------------------------------|-----------------------------------------------| | type | kimiAi (must be exactly the same as example) | | | model | moonshot-v1-8k、moonshot-v1-32k、moonshot-v1-128k | | -| api-key | xxxxxxxxxxx | | +| api-key | xxxxxxxxxxx | [https://platform.moonshot.cn/console/api-keys](https://platform.moonshot.cn/console/api-keys) | #### sparkDesk AI -QuickStart: +QuickStart: [https://www.xfyun.cn/doc/platform/quickguide.html](https://www.xfyun.cn/doc/platform/quickguide.html) | Name of the parameter | Example | Link | |-----------------------|--------------------------------------------------|---------------------------------------| | type | sparkDesk (must be exactly the same as example) | | | model | general、generalv2、generalv3、generalv3.5、4.0Ultra | | -| api-key | xxxxxxxxxxx | | -| api-secret | xxxxxxxxxxx | | +| api-key | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | +| api-secret | xxxxxxxxxxx | [https://console.xfyun.cn/services/cbm](https://console.xfyun.cn/services/cbm) | | sparkDesk version | model | |-------------------|-------------| diff --git a/home/versioned_docs/version-v1.6.x/help/airflow.md b/home/versioned_docs/version-1.6.x/help/airflow.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/airflow.md rename to home/versioned_docs/version-1.6.x/help/airflow.md diff --git a/home/versioned_docs/version-v1.6.x/help/alarm_center.md b/home/versioned_docs/version-1.6.x/help/alarm_center.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alarm_center.md rename to home/versioned_docs/version-1.6.x/help/alarm_center.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_console.md b/home/versioned_docs/version-1.6.x/help/alert_console.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_console.md rename to home/versioned_docs/version-1.6.x/help/alert_console.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_dingtalk.md b/home/versioned_docs/version-1.6.x/help/alert_dingtalk.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_dingtalk.md rename to home/versioned_docs/version-1.6.x/help/alert_dingtalk.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_discord.md b/home/versioned_docs/version-1.6.x/help/alert_discord.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_discord.md rename to home/versioned_docs/version-1.6.x/help/alert_discord.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_email.md b/home/versioned_docs/version-1.6.x/help/alert_email.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_email.md rename to home/versioned_docs/version-1.6.x/help/alert_email.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_enterprise_wechat_app.md b/home/versioned_docs/version-1.6.x/help/alert_enterprise_wechat_app.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_enterprise_wechat_app.md rename to home/versioned_docs/version-1.6.x/help/alert_enterprise_wechat_app.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_feishu.md b/home/versioned_docs/version-1.6.x/help/alert_feishu.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_feishu.md rename to home/versioned_docs/version-1.6.x/help/alert_feishu.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_slack.md b/home/versioned_docs/version-1.6.x/help/alert_slack.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_slack.md rename to home/versioned_docs/version-1.6.x/help/alert_slack.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_smn.md b/home/versioned_docs/version-1.6.x/help/alert_smn.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_smn.md rename to home/versioned_docs/version-1.6.x/help/alert_smn.md diff --git a/home/versioned_docs/version-v1.6.x/help/alert_sms.md b/home/versioned_docs/version-1.6.x/help/alert_sms.md similarity index 99% rename from home/versioned_docs/version-v1.6.x/help/alert_sms.md rename to home/versioned_docs/version-1.6.x/help/alert_sms.md index 5903ca10812..eafbc38a2dc 100644 --- a/home/versioned_docs/version-v1.6.x/help/alert_sms.md +++ b/home/versioned_docs/version-1.6.x/help/alert_sms.md @@ -84,7 +84,7 @@ alerter: - Create a template with the following format: ```text - Monitor: ${instance}, Alert Level: ${priority}. Content: ${content} + Monitor: `instance`, Alert Level: `priority`. Content: `content` ``` - Submit the template for review diff --git a/home/versioned_docs/version-v1.6.x/help/alert_telegram.md b/home/versioned_docs/version-1.6.x/help/alert_telegram.md similarity index 90% rename from home/versioned_docs/version-v1.6.x/help/alert_telegram.md rename to home/versioned_docs/version-1.6.x/help/alert_telegram.md index c33d2b0c72b..f2923b847f2 100644 --- a/home/versioned_docs/version-v1.6.x/help/alert_telegram.md +++ b/home/versioned_docs/version-1.6.x/help/alert_telegram.md @@ -18,7 +18,7 @@ keywords: [open source monitoring tool, open source alerter, open source Telegra 2. Get the `User ID` of the recipient **Use the recipient account you want to notify to send a message to the newly created Bot account**, - Visit ```https://api.telegram.org/bot/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` + Visit ```https://api.telegram.org/bot``/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` ```json { diff --git a/home/versioned_docs/version-v1.6.x/help/alert_threshold.md b/home/versioned_docs/version-1.6.x/help/alert_threshold.md similarity index 95% rename from home/versioned_docs/version-v1.6.x/help/alert_threshold.md rename to home/versioned_docs/version-1.6.x/help/alert_threshold.md index 5cb38a9cc68..0491f66ccb9 100644 --- a/home/versioned_docs/version-v1.6.x/help/alert_threshold.md +++ b/home/versioned_docs/version-1.6.x/help/alert_threshold.md @@ -32,7 +32,7 @@ Configuration item details: - **Associated Monitors**:Apply this threshold rule to the specified monitoring object (support direct binding and label association). If not configured, it will be applied to all monitoring objects that meet this threshold type rule. - **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency. - **Trigger Count**: Set how many times the threshold must be triggered before the alert is actually triggered. -- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page. For example: `${app}.${metrics}.${metric} metric value is ${responseTime}, which is greater than 50 triggering the alert`. +- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page. For example: ``app`.`metrics`.`metric` metric value is `responseTime`, which is greater than 50 triggering the alert`. - **Bind Label**: Select the label we need to apply. If no label is selected, it will apply to all services corresponding to the set metric object. - **Bing Annotation**:Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm. - **Enable Alert**: Enable or disable this alert threshold configuration. diff --git a/home/versioned_docs/version-v1.6.x/help/alert_threshold_expr.md b/home/versioned_docs/version-1.6.x/help/alert_threshold_expr.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/alert_threshold_expr.md rename to home/versioned_docs/version-1.6.x/help/alert_threshold_expr.md index 0dcc65f396a..997294ea4dc 100644 --- a/home/versioned_docs/version-v1.6.x/help/alert_threshold_expr.md +++ b/home/versioned_docs/version-1.6.x/help/alert_threshold_expr.md @@ -21,7 +21,7 @@ sidebar_label: Threshold Trigger Expression | Greater than | obj1 > obj2 | Numeric, Time | Check if value is greater than | | Less than | obj1 < obj2 | Numeric, Time | Check if value is less than | | Greater than or Equal to | obj1 >= obj2 | Numeric, Time | Check if value is greater than or equal to | -| Less than or Equal to | obj1 <= obj2 | Numeric, Time | Check if value is less than or equal to | +| Less than or Equal to | `obj1 <= obj2` | Numeric, Time | Check if value is less than or equal to | | Not Equal to | obj1 != obj2 | Numeric, Time | Check if values are not equal | | Equal to | obj1 == obj2 | Numeric, Time | Check if values are equal | @@ -58,7 +58,7 @@ This variable is mainly used for calculations involving multiple instances. For `responseTime>=400` 2. API Monitoring -> Alert when response time is greater than 3000ms `responseTime>3000` -3. Overall Monitoring -> Alert when response time for URL (instance) path '' is greater than 200ms +3. Overall Monitoring -> Alert when response time for URL (instance) path '[https://baidu.com](https://baidu.com)' is greater than 200ms `equals(instance,"https://baidu.com")&&responseTime>200` 4. MYSQL Monitoring -> Alert when 'threads_running' metric under 'status' exceeds 7 `threads_running>7` diff --git a/home/versioned_docs/version-v1.6.x/help/alert_webhook.md b/home/versioned_docs/version-1.6.x/help/alert_webhook.md similarity index 97% rename from home/versioned_docs/version-v1.6.x/help/alert_webhook.md rename to home/versioned_docs/version-1.6.x/help/alert_webhook.md index 9d0db1f9ed3..0960ba545c6 100644 --- a/home/versioned_docs/version-v1.6.x/help/alert_webhook.md +++ b/home/versioned_docs/version-1.6.x/help/alert_webhook.md @@ -26,7 +26,7 @@ Content format:JSON ```json { "alarmId": 76456, - "target": "${target}", + "target": "`target`", "thresholdId": 33455, "priority": 0, "content": "udp_port monitoring availability alert, code is FAIL", @@ -54,7 +54,7 @@ Content format:JSON | status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | | times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | | triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | -| tags | example: {key1:value1} | +| tags | example: `{key1:value1}` | ### Webhook notification common issues diff --git a/home/versioned_docs/version-v1.6.x/help/alert_wework.md b/home/versioned_docs/version-1.6.x/help/alert_wework.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/alert_wework.md rename to home/versioned_docs/version-1.6.x/help/alert_wework.md diff --git a/home/versioned_docs/version-v1.6.x/help/almalinux.md b/home/versioned_docs/version-1.6.x/help/almalinux.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/almalinux.md rename to home/versioned_docs/version-1.6.x/help/almalinux.md diff --git a/home/versioned_docs/version-v1.6.x/help/api.md b/home/versioned_docs/version-1.6.x/help/api.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/api.md rename to home/versioned_docs/version-1.6.x/help/api.md diff --git a/home/versioned_docs/version-v1.6.x/help/bulletin.md b/home/versioned_docs/version-1.6.x/help/bulletin.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/bulletin.md rename to home/versioned_docs/version-1.6.x/help/bulletin.md diff --git a/home/versioned_docs/version-v1.6.x/help/centos.md b/home/versioned_docs/version-1.6.x/help/centos.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/centos.md rename to home/versioned_docs/version-1.6.x/help/centos.md diff --git a/home/versioned_docs/version-v1.6.x/help/clickhouse.md b/home/versioned_docs/version-1.6.x/help/clickhouse.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/clickhouse.md rename to home/versioned_docs/version-1.6.x/help/clickhouse.md diff --git a/home/versioned_docs/version-v1.6.x/help/collector.md b/home/versioned_docs/version-1.6.x/help/collector.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/collector.md rename to home/versioned_docs/version-1.6.x/help/collector.md diff --git a/home/versioned_docs/version-v1.6.x/help/debian.md b/home/versioned_docs/version-1.6.x/help/debian.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/debian.md rename to home/versioned_docs/version-1.6.x/help/debian.md diff --git a/home/versioned_docs/version-v1.6.x/help/deepseek.md b/home/versioned_docs/version-1.6.x/help/deepseek.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/deepseek.md rename to home/versioned_docs/version-1.6.x/help/deepseek.md diff --git a/home/versioned_docs/version-v1.6.x/help/dm.md b/home/versioned_docs/version-1.6.x/help/dm.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/dm.md rename to home/versioned_docs/version-1.6.x/help/dm.md diff --git a/home/versioned_docs/version-v1.6.x/help/dns.md b/home/versioned_docs/version-1.6.x/help/dns.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/dns.md rename to home/versioned_docs/version-1.6.x/help/dns.md diff --git a/home/versioned_docs/version-v1.6.x/help/docker.md b/home/versioned_docs/version-1.6.x/help/docker.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/docker.md rename to home/versioned_docs/version-1.6.x/help/docker.md diff --git a/home/versioned_docs/version-v1.6.x/help/doris_be.md b/home/versioned_docs/version-1.6.x/help/doris_be.md similarity index 97% rename from home/versioned_docs/version-v1.6.x/help/doris_be.md rename to home/versioned_docs/version-1.6.x/help/doris_be.md index d1e6ea51874..1fc2f332d4b 100644 --- a/home/versioned_docs/version-v1.6.x/help/doris_be.md +++ b/home/versioned_docs/version-1.6.x/help/doris_be.md @@ -142,14 +142,14 @@ keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS | Metric Name | Metric Unit | Metric help description | |-------|------|--------------------------------------------| | path | None | Specify data directory | -| value | Bytes | {path="/path1/"} represents the remaining disk space of the /path1 directory's disk. | +| value | Bytes | `{path="/path1/"}` represents the remaining disk space of the /path1 directory's disk. | #### Metric Set:doris_be_disks_total_capacity | Metric Name | Metric Unit | Metric help description | |-------|------|--------------------------------------------| | path | None | Specify data directory | -| value | Bytes | {path="/path1/"} represents the total disk space of the disk where the /path1 directory is located. | +| value | Bytes | `{path="/path1/"}` represents the total disk space of the disk where the /path1 directory is located. | #### Metric Set:doris_be_local_bytes_read_total diff --git a/home/versioned_docs/version-v1.6.x/help/doris_fe.md b/home/versioned_docs/version-1.6.x/help/doris_fe.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/doris_fe.md rename to home/versioned_docs/version-1.6.x/help/doris_fe.md diff --git a/home/versioned_docs/version-v1.6.x/help/dynamic_tp.md b/home/versioned_docs/version-1.6.x/help/dynamic_tp.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/dynamic_tp.md rename to home/versioned_docs/version-1.6.x/help/dynamic_tp.md diff --git a/home/versioned_docs/version-v1.6.x/help/elasticsearch.md b/home/versioned_docs/version-1.6.x/help/elasticsearch.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/elasticsearch.md rename to home/versioned_docs/version-1.6.x/help/elasticsearch.md diff --git a/home/versioned_docs/version-v1.6.x/help/euleros.md b/home/versioned_docs/version-1.6.x/help/euleros.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/euleros.md rename to home/versioned_docs/version-1.6.x/help/euleros.md diff --git a/home/versioned_docs/version-v1.6.x/help/flink.md b/home/versioned_docs/version-1.6.x/help/flink.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/flink.md rename to home/versioned_docs/version-1.6.x/help/flink.md diff --git a/home/versioned_docs/version-v1.6.x/help/flink_on_yarn.md b/home/versioned_docs/version-1.6.x/help/flink_on_yarn.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/flink_on_yarn.md rename to home/versioned_docs/version-1.6.x/help/flink_on_yarn.md diff --git a/home/versioned_docs/version-v1.6.x/help/freebsd.md b/home/versioned_docs/version-1.6.x/help/freebsd.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/freebsd.md rename to home/versioned_docs/version-1.6.x/help/freebsd.md diff --git a/home/versioned_docs/version-v1.6.x/help/ftp.md b/home/versioned_docs/version-1.6.x/help/ftp.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/ftp.md rename to home/versioned_docs/version-1.6.x/help/ftp.md diff --git a/home/versioned_docs/version-v1.6.x/help/fullsite.md b/home/versioned_docs/version-1.6.x/help/fullsite.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/fullsite.md rename to home/versioned_docs/version-1.6.x/help/fullsite.md diff --git a/home/versioned_docs/version-v1.6.x/help/grafana_dashboard.md b/home/versioned_docs/version-1.6.x/help/grafana_dashboard.md similarity index 74% rename from home/versioned_docs/version-v1.6.x/help/grafana_dashboard.md rename to home/versioned_docs/version-1.6.x/help/grafana_dashboard.md index 7c4b9cfbcbc..55f933c2395 100644 --- a/home/versioned_docs/version-v1.6.x/help/grafana_dashboard.md +++ b/home/versioned_docs/version-1.6.x/help/grafana_dashboard.md @@ -19,7 +19,7 @@ keywords: [Grafana, Historical Dashboard] ### enable Grafana embedded url -ref: +ref: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/) In the `Grafana` configuration file `grafana.ini`, set the `allow_embedding = true`. In the `Grafana` configuration file `grafana.ini`, set the `[auth.anonymous]` option to `true`. @@ -45,8 +45,8 @@ grafana: ### Upload Grafana monitor template json file in HertzBeat monitor In `HertzBeat`, when creating or editing a `Prometheus` type monitor, click Enable Grafana Templates and select the Grafana template json file to upload. -The monitor template json file can be downloaded at . -For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open , click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it. +The monitor template json file can be downloaded at [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/). +For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/), click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it. ![grafana-1.png](/img/docs/help/grafana-1.png) ### View Grafana historical charts diff --git a/home/versioned_docs/version-v1.6.x/help/greenplum.md b/home/versioned_docs/version-1.6.x/help/greenplum.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/greenplum.md rename to home/versioned_docs/version-1.6.x/help/greenplum.md diff --git a/home/versioned_docs/version-v1.6.x/help/guide.md b/home/versioned_docs/version-1.6.x/help/guide.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/guide.md rename to home/versioned_docs/version-1.6.x/help/guide.md diff --git a/home/versioned_docs/version-v1.6.x/help/hadoop.md b/home/versioned_docs/version-1.6.x/help/hadoop.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hadoop.md rename to home/versioned_docs/version-1.6.x/help/hadoop.md diff --git a/home/versioned_docs/version-v1.6.x/help/hbase_master.md b/home/versioned_docs/version-1.6.x/help/hbase_master.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hbase_master.md rename to home/versioned_docs/version-1.6.x/help/hbase_master.md diff --git a/home/versioned_docs/version-v1.6.x/help/hbase_regionserver.md b/home/versioned_docs/version-1.6.x/help/hbase_regionserver.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hbase_regionserver.md rename to home/versioned_docs/version-1.6.x/help/hbase_regionserver.md diff --git a/home/versioned_docs/version-v1.6.x/help/hdfs_datanode.md b/home/versioned_docs/version-1.6.x/help/hdfs_datanode.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hdfs_datanode.md rename to home/versioned_docs/version-1.6.x/help/hdfs_datanode.md diff --git a/home/versioned_docs/version-v1.6.x/help/hdfs_namenode.md b/home/versioned_docs/version-1.6.x/help/hdfs_namenode.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hdfs_namenode.md rename to home/versioned_docs/version-1.6.x/help/hdfs_namenode.md diff --git a/home/versioned_docs/version-v1.6.x/help/hive.md b/home/versioned_docs/version-1.6.x/help/hive.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hive.md rename to home/versioned_docs/version-1.6.x/help/hive.md diff --git a/home/versioned_docs/version-v1.6.x/help/huawei_switch.md b/home/versioned_docs/version-1.6.x/help/huawei_switch.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/huawei_switch.md rename to home/versioned_docs/version-1.6.x/help/huawei_switch.md diff --git a/home/versioned_docs/version-v1.6.x/help/hugegraph.md b/home/versioned_docs/version-1.6.x/help/hugegraph.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/hugegraph.md rename to home/versioned_docs/version-1.6.x/help/hugegraph.md diff --git a/home/versioned_docs/version-v1.6.x/help/iceberg.md b/home/versioned_docs/version-1.6.x/help/iceberg.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/iceberg.md rename to home/versioned_docs/version-1.6.x/help/iceberg.md diff --git a/home/versioned_docs/version-v1.6.x/help/imap.md b/home/versioned_docs/version-1.6.x/help/imap.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/imap.md rename to home/versioned_docs/version-1.6.x/help/imap.md diff --git a/home/versioned_docs/version-v1.6.x/help/influxdb.md b/home/versioned_docs/version-1.6.x/help/influxdb.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/influxdb.md rename to home/versioned_docs/version-1.6.x/help/influxdb.md diff --git a/home/versioned_docs/version-v1.6.x/help/influxdb_promql.md b/home/versioned_docs/version-1.6.x/help/influxdb_promql.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/influxdb_promql.md rename to home/versioned_docs/version-1.6.x/help/influxdb_promql.md diff --git a/home/versioned_docs/version-v1.6.x/help/iotdb.md b/home/versioned_docs/version-1.6.x/help/iotdb.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/iotdb.md rename to home/versioned_docs/version-1.6.x/help/iotdb.md diff --git a/home/versioned_docs/version-v1.6.x/help/ipmi.md b/home/versioned_docs/version-1.6.x/help/ipmi.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/ipmi.md rename to home/versioned_docs/version-1.6.x/help/ipmi.md diff --git a/home/versioned_docs/version-v1.6.x/help/issue.md b/home/versioned_docs/version-1.6.x/help/issue.md similarity index 92% rename from home/versioned_docs/version-v1.6.x/help/issue.md rename to home/versioned_docs/version-1.6.x/help/issue.md index baa62af2101..ab50871f86f 100644 --- a/home/versioned_docs/version-v1.6.x/help/issue.md +++ b/home/versioned_docs/version-1.6.x/help/issue.md @@ -19,7 +19,7 @@ sidebar_label: Common issues > The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. > When you install HertzBeat via DockerDocker root is enabled by default. No such problem. - > See + > See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) ### Docker Deployment common issues @@ -29,7 +29,7 @@ sidebar_label: Common issues > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` -2. **According to the process deploy,visit no interface** +2. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** Please refer to the following points to troubleshoot issues: > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. @@ -43,7 +43,7 @@ sidebar_label: Common issues ### Package Deployment common issues -1. **According to the process deploy,visit no interface** +1. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** Please refer to the following points to troubleshoot issues: > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. diff --git a/home/versioned_docs/version-1.6.x/help/jetty.md b/home/versioned_docs/version-1.6.x/help/jetty.md new file mode 100644 index 00000000000..92be2924c99 --- /dev/null +++ b/home/versioned_docs/version-1.6.x/help/jetty.md @@ -0,0 +1,94 @@ +--- +id: jetty +title: Monitoring Jetty Web Server +sidebar_label: Jetty Web Server +keywords: [open source monitoring tool, open source jetty web server monitoring tool, monitoring jetty metrics] +--- + +> Collect and monitor general performance metrics of Jetty application server + +**Usage protocol: JMX** + +### Pre-monitoring Operations + +> You need to enable the `JMX` service in the JVM application. HertzBeat uses the JMX protocol to collect metrics for the JVM. + +#### Jetty application server opens JMX protocol steps + +[Refer to official documentation](https://www.eclipse.org/jetty/documentation/jetty-10/operations-guide/index.html#og-jmx-remote) + +1. Start the JMX JMX-REMOTE module in Jetty + + ```shell + java -jar $JETTY_HOME/start.jar --add-module=jmx + java -jar $JETTY_HOME/start.jar --add-module=jmx-remote + ``` + + Successful command execution will create ``JETTY_BASE`/start.d/jmx-remote.ini` configuration file + +2. Edit the ``JETTY_BASE`/start.d/jmx-remote.ini` configuration file to modify the JMX IP port and other parameters. + + **`localhost` needs to be modified to expose the IP** + + ```text + ## The host/address to bind the RMI server to. + # jetty.jmxremote.rmiserverhost=localhost + + ## The port the RMI server listens to (0 means a random port is chosen). + # jetty.jmxremote.rmiserverport=1099 + + ## The host/address to bind the RMI registry to. + # jetty.jmxremote.rmiregistryhost=localhost + + ## The port the RMI registry listens to. + # jetty.jmxremote.rmiregistryport=1099 + + ## The host name exported in the RMI stub. + -Djava.rmi.server.hostname=localhost + ``` + +3. Restart Jetty Server. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-v1.6.x/help/jvm.md b/home/versioned_docs/version-1.6.x/help/jvm.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/jvm.md rename to home/versioned_docs/version-1.6.x/help/jvm.md index 477d9fbece1..1d59d025d41 100644 --- a/home/versioned_docs/version-v1.6.x/help/jvm.md +++ b/home/versioned_docs/version-1.6.x/help/jvm.md @@ -13,7 +13,7 @@ keywords: [open source monitoring tool, open source java jvm monitoring tool, mo 1. Add JVM `VM options` When Start Server ⚠️ customIP -Refer: +Refer: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) ```shell -Djava.rmi.server.hostname=customIP diff --git a/home/versioned_docs/version-v1.6.x/help/kafka.md b/home/versioned_docs/version-1.6.x/help/kafka.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/kafka.md rename to home/versioned_docs/version-1.6.x/help/kafka.md diff --git a/home/versioned_docs/version-v1.6.x/help/kafka_client.md b/home/versioned_docs/version-1.6.x/help/kafka_client.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/kafka_client.md rename to home/versioned_docs/version-1.6.x/help/kafka_client.md diff --git a/home/versioned_docs/version-v1.6.x/help/kafka_promql.md b/home/versioned_docs/version-1.6.x/help/kafka_promql.md similarity index 95% rename from home/versioned_docs/version-v1.6.x/help/kafka_promql.md rename to home/versioned_docs/version-1.6.x/help/kafka_promql.md index 203ef2bef4b..ef790ba1e61 100644 --- a/home/versioned_docs/version-v1.6.x/help/kafka_promql.md +++ b/home/versioned_docs/version-1.6.x/help/kafka_promql.md @@ -37,7 +37,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | @@ -46,7 +46,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | @@ -55,7 +55,7 @@ keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Ka | Metric Name | Metric Unit | Metric help description | |-------------|-------------|--------------------------------------| -| \_\_name__ | None | Metric name | +| __name__ | None | Metric name | | instance | None | Instance to which the metric belongs | | timestamp | None | Timestamp of metric collection | | value | None | Metric value | diff --git a/home/versioned_docs/version-v1.6.x/help/kingbase.md b/home/versioned_docs/version-1.6.x/help/kingbase.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/kingbase.md rename to home/versioned_docs/version-1.6.x/help/kingbase.md diff --git a/home/versioned_docs/version-v1.6.x/help/kubernetes.md b/home/versioned_docs/version-1.6.x/help/kubernetes.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/kubernetes.md rename to home/versioned_docs/version-1.6.x/help/kubernetes.md diff --git a/home/versioned_docs/version-v1.6.x/help/linux.md b/home/versioned_docs/version-1.6.x/help/linux.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/linux.md rename to home/versioned_docs/version-1.6.x/help/linux.md diff --git a/home/versioned_docs/version-v1.6.x/help/linux_script.md b/home/versioned_docs/version-1.6.x/help/linux_script.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/linux_script.md rename to home/versioned_docs/version-1.6.x/help/linux_script.md diff --git a/home/versioned_docs/version-v1.6.x/help/mariadb.md b/home/versioned_docs/version-1.6.x/help/mariadb.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/mariadb.md rename to home/versioned_docs/version-1.6.x/help/mariadb.md index 0f8d585449c..6bd75d08c48 100644 --- a/home/versioned_docs/version-v1.6.x/help/mariadb.md +++ b/home/versioned_docs/version-1.6.x/help/mariadb.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/versioned_docs/version-v1.6.x/help/memcached.md b/home/versioned_docs/version-1.6.x/help/memcached.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/memcached.md rename to home/versioned_docs/version-1.6.x/help/memcached.md index e933b471883..a1949f535cb 100644 --- a/home/versioned_docs/version-v1.6.x/help/memcached.md +++ b/home/versioned_docs/version-1.6.x/help/memcached.md @@ -30,7 +30,7 @@ STAT version 1.4.15 ... ``` -**There is help_doc: ** +**There is help_doc: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** ### Configuration parameter diff --git a/home/versioned_docs/version-v1.6.x/help/modbus.md b/home/versioned_docs/version-1.6.x/help/modbus.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/modbus.md rename to home/versioned_docs/version-1.6.x/help/modbus.md diff --git a/home/versioned_docs/version-v1.6.x/help/mongodb.md b/home/versioned_docs/version-1.6.x/help/mongodb.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/mongodb.md rename to home/versioned_docs/version-1.6.x/help/mongodb.md diff --git a/home/versioned_docs/version-v1.6.x/help/mongodb_atlas.md b/home/versioned_docs/version-1.6.x/help/mongodb_atlas.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/mongodb_atlas.md rename to home/versioned_docs/version-1.6.x/help/mongodb_atlas.md diff --git a/home/versioned_docs/version-v1.6.x/help/mqtt.md b/home/versioned_docs/version-1.6.x/help/mqtt.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/mqtt.md rename to home/versioned_docs/version-1.6.x/help/mqtt.md diff --git a/home/versioned_docs/version-v1.6.x/help/mysql.md b/home/versioned_docs/version-1.6.x/help/mysql.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/mysql.md rename to home/versioned_docs/version-1.6.x/help/mysql.md index 5da22ef2ddc..35d9b624ddf 100644 --- a/home/versioned_docs/version-v1.6.x/help/mysql.md +++ b/home/versioned_docs/version-1.6.x/help/mysql.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/versioned_docs/version-v1.6.x/help/nacos.md b/home/versioned_docs/version-1.6.x/help/nacos.md similarity index 58% rename from home/versioned_docs/version-v1.6.x/help/nacos.md rename to home/versioned_docs/version-1.6.x/help/nacos.md index eb4cb0b5e25..6b5f6f1f523 100644 --- a/home/versioned_docs/version-v1.6.x/help/nacos.md +++ b/home/versioned_docs/version-1.6.x/help/nacos.md @@ -54,41 +54,41 @@ More information see [Nacos monitor guide](https://nacos.io/en-us/docs/monitor-g | http_server_requests_seconds_sum | second | http requests time | | nacos_timer_seconds_sum | second | Nacos config notify time | | nacos_timer_seconds_count | none | Nacos config notify count | -| nacos_monitor{name='longPolling'} | none | Nacos config connection count | -| nacos_monitor{name='configCount'} | none | Nacos configuration file count | -| nacos_monitor{name='dumpTask'} | none | Nacos config dump task count | -| nacos_monitor{name='notifyTask'} | none | Nacos config notify task count | -| nacos_monitor{name='getConfig'} | none | Nacos config read configuration count | -| nacos_monitor{name='publish'} | none | Nacos config update configuration count | -| nacos_monitor{name='ipCount'} | none | Nacos naming ip count | -| nacos_monitor{name='domCount'} | none | Nacos naming domain count(1.x version) | -| nacos_monitor{name='serviceCount'} | none | Nacos naming domain count(2.x version) | -| nacos_monitor{name='failedPush'} | none | Nacos naming push fail count | -| nacos_monitor{name='avgPushCost'} | second | Nacos naming push cost time(average) | -| nacos_monitor{name='leaderStatus'} | none | Nacos naming if node is leader | -| nacos_monitor{name='maxPushCost'} | second | Nacos naming push cost time(max) | -| nacos_monitor{name='mysqlhealthCheck'} | none | Nacos naming mysql health check count | -| nacos_monitor{name='httpHealthCheck'} | none | Nacos naming http health check count | -| nacos_monitor{name='tcpHealthCheck'} | none | Nacos naming tcp health check count | +| nacos_monitor`{name="longPolling"}` | none | Nacos config connection count | +| nacos_monitor`{name="configCount"}` | none | Nacos configuration file count | +| nacos_monitor`{name="dumpTask"}` | none | Nacos config dump task count | +| nacos_monitor`{name="notifyTask"}` | none | Nacos config notify task count | +| nacos_monitor`{name="getConfig"}` | none | Nacos config read configuration count | +| nacos_monitor`{name="publish"}` | none | Nacos config update configuration count | +| nacos_monitor`{name="ipCount"}` | none | Nacos naming ip count | +| nacos_monitor`{name="domCount"}` | none | Nacos naming domain count(1.x version) | +| nacos_monitor`{name="serviceCount"}` | none | Nacos naming domain count(2.x version) | +| nacos_monitor`{name="failedPush"}` | none | Nacos naming push fail count | +| nacos_monitor`{name="avgPushCost"}` | second | Nacos naming push cost time(average) | +| nacos_monitor`{name="leaderStatus"}` | none | Nacos naming if node is leader | +| nacos_monitor`{name="maxPushCost"}` | second | Nacos naming push cost time(max) | +| nacos_monitor`{name="mysqlhealthCheck"}` | none | Nacos naming mysql health check count | +| nacos_monitor`{name="httpHealthCheck"}` | none | Nacos naming http health check count | +| nacos_monitor`{name="tcpHealthCheck"}` | none | Nacos naming tcp health check count | #### Metric set:Nacos exception | Metric name | Metric unit | Metric help description | |----------------------------------------------------|-------------|------------------------------------------------| -| nacos_exception_total{name='db'} | none | database exception | -| nacos_exception_total{name='configNotify'} | none | Nacos config notify exception | -| nacos_exception_total{name='unhealth'} | none | Nacos config server health check exception | -| nacos_exception_total{name='disk'} | none | Nacos naming write disk exception | -| nacos_exception_total{name='leaderSendBeatFailed'} | none | Nacos naming leader send heart beat fail count | -| nacos_exception_total{name='illegalArgument'} | none | request argument illegal count | -| nacos_exception_total{name='nacos'} | none | Nacos inner exception | +| nacos_exception_total`{name="db"}` | none | database exception | +| nacos_exception_total`{name="configNotify"}` | none | Nacos config notify exception | +| nacos_exception_total`{name="unhealth"}` | none | Nacos config server health check exception | +| nacos_exception_total`{name="disk"}` | none | Nacos naming write disk exception | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | none | Nacos naming leader send heart beat fail count | +| nacos_exception_total`{name="illegalArgument"}` | none | request argument illegal count | +| nacos_exception_total`{name="nacos"}` | none | Nacos inner exception | #### Metric set:client | Metric name | Metric unit | Metric help description | |----------------------------------------|-------------|-----------------------------------| -| nacos_monitor{name='subServiceCount'} | none | subscribed services count | -| nacos_monitor{name='pubServiceCount'} | none | published services count | -| nacos_monitor{name='configListenSize'} | none | listened configuration file count | +| nacos_monitor`{name="subServiceCount"}` | none | subscribed services count | +| nacos_monitor`{name="pubServiceCount"}` | none | published services count | +| nacos_monitor`{name="configListenSize"}` | none | listened configuration file count | | nacos_client_request_seconds_count | none | request count | | nacos_client_request_seconds_sum | second | request time | diff --git a/home/versioned_docs/version-v1.6.x/help/nebulagraph.md b/home/versioned_docs/version-1.6.x/help/nebulagraph.md similarity index 82% rename from home/versioned_docs/version-v1.6.x/help/nebulagraph.md rename to home/versioned_docs/version-1.6.x/help/nebulagraph.md index 80e44bfe857..f12b0f50b5a 100644 --- a/home/versioned_docs/version-v1.6.x/help/nebulagraph.md +++ b/home/versioned_docs/version-1.6.x/help/nebulagraph.md @@ -18,7 +18,7 @@ nebulaGraph_stats is nebulaGraph's statistics, and rocksdb_stats is rocksdb's st 1.1、 If you only need to get nebulaGraph_stats, you need to ensure that you have access to stats, or you'll get errors. -The default port is 19669 and the access address is +The default port is 19669 and the access address is [http://ip:19669/stats](http://ip:19669/stats) 1.2、If you need to obtain additional parameters for rocksdb stats, you need to ensure that you have access to rocksdb stats, otherwise an error will be reported. @@ -26,11 +26,11 @@ stats, otherwise an error will be reported. Once you connect to NebulaGraph for the first time, you must first register your Storage service in order to properly query your data. -**There is help_doc: ** +**There is help_doc: [https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** -**** +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** -The default port is 19779 and the access address is: +The default port is 19779 and the access address is:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) ### Configuration parameter @@ -51,7 +51,7 @@ The default port is 19779 and the access address is:** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** | Metric name | Metric unit | Metric help description | |---------------------------------------|-------------|--------------------------------------------------------------| @@ -63,7 +63,7 @@ Too many indicators, related links are as follows #### Metrics Set:rocksdb_stats Too many indicators, related links are as follows -**** +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** | Metric name | Metric unit | Metric help description | |----------------------------|-------------|-------------------------------------------------------------| diff --git a/home/versioned_docs/version-v1.6.x/help/nebulagraph_cluster.md b/home/versioned_docs/version-1.6.x/help/nebulagraph_cluster.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/nebulagraph_cluster.md rename to home/versioned_docs/version-1.6.x/help/nebulagraph_cluster.md diff --git a/home/versioned_docs/version-v1.6.x/help/nginx.md b/home/versioned_docs/version-1.6.x/help/nginx.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/help/nginx.md rename to home/versioned_docs/version-1.6.x/help/nginx.md index ce7ccf536a4..9f9feffa872 100644 --- a/home/versioned_docs/version-v1.6.x/help/nginx.md +++ b/home/versioned_docs/version-1.6.x/help/nginx.md @@ -111,7 +111,7 @@ If you want to monitor information in 'Nginx' with this monitoring type, you nee 4. Access `http://localhost/req-status` in the browser to view the Nginx monitoring status information. -**Refer Doc: ** +**Refer Doc: [https://github.com/zls0424/ngx_req_status](https://github.com/zls0424/ngx_req_status)** **⚠️Attention: The endpoint path of the monitoring module is `/nginx-status` `/req-status`** diff --git a/home/versioned_docs/version-v1.6.x/help/ntp.md b/home/versioned_docs/version-1.6.x/help/ntp.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/ntp.md rename to home/versioned_docs/version-1.6.x/help/ntp.md diff --git a/home/versioned_docs/version-v1.6.x/help/nvidia.md b/home/versioned_docs/version-1.6.x/help/nvidia.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/nvidia.md rename to home/versioned_docs/version-1.6.x/help/nvidia.md diff --git a/home/versioned_docs/version-v1.6.x/help/oceanbase.md b/home/versioned_docs/version-1.6.x/help/oceanbase.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/oceanbase.md rename to home/versioned_docs/version-1.6.x/help/oceanbase.md index fbadc0b8259..510934771f5 100644 --- a/home/versioned_docs/version-v1.6.x/help/oceanbase.md +++ b/home/versioned_docs/version-1.6.x/help/oceanbase.md @@ -9,7 +9,7 @@ keywords: [open source monitoring tool, open source database monitoring tool, mo ### Attention, Need Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) - Copy the jar package to the `hertzbeat/ext-lib` directory. - Restart the HertzBeat service. diff --git a/home/versioned_docs/version-v1.6.x/help/openai.md b/home/versioned_docs/version-1.6.x/help/openai.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/openai.md rename to home/versioned_docs/version-1.6.x/help/openai.md index a7a10de2b19..0bf3c496af8 100644 --- a/home/versioned_docs/version-v1.6.x/help/openai.md +++ b/home/versioned_docs/version-1.6.x/help/openai.md @@ -12,8 +12,8 @@ keywords: [open source monitoring system, open source network monitoring, OpenAI > 1. Open Chrome browser's network request interface > `Mac: cmd + option + i` > `Windows: ctrl + shift + i` -> 2. Visit -> 3. Find the request to +> 2. Visit [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. Find the request to [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) > 4. Find the Authorization field in the request headers, and copy the content after `Bearer`. For example: `sess-123456` ### Notes diff --git a/home/versioned_docs/version-v1.6.x/help/opengauss.md b/home/versioned_docs/version-1.6.x/help/opengauss.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/opengauss.md rename to home/versioned_docs/version-1.6.x/help/opengauss.md diff --git a/home/versioned_docs/version-v1.6.x/help/opensuse.md b/home/versioned_docs/version-1.6.x/help/opensuse.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/opensuse.md rename to home/versioned_docs/version-1.6.x/help/opensuse.md diff --git a/home/versioned_docs/version-v1.6.x/help/oracle.md b/home/versioned_docs/version-1.6.x/help/oracle.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/oracle.md rename to home/versioned_docs/version-1.6.x/help/oracle.md diff --git a/home/versioned_docs/version-v1.6.x/help/ping.md b/home/versioned_docs/version-1.6.x/help/ping.md similarity index 94% rename from home/versioned_docs/version-v1.6.x/help/ping.md rename to home/versioned_docs/version-1.6.x/help/ping.md index bed89d53dcf..9535a311375 100644 --- a/home/versioned_docs/version-v1.6.x/help/ping.md +++ b/home/versioned_docs/version-1.6.x/help/ping.md @@ -33,4 +33,4 @@ keywords: [open source monitoring tool, open source network monitoring tool, mon > The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. > When you install HertzBeat via DockerDocker root is enabled by default. No such problem. -> See +> See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/versioned_docs/version-v1.6.x/help/plugin.md b/home/versioned_docs/version-1.6.x/help/plugin.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/plugin.md rename to home/versioned_docs/version-1.6.x/help/plugin.md diff --git a/home/versioned_docs/version-v1.6.x/help/pop3.md b/home/versioned_docs/version-1.6.x/help/pop3.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/pop3.md rename to home/versioned_docs/version-1.6.x/help/pop3.md diff --git a/home/versioned_docs/version-v1.6.x/help/port.md b/home/versioned_docs/version-1.6.x/help/port.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/port.md rename to home/versioned_docs/version-1.6.x/help/port.md diff --git a/home/versioned_docs/version-v1.6.x/help/postgresql.md b/home/versioned_docs/version-1.6.x/help/postgresql.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/postgresql.md rename to home/versioned_docs/version-1.6.x/help/postgresql.md diff --git a/home/versioned_docs/version-v1.6.x/help/prestodb.md b/home/versioned_docs/version-1.6.x/help/prestodb.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/prestodb.md rename to home/versioned_docs/version-1.6.x/help/prestodb.md diff --git a/home/versioned_docs/version-v1.6.x/help/process.md b/home/versioned_docs/version-1.6.x/help/process.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/process.md rename to home/versioned_docs/version-1.6.x/help/process.md diff --git a/home/versioned_docs/version-v1.6.x/help/prometheus.md b/home/versioned_docs/version-1.6.x/help/prometheus.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/prometheus.md rename to home/versioned_docs/version-1.6.x/help/prometheus.md diff --git a/home/versioned_docs/version-v1.6.x/help/pulsar.md b/home/versioned_docs/version-1.6.x/help/pulsar.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/pulsar.md rename to home/versioned_docs/version-1.6.x/help/pulsar.md diff --git a/home/versioned_docs/version-v1.6.x/help/rabbitmq.md b/home/versioned_docs/version-1.6.x/help/rabbitmq.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/help/rabbitmq.md rename to home/versioned_docs/version-1.6.x/help/rabbitmq.md index 91fad16ff1e..4dd30d94318 100644 --- a/home/versioned_docs/version-v1.6.x/help/rabbitmq.md +++ b/home/versioned_docs/version-1.6.x/help/rabbitmq.md @@ -18,7 +18,7 @@ keywords: [open source monitoring tool, open source rabbitmq monitoring tool, mo rabbitmq-plugins enable rabbitmq_management ``` -2. Access with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. +2. Access [http://ip:15672/](http://ip:15672/) with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. 3. Just add the corresponding RabbitMQ monitoring in HertzBeat, the parameters use the IP port of Management, and the default account password. @@ -106,7 +106,7 @@ keywords: [open source monitoring tool, open source rabbitmq monitoring tool, mo |------------------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------| | name | None | The name of the queue with non-ASCII characters escaped as in C. | | node | None | The queue on the node name | -| state | None | The state of the queue. Normally "running", but may be "{syncing, message_count}" if the queue is synchronising. | +| state | None | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | | type | None | Queue type, one of: quorum, stream, classic. | | vhost | None | vhost path | | auto_delete | None | Whether the queue will be deleted automatically when no longer used | diff --git a/home/versioned_docs/version-v1.6.x/help/redhat.md b/home/versioned_docs/version-1.6.x/help/redhat.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/redhat.md rename to home/versioned_docs/version-1.6.x/help/redhat.md diff --git a/home/versioned_docs/version-v1.6.x/help/redis.md b/home/versioned_docs/version-1.6.x/help/redis.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/redis.md rename to home/versioned_docs/version-1.6.x/help/redis.md diff --git a/home/versioned_docs/version-v1.6.x/help/redis_cluster.md b/home/versioned_docs/version-1.6.x/help/redis_cluster.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/redis_cluster.md rename to home/versioned_docs/version-1.6.x/help/redis_cluster.md diff --git a/home/versioned_docs/version-v1.6.x/help/registry.md b/home/versioned_docs/version-1.6.x/help/registry.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/registry.md rename to home/versioned_docs/version-1.6.x/help/registry.md diff --git a/home/versioned_docs/version-v1.6.x/help/rocketmq.md b/home/versioned_docs/version-1.6.x/help/rocketmq.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/rocketmq.md rename to home/versioned_docs/version-1.6.x/help/rocketmq.md diff --git a/home/versioned_docs/version-v1.6.x/help/rockylinux.md b/home/versioned_docs/version-1.6.x/help/rockylinux.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/rockylinux.md rename to home/versioned_docs/version-1.6.x/help/rockylinux.md diff --git a/home/versioned_docs/version-v1.6.x/help/seatunnel.md b/home/versioned_docs/version-1.6.x/help/seatunnel.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/seatunnel.md rename to home/versioned_docs/version-1.6.x/help/seatunnel.md diff --git a/home/versioned_docs/version-v1.6.x/help/security_model.md b/home/versioned_docs/version-1.6.x/help/security_model.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/security_model.md rename to home/versioned_docs/version-1.6.x/help/security_model.md diff --git a/home/versioned_docs/version-v1.6.x/help/shenyu.md b/home/versioned_docs/version-1.6.x/help/shenyu.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/shenyu.md rename to home/versioned_docs/version-1.6.x/help/shenyu.md diff --git a/home/versioned_docs/version-v1.6.x/help/smtp.md b/home/versioned_docs/version-1.6.x/help/smtp.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/help/smtp.md rename to home/versioned_docs/version-1.6.x/help/smtp.md index 4be044bc090..0a43c2dfab2 100644 --- a/home/versioned_docs/version-v1.6.x/help/smtp.md +++ b/home/versioned_docs/version-1.6.x/help/smtp.md @@ -11,7 +11,7 @@ keywords: [ open source monitoring tool, open source SMTP monitoring tool, monit Determine whether the server is available through the hello command in SMTP ``` -> see +> see [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) **Protocol Use:SMTP** diff --git a/home/versioned_docs/version-v1.6.x/help/spark.md b/home/versioned_docs/version-1.6.x/help/spark.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/help/spark.md rename to home/versioned_docs/version-1.6.x/help/spark.md index ba63ce7df2a..8efa5ed7662 100644 --- a/home/versioned_docs/version-v1.6.x/help/spark.md +++ b/home/versioned_docs/version-1.6.x/help/spark.md @@ -13,7 +13,7 @@ keywords: [open source monitoring tool, open source java spark monitoring tool, 1. Add Spark `VM options` When Start Server ⚠️ customIP -Refer: +Refer: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) **Monitoring configuration spark can be monitored by Master, Worker, driver, and executor. The Master and Worker can be monitored when the spark cluster is running, while the Driver and Excutor need to be monitored for an app.** **If you want to monitor them, perform the following steps to configure them** diff --git a/home/versioned_docs/version-v1.6.x/help/spring_gateway.md b/home/versioned_docs/version-1.6.x/help/spring_gateway.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/spring_gateway.md rename to home/versioned_docs/version-1.6.x/help/spring_gateway.md diff --git a/home/versioned_docs/version-v1.6.x/help/springboot2.md b/home/versioned_docs/version-1.6.x/help/springboot2.md similarity index 87% rename from home/versioned_docs/version-v1.6.x/help/springboot2.md rename to home/versioned_docs/version-1.6.x/help/springboot2.md index 08029dc23b5..5f7baa85203 100644 --- a/home/versioned_docs/version-v1.6.x/help/springboot2.md +++ b/home/versioned_docs/version-1.6.x/help/springboot2.md @@ -1,6 +1,6 @@ --- -id: springboot2 -Title: Monitoring SpringBoot 2.0 +id: springboot2 +Title: Monitoring SpringBoot 2.0 sidebar_label: SpringBoot 2.0 keywords: [open source monitoring tool, open source springboot2 monitoring tool, monitoring springboot2 metrics] --- @@ -52,14 +52,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter{ ### Configure parameters | Parameter name | Parameter Help describes the | -|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| | Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | | Monitoring Name | A name that identifies this monitoring that needs to be unique. | | Port | The default port provided by the database is 8080. | | Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | -| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | -| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | -| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | +| Description remarks | For more information identifying and describing the remarks for this monitoring, users can remark the information here | ### Collect metrics @@ -83,13 +83,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter{ #### metric Collection: threads | Metric Name | metric unit | Metrics help describe | -|-------------|-------------|----------------------------------|-------------------| +|-------------|-------------|----------------------------------| | state | None | Thread status | -| number | None | This thread state corresponds to | number of threads | +| number | None | This thread state corresponds to number of threads | #### metric Collection: memory_used -| Metric Name | metric unit | Metrics help describe | -|-------------|-------------|--------------------------------------| -| space | None | Memory space name | -| mem_used | MB | This space occupies a memory size of | +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|------------------------------------------| +| space | None | Memory space name | +| mem_used | MB | This space occupies a memory size of | diff --git a/home/versioned_docs/version-v1.6.x/help/springboot3.md b/home/versioned_docs/version-1.6.x/help/springboot3.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/springboot3.md rename to home/versioned_docs/version-1.6.x/help/springboot3.md diff --git a/home/versioned_docs/version-v1.6.x/help/sqlserver.md b/home/versioned_docs/version-1.6.x/help/sqlserver.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/sqlserver.md rename to home/versioned_docs/version-1.6.x/help/sqlserver.md diff --git a/home/versioned_docs/version-v1.6.x/help/ssl_cert.md b/home/versioned_docs/version-1.6.x/help/ssl_cert.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/ssl_cert.md rename to home/versioned_docs/version-1.6.x/help/ssl_cert.md diff --git a/home/versioned_docs/version-v1.6.x/help/starrocks_be.md b/home/versioned_docs/version-1.6.x/help/starrocks_be.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/starrocks_be.md rename to home/versioned_docs/version-1.6.x/help/starrocks_be.md diff --git a/home/versioned_docs/version-v1.6.x/help/starrocks_fe.md b/home/versioned_docs/version-1.6.x/help/starrocks_fe.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/starrocks_fe.md rename to home/versioned_docs/version-1.6.x/help/starrocks_fe.md diff --git a/home/versioned_docs/version-v1.6.x/help/status.md b/home/versioned_docs/version-1.6.x/help/status.md similarity index 92% rename from home/versioned_docs/version-v1.6.x/help/status.md rename to home/versioned_docs/version-1.6.x/help/status.md index d5178a29351..934ad0c7b78 100644 --- a/home/versioned_docs/version-v1.6.x/help/status.md +++ b/home/versioned_docs/version-1.6.x/help/status.md @@ -17,9 +17,9 @@ The fields that need to be filled in are as follows: |--------------------------|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Organization Name | Name of the organization | HertzBeat | | Organization Description | Detailed description of the organization | Apache HertzBeat is an easy-to-use and user-friendly open-source real-time monitoring and alerting system, no agent required, high-performance cluster, compatible with Prometheus, providing powerful custom monitoring and status page building capabilities. | -| Website Link | URL of the organization's website for more information | | -| Logo Image | Path or URL of the organization's official logo image, preferably in .svg format | | -| Feedback Address | Address to receive feedback | | +| Website Link | URL of the organization's website for more information | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| Logo Image | Path or URL of the organization's official logo image, preferably in .svg format | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| Feedback Address | Address to receive feedback | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | | Theme Color | Main color tone of the status page | Click to select on the page | After filling in the organization information, click `Confirm`. diff --git a/home/versioned_docs/version-v1.6.x/help/tidb.md b/home/versioned_docs/version-1.6.x/help/tidb.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/help/tidb.md rename to home/versioned_docs/version-1.6.x/help/tidb.md index 2378b224110..73d8195aab4 100644 --- a/home/versioned_docs/version-v1.6.x/help/tidb.md +++ b/home/versioned_docs/version-1.6.x/help/tidb.md @@ -50,5 +50,5 @@ Due to the large number of metrics that can be monitored, only the metrics queri | version_compile_machine | none | The name of the CPU architecture on which TiDB is running. | | version_compile_os | none | The name of the OS on which TiDB is running. | | max_connections | none | The maximum number of concurrent connections permitted for a single TiDB instance. This variable can be used for resources control. The default value 0 means no limit. When the value of this variable is larger than 0, and the number of connections reaches the value, the TiDB server rejects new connections from clients. | -| datadir | none | The location where data is stored. This location can be a local path /tmp/tidb, or point to a PD server if the data is stored on TiKV. A value in the format of ${pd-ip}:${pd-port} indicates the PD server that TiDB connects to on startup. | +| datadir | none | The location where data is stored. This location can be a local path /tmp/tidb, or point to a PD server if the data is stored on TiKV. A value in the format of `${pd-ip}:${pd-port}` indicates the PD server that TiDB connects to on startup. | | port | none | The port that the tidb-server is listening on when speaking the MySQL protocol. | diff --git a/home/versioned_docs/version-v1.6.x/help/time_expression.md b/home/versioned_docs/version-1.6.x/help/time_expression.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/help/time_expression.md rename to home/versioned_docs/version-1.6.x/help/time_expression.md index 406123f74b3..c38b8186c2d 100644 --- a/home/versioned_docs/version-v1.6.x/help/time_expression.md +++ b/home/versioned_docs/version-1.6.x/help/time_expression.md @@ -12,7 +12,7 @@ HertzBeat supports using expressions to calculate relative time during monitorin ### Syntax ```shell -${FORMATTER [{ + | - } ]} +${FORMATTER [{ + | - }`` ``]} ``` - `FORMATTER`: Determines the format of the expression's result diff --git a/home/versioned_docs/version-v1.6.x/help/tomcat.md b/home/versioned_docs/version-1.6.x/help/tomcat.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/tomcat.md rename to home/versioned_docs/version-1.6.x/help/tomcat.md diff --git a/home/versioned_docs/version-v1.6.x/help/ubuntu.md b/home/versioned_docs/version-1.6.x/help/ubuntu.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/ubuntu.md rename to home/versioned_docs/version-1.6.x/help/ubuntu.md diff --git a/home/versioned_docs/version-v1.6.x/help/udp_port.md b/home/versioned_docs/version-1.6.x/help/udp_port.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/udp_port.md rename to home/versioned_docs/version-1.6.x/help/udp_port.md diff --git a/home/versioned_docs/version-v1.6.x/help/valkey.md b/home/versioned_docs/version-1.6.x/help/valkey.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/valkey.md rename to home/versioned_docs/version-1.6.x/help/valkey.md diff --git a/home/versioned_docs/version-v1.6.x/help/vastbase.md b/home/versioned_docs/version-1.6.x/help/vastbase.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/vastbase.md rename to home/versioned_docs/version-1.6.x/help/vastbase.md diff --git a/home/versioned_docs/version-v1.6.x/help/website.md b/home/versioned_docs/version-1.6.x/help/website.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/website.md rename to home/versioned_docs/version-1.6.x/help/website.md diff --git a/home/versioned_docs/version-v1.6.x/help/websocket.md b/home/versioned_docs/version-1.6.x/help/websocket.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/websocket.md rename to home/versioned_docs/version-1.6.x/help/websocket.md diff --git a/home/versioned_docs/version-v1.6.x/help/windows.md b/home/versioned_docs/version-1.6.x/help/windows.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/windows.md rename to home/versioned_docs/version-1.6.x/help/windows.md diff --git a/home/versioned_docs/version-v1.6.x/help/windows_script.md b/home/versioned_docs/version-1.6.x/help/windows_script.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/windows_script.md rename to home/versioned_docs/version-1.6.x/help/windows_script.md diff --git a/home/versioned_docs/version-v1.6.x/help/yarn.md b/home/versioned_docs/version-1.6.x/help/yarn.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/yarn.md rename to home/versioned_docs/version-1.6.x/help/yarn.md diff --git a/home/versioned_docs/version-v1.6.x/help/zookeeper.md b/home/versioned_docs/version-1.6.x/help/zookeeper.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/zookeeper.md rename to home/versioned_docs/version-1.6.x/help/zookeeper.md diff --git a/home/versioned_docs/version-v1.6.x/introduce.md b/home/versioned_docs/version-1.6.x/introduce.md similarity index 99% rename from home/versioned_docs/version-v1.6.x/introduce.md rename to home/versioned_docs/version-1.6.x/introduce.md index 4924030eba1..7e2c7a64b0c 100644 --- a/home/versioned_docs/version-v1.6.x/introduce.md +++ b/home/versioned_docs/version-1.6.x/introduce.md @@ -20,7 +20,7 @@ slug: / ## 🎡 Introduction -[Apache HertzBeat](https://github.com/apache/hertzbeat) (incubating) is an easy-to-use, open source, real-time observability system with agentless, high performance cluster, prometheus-compatible, offers powerful custom monitoring and status page building capabilities. +[Apache HertzBeat](https://github.com/apache/hertzbeat) is an easy-to-use, open source, real-time observability system with agentless, high performance cluster, prometheus-compatible, offers powerful custom monitoring and status page building capabilities. ### Features @@ -305,4 +305,4 @@ Built-in support for monitoring types include: --- -**Github: ** +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-v1.6.x/others/design.md b/home/versioned_docs/version-1.6.x/others/design.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/others/design.md rename to home/versioned_docs/version-1.6.x/others/design.md diff --git a/home/versioned_docs/version-v1.6.x/others/resource.md b/home/versioned_docs/version-1.6.x/others/resource.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/others/resource.md rename to home/versioned_docs/version-1.6.x/others/resource.md diff --git a/home/versioned_docs/version-v1.6.x/start/account-modify.md b/home/versioned_docs/version-1.6.x/start/account-modify.md similarity index 98% rename from home/versioned_docs/version-v1.6.x/start/account-modify.md rename to home/versioned_docs/version-1.6.x/start/account-modify.md index fc4f2f7cdaa..ea72ca06a1f 100644 --- a/home/versioned_docs/version-v1.6.x/start/account-modify.md +++ b/home/versioned_docs/version-1.6.x/start/account-modify.md @@ -155,4 +155,4 @@ sureness: dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' ``` -**Restart HertzBeat, access to explore** +**Restart HertzBeat, access [http://ip:1157/](http://ip:1157/) to explore** diff --git a/home/versioned_docs/version-v1.6.x/start/baota-deploy.md b/home/versioned_docs/version-1.6.x/start/baota-deploy.md similarity index 93% rename from home/versioned_docs/version-v1.6.x/start/baota-deploy.md rename to home/versioned_docs/version-1.6.x/start/baota-deploy.md index 169a5288c7c..46ff957e801 100644 --- a/home/versioned_docs/version-v1.6.x/start/baota-deploy.md +++ b/home/versioned_docs/version-1.6.x/start/baota-deploy.md @@ -36,7 +36,7 @@ Install aaPanel, go to the [aaPanel](https://www.aapanel.com/new/download.html#i ## Access HertzBeat - If you have set a domain name, please enter the domain name directly in the browser address bar to access, such as `http://demo.hertzbeat.apache.org`, you can access the `HertzBeat` console. -- If you choose to access via `IP+Port`, please enter the domain name in the browser address bar to access `http://:1157`, you can access the `HertzBeat` console. +- If you choose to access via `IP+Port`, please enter the domain name in the browser address bar to access `http://`\`:1157`, you can access the `HertzBeat` console. ![HertzBeat](/img/home/0.png) diff --git a/home/versioned_docs/version-v1.6.x/start/custom-config.md b/home/versioned_docs/version-1.6.x/start/custom-config.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/custom-config.md rename to home/versioned_docs/version-1.6.x/start/custom-config.md diff --git a/home/versioned_docs/version-v1.6.x/start/docker-compose-deploy.md b/home/versioned_docs/version-1.6.x/start/docker-compose-deploy.md similarity index 93% rename from home/versioned_docs/version-v1.6.x/start/docker-compose-deploy.md rename to home/versioned_docs/version-1.6.x/start/docker-compose-deploy.md index c82f2b3e092..5182ed3a099 100644 --- a/home/versioned_docs/version-v1.6.x/start/docker-compose-deploy.md +++ b/home/versioned_docs/version-1.6.x/start/docker-compose-deploy.md @@ -56,7 +56,7 @@ Run the `docker compose version` command to check if you have a Docker Compose e ``` 3. Start exploring HertzBeat - Access in the browser to start exploring and using it. The default account password is admin/hertzbeat. + Access [http://ip:1157/](http://ip:1157/) in the browser to start exploring and using it. The default account password is admin/hertzbeat. **HAVE FUN** diff --git a/home/versioned_docs/version-v1.6.x/start/docker-deploy.md b/home/versioned_docs/version-1.6.x/start/docker-deploy.md similarity index 97% rename from home/versioned_docs/version-v1.6.x/start/docker-deploy.md rename to home/versioned_docs/version-1.6.x/start/docker-deploy.md index 59eab1ae78e..69c2310c023 100644 --- a/home/versioned_docs/version-v1.6.x/start/docker-deploy.md +++ b/home/versioned_docs/version-1.6.x/start/docker-deploy.md @@ -52,7 +52,7 @@ It is necessary to have Docker environment in your environment. If not installed ::: 2. Start to explore HertzBeat - Access using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! ### Deploy HertzBeat Collector Cluster(Optional) @@ -112,7 +112,7 @@ By deploying multiple HertzBeat Collectors, high availability, load balancing, a > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` -2. According to the process deploy,visit no interface +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface Please refer to the following points to troubleshoot issues: > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. diff --git a/home/versioned_docs/version-v1.6.x/start/greptime-init.md b/home/versioned_docs/version-1.6.x/start/greptime-init.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/greptime-init.md rename to home/versioned_docs/version-1.6.x/start/greptime-init.md diff --git a/home/versioned_docs/version-v1.6.x/start/influxdb-init.md b/home/versioned_docs/version-1.6.x/start/influxdb-init.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/influxdb-init.md rename to home/versioned_docs/version-1.6.x/start/influxdb-init.md diff --git a/home/versioned_docs/version-v1.6.x/start/iotdb-init.md b/home/versioned_docs/version-1.6.x/start/iotdb-init.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/iotdb-init.md rename to home/versioned_docs/version-1.6.x/start/iotdb-init.md diff --git a/home/versioned_docs/version-v1.6.x/start/mysql-change.md b/home/versioned_docs/version-1.6.x/start/mysql-change.md similarity index 91% rename from home/versioned_docs/version-v1.6.x/start/mysql-change.md rename to home/versioned_docs/version-1.6.x/start/mysql-change.md index bf147bb26ae..139feda7888 100644 --- a/home/versioned_docs/version-v1.6.x/start/mysql-change.md +++ b/home/versioned_docs/version-1.6.x/start/mysql-change.md @@ -53,7 +53,7 @@ mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) ### Add MYSQL jdbc driver jar -- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.0.25.jar. +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) - Copy the jar package to the `hertzbeat/ext-lib` directory. ### Modify hertzbeat's configuration file application.yml and switch data source @@ -110,4 +110,4 @@ spring: > Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./mysql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. -**Start HertzBeat visit on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-v1.6.x/start/package-deploy.md b/home/versioned_docs/version-1.6.x/start/package-deploy.md similarity index 96% rename from home/versioned_docs/version-v1.6.x/start/package-deploy.md rename to home/versioned_docs/version-1.6.x/start/package-deploy.md index 359fbc881dd..2b72e30d373 100644 --- a/home/versioned_docs/version-v1.6.x/start/package-deploy.md +++ b/home/versioned_docs/version-1.6.x/start/package-deploy.md @@ -55,7 +55,7 @@ Since version 1.6.0 uses `Java 17` and the installation package no longer provid 5. Begin to explore HertzBeat - Access using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! ### Deploy HertzBeat Collector Cluster(Optional) @@ -129,7 +129,7 @@ Deploying multiple HertzBeat Collectors can achieve high availability, load bala ``` -2. According to the process deploy,visit no interface +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface Please refer to the following points to troubleshoot issues: > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. diff --git a/home/versioned_docs/version-v1.6.x/start/postgresql-change.md b/home/versioned_docs/version-1.6.x/start/postgresql-change.md similarity index 95% rename from home/versioned_docs/version-v1.6.x/start/postgresql-change.md rename to home/versioned_docs/version-1.6.x/start/postgresql-change.md index 1e7039d2d69..e2bdadd392b 100644 --- a/home/versioned_docs/version-v1.6.x/start/postgresql-change.md +++ b/home/versioned_docs/version-1.6.x/start/postgresql-change.md @@ -98,4 +98,4 @@ spring: > Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./postgresql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. -**Start HertzBeat visit on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-v1.6.x/start/quickstart.md b/home/versioned_docs/version-1.6.x/start/quickstart.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/quickstart.md rename to home/versioned_docs/version-1.6.x/start/quickstart.md diff --git a/home/versioned_docs/version-v1.6.x/start/rainbond-deploy.md b/home/versioned_docs/version-1.6.x/start/rainbond-deploy.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/rainbond-deploy.md rename to home/versioned_docs/version-1.6.x/start/rainbond-deploy.md diff --git a/home/versioned_docs/version-v1.6.x/start/sslcert-practice.md b/home/versioned_docs/version-1.6.x/start/sslcert-practice.md similarity index 90% rename from home/versioned_docs/version-v1.6.x/start/sslcert-practice.md rename to home/versioned_docs/version-1.6.x/start/sslcert-practice.md index f1d29329b3e..7edeb2b7bbb 100644 --- a/home/versioned_docs/version-v1.6.x/start/sslcert-practice.md +++ b/home/versioned_docs/version-1.6.x/start/sslcert-practice.md @@ -14,7 +14,7 @@ This article introduces how to use the hertzbeat monitoring tool to detect the v Apache HertzBeat™ is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). -github: +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) ## Install HertzBeat @@ -24,7 +24,7 @@ github: 2. After the installation is successful, the browser can access `localhost:1157` to start, the default account password is `admin/hertzbeat` -The production environment recommends a complete deployment method, refer +The production environment recommends a complete deployment method, refer [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) ## Monitoring SSL Certificates @@ -76,7 +76,7 @@ The production environment recommends a complete deployment method, refer + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) > Notification -> Notice Policy -> New Notice Policy -> Enable Notification for the Recipient Just Configured @@ -90,4 +90,4 @@ The production environment recommends a complete deployment method, refer ** +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-v1.6.x/start/tdengine-init.md b/home/versioned_docs/version-1.6.x/start/tdengine-init.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/tdengine-init.md rename to home/versioned_docs/version-1.6.x/start/tdengine-init.md diff --git a/home/versioned_docs/version-v1.6.x/start/update-1.6.0.md b/home/versioned_docs/version-1.6.x/start/update-1.6.0.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/update-1.6.0.md rename to home/versioned_docs/version-1.6.x/start/update-1.6.0.md diff --git a/home/versioned_docs/version-v1.6.x/start/upgrade.md b/home/versioned_docs/version-1.6.x/start/upgrade.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/upgrade.md rename to home/versioned_docs/version-1.6.x/start/upgrade.md diff --git a/home/versioned_docs/version-v1.6.x/start/victoria-metrics-init.md b/home/versioned_docs/version-1.6.x/start/victoria-metrics-init.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/start/victoria-metrics-init.md rename to home/versioned_docs/version-1.6.x/start/victoria-metrics-init.md diff --git a/home/versioned_docs/version-v1.6.x/template.md b/home/versioned_docs/version-1.6.x/template.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/template.md rename to home/versioned_docs/version-1.6.x/template.md diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http-default.md b/home/versioned_docs/version-1.7.x/advanced/extend-http-default.md new file mode 100644 index 00000000000..8281718aa0a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http-default.md @@ -0,0 +1,285 @@ +--- +id: extend-http-default +title: HTTP Protocol System Default Parsing Method +sidebar_label: Default Parsing Method +--- + +> After calling the HTTP api to obtain the response data, use the default parsing method of hertzbeat to parse the response data. + +**The interface response data structure must be consistent with the data structure rules specified by hertzbeat** + +### HertzBeat data format specification + +Note⚠️ The response data is JSON format. + +Single layer format :key-value + +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` + +Multilayer format:Set key value in the array + +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +eg: +Query the CPU information of the custom system. The exposed interface is `/metrics/cpu`. We need `hostname,core,useage` Metric. +If there is only one virtual machine, its single-layer format is : + +```json +{ + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 +} +``` + +If there are multiple virtual machines, the multilayer format is: : + +```json +[ + { + "hostname": "linux-1", + "core": 1, + "usage": 78.0, + "allTime": 200, + "runningTime": 100 + }, + { + "hostname": "linux-2", + "core": 3, + "usage": 78.0, + "allTime": 566, + "runningTime": 34 + }, + { + "hostname": "linux-3", + "core": 4, + "usage": 38.0, + "allTime": 500, + "runningTime": 20 + } +] +``` + +**The corresponding monitoring template yml can be configured as follows** + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: a_example +# The monitoring i18n name +name: + zh-CN: 模拟应用 + en-US: EXAMPLE APP +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # param field input placeholder + placeholder: 'Please Input Port' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 50 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 用户密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + # required-true or false + required: false + # field-param field key + - field: method + # name-param field display i18n name + name: + zh-CN: 请求方式 + en-US: Method + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: GET + value: GET + - label: POST + value: POST + - label: PUT + value: PUT + - label: DELETE + value: DELETE + # field-param field key + - field: headers + # name-param field display i18n name + name: + zh-CN: 请求Headers + en-US: Headers + # type-param field type(key-value mapping the html key-value input tags) + type: key-value + # required-true or false + required: false + # when type is key-value, use keyAlias to config key alias name + keyAlias: Header Name + # when type is key-value, use valueAlias to config value alias name + valueAlias: Header Value +# collect metrics config list +metrics: + # metrics - cpu + - name: cpu + # metrics name i18n label + i18n: + zh-CN: CPU 信息 + en-US: CPU Info + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, i18n-metric name i18n label, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Host Name + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: cores + type: 0 + i18n: + zh-CN: 核数 + en-US: Cores + - field: waitTime + type: 0 + unit: s + i18n: + zh-CN: 主机名称 + en-US: Host Name + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /metrics/cpu + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: false + # http request header content + headers: + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + param1: param1 + param2: param2 + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$' +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md b/home/versioned_docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md new file mode 100644 index 00000000000..76ea0b4974c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http-example-hertzbeat.md @@ -0,0 +1,220 @@ +--- +id: extend-http-example-hertzbeat +title: Tutorial 1 Adapting a monitoring type based on HTTP protocol +sidebar_label: Tutorial 1 Adapting an HTTP protocol monitoring +--- + +Through this tutorial, we describe step by step how to add a monitoring type based on the http protocol under the hertzbeat monitoring tool. + +Before reading this tutorial, we hope that you are familiar with how to customize types, metrics, protocols, etc. from [Custom Monitoring](extend-point) and [http Protocol Customization](extend-http). + +### HTTP protocol parses the general response structure to obtain metric data + +> In many scenarios, we need to monitor the provided HTTP API interface and obtain the index value returned by the interface. In this article, we use the http custom protocol to parse our common http interface response structure, and obtain the fields in the returned body as metric data. + +```json +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` + +As above, usually our background API interface will design such a general return. The same is true for the background of the hertzbeat system. Today, we will use the hertzbeat API as an example, add a new monitoring type **hertzbeat**, and monitor and collect its system summary statistics API +`http://localhost:1157/api/summary`, the response data is: + +```json +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**This time we get the metric data such as `category`, `app`, `status`, `size`, `availableSize` under the app.** + +### Add custom monitoring template `hertzbeat` + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +Here we define a custom monitoring type `app` named `hertzbeat` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat +name: + zh-CN: HertzBeat + en-US: HertzBeat +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat +params: + - field: host + name: + zh-CN: 目标Host + en-US: Target Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, instance-if is metrics, unit-metric unit('%','ms','MB') + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + protocol: http + # the config content when protocol is http + http: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + method: GET + # if enabled https, default value is false + ssl: ^_^ssl^_^ + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**The addition is complete, now we save and apply. We can see that the system page has added a `hertzbeat` monitoring type.** + +![HertzBeat](/img/docs/advanced/extend-http-example-1.png) + +### The system page adds the monitoring of `hertzbeat` monitoring type + +> We click Add `HertzBeat Monitoring Tool`, configure monitoring IP, port, collection cycle, account password in advanced settings, etc., click OK to add monitoring. + +![HertzBeat](/img/docs/advanced/extend-http-example-2.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-3.png) + +> After a certain period of time (depending on the collection cycle), we can see the specific metric data and historical charts in the monitoring details! + +![HertzBeat](/img/docs/advanced/extend-http-example-4.png) + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add recipients, set alarm notifications, etc. Have Fun!!! + +---- + +#### over + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http-example-token.md b/home/versioned_docs/version-1.7.x/advanced/extend-http-example-token.md new file mode 100644 index 00000000000..d935329708d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http-example-token.md @@ -0,0 +1,408 @@ +--- +id: extend-http-example-token +title: Tutorial 2 Obtain TOKEN index value based on HTTP protocol for subsequent collection and authentication +sidebar_label: Tutorial 2 Get TOKEN for subsequent authentication +--- + +Through this tutorial, we will describe step by step how to modify on the basis of tutorial 1, add metrics, first call the authentication interface to obtain the TOKEN, and use the TOKEN as a parameter for the subsequent metrics collection and authentication. + +Before reading this tutorial, we hope that you are familiar with how to customize types, metrics, protocols, etc. from [Custom Monitoring](extend-point) and [http Protocol Customization](extend-http). + +### Request process + +【**Authentication information metrics (highest priority)**】【**HTTP interface carries account password call**】->【**Response data analysis**】->【**Analysis and issuance of TOKEN-accessToken as an metric**] -> [**Assign accessToken as a variable parameter to other collection index groups**] + +> Here we still use the hertzbeat monitoring example of Tutorial 1! The hertzbeat background interface not only supports the basic direct account password authentication used in Tutorial 1, but also supports token authentication. + +**We need `POST` to call the login interface `/api/account/auth/form` to get `accessToken`, the request body (json format) is as follows**: + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +**The response structure data is as follows**: + +```json +{ + "data": { + "token": "xxxx", + "refreshToken": "xxxx" + }, + "msg": null, + "code": 0 +} +``` + +### Add custom monitoring type `hertzbeat_token` + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +1. The custom monitoring type needs to add a new configuration monitoring template yml. We directly reuse the `hertzbeat` monitoring type in Tutorial 1 and modify it based on it + +A monitoring configuration definition file named after the monitoring type - hertzbeat_token + +We directly reuse the definition content in `hertzbeat` and modify it to our current monitoring type `hertzbeat_auth` configuration parameters, such as `app, category, etc`. + +```yaml +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# collect metrics config list +``` + +### Define metrics `auth` login request to get `token` + +1. Add an index group definition `auth` in `hertzbeat_token`, set the collection priority to the highest 0, and collect the index `token`. + +```yaml + +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# collect metrics config list +metrics: + # metrics - auth + - name: auth + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: token + type: 1 + - field: refreshToken + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /api/account/auth/form + # http method: GET POST PUT DELETE PATCH + method: POST + # if enabled https + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # http request header content + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + ^_^params^_^: ^_^params^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$.data' +--- +``` + +**At this time, save and apply, add `hertzbeat_token` type monitoring on the system page, configure input parameters, `content-type` fill in `application/json`, `request Body` fill in the account password json as follows:** + +```json +{ + "credential": "hertzbeat", + "identifier": "admin" +} +``` + +![HertzBeat](/img/docs/advanced/extend-http-example-5.png) + +**After the addition is successful, we can see the `token`, `refreshToken` metric data we collected on the details page.** + +![HertzBeat](/img/docs/advanced/extend-http-example-6.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-7.png) + +### Use `token` as a variable parameter to collect and use the following metricss + +**Add an index group definition `summary` in `app-hertzbeat_token.yml`, which is the same as `summary` in Tutorial 1, and set the collection priority to 1** + +**Set the authentication method in the HTTP protocol configuration of this index group to `Bearer Token`, assign the index `token` collected by the previous index group `auth` as a parameter, and use `^o^` as the internal replacement symbol, that is `^o^token^o^`. as follows:** + +```yaml + - name: summary +# When the protocol is the http protocol, the specific collection configuration + http: + # authentication + authorization: + # Authentication methods: Basic Auth, Digest Auth, Bearer Token + type: Bearer Token + bearerTokenToken: ^o^token^o^ +``` + +**The final `hertzbeat_token` template yml is defined as follows:** + +```yaml + +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat_token +# The monitoring i18n name +name: + zh-CN: HertzBeat(Token) + en-US: HertzBeat(Token) +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 HertzBeat监控(Token)进行测量监控。`
`您可以点击 “``新建 HertzBeat监控(Token)``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor(Token). You could click the "``New HertzBeat Monitor(Token)``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對HertzBeat監控(Token)進行量測監控。`
`您可以點擊“``新建HertzBeat監控(Token)``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat_token + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat_token +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + required: true + defaultValue: 1157 + placeholder: 'Please input port' + - field: ssl + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + required: false + - field: contentType + name: + zh-CN: Content-Type + en-US: Content-Type + type: text + placeholder: 'Request Body Type' + required: false + - field: payload + name: + zh-CN: 请求BODY + en-US: BODY + type: textarea + placeholder: 'Available When POST PUT' + required: false +# collect metrics config list +metrics: + # metrics - auth + - name: auth + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: token + type: 1 + - field: refreshToken + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /api/account/auth/form + # http method: GET POST PUT DELETE PATCH + method: POST + # if enabled https + ssl: ^_^ssl^_^ + payload: ^_^payload^_^ + # http request header content + headers: + content-type: ^_^contentType^_^ + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + ^_^params^_^: ^_^params^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$.data' +--- + - name: summary + priority: 1 + fields: + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /api/summary + method: GET + ssl: ^_^ssl^_^ + authorization: + type: Bearer Token + # ^o^xxx^o^ ^o^ substitution represents the value of the acquisition metric xxx of the previous priority + bearerTokenToken: ^o^token^o^ + parseType: jsonPath + parseScript: '$.data.apps.*' + +``` + +**After the configuration is complete, save and apply, and check the monitoring details page** + +![HertzBeat](/img/docs/advanced/extend-http-example-8.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-9.png) + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add a new recipient, set alarm notification, etc. Have Fun!!! + +--- + +#### over + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http-jsonpath.md b/home/versioned_docs/version-1.7.x/advanced/extend-http-jsonpath.md new file mode 100644 index 00000000000..4e12fe86b57 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http-jsonpath.md @@ -0,0 +1,174 @@ +--- +id: extend-http-jsonpath +title: HTTP Protocol JsonPath Parsing Method +sidebar_label: JsonPath Parsing Method +--- + +> After calling the HTTP api to obtain the response data, use JsonPath script parsing method to parse the response data. + +Note⚠️ The response data is JSON format. + +**Use the JsonPath script to parse the response data into data that conforms to the data structure rules specified by HertzBeat** + +#### JsonPath Operator + +[JSONPath online verification](https://www.jsonpath.cn) + +| JSONPATH | Help description | +|------------------|----------------------------------------------------------------------------------------| +| $ | Root object or element | +| @ | Current object or element | +| . or [] | Child element operator | +| .. | Recursively match all child elements | +| * | Wildcard. Match all objects or elements | +| [] | Subscript operator, jsonpath index starts from 0 | +| [,] | Join operator, return multiple results as an array. Jsonpath allows the use of aliases | +| [start:end:step] | Array slice operator | +| ?() | Filter (script) expression | +| () | Script Expression | + +#### HertzBeat data format specification + +Single layer format :key-value + +```json +{ + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" +} +``` + +Multilayer format:Set key value in the array + +```json +[ + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + }, + { + "metricName1": "metricValue", + "metricName2": "metricValue", + "metricName3": "metricValue", + "metricName4": "metricValue" + } +] +``` + +#### Example + +Query the value information of the custom system, and its exposed interface is `/metrics/person`. We need `type,num` Metric. +The raw data returned by the interface is as follows: + +```json +{ + "firstName": "John", + "lastName" : "doe", + "age" : 26, + "address" : { + "streetAddress": "naist street", + "city" : "Nara", + "postalCode" : "630-0192" + }, + "number": [ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } + ] +} +``` + +We use the jsonpath script to parse, and the corresponding script is: `$.number[*]`,The parsed data structure is as follows: + +```json +[ + { + "type": "core", + "num": 3343 + }, + { + "type": "home", + "num": 4543 + } +] +``` + +This data structure conforms to the data format specification of HertzBeat, and the Metric `type,num` is successfully extracted. + +**The corresponding monitoring template yml can be configured as follows** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +params: + # field-field name identifier + - field: host + # name-parameter field display name + name: + zh-CN: 主机Host + en-US: Host + # type-field type, style(most mappings are input label type attribute) + type: host + # required or not true-required false-optional + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + # When type is number, range is used to represent the range. + range: '[0,65535]' + required: true + # port default + defaultValue: 80 + # Prompt information of parameter input box + placeholder: 'Please enter the port' +# Metric group list +metrics: +# The first monitoring Metric group person +# Note:the built-in monitoring Metrics have (responseTime - response time) + - name: cpu + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # metrics fields list + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: type + type: 1 + label: true + - field: num + type: 0 +# protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# Specific collection configuration when the protocol is HTTP protocol + http: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + # url request interface path + url: /metrics/person + # request mode GET POST PUT DELETE PATCH + method: GET + # enable ssl/tls or not, that is to say, HTTP or HTTPS. The default is false + ssl: false + # parsing method for response data: default-system rules, jsonPath-jsonPath script, website-website availability Metric monitoring + # jsonPath parsing is used here + parseType: jsonPath + parseScript: '$.number[*]' +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http-xmlpath.md b/home/versioned_docs/version-1.7.x/advanced/extend-http-xmlpath.md new file mode 100644 index 00000000000..4bb16d113e6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http-xmlpath.md @@ -0,0 +1,326 @@ +--- +id: extend-http-xmlpath +title: HTTP Protocol XmlPath Parsing Method +sidebar_label: XmlPath Parsing Method +--- + +> After calling the HTTP API to obtain the response data, use the XmlPath script parsing method to parse the response data. + +Note⚠️ The response data must be in XML format. + +**Use XPath scripts to parse the response data into data that conforms to the data structure rules specified by HertzBeat.** + +### XmlPath Parsing Logic + +The XmlPath parsing method in HertzBeat uses a two-step XPath process: + +1. **Main XPath Expression (`parseScript`)**: This XPath expression is defined in the `http` configuration section under `parseScript`. It is used to select one or more main XML nodes from the response. Each selected node will correspond to one row of metric data in HertzBeat. +2. **Relative Field XPath Expressions (`xpath`)**: For each metric field defined in the `fields` list, you can specify a relative `xpath`. This XPath expression is evaluated *relative to each main node* selected by the `parseScript` in step 1. It extracts the specific value for that metric field from the current main node. + +This allows you to easily parse structured XML data where multiple records or items are present. + +**Special Metrics**: + +* `responseTime`: This built-in metric represents the HTTP request's response time and is automatically collected. It does not require an `xpath`. + +* `keyword`: This built-in metric counts the occurrences of a specified keyword (configured in `http.keyword`) in the raw response body. It does not require an `xpath`. + +### Example + +Assume the HTTP API returns the following XML data: + +```xml + + + + 36.400002 + + + + + 399640 + 98792 + 228492 + + + + + 1 + 1000 + + + 2 + 0 + + + 2025-01-06 10:27:48 + 87天0时55分59秒 + 2025-04-03 11:09:18 + 1 + + 16 + 23 + 12 + + NTP + 34.191.45.101 + +``` + +We want to monitor the device status and extract various metrics. + +Here's how you would configure the monitoring template YML: + +```yaml +category: server +# The monitoring type eg: linux windows tomcat mysql aws... +app: hikvision_isapi +# The monitoring i18n name +name: + zh-CN: 海康威视 ISAPI + en-US: Hikvision ISAPI +# The description and help of this monitoring type +help: + zh-CN: 通过ISAPI接口监控海康威视设备状态,获取设备健康数据。 + en-US: Monitor Hikvision devices through ISAPI interface to collect health data. + +# Input params define for monitoring(render web ui by the definition) +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + range: '[1000,60000]' + required: true + defaultValue: 5000 + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: SSL + type: boolean + required: false + defaultValue: false + +# collect metrics config list +metrics: + - name: system_info + i18n: + zh-CN: 系统信息 + en-US: System Info + priority: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + ssl: ^_^ssl^_^ + url: /ISAPI/System/deviceInfo + method: GET + timeout: ^_^timeout^_^ + authorization: + type: Digest Auth + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + parseType: xmlPath + parseScript: //DeviceInfo + fields: + - field: deviceName + type: 1 + i18n: + zh-CN: 设备名称 + en-US: Device Name + - field: deviceID + type: 1 + i18n: + zh-CN: 设备ID + en-US: Device ID + - field: firmwareVersion + type: 1 + i18n: + zh-CN: 固件版本 + en-US: Firmware Version + - field: model + type: 1 + i18n: + zh-CN: 设备型号 + en-US: Device Model + - field: macAddress + type: 1 + i18n: + zh-CN: mac地址 + en-US: Mac Address + - name: status + i18n: + zh-CN: 设备状态 + en-US: Status + priority: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + ssl: ^_^ssl^_^ + url: /ISAPI/System/status + method: GET + timeout: ^_^timeout^_^ + authorization: + type: Digest Auth + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + parseType: xmlPath + parseScript: //DeviceStatus + fields: + - field: CPU_utilization + i18n: + zh-CN: CPU 利用率 + en-US: CPU Utilization + type: 0 + unit: '%' + - field: memory_usage + i18n: + zh-CN: 内存使用量 + en-US: Memory Usage + type: 0 + unit: MB + - field: memory_available + i18n: + zh-CN: 可用内存 + en-US: Memory Available + type: 0 + unit: MB + - field: cache_size + i18n: + zh-CN: 缓存大小 + en-US: Cache Size + type: 0 + unit: MB + - field: net_port_1_speed + i18n: + zh-CN: 网口1速度 + en-US: Net Port 1 Speed + type: 0 + unit: Mbps + - field: net_port_2_speed + i18n: + zh-CN: 网口2速度 + en-US: Net Port 2 Speed + type: 0 + unit: Mbps + - field: boot_time + i18n: + zh-CN: 启动时间 + en-US: Boot Time + type: 1 + - field: device_uptime + i18n: + zh-CN: 运行时长 + en-US: Device Uptime + type: 1 + - field: last_calibration_time + i18n: + zh-CN: 上次校时时间 + en-US: Last Calibration Time + type: 1 + - field: last_calibration_time_diff + i18n: + zh-CN: 上次校时时间差 + en-US: Last Calibration Time Diff + type: 0 + unit: s + - field: avg_upload_time + i18n: + zh-CN: 平均上传耗时 + en-US: Avg Upload Time + type: 0 + unit: ms + - field: max_upload_time + i18n: + zh-CN: 最大上传耗时 + en-US: Max Upload Time + type: 0 + unit: ms + - field: min_upload_time + i18n: + zh-CN: 最小上传耗时 + en-US: Min Upload Time + type: 0 + unit: ms + - field: last_calibration_mode + i18n: + zh-CN: 上次校时模式 + en-US: Last Calibration Mode + type: 1 + - field: last_calibration_address + i18n: + zh-CN: 上次校时地址 + en-US: Last Calibration Address + type: 1 + - field: response_time + i18n: + zh-CN: 响应时间 + en-US: Response Time + type: 0 + unit: ms + aliasFields: + - CPUList/CPU/cpuUtilization + - MemoryList/Memory/memoryUsage + - MemoryList/Memory/memoryAvailable + - MemoryList/Memory/cacheSize + - NetPortStatusList/NetPortStatus[id='1']/workSpeed + - NetPortStatusList/NetPortStatus[id='2']/workSpeed + - bootTime + - deviceUpTime + - lastCalibrationTime + - lastCalibrationTimeDiff + - uploadTimeConsumingList/avgTime + - uploadTimeConsumingList/maxTime + - uploadTimeConsumingList/minTime + - lastCalibrationTimeMode + - lastCalibrationTimeAddress + - responseTime + calculates: + - CPU_utilization=CPUList/CPU/cpuUtilization + - memory_usage=MemoryList/Memory/memoryUsage + - memory_available=MemoryList/Memory/memoryAvailable + - cache_size=MemoryList/Memory/cacheSize + - net_port_1_speed=NetPortStatusList/NetPortStatus[id='1']/workSpeed + - net_port_2_speed=NetPortStatusList/NetPortStatus[id='2']/workSpeed + - boot_time=bootTime + - device_uptime=deviceUpTime + - last_calibration_time=lastCalibrationTime + - last_calibration_time_diff=lastCalibrationTimeDiff + - avg_upload_time=uploadTimeConsumingList/avgTime + - max_upload_time=uploadTimeConsumingList/maxTime + - min_upload_time=uploadTimeConsumingList/minTime + - last_calibration_mode=lastCalibrationTimeMode + - last_calibration_address=lastCalibrationTimeAddress + - response_time=responseTime + units: + - memory_usage=KB->MB + - memory_available=KB->MB + - cache_size=KB->MB diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-http.md b/home/versioned_docs/version-1.7.x/advanced/extend-http.md new file mode 100644 index 00000000000..1b7330f75eb --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-http.md @@ -0,0 +1,281 @@ +--- +id: extend-http +title: HTTP Protocol Custom Monitoring +sidebar_label: HTTP Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use HTTP protocol to customize Metric monitoring + +### HTTP protocol collection process + +【**Call HTTP API**】->【**Response Verification**】->【**Parse Response Data**】->【**Default method parsing|JsonPath script parsing | XmlPath parsing(todo) | Prometheus parsing**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of HTTP protocol. We need to configure HTTP request parameters, configure which Metrics to obtain, and configure the parsing method and parsing script for response data. +HTTP protocol supports us to customize HTTP request path, request header, request parameters, request method, request body, etc. + +**System default parsing method**:HTTP interface returns the JSON data structure specified by hertzbeat, that is, the default parsing method can be used to parse the data and extract the corresponding Metric data. For details, refer to [**System Default Parsing**](extend-http-default) +**JsonPath script parsing method**:Use JsonPath script to parse the response JSON data, return the data structure specified by the system, and then provide the corresponding Metric data. For details, refer to [**JsonPath Script Parsing**](extend-http-jsonpath) + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- + +Configuration usages of the monitoring templates yml are detailed below. Please pay attention to usage annotation. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_http` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: a_example +# The monitoring i18n name +name: + zh-CN: 模拟应用 + en-US: EXAMPLE APP +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 目标Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # param field input placeholder + placeholder: 'Please Input Port' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 50 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 用户密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启动SSL + en-US: SSL + # type-param field type(boolean mapping the html switch tag) + type: boolean + # required-true or false + required: false + # field-param field key + - field: method + # name-param field display i18n name + name: + zh-CN: 请求方式 + en-US: Method + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: GET + value: GET + - label: POST + value: POST + - label: PUT + value: PUT + - label: DELETE + value: DELETE + # field-param field key + - field: headers + # name-param field display i18n name + name: + zh-CN: 请求Headers + en-US: Headers + # type-param field type(key-value mapping the html key-value input tags) + type: key-value + # required-true or false + required: false + # when type is key-value, use keyAlias to config key alias name + keyAlias: Header Name + # when type is key-value, use valueAlias to config value alias name + valueAlias: Header Value +# collect metrics config list +metrics: + # metrics - cpu + - name: cpu + # metrics name i18n label + i18n: + zh-CN: CPU 信息 + en-US: CPU Info + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, i18n-metric name i18n label, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-whether it is a metrics label field + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Host Name + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: cores + type: 0 + i18n: + zh-CN: 核数 + en-US: Cores + - field: waitTime + type: 0 + unit: s + i18n: + zh-CN: 主机名称 + en-US: Host Name + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: /metrics/cpu + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: false + # http request header content + headers: + ^_^headers^_^: ^_^headers^_^ + # http request params + params: + param1: param1 + param2: param2 + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: jsonPath + parseScript: '$' + + - name: memory + i18n: + zh-CN: 内存信息 + en-US: Memory Info + priority: 1 + fields: + - field: hostname + type: 1 + label: true + i18n: + zh-CN: 主机名称 + en-US: Hostname + - field: total + type: 0 + unit: kb + i18n: + zh-CN: 总量 + en-US: Total + - field: usage + type: 0 + unit: '%' + i18n: + zh-CN: 使用率 + en-US: Usage + - field: speed + type: 0 + i18n: + zh-CN: 速率 + en-US: Speed + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /metrics/memory + method: GET + headers: + apiVersion: v1 + params: + param1: param1 + param2: param2 + authorization: + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + parseType: default + +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-jdbc.md b/home/versioned_docs/version-1.7.x/advanced/extend-jdbc.md new file mode 100644 index 00000000000..4a92d94c74f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-jdbc.md @@ -0,0 +1,243 @@ +--- +id: extend-jdbc +title: JDBC Protocol Custom Monitoring +sidebar_label: JDBC Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use JDBC(support mysql,mariadb,postgresql,sqlserver at present) to customize Metric monitoring. +> JDBC protocol custom monitoring allows us to easily monitor Metrics we want by writing SQL query statement. + +### JDBC protocol collection process + +【**System directly connected to MYSQL**】->【**Run SQL query statement**】->【**parse reponse data: oneRow, multiRow, columns**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of JDBC protocol. We need to configure SSH request parameters, configure which Metrics to obtain, and configure query SQL statements. + +### Data parsing method + +We can obtain the corresponding Metric data through the data fields queried by SQL and the Metric mapping we need. At present, there are three mapping parsing methods:oneRow, multiRow, columns. + +#### **oneRow** + +> Query a row of data, return the column name of the result set through query and map them to the queried field. + +eg: +queried Metric fields:one two three four +query SQL:select one, two, three, four from book limit 1; +Here the Metric field and the response data can be mapped into a row of collected data one by one. + +#### **multiRow** + +> Query multiple rows of data, return the column names of the result set and map them to the queried fields. + +eg: +queried Metric fields:one two three four +query SQL:select one, two, three, four from book; +Here the Metric field and the response data can be mapped into multiple rows of collected data one by one. + +#### **columns** + +> Collect a row of Metric data. By matching the two columns of queried data (key value), key and the queried field, value is the value of the query field. + +eg: +queried fields:one two three four +query SQL:select key, value from book; +SQL response data: + +| key | value | +|-------|-------| +| one | 243 | +| two | 435 | +| three | 332 | +| four | 643 | + +Here by mapping the Metric field with the key of the response data, we can obtain the corresponding value as collection and monitoring data. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_sql` which use the JDBC protocol to collect data. + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: db +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_sql +name: + zh-CN: 模拟MYSQL应用类型 + en-US: MYSQL EXAMPLE APP +# Monitoring parameter definition file is used to define required input parameter field structure definition Front-end page render input parameter box according to structure +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 80 + placeholder: 'Please enter the port' + - field: database + name: + zh-CN: 数据库名称 + en-US: Database + type: text + required: false + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + - field: url + name: + zh-CN: Url + en-US: Url + type: text + required: false +# Metric group list +metrics: + - name: basic + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # metrics fields list + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: version + type: 1 + label: true + - field: port + type: 1 + - field: datadir + type: 1 + - field: max_connections + type: 0 + # (optional)Monitoring Metric alias mapping to the Metric name above. The field used to collect interface data is not the final Metric name directly. This alias is required for mapping conversion. + aliasFields: + - version + - version_compile_os + - version_compile_machine + - port + - datadir + - max_connections + # (optional)The Metric calculation expression works with the above alias to calculate the final required Metric value. + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - port=port + - datadir=datadir + - max_connections=max_connections + - version=version+"_"+version_compile_os+"_"+version_compile_machine + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method:oneRow, multiRow, columns + queryType: columns + # sql + sql: show global variables where Variable_name like 'version%' or Variable_name = 'max_connections' or Variable_name = 'datadir' or Variable_name = 'port'; + url: ^_^url^_^ + + - name: status + priority: 1 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: threads_created + type: 0 + - field: threads_connected + type: 0 + - field: threads_cached + type: 0 + - field: threads_running + type: 0 + # (optional)Monitoring Metric alias mapping to the Metric name above. The field used to collect interface data is not the final Metric name directly. This alias is required for mapping conversion. + aliasFields: + - threads_created + - threads_connected + - threads_cached + - threads_running + # (optional)The Metric calculation expression works with the above alias to calculate the final required Metric value. + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - threads_created=threads_created + - threads_connected=threads_connected + - threads_cached=threads_cached + - threads_running=threads_running + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method: oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'thread%' or Variable_name = 'com_commit' or Variable_name = 'com_rollback' or Variable_name = 'questions' or Variable_name = 'uptime'; + url: ^_^url^_^ + + - name: innodb + priority: 2 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: innodb_data_reads + type: 0 + unit: times + - field: innodb_data_writes + type: 0 + unit: times + - field: innodb_data_read + type: 0 + unit: kb + - field: innodb_data_written + type: 0 + unit: kb + protocol: jdbc + jdbc: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + platform: mysql + username: ^_^username^_^ + password: ^_^password^_^ + database: ^_^database^_^ + # SQL query method:oneRow, multiRow, columns + queryType: columns + # sql + sql: show global status where Variable_name like 'innodb%'; + url: ^_^url^_^ +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-jmx.md b/home/versioned_docs/version-1.7.x/advanced/extend-jmx.md new file mode 100644 index 00000000000..a3e98bd7de0 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-jmx.md @@ -0,0 +1,194 @@ +--- +id: extend-jmx +title: JMX Protocol Custom Monitoring +sidebar_label: JMX Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use JMX to customize Metric monitoring. +> JMX protocol custom monitoring allows us to easily monitor Metrics we want by config JMX Mbeans Object. + +### JMX protocol collection process + +【**Peer Server Enable Jmx Service**】->【**HertzBeat Connect Peer Server Jmx**】->【**Query Jmx Mbean Object Data**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of JMX protocol. We need to configure JMX request parameters, configure which Metrics to obtain, and configure Mbeans Object. + +### Data parsing method + +By configuring the monitoring template YML metrics `field`, `aliasFields`, `objectName` of the `jmx` protocol to map and parse the `Mbean` object information exposed by the peer system. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_jvm` which use the JVM protocol to collect data. + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: service +# The monitoring type eg: linux windows tomcat mysql aws... +app: example_jvm +# The monitoring i18n name +name: + zh-CN: 自定义JVM虚拟机 + en-US: CUSTOM JVM +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 9999 + # field-param field key + - field: url + # name-param field display i18n name + name: + zh-CN: JMX URL + en-US: JMX URL + # type-param field type(most mapping the html input type) + type: text + # required-true or false + required: false + # hide param-true or false + hide: true + # param field input placeholder + placeholder: 'service:jmx:rmi:///jndi/rmi://host:port/jmxrmi' + # field-param field key + - field: username + # name-param field display i18n name + name: + zh-CN: 用户名 + en-US: Username + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 50 + # required-true or false + required: false + # hide param-true or false + hide: true + # field-param field key + - field: password + # name-param field display i18n name + name: + zh-CN: 密码 + en-US: Password + # type-param field type(most mapping the html input tag) + type: password + # required-true or false + required: false + # hide param-true or false + hide: true +# collect metrics config list +metrics: + # metrics - basic + - name: basic + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + - field: VmName + type: 1 + - field: VmVendor + type: 1 + - field: VmVersion + type: 1 + - field: Uptime + type: 0 + unit: ms + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: jmx + # the config content when protocol is jmx + jmx: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + # jmx mbean object name + objectName: java.lang:type=Runtime + url: ^_^url^_^ + + - name: memory_pool + priority: 1 + fields: + - field: name + type: 1 + label: true + - field: committed + type: 0 + unit: MB + - field: init + type: 0 + unit: MB + - field: max + type: 0 + unit: MB + - field: used + type: 0 + unit: MB + units: + - committed=B->MB + - init=B->MB + - max=B->MB + - used=B->MB + # (optional)metrics field alias name, it is used as an alias field to map and convert the collected data and metrics field + aliasFields: + - Name + - Usage->committed + - Usage->init + - Usage->max + - Usage->used + # mapping and conversion expressions, use these and aliasField above to calculate metrics value + # eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - name=Name + - committed=Usage->committed + - init=Usage->init + - max=Usage->max + - used=Usage->used + protocol: jmx + jmx: + # host: ipv4 ipv6 domain + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + objectName: java.lang:type=MemoryPool,name=* + url: ^_^url^_^ +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-ngql.md b/home/versioned_docs/version-1.7.x/advanced/extend-ngql.md new file mode 100644 index 00000000000..65c5fb0c69b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-ngql.md @@ -0,0 +1,174 @@ +--- +id: extend-ngql +title: NGQL Custom Monitoring +sidebar_label: NGQL Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use JDBC(support mysql,mariadb,postgresql,sqlserver at present) to customize Metric monitoring. +> NGQL custom monitoring allows us to easily query metric data from the NebulaGraph graph database using NGQL or OpenCypher, supporting NebulaGraph 3.X versions. + +### Data Parsing Methods + +Mapping the fields returned by NGQL queries to the metrics we need allows us to obtain corresponding metric data. Currently, there are four mapping and parsing methods: filterCount, oneRow, multiRow, columns. + +#### **filterCount** + +> Counts the number of results returned by a query based on specified fields, usually used in `SHOW ...` statements. If NGQL statements can directly return the count, it is recommended to use NGQL statements for counting. +> Syntax for the `commands` field: aliasField#NGQL#filterName#filterValue +> `aliasField`: corresponds to the value in the `aliasFields` in the monitoring template +> `NGQL`: query statement +> `filterName`: filter attribute name (optional) +> `filterValue`: filter attribute value (optional) + +For example: + +- online_meta_count#SHOW HOSTS META#Status#ONLINE +Counts the number of rows returned by `SHOW HOSTS META` where Status equals ONLINE. +- online_meta_count#SHOW HOSTS META## +Counts the number of rows returned by `SHOW HOSTS META`. + +#### **oneRow** + +> Queries a single row of data by mapping the column names of the query result set to the queried fields. + +For example: + +- Metrics fields: a, b +- NGQL query: match (v:metrics) return v.metrics.a as a, v.metrics.b as b; + +Here, the metric fields can be mapped to the response data row by row. + +Notes: + +- When using the `oneRow` method, if a single query statement returns multiple rows of results, only the first row of results will be mapped to the metric fields. +- When the `commands` field contains two or more query statements and the returned fields of multiple query statements are the same, the fields returned by the subsequent statement will overwrite those returned by the previous statement. +- It is recommended to use the limit statement to limit the number of rows returned in the result set when defining `commands`. + +#### **multiRow** + +> Queries multiple rows of data by mapping the column names of the query result set to the queried fields. + +For example: + +- Metrics fields: a, b +- NGQL query: match (v:metrics) return v.metrics.a as a, v.metrics.b as b; + +Here, the metric fields can be mapped to the response data row by row. +Notes: + +- When using the `multiRow` method, the `commands` field can only contain one query statement. + +#### **columns** + +> Collects a single row of metric data by mapping two columns of data (key-value), where the key matches the queried fields and the value is the value of the queried field. + +Notes: + +- When using the `columns` method, the first two columns of the result set are mapped to collect data by default, where the first column corresponds to the metric name and the second column corresponds to the metric value. +- When the `commands` field contains two or more query statements and the first column of data returned by multiple query statements is duplicated, the result of the last statement will be retained. + +### Customization Steps + +**HertzBeat Page** -> **Monitoring Template Menu** -> **Add Monitoring Type** -> **Configure Custom Monitoring Template YML** -> **Click Save Application** -> **Use the New Monitoring Type to Add Monitoring** + +![HertzBeat Page](/img/docs/advanced/extend-point-1.png) + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Template YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> Monitoring template is used to define the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information, etc. + +eg: Customize a monitoring type named example_ngql, which collects metric data using NGQL. + +```yaml +# Monitoring category: service-application service program-application program db-database custom-custom os-operating system bigdata-big data mid-middleware webserver-web server cache-cache cn-cloud native network-network monitoring, etc. +category: db +# Monitoring application type (consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_ngql +name: + zh-CN: NGQL Custom Monitoring Application + en-US: NGQL Custom APP +# Monitoring parameter definition. These are input parameter variables, which can be written in the format of ^_^host^_^ to be replaced by system variable values in the later configuration +# This part is usually not modified +params: + # field-param field key + - field: host + name: + zh-CN: Target Host + en-US: Target Host + type: host + required: true + - field: graphPort + name: + zh-CN: Graph Port + en-US: Graph Port + type: number + range: '[0,65535]' + required: true + defaultValue: 9669 + - field: username + name: + zh-CN: Username + en-US: Username + type: text + required: true + - field: password + name: + zh-CN: Password + en-US: Password + type: password + required: true + - field: spaceName + name: + zh-CN: Space Name + en-US: Space Name + type: text + required: false + - field: timeout + name: + zh-CN: Connect Timeout(ms) + en-US: Connect Timeout(ms) + type: number + unit: ms + range: '[0,100000]' + required: true + defaultValue: 6000 +# Metric collection configuration list +metrics: + - name: base_info + i18n: + zh-CN: Vertex statistics + en-US: Vertex statistics + priority: 0 + fields: + - field: tag1 + type: 1 + i18n: + zh-CN: tag1 + en-US: tag1 + - field: tag1 + type: 1 + i18n: + zh-CN: tag2 + en-US: tag2 + aliasFields: + - tag1 + - tag2 + protocol: ngql + ngql: + host: ^_^host^_^ + username: ^_^username^_^ + password: ^_^password^_^ + port: ^_^graphPort^_^ + spaceName: ^_^spaceName^_^ + parseType: columns + # Define the query statements used to collect data + commands: + - match (v:tag1) return "tag1" as name ,count(v) as cnt + - match (v:tag2) return "tag2" as name ,count(v) as cnt + timeout: ^_^timeout^_^ +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-point.md b/home/versioned_docs/version-1.7.x/advanced/extend-point.md new file mode 100644 index 00000000000..dc3046d15af --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-point.md @@ -0,0 +1,146 @@ +--- +id: extend-point +title: Custom Monitoring +sidebar_label: Custom Monitoring +--- + +> HertzBeat has custom monitoring ability. You only need to configure monitoring template yml to fit a custom monitoring type. +> Custom monitoring currently supports [HTTP protocol](extend-http),[JDBC protocol](extend-jdbc), [SSH protocol](extend-ssh), [JMX protocol](extend-jmx), [SNMP protocol](extend-snmp). And it will support more general protocols in the future. + +### Custom Monitoring Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +### Custom Monitoring Metrics Refresh Interval + +HertzBeat now supports setting different refresh intervals for various groups of monitoring metrics. This can be configured in the monitoring template under the `metrics` section by setting the `interval` field, with the unit being seconds. If not set, the default refresh interval specified during the creation of the monitoring will be used. + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example2` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: example2 +# The monitoring i18n name +name: + zh-CN: 模拟网站监测 + en-US: EXAMPLE WEBSITE +# The description and help of this monitoring type +help: + zh-CN: HertzBeat 支持自定义监控,您只需配置监控模板 YML 就能适配一款自定义的监控类型。`
`定义流程如下:HertzBeat 页面 -> 监控模板菜单 -> 新增监控类型 -> 配置自定义监控模板YML -> 点击保存应用 -> 使用新监控类型添加监控。 + en-US: "HertzBeat supports custom monitoring, and you only need to configure the monitoring template YML to adapt to a custom monitoring type. `
`Definition process as follow: HertzBeat Pages -> Main Menu -> Monitor Template -> edit and save -> apply this template." + zh-TW: HertzBeat支持自定義監控,您只需配寘監控模板YML就能適配一款自定義的監控類型。`
`定義流程如下:HertzBeat頁面->監控模板選單->新增監控類型->配寘自定義監控模板YML ->點擊保存應用->使用新監控類型添加監控。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/advanced/extend-point/ + en-US: https://hertzbeat.apache.org/docs/advanced/extend-point/ +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 80 + # field-param field key + - field: uri + # name-param field display i18n name + name: + zh-CN: 相对路径 + en-US: URI + # type-param field type(most mapping the html input tag) + type: text + # when type is text, use limit to limit string length + limit: 200 + # required-true or false + required: false + # param field input placeholder + placeholder: 'Website uri path(no ip port) EG:/console' + # field-param field key + - field: ssl + # name-param field display i18n name + name: + zh-CN: 启用HTTPS + en-US: HTTPS + # type-param field type(most mapping the html input type) + type: boolean + # required-true or false + required: true + # field-param field key + - field: timeout + # name-param field display i18n name + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input tag) + type: number + # required-true or false + required: false + # hide param-true or false + hide: true + +metrics: + # metrics - summary, inner monitoring metrics (responseTime - response time, keyword - number of keywords) + - name: summary + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # refresh interval for this metrics group + interval: 600 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + - field: responseTime + type: 0 + unit: ms + - field: keyword + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url + url: ^_^uri^_^ + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH + method: GET + # if enabled https + ssl: ^_^ssl^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, prometheus-prometheus exporter rule + parseType: website + +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-push.md b/home/versioned_docs/version-1.7.x/advanced/extend-push.md new file mode 100644 index 00000000000..f6ea06e9d49 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-push.md @@ -0,0 +1,26 @@ +--- +id: extend-push +title: Push Style Custom Monitoring +sidebar_label: Push Style Custom Monitoring +--- + +> Push style curstom monitor is a type of monitor which allow user to configure metrics format and push metrics to hertzbeat with their own service. +> Here we will introduce how to use this feature. + +### Push style custom monitor collection process + +【Peer Server Start Pushing Metrics】 -> 【HertzBeat Push Module Stage Metrics】-> 【HertzBeat Collect Module collect Metrics Periodically】 + +### Data parsing method + +HertzBeat will parsing metrics with the format configured by user while adding new monitor. + +### Create Monitor Steps + +HertzBeat DashBoard -> Service Monitor -> Push Style Monitor -> New Push Style Monitor -> set Push Module Host (hertzbeat server ip, usually 127.0.0.1/localhost) -> set Push Module Port (hertzbeat server port, usually 1157) -> configure metrics field (unit: string, type: 0 number / 1 string) -> end + +--- + +### Monitor Configuration Example + +![HertzBeat](/img/docs/advanced/extend-push-example-1.png) diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-snmp.md b/home/versioned_docs/version-1.7.x/advanced/extend-snmp.md new file mode 100644 index 00000000000..04754e46187 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-snmp.md @@ -0,0 +1,171 @@ +--- +id: extend-snmp +title: SNMP Protocol Custom Monitoring +sidebar_label: SNMP Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use SNMP to customize Metric monitoring. +> JMX protocol custom monitoring allows us to easily monitor Metrics we want by config SNMP MIB OIDs. + +### SNMP protocol collection process + +【**Peer Server Enable SNMP Service**】->【**HertzBeat Connect Peer Server SNMP**】->【**Query Oids Data**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of Snmp protocol. We need to configure Snmp request parameters, configure which Metrics to obtain, and configure oids. + +### Data parsing method + +By configuring the metrics `field`, `aliasFields`, and `oids` under the `snmp` protocol of the monitoring template YML to capture the data specified by the peer and parse the mapping. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_windows` which use the SNMP protocol to collect data. + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring mid-middleware custom-custom monitoring os-operating system monitoring +category: os +# The monitoring type eg: linux windows tomcat mysql aws... +app: windows +# The monitoring i18n name +name: + zh-CN: Windows操作系统 + en-US: OS Windows +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 161 + # field-param field key + - field: version + # name-param field display i18n name + name: + zh-CN: SNMP 版本 + en-US: SNMP Version + # type-param field type(radio mapping the html radio tag) + type: radio + # required-true or false + required: true + # when type is radio checkbox, use option to show optional values {name1:value1,name2:value2} + options: + - label: SNMPv1 + value: 0 + - label: SNMPv2c + value: 1 + # field-param field key + - field: community + # name-param field display i18n name + name: + zh-CN: SNMP 团体字 + en-US: SNMP Community + # type-param field type(most mapping the html input type) + type: text + # when type is text, use limit to limit string length + limit: 100 + # required-true or false + required: true + # param field input placeholder + placeholder: 'Snmp community for v1 v2c' + # field-param field key + - field: timeout + # name-param field display i18n name + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,100000]' + # required-true or false + required: false + # hide-is hide this field and put it in advanced layout + hide: true + # default value + defaultValue: 6000 +# collect metrics config list +metrics: + # metrics - system + - name: system + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + - field: name + type: 1 + - field: descr + type: 1 + - field: uptime + type: 1 + - field: numUsers + type: 0 + - field: services + type: 0 + - field: processes + type: 0 + - field: responseTime + type: 0 + unit: ms + - field: location + type: 1 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: snmp + # the config content when protocol is snmp + snmp: + # server host: ipv4 ipv6 domain + host: ^_^host^_^ + # server port + port: ^_^port^_^ + # snmp connect timeout + timeout: ^_^timeout^_^ + # snmp community + community: ^_^community^_^ + # snmp version + version: ^_^version^_^ + # snmp operation: get, walk + operation: get + # metrics oids: metric_name - oid_value + oids: + name: 1.3.6.1.2.1.1.5.0 + descr: 1.3.6.1.2.1.1.1.0 + uptime: 1.3.6.1.2.1.25.1.1.0 + numUsers: 1.3.6.1.2.1.25.1.5.0 + services: 1.3.6.1.2.1.1.7.0 + processes: 1.3.6.1.2.1.25.1.6.0 + location: 1.3.6.1.2.1.1.6.0 +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-ssh.md b/home/versioned_docs/version-1.7.x/advanced/extend-ssh.md new file mode 100644 index 00000000000..62f9453a2d2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-ssh.md @@ -0,0 +1,214 @@ +--- +id: extend-ssh +title: SSH Protocol Custom Monitoring +sidebar_label: SSH Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use SSH protocol to customize Metric monitoring. +> SSH protocol custom monitoring allows us to easily monitor and collect the Linux Metrics we want by writing sh command script. + +### SSH protocol collection process + +【**System directly connected to Linux**】->【**Run shell command script statement**】->【**parse response data: oneRow, multiRow**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of SSH protocol. We need to configure SSH request parameters, configure which Metrics to obtain, and configure query script statements. + +### Data parsing method + +We can obtain the corresponding Metric data through the data fields queried by the SHELL script and the Metric mapping we need. At present, there are two mapping parsing methods:oneRow and multiRow which can meet the needs of most Metrics. + +#### **oneRow** + +> Query out a column of data, return the field value (one value per row) of the result set through query and map them to the field. + +eg: +Metrics of Linux to be queried hostname-host name,uptime-start time +Host name original query command:`hostname` +Start time original query command:`uptime | awk -F "," '{print $1}'` +Then the query script of the two Metrics in hertzbeat is(Use `;` Connect them together): +`hostname; uptime | awk -F "," '{print $1}'` +The data responded by the terminal is: + +```shell +tombook +14:00:15 up 72 days +``` + +At last collected Metric data is mapped one by one as: +hostname is `tombook` +uptime is `14:00:15 up 72 days` + +Here the Metric field and the response data can be mapped into a row of collected data one by one + +#### **multiRow** + +> Query multiple rows of data, return the column names of the result set through the query, and map them to the Metric field of the query. + +eg: +Linux memory related Metric fields queried:total-Total memory, used-Used memory,free-Free memory, buff-cache-Cache size, available-Available memory +Memory metrics original query command:`free -m`, Console response: + +```shell + total used free shared buff/cache available +Mem: 7962 4065 333 1 3562 3593 +Swap: 8191 33 8158 +``` + +In hertzbeat multiRow format parsing requires a one-to-one mapping between the column name of the response data and the indicaotr value, so the corresponding query SHELL script is: +`free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}'` +Console response is: + +```shell +total used free buff_cache available +7962 4066 331 3564 3592 +``` + +Here the Metric field and the response data can be mapped into collected data one by one. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `example_linux` which use the SSH protocol to collect data. + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: os +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +app: example_linux +name: + zh-CN: 模拟LINUX应用类型 + en-US: LINUX EXAMPLE APP +params: + - field: host + name: + zh-CN: 主机Host + en-US: Host + type: host + required: true + - field: port + name: + zh-CN: 端口 + en-US: Port + type: number + range: '[0,65535]' + required: true + defaultValue: 22 + placeholder: 'Please enter the port' + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: true +# Metric group list +metrics: + # The first monitoring Metric group basic + # Note:: the built-in monitoring Metrics have (responseTime - response time) + - name: basic + # The smaller Metric group scheduling priority(0-127), the higher the priority. After completion of the high priority Metric group collection,the low priority Metric group will then be scheduled. Metric groups with the same priority will be scheduled in parallel. + # Metric group with a priority of 0 is an availability group which will be scheduled first. If the collection succeeds, the scheduling will continue otherwise interrupt scheduling. + priority: 0 + # metrics fields list + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: hostname + type: 1 + label: true + - field: version + type: 1 + - field: uptime + type: 1 + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: (uname -r ; hostname ; uptime | awk -F "," '{print $1}' | sed "s/ //g") | sed ":a;N;s/\n/^/g;ta" | awk -F '^' 'BEGIN{print "version hostname uptime"} {print $1, $2, $3}' + # parsing method for reponse data:oneRow, multiRow + parseType: multiRow + + - name: cpu + priority: 1 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: info + type: 1 + - field: cores + type: 0 + unit: the number of cores + - field: interrupt + type: 0 + unit: number + - field: load + type: 1 + - field: context_switch + type: 0 + unit: number + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # 主机host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: "LANG=C lscpu | awk -F: '/Model name/ {print $2}';awk '/processor/{core++} END{print core}' /proc/cpuinfo;uptime | sed 's/,/ /g' | awk '{for(i=NF-2;i<=NF;i++)print $i }' | xargs;vmstat 1 1 | awk 'NR==3{print $11}';vmstat 1 1 | awk 'NR==3{print $12}'" + parseType: oneRow + + - name: memory + priority: 2 + fields: + # Metric information include field: name type: field type(0-number: number, 1-string: string) label-if is metrics label unit: Metric unit + - field: total + type: 0 + unit: Mb + - field: used + type: 0 + unit: Mb + - field: free + type: 0 + unit: Mb + - field: buff_cache + type: 0 + unit: Mb + - field: available + type: 0 + unit: Mb + # protocol for monitoring and collection eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: ssh + # Specific collection configuration when the protocol is SSH protocol + ssh: + # host: ipv4 ipv6 domain name + host: ^_^host^_^ + # port + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + script: free -m | grep Mem | awk 'BEGIN{print "total used free buff_cache available"} {print $2,$3,$4,$6,$7}' + parseType: multiRow +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-telnet.md b/home/versioned_docs/version-1.7.x/advanced/extend-telnet.md new file mode 100644 index 00000000000..c75d0b9beff --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-telnet.md @@ -0,0 +1,299 @@ +--- +id: extend-telnet +title: Telnet Protocol Custom Monitoring +sidebar_label: Telnet Protocol Custom Monitoring +--- + +> From [Custom Monitoring](extend-point), you are familiar with how to customize types, Metrics, protocols, etc. Here we will introduce in detail how to use Telnet to customize Metric monitoring. +> Telnet protocol custom monitoring allows us to easily monitor and collect the Linux Metrics we want by writing sh command script. + +### Telnet protocol collection process + +【**System directly connected to Linux**】->【**Run shell command script statement**】->【**parse response data: oneRow, multiRow**】->【**Metric data extraction**】 + +It can be seen from the process that we define a monitoring type of Telnet protocol. We need to configure Telnet request parameters, configure which Metrics to obtain, and configure query script statements. + +### Data parsing method + +By configuring the metrics `field`, `aliasFields` the `Telnet` protocol of the monitoring template YML to capture the data specified by the peer and parse the mapping. + +### Custom Steps + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +------- + +Configuration usages of the monitoring templates yml are detailed below. + +### Monitoring Templates YML + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +eg:Define a custom monitoring type `app` named `zookeeper` which use the telnet protocol to collect data. + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +# 监控类型所属类别:service-应用服务 program-应用程序 db-数据库 custom-自定义 os-操作系统 bigdata-大数据 mid-中间件 webserver-web服务器 cache-缓存 cn-云原生 network-网络监控等等 +category: mid +# Monitoring application type(consistent with the file name) eg: linux windows tomcat mysql aws... +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: zookeeper +# The monitoring i18n name +# 监控类型国际化名称 +name: + zh-CN: Zookeeper服务 + en-US: Zookeeper Server +# 监控参数定义. field 这些为输入参数变量,即可以用^_^host^_^的形式写到后面的配置中,系统自动变量值替换 +# 强制固定必须参数 - host +params: + # field-param field key + # field-字段名称标识符 + - field: host + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # field-param field key + # field-字段名称标识符 + - field: port + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # when type is number, range is required + # 当type为number时,用range表示范围 + range: '[0,65535]' + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: true + # default + # 默认值 + defaultValue: 2181 + # param field input placeholder + # 参数输入框提示信息 + placeholder: '请输入端口' + # field-param field key + # field-字段名称标识符 + - field: timeout + # name-param field display i18n name + # name-参数字段显示名称 + name: + zh-CN: 查询超时时间(ms) + en-US: Query Timeout(ms) + # type-param field type(most mapping the html input type) + # type-字段类型,样式(大部分映射input标签type属性) + type: number + # required-true or false + # 是否是必输项 true-必填 false-可选 + required: false + # hide-is hide this field and put it in advanced layout + # 隐藏是隐藏这个字段,并把它放在高级布局 + hide: true + # default + # 默认值 + defaultValue: 6000 +# collect metrics config list +# 采集指标配置列表 +metrics: + # metrics - conf + # 第一个监控指标 conf + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: conf + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + # 指标采集调度优先级(0->127)->(优先级高->低) 优先级低的指标会等优先级高的指标采集完成后才会被调度, 相同优先级的指标会并行调度采集 + # 优先级为0的指标为可用性指标,即它会被首先调度,采集成功才会继续调度其它指标,采集失败则中断调度 + priority: 0 + # collect metrics content + # 具体监控指标列表 + fields: + # field-metric name, type-metric type(0-number,1-string), unit-metric unit('%','ms','MB'), label-if is metrics label + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 label是否为标签 unit:指标单位 + - field: clientPort + type: 0 + i18n: + zh-CN: 客户端端口 + en-US: Client Port + - field: dataDir + type: 1 + i18n: + zh-CN: 数据目录 + en-US: Data Directory + - field: dataDirSize + type: 0 + unit: kb + i18n: + zh-CN: 数据目录大小 + en-US: Data Directory Size + - field: dataLogDir + type: 1 + i18n: + zh-CN: 日志目录 + en-US: Data Log Directory + - field: dataLogSize + type: 0 + unit: kb + i18n: + zh-CN: 日志目录大小 + en-US: Data Log Size + - field: tickTime + type: 0 + unit: ms + i18n: + zh-CN: 心跳间隔时间 + en-US: Tick Time + - field: maxClientCnxns + type: 1 + i18n: + zh-CN: 最大客户端连接数 + en-US: Max Client Connections + - field: minSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最小会话超时 + en-US: Min Session Timeout + - field: maxSessionTimeout + type: 0 + unit: ms + i18n: + zh-CN: 最大会话超时 + en-US: Max Session Timeout + - field: serverId + type: 0 + i18n: + zh-CN: 服务器ID + en-US: Server ID + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk + # 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: telnet + # the config content when protocol is telnet + # 当protocol为telnet协议时具体的采集配置 + telnet: + # host: ipv4 ipv6 domain + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # port + # 端口 + port: ^_^port^_^ + # timeout + # 超时时间 + timeout: ^_^timeout^_^ + # telnet instruction + # telnet指令 + cmd: conf + + - name: stats + priority: 1 + fields: + - field: zk_version + type: 1 + i18n: + zh-CN: ZooKeeper版本 + en-US: ZooKeeper Version + - field: zk_server_state + type: 1 + i18n: + zh-CN: 服务器状态 + en-US: Server State + - field: zk_num_alive_connections + type: 0 + unit: 个 + i18n: + zh-CN: 存活连接数 + en-US: Number of Alive Connections + - field: zk_avg_latency + type: 0 + unit: ms + i18n: + zh-CN: 平均延迟 + en-US: Average Latency + - field: zk_outstanding_requests + type: 0 + unit: 个 + i18n: + zh-CN: 未完成请求数 + en-US: Outstanding Requests + - field: zk_znode_count + type: 0 + unit: 个 + i18n: + zh-CN: ZNode数量 + en-US: ZNode Count + - field: zk_packets_sent + type: 0 + unit: 个 + i18n: + zh-CN: 发送数据包数 + en-US: Packets Sent + - field: zk_packets_received + type: 0 + unit: 个 + i18n: + zh-CN: 接收数据包数 + en-US: Packets Received + - field: zk_watch_count + type: 0 + unit: 个 + i18n: + zh-CN: Watch数量 + en-US: Watch Count + - field: zk_max_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 最大文件描述符数量 + en-US: Max File Descriptor Count + - field: zk_approximate_data_size + type: 0 + unit: kb + i18n: + zh-CN: 大致数据大小 + en-US: Approximate Data Size + - field: zk_open_file_descriptor_count + type: 0 + unit: 个 + i18n: + zh-CN: 打开的文件描述符数量 + en-US: Open File Descriptor Count + - field: zk_max_latency + type: 0 + unit: ms + i18n: + zh-CN: 最大延迟 + en-US: Max Latency + - field: zk_ephemerals_count + type: 0 + unit: 个 + i18n: + zh-CN: 临时节点数量 + en-US: Ephemerals Count + - field: zk_min_latency + type: 0 + unit: ms + i18n: + zh-CN: 最小延迟 + en-US: Min Latency + protocol: telnet + telnet: + host: ^_^host^_^ + port: ^_^port^_^ + timeout: ^_^timeout^_^ + cmd: mntr + + +``` diff --git a/home/versioned_docs/version-1.7.x/advanced/extend-tutorial.md b/home/versioned_docs/version-1.7.x/advanced/extend-tutorial.md new file mode 100644 index 00000000000..f78d8b5329a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/advanced/extend-tutorial.md @@ -0,0 +1,232 @@ +--- +id: extend-tutorial +title: Quick Tutorial Customize and adapt a monitoring based on HTTP protocol +sidebar_label: Tutorial Case +--- + +Through this tutorial, we describe step by step how to customize and adapt a monitoring type based on the http protocol under the Apache HertzBeat. + +Before reading this tutorial, we hope that you are familiar with how to customize types, metrics, protocols, etc. from [Custom Monitoring](extend-point) and [Http Protocol Customization](extend-http). + +### HTTP protocol parses the general response structure to obtain metrics data + +> In many scenarios, we need to monitor the provided HTTP API interface and obtain the index value returned by the interface. In this article, we use the http custom protocol to parse our common http interface response structure, and obtain the fields in the returned body as metric data. + +```json +{ + "code": 200, + "msg": "success", + "data": {} +} + +``` + +As above, usually our background API interface will design such a general return. The same is true for the background of the hertzbeat system. Today, we will use the hertzbeat API as an example, add a new monitoring type **hertzbeat**, and monitor and collect its system summary statistics API +`http://localhost:1157/api/summary`, the response data is: + +```json +{ + "msg": null, + "code": 0, + "data": { + "apps": [ + { + "category": "service", + "app": "jvm", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + }, + { + "category": "service", + "app": "website", + "status": 0, + "size": 2, + "availableSize": 0, + "unManageSize": 2, + "unAvailableSize": 0, + "unReachableSize": 0 + } + ] + } +} +``` + +**This time we get the metrics data such as `category`, `app`, `status`, `size`, `availableSize` under the app.** + +### Add Monitoring Template Yml + +**HertzBeat Dashboard** -> **Monitoring Templates** -> **New Template** -> **Config Monitoring Template Yml** -> **Save and Apply** -> **Add A Monitoring with The New Monitoring Type** + +> We define all monitoring collection types (mysql,jvm,k8s) as yml monitoring templates, and users can import these templates to support corresponding types of monitoring. +> +> Monitoring template is used to define *the name of monitoring type(international), request parameter mapping, index information, collection protocol configuration information*, etc. + +Here we define a custom monitoring type `app` named `hertzbeat` which use the HTTP protocol to collect data. + +**Monitoring Templates** -> **Config New Monitoring Template Yml** -> **Save and Apply** + +```yaml +# The monitoring type category:service-application service monitoring db-database monitoring custom-custom monitoring os-operating system monitoring +category: custom +# The monitoring type eg: linux windows tomcat mysql aws... +app: hertzbeat +# The monitoring i18n name +name: + zh-CN: HertzBeat监控系统 + en-US: HertzBeat Monitor +# The description and help of this monitoring type +help: + zh-CN: Hertzbeat 对 Hertzbeat 监控系统的通用指标进行测量监控。`
`您可以点击 “``新建 HertzBeat监控系统``” 并进行配置,或者选择“``更多操作``”,导入已有配置。 + en-US: Hertzbeat monitors HertzBeat Monitor through general performance metric. You could click the "``New HertzBeat Monitor``" button and proceed with the configuration or import an existing setup through the "``More Actions``" menu. + zh-TW: Hertzbeat對Hertzbeat監控系統的通用名額進行量測監控。`
`您可以點擊“``新建HertzBeat監控系統``”並進行配寘,或者選擇“``更多操作``”,導入已有配寘。 +helpLink: + zh-CN: https://hertzbeat.apache.org/zh-cn/docs/help/hertzbeat + en-US: https://hertzbeat.apache.org/docs/help/hertzbeat +# Input params define for monitoring(render web ui by the definition) +params: + # field-param field key + - field: host + # name-param field display i18n name + name: + zh-CN: 主机Host + en-US: Host + # type-param field type(most mapping the html input type) + type: host + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + # required-true or false + required: true + # default value + defaultValue: 1157 + - field: ssl + name: + zh-CN: 启用HTTPS + en-US: HTTPS + type: boolean + required: true + - field: timeout + name: + zh-CN: 超时时间(ms) + en-US: Timeout(ms) + type: number + required: false + hide: true + - field: authType + name: + zh-CN: 认证方式 + en-US: Auth Type + type: radio + required: false + hide: true + options: + - label: Basic Auth + value: Basic Auth + - label: Digest Auth + value: Digest Auth + - field: username + name: + zh-CN: 用户名 + en-US: Username + type: text + limit: 50 + required: false + hide: true + - field: password + name: + zh-CN: 密码 + en-US: Password + type: password + required: false + hide: true +metrics: + # the first metrics summary + # attention: Built-in monitoring metrics contains (responseTime - Response time) + - name: summary + # metrics scheduling priority(0->127)->(high->low), metrics with the same priority will be scheduled in parallel + # priority 0's metrics is availability metrics, it will be scheduled first, only availability metrics collect success will the scheduling continue + priority: 0 + # collect metrics content + fields: + # metrics content contains field-metric name, type-metric type:0-number,1-string, label-if is metrics label, unit-metric unit('%','ms','MB') + - field: app + type: 1 + label: true + - field: category + type: 1 + - field: status + type: 0 + - field: size + type: 0 + - field: availableSize + type: 0 + # the protocol used for monitoring, eg: sql, ssh, http, telnet, wmi, snmp, sdk, we use HTTP protocol here + protocol: http + # the config content when protocol is http + http: + # http host: ipv4 ipv6 domain + host: ^_^host^_^ + # http port + port: ^_^port^_^ + # http url, we don't need to enter a parameter here, just set the fixed value to /api/summary + url: /api/summary + timeout: ^_^timeout^_^ + # http method: GET POST PUT DELETE PATCH, default fixed value is GET + method: GET + # if enabled https, default value is false + ssl: ^_^ssl^_^ + # http auth + authorization: + # http auth type: Basic Auth, Digest Auth, Bearer Token + type: ^_^authType^_^ + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + digestAuthUsername: ^_^username^_^ + digestAuthPassword: ^_^password^_^ + # http response data parse type: default-hertzbeat rule, jsonpath-jsonpath script, website-for website monitoring, we use jsonpath to parse response data here + parseType: jsonPath + parseScript: '$.data.apps.*' +``` + +**The addition is complete, now we restart the hertzbeat system. We can see that the system page has added a `hertzbeat` monitoring type.** + +![HertzBeat](/img/docs/advanced/extend-http-example-1.png) + +### The system page adds the monitoring of `hertzbeat` monitoring type + +> We click Add `HertzBeat Monitoring Tool`, configure monitoring IP, port, collection cycle, account password in advanced settings, etc., click OK to add monitoring. + +![HertzBeat](/img/docs/advanced/extend-http-example-2.png) + +![HertzBeat](/img/docs/advanced/extend-http-example-3.png) + +> After a certain period of time (depending on the collection cycle), we can see the specific metric data and historical charts in the monitoring details! + +![HertzBeat](/img/docs/advanced/extend-http-example-4.png) + +### Set threshold alarm notification + +> Next, we can set the threshold normally. After the alarm is triggered, we can view it in the alarm center, add a new recipient, set alarm notification, etc. Have Fun!!! + +---- + +#### over + +This is the end of the practice of custom monitoring of the HTTP protocol. The HTTP protocol also has other parameters such as headers and params. We can define it like postman, and the playability is also very high! + +If you think hertzbeat is a good open source project, please star us on GitHub Gitee, thank you very much. Thanks for the old iron support. Refill! + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/community/become_committer.md b/home/versioned_docs/version-1.7.x/community/become_committer.md new file mode 100644 index 00000000000..939edc29f16 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/become_committer.md @@ -0,0 +1,83 @@ +--- +id: 'become_committer' +title: 'Become A Committer' +sidebar_position: 2 +--- + + + +## Become A Committer of Apache HertzBeat + +Anyone being supportive of the community and working in any of the +CoPDoC areas can become an Apache HertzBeat™ committer. The CoPDoC is an +acronym from ASF to describe how we recognize your contributions not +only by code. + +- **Community** - You can join us via our mailing list, issue + trackers, discussions page to interact with community members, and + share vision and knowledge +- **Project** - a clear vision and consensus are needed +- **Documentation** - without it, the stuff remains only in the minds + of the authors +- **Code** - discussion goes nowhere without code + +Apache HertzBeat™ community strives to be meritocratic. Thus, once someone +has contributed sufficiently to any area of CoPDoC they can be a +candidate for committer-ship and at last voted in as a HertzBeat +committer. Being an Apache HertzBeat™ committer does not necessarily mean +you must commit code with your commit privilege to the codebase; it +means you are committed to the HertzBeat project and are productively +contributing to our community's success. + +## Committer requirements + +There are no strict rules for becoming a committer or new PMC member. +Candidates for new committers are typically people that are active +contributors and community members. Anyway, if the rules can be +clarified a little bit, it can somehow clear the doubts in the minds +of contributors and make the community more transparent, reasonable, +and fair. + +### Continuous contributions + +Committer candidates should have a decent amount of continuous +engagements and contributions (fixing bugs, adding new features, +writing documentation, maintaining issues boards, code review, or answering +community questions) to HertzBeat. + +- 3+ months with activity and engagement. +- 20+ pr coding, document, test or other contributions. + +### Quality of contributions + +- A solid general understanding of the project +- Well tested, well-designed, following Apache HertzBeat™ coding + standards, and simple patches. +- Well-organized and detailed user-oriented documentation. + +### Community involvement + +- Be active, courteous, and respectful on the dev mailing list and + help mentor newer contributors + and users. +- Be active, courteous, and respectful on the issue tracker for + project maintenance +- Be active, courteous, and respectful for pull requests reviewing +- Be involved in the design road map discussions with a professional + and diplomatic approach even if there is a disagreement +- Promoting the project by writing articles or holding events diff --git a/home/versioned_docs/version-1.7.x/community/become_pmc_member.md b/home/versioned_docs/version-1.7.x/community/become_pmc_member.md new file mode 100644 index 00000000000..660d189cd4a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/become_pmc_member.md @@ -0,0 +1,82 @@ +--- +id: 'become_pmc_member' +title: 'Become A new PMC member' +sidebar_position: 3 +--- + + + +## Become A new PMC member of Apache HertzBeat + +Anyone being supportive of the community and working in any of the +CoPDoC areas can become an Apache HertzBeat™ new PMC member. The CoPDoC is an +acronym from ASF to describe how we recognize your contributions not +only by code. + +- **Community** - You can join us via our mailing list, issue + trackers, discussions page to interact with community members, and + share vision and knowledge +- **Project** - a clear vision and consensus are needed +- **Documentation** - without it, the stuff remains only in the minds + of the authors +- **Code** - discussion goes nowhere without code + +Apache HertzBeat™ community strives to be meritocratic. Thus, once someone +has contributed sufficiently to any area of CoPDoC they can be a +candidate for new PMC membership and at last voted in as a HertzBeat +PMC member. Being an Apache HertzBeat™ new PMC member does not necessarily mean +you must commit code with your commit privilege to the codebase; it +means you are committed to the HertzBeat project and are productively +contributing to our community's success. + +## new PMC member requirements + +There are no strict rules for becoming a committer or new PMC member. +Candidates for new PMC member are typically people that are active +contributors and community members. Anyway, if the rules can be +clarified a little bit, it can somehow clear the doubts in the minds +of contributors and make the community more transparent, reasonable, +and fair. + +### Continuous contributions + +PMC member candidates should have a decent amount of continuous +engagements and contributions (fixing bugs, adding new features, +writing documentation, maintaining issues boards, code review, or answering +community questions) to HertzBeat. + +- 12+ months with activity and engagement. + +### Quality of contributions + +- A solid general understanding of the project +- Well tested, well-designed, following Apache HertzBeat™ coding + standards, and simple patches. +- Well-organized and detailed user-oriented documentation. + +### Community involvement + +- Be active, courteous, and respectful on the dev mailing list and + help mentor newer contributors + and users. +- Be active, courteous, and respectful on the issue tracker for + project maintenance +- Be active, courteous, and respectful for pull requests reviewing +- Be involved in the design road map discussions with a professional + and diplomatic approach even if there is a disagreement +- Promoting the project by writing articles or holding events diff --git a/home/versioned_docs/version-1.7.x/community/code-style-and-quality-guide.md b/home/versioned_docs/version-1.7.x/community/code-style-and-quality-guide.md new file mode 100644 index 00000000000..f1a489a92fa --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/code-style-and-quality-guide.md @@ -0,0 +1,649 @@ +--- +id: 'code_style_and_quality_guide' +title: 'Code style and quality guide' +sidebar_position: 3 +--- + + + +## 1 Pull Requests & Changes Rule + +1. `ISSUE`/`PR`(pull request) driving and naming + + - After creating a new `PR`, you need to associate the existing corresponding `ISSUE` at the Github Development button on the `PR` page (if there is no corresponding ISSUE, it is recommended to create a new corresponding ISSUE). + + - Title naming format + `[feature/bugfix/doc/improve/refactor/bug/cleanup] title` + +2. Description + + - Please fill in the `PR` template to describe the contribution. So that the reviewer can understand the problem and solution from the description, rather than just from the code. + - Check the CheckList +3. It's recommended that `PR` should be arranged changes such as `cleanup`, `Refactor`, `improve`, and `feature` into separated `PRs`/`Commits`. +4. Commit message(English, lowercase, no special characters) + The commit of messages should follow a pattern similar to the `[feature/bugfix/doc/improve/refactor/bug/cleanup] title` + +## 2 Code Checkstyle + +### 2.1 Configure Checkstyle + +1. Install the Checkstyle-IDEA plugin. +2. Open Checkstyle Settings. Click **Settings** → **Tools** → **Checkstyle**. +3. Set **Checkstyle version** to **10.14.2**. +4. Set **Scan scope** to **Only Java sources (including tests)**. +5. Click **+** button in the **Configuration** section to open a dialog to choose the checkstyle config file. + 1. Enter a **Description**. For example, hertzbeat. + 2. Select **Use a local checkstyle file**. + 3. Set **File** to **script/checkstyle/checkstyle.xml**. + 4. Select **Store relative to project location**. + 5. Click **Next** → **Next** → **Finish**. +6. Activate the configuration you just added by toggling the corresponding box. +7. Click **OK**. + +- Backend code specification Maven plugin: `checkstyle` + Just run `mvn checkstyle:checkstyle`. + +- Frontend code formatting plugin `eslint` + Just run `npm run lint:fix` in web-app + +### 2.2 Document style check + +1. Install `markdownlint-cli2` and run `npm install markdownlint-cli2 --global` +2. Run `markdownlint-cli2 "home/**/*.md"` in the project to automatically detect the Markdown file format. +3. Run `markdownlint-cli2 --fix "home/**/*.md"` in the project to automatically format the Markdown file format to ensure that all documents meet the specifications. + +Error code description: + +| **Error code** | **description** | +|--------------------------------------------| ------------------------------------------------------------ | +| **MD001 heading-increment** | Heading levels should only increment by one level at a time | +| **MD003 heading-style** | Heading style | +| **MD004 ul-style** | Unordered list style | +| **MD005 list-indent** | Inconsistent indentation for list items at the same level | +| **MD007 ul-indent** | Unordered list indentation | +| **MD009 no-trailing-spaces** | Trailing spaces | +| **MD010 no-hard-tabs** | Hard tabs | +| **MD011 no-reversed-links** | Reversed link syntax | +| **MD012 no-multiple-blanks** | Multiple consecutive blank lines | +| **MD013 line-length** | Line length | +| **MD014 commands-show-output** | Dollar signs used before commands without showing output | +| **MD018 no-missing-space-atx** | No space after hash on atx style heading | +| **MD019 no-multiple-space-atx** | Multiple spaces after hash on atx style heading | +| **MD020 no-missing-space-closed-atx** | No space inside hashes on closed atx style heading | +| **MD021 no-multiple-space-closed-atx** | Multiple spaces inside hashes on closed atx style heading | +| **MD022 blanks-around-headings** | Headings should be surrounded by blank lines | +| **MD023 heading-start-left** | Headings must start at the beginning of the line | +| **MD024 no-duplicate-heading** | Multiple headings with the same content | +| **MD025 single-title/single-h1** | Multiple top-level headings in the same document | +| **MD026 no-trailing-punctuation** | Trailing punctuation in heading | +| **MD027 no-multiple-space-blockquote** | Multiple spaces after blockquote symbol | +| **MD028 no-blanks-blockquote** | Blank line inside blockquote | +| **MD029 ol-prefix** | Ordered list item prefix | +| **MD030 list-marker-space** | Spaces after list markers | +| **MD031 blanks-around-fences** | Fenced code blocks should be surrounded by blank lines | +| **MD032 blanks-around-lists** | Lists should be surrounded by blank lines | +| **MD033 no-inline-html** | Inline HTML | +| **MD034 no-bare-urls** | Bare URL used | +| **MD035 hr-style** | Horizontal rule style | +| **MD036 no-emphasis-as-heading** | Emphasis used instead of a heading | +| **MD037 no-space-in-emphasis** | Spaces inside emphasis markers | +| **MD038 no-space-in-code** | Spaces inside code span elements | +| **MD039 no-space-in-links** | Spaces inside link text | +| **MD040 fenced-code-language** | Fenced code blocks should have a language specified | +| **MD041 first-line-heading/first-line-h1** | First line in a file should be a top-level heading | +| **MD042 no-empty-links** | No empty links | +| **MD043 required-headings** | Required heading structure | +| **MD044 proper-names** | Proper names should have the correct capitalization | +| **MD045 no-alt-text** | Images should have alternate text (alt text) | +| **MD046 code-block-style** | Code block style | +| **MD047 single-trailing-newline** | Files should end with a single newline character | +| **MD048 code-fence-style** | Code fence style | +| **MD049 emphasis-style** | Emphasis style | +| **MD050 strong-style** | Strong style | +| **MD051 link-fragments** | Link fragments should be valid | +| **MD052 reference-links-images** | Reference links and images should use a label that is defined | +| **MD053 link-image-reference-definitions** | Link and image reference definitions should be needed | +| **MD054 link-image-style** | Link and image style | +| **MD055 table-pipe-style** | Table pipe style | +| **MD056 table-column-count** | Table column count | + +## 3 Programming Specification + +### 3.1 Naming Style + +1. Prioritize selecting nouns for variable naming, it's easier to distinguish between `variables` or `methods`. + + ```java + Cache`` publicKeyCache; + ``` + +2. Pinyin abbreviations are prohibited for variables (excluding nouns such as place names), such as chengdu. +3. It is recommended to end variable names with a `type`. + For variables of type `Collection/List`, take `xxxx` (plural representing multiple elements) or end with `xxxList` (specific type). + For variables of type `map`, describe the `key` and `value` clearly: + + ```java + Map idUserMap; + Map userIdNameMap; + ``` + +4. That can intuitively know the type and meaning of the variable through its name. + Method names should start with a verb first as follows: + + ```java + void computeVcores(Object parameter1); + ``` + + > Note: It is not necessary to strictly follow this rule in the `Builder` tool class. + +### 3.2 Constant Variables Definition + +1. Redundant strings should be extracted as constants + + > If a constant has been hardcoded twice or more times, please directly extract it as a constant and change the corresponding reference. + > In generally, constants in `log` can be ignored to extract. + + - Negative demo: + + ```java + public static RestResponse success(Object data) { + RestResponse resp = new RestResponse(); + resp.put("status", "success"); + resp.put("code", ResponseCode.CODE_SUCCESS); + resp.put("data", data); + return resp; + } + + public static RestResponse error() { + RestResponse resp = new RestResponse(); + resp.put("status", "error"); + resp.put("code", ResponseCode.CODE_FAIL); + resp.put("data", null); + return resp; + } + ``` + + - Positive demo: + + > Strings are extracted as constant references. + + ```java + public static final String STATUS = "status"; + public static final String CODE = "code"; + public static final String DATA = "data"; + + public static RestResponse success(Object data) { + RestResponse resp = new RestResponse(); + resp.put(STATUS, "success"); + resp.put(CODE, ResponseCode.CODE_SUCCESS); + resp.put(DATA, data); + return resp; + } + + public static RestResponse error() { + RestResponse resp = new RestResponse(); + resp.put(STATUS, "error"); + resp.put(CODE, ResponseCode.CODE_FAIL); + resp.put(DATA, null); + return resp; + } + ``` + +2. Ensure code readability and intuitiveness + + - The string in the `annotation` symbol doesn't need to be extracted as constant. + + - The referenced `package` or `resource` name doesn't need to be extracted as constant. + +3. Variables that have not been reassigned must also be declared as `` final `` types. + +4. About the arrangement order of `constant/variable` lines + + Sort the variable lines in the class in the order of + 1. `public static final V`, `static final V`,`protected static final V`, `private static final V` + 2. `public static v`, `static v`,`protected static v`, `private static v` + 3. `public v`, `v`, `protected v`, `private v` + +### 3.3 Methods Rule + +1. Sort the methods in the class in the order of `public`, `protected`, `private` + + Static methods of a class can be placed after non-static methods and sorted according to consistent method visibility. + +2. When there are restrictions on the method, the parameters and returned values of the method need to be annotated with `@Nonnull` or `@Nullable` annotations and constraints. + + For example, if the parameter cannot be null, it is best to add a `@Nonnull` annotation. If the returned value can be null, the `@Nullable` annotation should be added first. + + `` Note: that the package name is ``javax.validation.requirements`` `` + +3. If there are too many lines of code in the method, please have a try on using multiple sub methods at appropriate points to segment the method body. + + Generally speaking, it needs to adhere to the following principles: + - Convenient testing + - Good semantics + - Easy to read + + In addition, it is also necessary to consider whether the splitting is reasonable in terms of components, logic, abstraction, and other aspects in the scenario. + + > However, there is currently no clear definition of demo. During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. + +### 3.4 Collection Rule + +1. For `collection` returned values, unless there are special `concurrent` (such as thread safety), always return the `interface`, such as: + - returns `` List `` if use `ArrayList` + - returns `` Map `` if use `HashMap` + - returns `` Set `` if use `HashSet` +2. If there are multiple threads, the following declaration or returned types can be used: + + ```java + private CurrentHashMap map; + public CurrentHashMap funName(); + ``` + +3. Use `isEmpty()` instead of `length() == 0` or `size() == 0` + - Negative demo: + + ```java + if (pathPart.length() == 0) { + return; + } + ``` + + - Positive demo: + + ```java + if (pathPart.isEmpty()) { + return; + } + ``` + +### 3.5 Concurrent Processing + +1. The `thread pool` needs to be managed, using a unified entry point to obtain the `thread pool`. + + `` Note: During the evolution process, we will provide additional examples for developers to have a clearer reference and understanding. `` + +2. `Thread pool` needs to be resource constrained to prevent resource leakage caused by improper handling + +### 3.6 Control/Condition Statements + +1. Avoid unreasonable `condition/control` branches order leads to: + - Multiple code line `depths` of `n+1` + - Redundant lines + +Generally speaking, if a method's code line depth exceeds `2+ Tabs` due to continuous nested `if... else..`, it should be considered to try + +- `merging branches`, +- `inverting branch conditions` +- `extracting private methods` + +to reduce code line depth and improve readability like follows: + +- Union or merge the logic into the next level calling + - Negative demo: + + ```java + if (isInsert) { + save(platform); + } else { + updateById(platform); + } + ``` + + - Positive demo: + + ```java + saveOrUpdate(platform); + ``` + +- Merge the conditions + - Negative demo: + + ```java + if (expression1) { + if (expression2) { + ...... + } + } + + ``` + + - Positive demo: + + ```java + if (expression1 && expression2) { + ...... + } + ``` + +- Reverse the condition + - Negative demo: + + ```java + public void doSomething() { + // Ignored more deeper block lines + // ..... + if (condition1) { + // ... + } else { + // ... + } + } + ``` + + - Positive demo: + + ```java + public void doSomething() { + // Ignored more deeper block lines + // ..... + if (!condition1) { + // ... + return; + } + // ... + } + ``` + +- Using a single variable or method to reduce the complex conditional expression + - Negative demo: + + ```java + if (dbType.indexOf("sqlserver") >= 0 || dbType.indexOf("sql server") >= 0) { + // ... + } + ``` + + - Positive demo: + + ```java + if (containsSqlServer(dbType)) { + // .... + } + //..... + // definition of the containsSqlServer + ``` + +> Using `sonarlint` and `better highlights` to check code depth looks like good in the future. + +### 3.7 Code Comments Rule + +1. Method lacks comments: + + - `When`: When can the method be called + - `How`: How to use this method and how to pass parameters, etc. + - `What`: What functions does this method achieve + - `Note`: What should developers pay attention to when calling this method + +2. Missing necessary class header description comments. + + Add `What`, `Note`, etc. like mentioned in the `1`. + +3. The method declaration in the interface must be annotated. + + - If the semantics of the implementation and the annotation content at the interface declaration are inconsistent, the specific implementation method also needs to be rewritten with annotations. + + - If the semantics of the method implementation are consistent with the annotation content at the interface declaration, it is not recommended to write annotations to avoid duplicate annotations. + +4. The first word in the comment lines need to be capitalized, like `param` lines, `return` lines. + If a special reference as a subject does not need to be capitalized, special symbols such as quotation marks need to be noted. + +### 3.8 Java Lambdas + +1. Prefer `non-capturing` lambdas (lambdas that do not contain references to the outer scope). + Capturing lambdas need to create a new object instance for every call. `Non-capturing` lambdas can use the same instance for each invocation. + + - Negative demo: + + ```java + map.computeIfAbsent(key, x -> key.toLowerCase()) + ``` + + - Positive demo: + + ```java + map.computeIfAbsent(key, k -> k.toLowerCase()); + ``` + +2. Consider method references instead of inline lambdas + + - Negative demo: + + ```java + map.computeIfAbsent(key, k-> Loader.load(k)); + ``` + + - Positive demo: + + ```java + map.computeIfAbsent(key, Loader::load); + ``` + +### 3.9 Java Streams + +- Avoid Java Streams in any performance critical code. + +- The main motivation to use Java Streams would be to improve code readability. As such, they can be a good match in parts of the code that are not data-intensive, but deal with coordination. + +- Even in the latter case, try to limit the scope to a method, or a few private methods within an internal class. + +### 3.10 Pre-Conditions Checking + +1. Use a unified `Utils.requireXXX` to complete the validation of the prerequisite, and if possible, replace the `AlertXXException.throwIfXXX` by new pre-conditions checking. + +### 3.11 StringUtils + +1. Use `StringUtils.isBlank` instead of `StringUtils.isEmpty` + + - Negative demo: + + ```java + if (StringUtils.isEmpty(name)) { + return; + } + ``` + + - Positive demo: + + ```java + if (StringUtils.isBlank(name)) { + return; + } + ``` + +2. Use `StringUtils.isNotBlank` instead of `StringUtils.isNotEmpty` + + - Negative demo: + + ```java + if (StringUtils.isNotEmpty(name)) { + return; + } + ``` + + - Positive demo: + + ```java + if (StringUtils.isNotBlank(name)) { + return; + } + ``` + +3. Use `StringUtils.isAllBlank` instead of `StringUtils.isAllEmpty` + + - Negative demo: + + ```java + if (StringUtils.isAllEmpty(name, age)) { + return; + } + ``` + + - Positive demo: + + ```java + if (StringUtils.isAllBlank(name, age)) { + return; + } + ``` + +### 3.12 `Enum` Class + +1. Enumeration value comparison + + - Negative demo: + + ```java + if (status.equals(JobStatus.RUNNING)) { + return; + } + ``` + + - Positive demo: + + ```java + if (status == JobStatus.RUNNING) { + return; + } + ``` + +2. Enumeration classes do not need to implement Serializable + + - Negative demo: + + ```java + public enum JobStatus implements Serializable { + // ... + } + ``` + + - Positive demo: + + ```java + public enum JobStatus { + // ... + } + ``` + +3. Use `Enum.name()` instead of `Enum.toString()` + + - Negative demo: + + ```java + System.out.println(JobStatus.RUNNING.toString()); + ``` + + - Positive demo: + + ```java + System.out.println(JobStatus.RUNNING.name()); + ``` + +4. Enumeration class names uniformly use the Enum suffix + + - Negative demo: + + ```java + public enum JobStatus { + // ... + } + ``` + + - Positive demo: + + ```java + public enum JobStatusEnum { + // ... + } + ``` + +### 3.13 `Deprecated` Annotation + +- Negative demo: + +```java +@deprecated +public void process(String input) { + // ... +} +``` + +- Positive demo: + +```java +@Deprecated +public void process(String input) { + // ... +} +``` + +## 4 Log + +1. Use `placeholders` for log output: + + - Negative demo + + ```java + log.info("Deploy cluster request " + deployRequest); + ``` + + - Positive demo + + ```java + log.info("load plugin:{} to {}", file.getName(), appPlugins); + ``` + +2. Pay attention to the selection of `log level` when printing logs + + When printing the log content, if the actual parameters of the log placeholder are passed, it is necessary to avoid premature evaluation to avoid unnecessary evaluation caused by the log level. + + - Negative demo: + + Assuming the current log level is `INFO`: + + ```java + // ignored declaration lines. + List`` userList = getUsersByBatch(1000); + LOG.debug("All users: {}", getAllUserIds(userList)); + ``` + + - Positive demo: + + In this case, we should determine the log level in advance before making actual log calls as follows: + + ```java + // ignored declaration lines. + List`` userList = getUsersByBatch(1000); + if (LOG.isDebugEnabled()) { + LOG.debug("All ids of users: {}", getAllIDsOfUsers(userList)); + } + ``` + +## 5 Testing + +1. It's recommended to use `JUnit5` to develop test case preparation + +2. The implemented interface needs to write the `e2e` test case script under the `e2e` module. + +## References + +- [https://site.mockito.org/](https://site.mockito.org/) +- [https://alibaba.github.io/p3c/](https://alibaba.github.io/p3c/) +- [https://rules.sonarsource.com/java/](https://rules.sonarsource.com/java/) +- [https://junit.org/junit5/](https://junit.org/junit5/) +- [https://streampark.apache.org/](https://streampark.apache.org/) diff --git a/home/versioned_docs/version-1.7.x/community/contact.md b/home/versioned_docs/version-1.7.x/community/contact.md new file mode 100644 index 00000000000..41d61625461 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/contact.md @@ -0,0 +1,25 @@ +--- +id: contact +title: Join discussion +sidebar_label: Discussion +--- + +> If you need any help or want to exchange suggestions during the use process, you can discuss and exchange through ISSUE or Github Discussion. + +[Join the Mailing Lists](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) : Mail to `dev-subscribe@hertzbeat.apache.org` to subscribe mailing lists. + +[Chat On Discord](https://discord.gg/Fb6M73htGr) + +WeChat Group : Add friend `ahertzbeat` and invite to the group. + +WeChat Public : Search ID `usthecom`. + +[QQ Group](https://qm.qq.com/q/xxqecSC2cw) : Group num `1035688434` + +[Github Discussion](https://github.com/apache/hertzbeat/discussions) + +[Reddit Community](https://www.reddit.com/r/hertzbeat/) + +[Follow Us Twitter](https://x.com/hertzbeat1024) + +[Subscribe YouTube](https://www.youtube.com/channel/UCri75zfWX0GHqJFPENEbLow) diff --git a/home/versioned_docs/version-1.7.x/community/contribution.md b/home/versioned_docs/version-1.7.x/community/contribution.md new file mode 100644 index 00000000000..cbb606d2687 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/contribution.md @@ -0,0 +1,178 @@ +--- +id: 'contribution' +title: 'Contributor Guide' +sidebar_position: 0 +--- + + + +> We are committed to maintaining a happy community that helps each other, welcome every contributor to join us! + +### Kinds of Contributions + +> In the HertzBeat community, there are many ways to contribute: + +- 💻**Code**: Can help the community complete some tasks, write new features or fix some bugs; + +- ⚠️**Test**: Can come to participate in the writing of test code, including unit testing, integration testing, e2e testing; + +- 📖**Docs**: Can write or Documentation improved to help users better understand and use HertzBeat; + +- 📝**Blog**: You can write articles about HertzBeat to help the community better promote; + +- 🤔**Discussion**: You can participate in the discussion of new features of HertzBeat and integrate your ideas with HertzBeat; + +- 💡**Preach**: Can help publicize or promote the HertzBeat community, speak in meetup or summit; + +- 💬**Suggestion**: You can also make some suggestions to the project or community to promote the healthy development of the community; + +More see [Contribution Types](https://allcontributors.org/emoji-key) + +Even small corrections to typos are very welcome :) + +### Getting HertzBeat up and running + +> To get HertzBeat code running on your development tools, and able to debug with breakpoints. +> This is a front-end and back-end separation project. To start the local code, the back-end manager and the front-end web-app must be started separately. + +#### Backend start + +1. Requires `maven3+`, `java17` and `lombok` environments +2. (Optional) Modify the configuration file: `hertzbeat-startup/src/main/resources/application.yml` +3. Execute under the project root directory: `mvn clean install -DskipTests` +4. Add VM Options: `--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED` +5. Start `springboot startup` service: `hertzbeat-startup/src/main/java/org/apache/hertzbeat/startup/HertzBeatApplication.java` + +#### Frontend start + +1. Need `Node pnpm` Environment, Make sure `Node.js >= 18` + +2. Cd to the `web-app` directory: `cd web-app` + +3. Install pnpm if not existed `npm install -g pnpm` + +4. Install Dependencies: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` + +5. After the local backend is started, start the local frontend in the web-app directory: `pnpm start` + +6. Browser access to localhost:4200 to start, default account/password is *admin/hertzbeat* + +### Find tasks + +Find the issue you are interested in! On our GitHub repo issue list, we often publish some issues with the label good first issue or status: volunteer wanted. +These issues welcome the help of contributors. Among them, good first issues tend to have low thresholds and are suitable for novices. + +Of course, if you have a good idea, you can also propose it directly on GitHub Discussion or contact with community. + +### Submit Pull Request + +1. First you need to fork your target [hertzbeat repository](https://github.com/apache/hertzbeat). +2. Then download the code locally with git command: + + ```shell + git clone git@github.com:`YOUR_USERNAME`/hertzbeat.git #Recommended + ``` + +3. After the download is complete, please refer to the getting started guide or README file of the target repository to initialize the project. +4. Then, you can refer to the following command to submit the code: + + ```shell + git checkout -b a-feature-branch #Recommended + ``` + +5. Submit the coed as a commit, the commit message format specification required: [module name or type name]feature or bugfix or doc: custom message. + + ```shell + git add + git commit -m '[docs]feature: necessary instructions' #Recommended + ``` + +6. Push to the remote repository + + ```shell + git push origin a-feature-branch + ``` + +7. Then you can initiate a new PR (Pull Request) on GitHub. + + Please note that the title of the PR needs to conform to our spec, and write the necessary description in the PR to facilitate code review by Committers and other contributors. + +### Wait for the code to be merged + +After submitting the PR, the Committee or the community's friends will review the code you submitted (Code Review), and will propose some modification suggestions or conduct some discussions. Please pay attention to your PR in time. + +If subsequent changes are required, there is no need to initiate a new PR. After submitting a commit on the original branch and pushing it to the remote repository, the PR will be automatically updated. + +In addition, our project has a relatively standardized and strict CI inspection process. After submitting PR, CI will be triggered. Please pay attention to whether it passes the CI inspection. + +Finally, the Committers can merge the PR into the master branch. + +### After the code is merged + +After the code has been merged, you can delete the development branch on both the local and remote repositories: + +```shell +git branch -d a-dev-branch +git push origin --delete a-dev-branch +``` + +On the master/main branch, you can do the following to sync the upstream repository: + +```shell +git remote add upstream https://github.com/apache/hertzbeat.git #Bind the remote warehouse, if it has been executed, it does not need to be executed again +git checkout master +git pull upstream master +``` + +### Get Contributor Certificate + +After your pr is merged, you can send an email `dev@hertzbeat.apache.org` to request your Apache HertzBeat™ contributor electronic certificate. + +```text +Title: [Contributor] Request for a Contributor Certificate: +Body: +Hello, +I would like to request a Contributor Certificate for my contributions to the Apache HertzBeat™ project. + +- Full Name: # The Full Name will be printed on the certificate, any name you want. +- GitHub Username: +- Pull Request Links: +- Email Address: + +Best regards, + +``` + +You will receive a reply with an electronic certificate within a few working days, and your name will also appear in the list of contributors. +Attention contributor certificates are electronic, and certificates for you to become a `Committer` or `PMC` are physical. + +Certificate Sample: + +![cert](/img/docs/hertzbeat-cert.png) + +### HertzBeat Improvement Proposal (HIP) + +If you have major new features(e.g., support metrics push gateway, support logs monitoring), you need to write a design document known as a HertzBeat Improvement Proposal (HIP). Before starting to write a HIP, make sure you follow the process [guide](https://github.com/apache/hertzbeat/tree/master/hip). + +### How to become a Committer? + +With the above steps, you are a contributor to HertzBeat. Repeat the previous steps to stay active in the community, keep at, you can become a Committer! + +### Join Discussion + +[Discussion](contact) diff --git a/home/versioned_docs/version-1.7.x/community/development.md b/home/versioned_docs/version-1.7.x/community/development.md new file mode 100644 index 00000000000..d8764e7e1db --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/development.md @@ -0,0 +1,69 @@ +--- +id: development +title: How to Run or Build HertzBeat? +sidebar_label: Development +--- + +## Getting HertzBeat code up and running + +> To get HertzBeat code running on your development tools, and able to debug with breakpoints. +> This is a front-end and back-end separation project. +> To start the local code, the back-end [manager](https://github.com/apache/hertzbeat/tree/master/hertzbeat-manager) and the front-end [web-app](https://github.com/apache/hertzbeat/tree/master/web-app) must be started separately. + +### Backend start + +1. Requires `maven3+`, `java17` and `lombok` environments +2. (Optional) Modify the configuration file: `hertzbeat-startup/src/main/resources/application.yml` +3. Execute under the project root directory: `mvn clean install -DskipTests` +4. Add VM Options: `--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED` +5. Start `springboot startup` service: `hertzbeat-startup/src/main/java/org/apache/hertzbeat/startup/HertzBeatApplication.java` + +### Frontend start + +1. Need `Node pnpm` Environment, Make sure `Node.js >= 18` + +2. Cd to the `web-app` directory: `cd web-app` + +3. Install pnpm if not existed `npm install -g pnpm` + +4. Install Dependencies: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` + +5. After the local backend is started, start the local frontend in the web-app directory: `pnpm start` + +6. Browser access to localhost:4200 to start, default account/password is *admin/hertzbeat* + +## Build HertzBeat binary package + +> Requires `maven3+`, `java17`, `node` and `pnpm` environments. + +### Frontend build + +1. Need `Node pnpm` Environment, Make sure `Node.js >= 18` + +2. Cd to the `web-app` directory: `cd web-app` + +3. Install pnpm if not existed `npm install -g pnpm` + +4. Install Dependencies: `pnpm install` or `pnpm install --registry=https://registry.npmmirror.com` in `web-app` + +5. Build web-app: `pnpm package` + +### Backend build + +1. Requires `maven3+`, `java17` environments + +2. Execute under the project root directory: `mvn clean package -Prelease` + +The HertzBeat install package will at `dist/hertzbeat-{version}.tar.gz` + +### Collector build + +1. Requires `maven3+`, `java17` environments + +2. Execute under the project root directory: `mvn clean install` + +3. Cd to the `hertzbeat-collector` directory: `cd hertzbeat-collector` + +4. Execute under `hertzbeat-collector` directory: `mvn clean package -Pcluster` + +The HertzBeat collector package will at `dist/hertzbeat-collector-{version}.tar.gz` diff --git a/home/versioned_docs/version-1.7.x/community/document.md b/home/versioned_docs/version-1.7.x/community/document.md new file mode 100644 index 00000000000..3c7c5fd956f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/document.md @@ -0,0 +1,113 @@ +--- +id: 'document' +title: 'Documentation Notice' +sidebar_position: 1 +--- + + + +Good documentation is critical for any type of software. Any contribution that can improve the HertzBeat documentation is welcome. + +## Get the document project + +Documentation for the HertzBeat project is maintained in [git repository home directory](https://github.com/apache/hertzbeat/tree/master/home). + +First you need to fork the document project into your own github repository, and then clone the document to your local computer. + +```shell +git clone git@github.com:/hertzbeat.git +``` + +## Preview and generate static files + +This website is compiled using node, using Docusaurus framework components + +1. Download and install nodejs (version 18.8.0) +2. Clone the code to the local `git clone git@github.com:apache/hertzbeat.git` +3. In `home` directory run `npm install` to install the required dependent libraries. +4. In `home` directory run `npm run start`, you can visit [http://localhost:3000](http://localhost:3000) to view the English mode preview of the site +5. In `home` directory run `npm run start-zh-cn`, you can visit [http://localhost:3000](http://localhost:3000) to view the Chinese mode preview of the site +6. To generate static website resource files, run `npm run build`. The static resources of the build are in the build directory. + +## Document Format Inspection + +In Apache Hertzbeat, all MD articles have to pass MD's [CI](https://github.com/apache/hertzbeat/blob/master/.github/workflows/doc-build-test.yml) inspection before they can be merged. The purpose is to keep the website looking nice and the formatting of the articles consistent. + +After you have written an MD article, you can execute the following command locally to check whether the content of the MD article meets the requirements, so as to reduce the workload of review and save your time: + +```shell +cd home && pnpm install + +pnpm md-lint + +# If the documentation is wrong, you can use pnpm md-lint-fix to fix it. +pnpm md-lint-fix +``` + +For formatting rules for MD articles you can refer to: [Markdown-lint-rules](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md) +MD format configuration file in the project: [.markdownlint-cli2.jsonc](https://github.com/apache/hertzbeat/blob/master/.markdownlint-cli2.jsonc) + +## Directory structure + +```html +|-- docs +|-- blog +|-- i18n +| `-- zh-CN // internationalized chinese +| |-- code.json +| |-- docusaurus-plugin-content-blog +| |-- docusaurus-plugin-content-docs +| `-- docusaurus-theme-classic +|-- resource // static resource file +|-- src +| |-- theme +| |-- css +| |-- js +| |-- pages +| | |-- components +| | |-- index.js +| |-- constants.js +|-- static // picture static resource +| |-- img // +| | |-- blog // blog picture +| | |-- docs // document picture +| | |-- home // product picture +| | |-- icons // icon +|-- docusaurus.config.js +|-- sidebars.js // document sidebar menu configuration +``` + +## Specification + +### Naming convention of files + +Consist entirely of lowercase letters, numbers, underscores, and dashes. + +Positive example: `render-dom.js / signup.css / index.html / company-logo.png / hertz_beat.md` + +Counter example: `renderDom.js / UserManagement.html` + +### Resource Path + +Image resources are unified under `static/img/{module name}` + +css and other style files are placed in the `src/css` directory + +### Page content modification + +> All pages doc can be directly jumped to the corresponding github resource modification page through the 'Edit this page' button at the bottom diff --git a/home/versioned_docs/version-1.7.x/community/how-to-release.md b/home/versioned_docs/version-1.7.x/community/how-to-release.md new file mode 100644 index 00000000000..3067b17dc5d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/how-to-release.md @@ -0,0 +1,522 @@ +--- +id: 'how_to_release' +title: How to Release +sidebar_position: 4 +--- + +This tutorial describes in detail how to release Apache HertzBeat™, take the release of version 1.7.3 as an example. + +## 1. Environmental requirements + +This release process is operated in the UbuntuOS(Windows,Mac), and the following tools are required: + +- JDK 17 +- Node18 pnpm +- Apache Maven 3.x +- GnuPG 2.x +- Git +- SVN (apache uses svn to host project releases) + +> Pay attention to setting environment variables `export GPG_TTY=$(tty)` + +## 2. Preparing for release + +> First summarize the account information to better understand the operation process, will be used many times later. +> +> - apache id: `muchunjin (APACHE LDAP UserName)` +> - apache passphrase: `APACHE LDAP Passphrase` +> - apache email: `muchunjin@apache.org` +> - gpg real name: `muchunjin (Any name can be used, here I set it to the same name as the apache id)` +> - gpg key passphrase: `The password set when creating the gpg key, you need to remember this password` + +### 2.1 Key generation + +```shell +$ gpg --full-gen-key +gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Please select what kind of key you want: +(1) RSA and RSA (default) +(2) DSA and Elgamal +(3) DSA (sign only) +(4) RSA (sign only) +(14) Existing key from card +Your selection? 1 # Please enter 1 +RSA keys may be between 1024 and 4096 bits long. +What keysize do you want? (3072) 4096 # Please enter 4096 here +Requested keysize is 4096 bits +Please specify how long the key should be valid. +0 = key does not expire +`` = key expires in n days +``w = key expires in n weeks +``m = key expires in n months +``y = key expires in n years +Key is valid for? (0) 0 # Please enter 0 +Key does not expire at all +Is this correct? (y/N) y # Please enter y here + +GnuPG needs to construct a user ID to identify your key. + +Real name: muchunjin # Please enter 'gpg real name' +Email address: muchunjin@apache.org # Please enter your apache email address here +Comment: apache key # Please enter some comments here +You selected this USER-ID: + "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" + +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O # Please enter O here +We need to generate a lot of random bytes. It is a good idea to perform +some other action (type on the keyboard, move the mouse, utilize the +disks) during the prime generation; this gives the random number +generator a better chance to gain enough entropy. + +# At this time, a dialog box will pop up, asking you to enter the key for this gpg. +# you need to remember that it will be used in subsequent steps. +┌─────────────────────────────────────────────────────┐ +│ Please enter this passphrase to │ +│ protect your new key │ +│ │ +│ Passphrase: _______________________________________ │ +│ │ +│ `` `` │ +└─────────────────────────────────────────────────────┘ + +# Here you need to re-enter the password in the previous step. +┌─────────────────────────────────────────────────────┐ +│ Please re-enter this passphrase │ +│ │ +│ Passphrase: _______________________________________ │ +│ │ +│ `` `` │ +└─────────────────────────────────────────────────────┘ +gpg: key ACFB69E705016886 marked as ultimately trusted +gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/DC12398CCC33A5349EB9663DF9D970AB18C9EDF6.rev' +public and secret key created and signed. + +pub rsa4096 2023-05-01 [SC] + 85778A4CE4DD04B7E07813ABACFB69E705016886 +uid muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) +sub rsa4096 2023-05-01 [E] +``` + +Keys can be viewed through the `gpg --list-signatures` command + +### 2.2 Upload the generated key to the public server + +```shell +$ gpg --keyid-format SHORT --list-keys +/root/.gnupg/pubring.kbx +------------------------ +pub rsa4096/05016886 2023-05-01 [SC] + 85778A4CE4DD04B7E07813ABACFB69E705016886 +uid [ultimate] muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org) +sub rsa4096/0C5A4E1C 2023-05-01 [E] + +# Send public key to keyserver via key id +$ gpg --keyserver keyserver.ubuntu.com --send-key 05016886 +# Among them, keyserver.ubuntu.com is the selected keyserver, it is recommended to use this, because the Apache Nexus verification uses this keyserver +``` + +#### 2.3 Check if the key is created successfully + +Verify whether it is synchronized to the public network, it will take about a minute to find out the answer, if not successful, you can upload and retry multiple times. + +```shell +$ gpg --keyserver keyserver.ubuntu.com --recv-keys 05016886 # If the following content appears, it means success +gpg: key ACFB69E705016886: "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" not changed +gpg: Total number processed: 1 +gpg: unchanged: 1 +``` + +Or enter [https://keyserver.ubuntu.com/](https://keyserver.ubuntu.com/) address in the browser, enter the name of the key and click 'Search key' to search if existed. + +#### 2.4 Add the gpg public key to the KEYS file of the Apache SVN project repo + +- Apache HertzBeat™ Branch Dev [https://dist.apache.org/repos/dist/dev/hertzbeat](https://dist.apache.org/repos/dist/dev/hertzbeat) +- Apache HertzBeat™ Branch Release [https://dist.apache.org/repos/dist/release/hertzbeat](https://dist.apache.org/repos/dist/release/hertzbeat) + +##### 2.4.1 Add public key to KEYS in dev branch + +```shell +$ mkdir -p svn/dev +$ cd svn/dev + +$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat +$ cd svn/dev/hertzbeat + +# Append the KEY you generated to the file KEYS, and check if it is added correctly +$ (gpg --list-sigs muchunjin@apache.org && gpg --export --armor muchunjin@apache.org) >> KEYS + +$ svn ci -m "add gpg key for muchunjin" +``` + +##### 2.4.2 Add public key to KEYS in release branch + +```shell +$ mkdir -p svn/release +$ cd svn/release + +$ svn co https://dist.apache.org/repos/dist/release/hertzbeat +$ cd svn/release/hertzbeat + +# Append the KEY you generated to the file KEYS, and check if it is added correctly +$ (gpg --list-sigs muchunjin@apache.org && gpg --export --armor muchunjin@apache.org) >> KEYS + +$ svn ci -m "add gpg key for muchunjin" +``` + +## 3. Prepare material package & release + +### Build Package + +#### 3.1 Based on the master branch, create a release-`release_version`-rcx branch, such as release-1.7.3-rc1, And create a tag named v1.7.3-rc1 based on the release-1.7.3-rc1 branch, and set this tag as pre-release + +```shell +git checkout master +git checkout -b release-1.7.3-rc1 +``` + +#### 3.2 checkout release branch to local + +```shell +git checkout release-1.7.3-rc1 +``` + +#### 3.3 Compile the binary package + +> Build HertzBeat server binary, run script in `web-app` + +```shell +pnpm install + +pnpm package +``` + +> run script in root + +```shell +mvn clean package -Prelease +``` + +then + +```shell +mvn clean install +``` + +> Build HertzBeat collector binary, run script in `collector` + +```shell +mvn clean package -Pcluster +``` + +The release package are here: + +- `dist/apache-hertzbeat-{version}-bin.tar.gz` +- `dist/apache-hertzbeat-collector-{version}-bin.tar.gz` +- `dist/apache-hertzbeat-{version}-docker-compose.tar.gz` + +#### 3.4 Package the source code + +> Package the project source code + +```shell +git archive \ +--format=tar.gz \ +--output="dist/apache-hertzbeat-1.7.3-src.tar.gz" \ +--prefix=apache-hertzbeat-1.7.3-src/ \ +release-1.7.3-rc1 +``` + +The archive package is here `dist/apache-hertzbeat-1.7.3-src.tar.gz` + +### Sign package + +#### 3.5 Sign binary and source packages + +> The `gpg -u 33545C76` `33545C76` is your gpg secret ID, see from `gpg --keyid-format SHORT --list-keys` + +```shell +cd dist + +# sign +for i in *.tar.gz; do echo $i; gpg -u 33545C76 --armor --output $i.asc --detach-sig $i ; done + +# SHA512 +for i in *.tar.gz; do echo $i; sha512sum $i > $i.sha512 ; done + +# if macos sha512sum not found, you can install by brew install coreutils +``` + +> The final file list is as follows + +```text +apache-hertzbeat-1.7.3-src.tar.gz +apache-hertzbeat-1.7.3-src.tar.gz.asc +apache-hertzbeat-1.7.3-src.tar.gz.sha512 +apache-hertzbeat-1.7.3-bin.tar.gz +apache-hertzbeat-1.7.3-bin.tar.gz.asc +apache-hertzbeat-1.7.3-bin.tar.gz.sha512 +apache-hertzbeat-1.7.3-docker-compose.tar.gz +apache-hertzbeat-1.7.3-docker-compose.tar.gz.asc +apache-hertzbeat-1.7.3-docker-compose.tar.gz.sha512 +apache-hertzbeat-collector-1.7.3-bin.tar.gz +apache-hertzbeat-collector-1.7.3-bin.tar.gz.asc +apache-hertzbeat-collector-1.7.3-bin.tar.gz.sha512 +``` + +#### 3.6 Verify signature + +```shell +$ cd dist + +# Verify signature +$ for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i ; done + +apache-hertzbeat-1.7.3-bin.tar.gz +gpg: Signature made Tue May 2 12:16:35 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-1.7.3-docker-compose.tar.gz +gpg: Signature made Tue May 2 12:16:36 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-1.7.3-src.tar.gz +gpg: Signature made Tue May 2 12:16:37 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] +apache-hertzbeat-collector-1.7.3-bin.tar.gz +gpg: Signature made Tue May 2 12:16:37 2023 CST +gpg: using RSA key 85778A4CE4DD04B7E07813ABACFB69E705016886 +gpg: Good signature from "muchunjin (apache key) [muchunjin@apache.org](mailto:muchunjin@apache.org)" [ultimate] + +# Verify SHA512 +$ for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done + +apache-hertzbeat-1.7.3-src.tar.gz +apache-hertzbeat-1.7.3-src.tar.gz: OK +apache-hertzbeat-1.7.3-bin.tar.gz +apache-hertzbeat-1.7.3-bin.tar.gz: OK +apache-hertzbeat-1.7.3-docker-compose.tar.gz +apache-hertzbeat-1.7.3-docker-compose.tar.gz: OK +apache-hertzbeat-collector-1.7.3-bin.tar.gz +apache-hertzbeat-collector-1.7.3-bin.tar.gz: OK +``` + +#### 3.7 Publish the dev directory of the Apache SVN material package + +- Clone the dev directory + +```shell +# Check out the dev directory of the Apache SVN to the svn/dev directory under dist in the root directory of the Apache HertzBeat™ project +svn co https://dist.apache.org/repos/dist/dev/hertzbeat svn/dev + +svn co --depth empty https://dist.apache.org/repos/dist/dev/hertzbeat +``` + +- Copy the material package to the dev directory + +Create a version number directory and name it in the form of `release_version`-`RC_version`. RC_version starts from 1, that is, the candidate version starts from RC1. During the release process, there is a problem that causes the vote to fail. +If it needs to be corrected, it needs to iterate the RC version , the RC version number needs to be +1. For example: Vote for version 1.7.3-RC1. If the vote passes without any problems, the RC1 version material will be released as the final version material. +If there is a problem (when the hertzbeat/incubator community votes, the voters will strictly check various release requirements and compliance issues) and need to be corrected, then re-initiate the vote after the correction, and the candidate version for the next vote is 1.7.3- RC2. + +```shell +mkdir -p svn/dev/1.7.3-RC1 +cp -f dist/* svn/dev/1.7.3-RC1 +``` + +- Commit to SVN + +```shell +cd svn/dev + +# 1.check svn status +svn status + +# 2. add to svn +svn add 1.7.3-RC1 + +svn status + +# 3. Submit to svn remote server +svn commit -m "release for HertzBeat 1.7.3" +``` + +- Check Apache SVN Commit Results + +> Visit the address [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) in the browser, check if existed the new material package + +## 4. Enter the community voting stage + +### 4.1 Send a Community Vote Email + +Send a voting email in the community requires at least three `+1` and no `-1`. + +> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [VOTE] Release Apache HertzBeat™ 1.7.3 rc1
+> `Body`: + +```text +Hello HertzBeat Community: + +This is a call for vote to release Apache HertzBeat™ version release-1.7.3-RC1. + +Apache HertzBeat™ - A real-time observability system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities. + +Release notes: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3-rc1 + +The release candidates: +https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1/ + +Git tag for the release: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3-rc1 + +The artifacts signed with PGP key [33545C76], corresponding to [muchunjin@apache.org], that can be found in keys file: +https://downloads.apache.org/hertzbeat/KEYS + +The vote will be open for at least 72 hours or until the necessary number of votes are reached. + +Please vote accordingly: + +[ ] +1 approve +[ ] +0 no opinion +[ ] -1 disapprove with the reason + +*Valid check is a requirement for a vote. *Checklist for reference: + +[ ] Download HertzBeat are valid. +[ ] Checksums and PGP signatures are valid. +[ ] Source code distributions have correct names matching the current +release. +[ ] LICENSE and NOTICE files are correct for each HertzBeat repo. +[ ] All files have license headers if necessary. +[ ] No compiled archives bundled in source archive. +[ ] Can compile from source. + +Steps to validate the release,Please refer to: +https://hertzbeat.apache.org/docs/community/how_to_verify_release + +How to Build: +https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package + +Thanks! +``` + +After 72 hours, the voting results will be counted, and the voting result email will be sent, as follows. + +> `Send to`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [RESULT]\[VOTE\] Release Apache HertzBeat™ 1.7.3-rc1
+> `Body`: + +```text +Dear HertzBeat community, + +Thanks for your review and vote for "Release Apache HertzBeat™ 1.7.3-rc1" +I'm happy to announce the vote has passed: +--- +4 binding +1, from: + +- cc + +1 non-binding +1, from: + +- Roc Marshal +--- +no 0 or -1 votes. + +Vote thread: +https://lists.apache.org/thread/t01b2lbtqzyt7j4dsbdp5qjc3gngjsdq +--- +Thank you to everyone who helped us to verify and vote for this release. We will move to the ASF Incubator voting shortly. +--- +Best, +ChunJin Mu +``` + +One item of the email content is `Vote thread`, and the link is obtained here: [https://lists.apache.org/list.html?dev@hertzbeat.apache.org](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) + +## 4. Complete the final publishing steps + +### 4.1 Migrating source and binary packages + +```shell +svn mv https://dist.apache.org/repos/dist/dev/hertzbeat/1.7.3-RC1 https://dist.apache.org/repos/dist/release/hertzbeat/1.7.3 -m "transfer packages for 1.7.3-RC1" +``` + +#### 4.2 Add the new version download address to the official website + +[https://github.com/apache/hertzbeat/blob/master/home/docs/download.md](https://github.com/apache/hertzbeat/blob/master/home/docs/download.md) +[https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md](https://github.com/apache/hertzbeat/blob/master/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/download.md) + +Open the official website address [https://hertzbeat.apache.org/docs/download/](https://hertzbeat.apache.org/docs/download/) to see if there is a new version of the download + +> It should be noted that the download link may take effect after an hour, so please pay attention to it. + +#### 4.3 Generate a release on github + +Update pre-release to create a tag named v1.7.3 based on the release-1.7.3-rc1 branch, and set this tag to latest release. + +:::tip +You can modify it on the original RC Release without creating a new Release. +::: + +Then enter Release Title and Describe + +- Release Title: + +```text +v1.7.3 +``` + +- Describe: + +```text +xxx +release note: xxx +``` + +Then click the `Publish release` button. + +The rename the release-1.7.3-rc1 branch to release-1.7.3. + +#### 4.5 Send new version announcement email + +> `Send to`: [announce@apache.org](mailto:announce@apache.org)
+> `cc`: [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org)
+> `Title`: [ANNOUNCE] Apache HertzBeat™ 1.7.3 released
+> `Body`: + +```text +Hi Community, + +We are glad to announce the release of Apache HertzBeat™ 1.7.3. +Thanks again for your help. + +Apache HertzBeat™ (https://hertzbeat.apache.org/) - A real-time observability system with agentless, performance cluster, prometheus-compatible, custom monitoring and status page building capabilities. + +Download Link: +https://hertzbeat.apache.org/docs/download/ + +Release Note: +https://github.com/apache/hertzbeat/releases/tag/v1.7.3 + +Website: +https://hertzbeat.apache.org/ + +HertzBeat Resources: +- Issue: https://github.com/apache/hertzbeat/issues +- Mailing list: dev@hertzbeat.apache.org +--- +Apache HertzBeat™ Team +--- +Best, +ChunJin Mu +``` + +This version release is over. + +--- + +This doc refer from [Apache StreamPark](https://streampark.apache.org/) diff --git a/home/versioned_docs/version-1.7.x/community/how-to-verify.md b/home/versioned_docs/version-1.7.x/community/how-to-verify.md new file mode 100644 index 00000000000..91aa60cdb7b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/how-to-verify.md @@ -0,0 +1,185 @@ +--- +id: how_to_verify_release +title: How to Verify Release +sidebar_position: 4 +--- + +## Verify the candidate version + +For detailed check list, please refer to the official [check list](https://cwiki.apache.org/confluence/display/INCUBATOR/Incubator+Release+Checklist) + +Version content accessible in browser [https://dist.apache.org/repos/dist/dev/hertzbeat/](https://dist.apache.org/repos/dist/dev/hertzbeat/) + +### 1. Download the candidate version + +Download the candidate version to be released to the local environment Need to rely on gpg tool, if not, it is recommended to install `gpg2`. + +:::caution + +If the network is poor, downloading may be time-consuming. The download is completed normally in about 20 minutes, please wait patiently. + +::: + +```shell +#If there is svn locally, you can clone to the local +$ svn co https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/ +#or download the material file directly +$ wget https://dist.apache.org/repos/dist/dev/hertzbeat/`release_version`-`rc_version`/xxx.xxx +``` + +### 2. Verify that the uploaded version is compliant + +Start the verification process, which includes but is not limited to the following content and forms. + +#### 2.1 Check whether the release package is complete + +The package uploaded to dist must include the source code package, and the binary package is optional. + +1. Whether to include the source code package +2. Whether to include the signature of the source code package +3. Whether to include the sha512 of the source code package +4. If the binary package is uploaded, also check the contents listed in (2)-(4) + +#### 2.2 Check gpg signature + +First import the publisher's public key. Import KEYS from the svn repository to the local environment. (The person who releases the version does not need to import it again, the person who helps to do the verification needs to import it, and the user name is enough for the person who issued the version) + +##### 2.2.1 Import public key + +```shell +-curl https://downloads.apache.org/hertzbeat/KEYS > KEYS # Download KEYS +gpg --import KEYS # Import KEYS to local +``` + +##### 2.2.2 Trust the public key + +Trust the KEY used in this version: + +```shell +$ gpg --edit-key xxxxxxxxxx #KEY user used in this version +gpg (GnuPG) 2.2.21; Copyright (C) 2020 Free Software Foundation, Inc. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. + +Secret key is available. +gpg> trust #trust +Please decide how far you trust this user to correctly verify other users' keys +(by looking at passports, checking fingerprints from different sources, etc.) + + 1 = I don't know or won't say + 2 = I do NOT trust + 3 = I trust marginally + 4 = I trust fully + 5 = I trust ultimately + m = back to the main menu + +Your decision? 5 #choose 5 +Do you really want to set this key to ultimate trust? (y/N) y #choose y + +gpg> + +``` + +##### 2.2.3 Check the gpg signature + +```shell +for i in *.tar.gz; do echo $i; gpg --verify $i.asc $i; done +``` + +check result + +> If something like the following appears, it means the signature is correct. Keyword: **`Good signature`** + +```shell +apache-hertzbeat-xxx-src.tar.gz +gpg: Signature made XXXX +gpg: using RSA key XXXXX +gpg: Good signature from "xxx @apache.org>" +``` + +#### 2.3 Check sha512 hash + +```shell +for i in *.tar.gz; do echo $i; sha512sum --check $i.sha512; done +``` + +#### 2.4 Check the binary package + +unzip `apache-hertzbeat-${release.version}-bin.tar.gz` + +```shell +tar -xzvf apache-hertzbeat-${release.version}-bin.tar.gz +``` + +check as follows: + +- [ ] Check whether the source package contains unnecessary files, which makes the tar package too large +- [ ] There are `LICENSE` and `NOTICE` files +- [ ] The year in the `NOTICE` file is correct +- [ ] Only text files exist, not binary files +- [ ] All files have ASF license at the beginning +- [ ] Able to compile correctly +- [ ] ..... + +#### 2.5 Check the source package + +> If the binary/web-binary package is uploaded, check the binary package. + +Unzip `apache-hertzbeat-`release_version`-src.tar.gz` + +```shell +cd apache-hertzbeat-`release_version`-src +``` + +compile the source code: [Build HertzBeat Binary Package](https://hertzbeat.apache.org/docs/community/development/#build-hertzbeat-binary-package) + +and check as follows: + +- [ ] There are `LICENSE` and `NOTICE` files +- [ ] The year in the `NOTICE` file is correct +- [ ] All text files have ASF license at the beginning +- [ ] Check the third-party dependent license: +- [ ] Compatible with third-party dependent licenses +- [ ] All third-party dependent licenses are named in the `LICENSE` file +- [ ] If you are relying on the Apache license and there is a `NOTICE` file, then these `NOTICE` files also need to be added to the version of the `NOTICE` file +- [ ] ..... + +You can refer to this article: [ASF Third Party License Policy](https://apache.org/legal/resolved.html) + +### 3. Email reply + +If you initiate a posting vote, you can refer to this response example to reply to the email after verification + +:::caution Attention +When replying to the email, you must bring the information that you have checked by yourself. Simply replying to `+1 approve` is invalid. + +When new PMC votes in the [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) hertzbeat community, Please bring the binding suffix to indicate that it has a binding vote for the vote in the hertzbeat community, and it is convenient to count the voting results. +::: + +Non-PMC member: + +```text ++1 (non-binding) +I checked: + 1. All download links are valid + 2. Checksum and signature are OK + 3. LICENSE and NOTICE are exist + 4. Build successfully on macOS(Big Sur) + 5. +``` + +PMC member: + +```text ++1 (binding) +I checked: + 1. All download links are valid + 2. Checksum and signature are OK + 3. LICENSE and NOTICE are exist + 4. Build successfully on macOS(Big Sur) + 5. +``` + +--- + +This doc refer from [Apache StreamPark](https://streampark.apache.org/) diff --git a/home/versioned_docs/version-1.7.x/community/mailing_lists.md b/home/versioned_docs/version-1.7.x/community/mailing_lists.md new file mode 100644 index 00000000000..938b1b5160b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/mailing_lists.md @@ -0,0 +1,61 @@ +--- +id: 'mailing_lists' +title: 'Mailing Lists' +sidebar_position: 1 +--- + + + +The [Developer Mailing List](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) is the community-recommended way to communicate and obtain the latest information. + +Before you post anything to the mailing lists, be sure that you already **subscribe** to them. + +## Usages + +### Developer List + +- Use this list for your HertzBeat questions +- Used by HertzBeat contributors to discuss development of HertzBeat + +| List Name | Address | Subscribe | Unsubscribe | Archive | +|--------------------|--------------------------|--------------------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------| +| **Developer List** | [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) | [subscribe](mailto:dev-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:dev-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?dev@hertzbeat.apache.org) | + +### Notification List + +- Notifications on changes to the HertzBeat codebase + +| List Name | Address | Subscribe | Unsubscribe | Archive | +|-----------------------|------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------| +| **Notification List** | [notifications@hertzbeat.apache.org](mailto:notifications@hertzbeat.apache.org) | [subscribe](mailto:notifications-subscribe@hertzbeat.apache.org) | [unsubscribe](mailto:notifications-unsubscribe@hertzbeat.apache.org) | [archive](https://lists.apache.org/list.html?notifications@hertzbeat.apache.org) | + +## Steps for Subscription + +Sending a subscription email is also very simple. The steps are as follows: + +- 1、**Subscribe**: Click the **subscribe** button in the above table, and it redirects to your mail client. The subject and content are arbitrary. + After that, you will receive a confirmation email from [dev-help@hertzbeat.apache.org](mailto:dev-help@hertzbeat.apache.org) (if not received, please confirm whether the email is automatically classified as SPAM, promotion email, subscription email, etc.). +- 2、**Confirm**: Reply directly to the confirmation email, or click on the link in the email to reply quickly. The subject and content are arbitrary. +- 3、**Welcome**: After completing the above steps, you will receive a welcome email with the subject WELCOME to [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and you have successfully subscribed to the Apache HertzBeat mailing list. + +## Post Plain Text Mails + +When posting to the mailing lists, please use plain text emails. +**Do not use HTML emails**. +HTML emails are more likely to be targeted as spam mails and rejected. +It may get malformed through different mail clients and not easily readable by others. diff --git a/home/versioned_docs/version-1.7.x/community/maturity.md b/home/versioned_docs/version-1.7.x/community/maturity.md new file mode 100644 index 00000000000..f0698ccff9e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/maturity.md @@ -0,0 +1,92 @@ +--- +id: maturity +title: Maturity +sidebar_position: 0 +--- + +## Maturity Assessment for Apache HertzBeat™ + +The goals of this maturity model are to describe how Apache projects operate in a concise and high-level way, and to +provide a basic framework that projects may choose to use to evaluate themselves. + +More details can be found in +the [Apache Project Maturity Model](https://community.apache.org/apache-way/apache-project-maturity-model.html). + +## Status of this assessment + +This assessment is evaluated during HertzBeat's Incubating. + +## Maturity model assessment + +The following table is filled according to +the [Apache Maturity Model](https://community.apache.org/apache-way/apache-project-maturity-model.html). Mentors and +community members are welcome to comment and modify it. + +### CODE + +| **ID** | **Description** | **Status** | +|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **CD10** | The project produces Open Source software for distribution to the public, at no charge. | **YES** The project source code is licensed under the `Apache License 2.0`. | +| **CD20** | Anyone can easily discover and access the project's code.. | **YES** The [official website](https://hertzbeat.apache.org/) includes `GitHub` link which can access the project's repository on GitHub directly. | +| **CD30** | Anyone using standard, widely-available tools, can build the code in a reproducible way. | **YES** Apache HertzBeat provide `how-to-build` document for every component to tell user how to compile on bare metal, such as the [core's](https://hertzbeat.apache.org/docs/community/development). | +| **CD40** | The full history of the project's code is available via a source code control system, in a way that allows anyone to recreate any released version. | **YES** It depends on git, and anyone can view the full history of the project via commit logs. | +| **CD50** | The source code control system establishes the provenance of each line of code in a reliable way, based on strong authentication of the committer. When third parties contribute code, commit messages provide reliable information about the code provenance. | **YES** The project uses GitHub and managed by Apache Infra, it ensuring provenance of each line of code to a committer. And the third-party contributions are accepted in accordance with the contributing guides. | + +### LICENSE + +| **ID** | **Description** | **Status** | +|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **LC10** | The Apache License, version 2.0, covers the released code. | **YES** The [LICENSE](https://github.com/apache/hertzbeat/blob/master/LICENSE) is in GitHub repository. And all source files are with APLv2 header, checked by Github Action. | +| **LC20** | Libraries that are mandatory dependencies of the project's code do not create more restrictions than the Apache License does. | **YES** All dependencies are listed. | +| **LC30** | The libraries mentioned in LC20 are available as Open Source software. | **YES** All dependencies are listed are available as Open Source software | +| **LC40** | Committers are bound by an Individual Contributor Agreement (the "Apache iCLA") that defines which code they may commit and how they need to identify code that is not their own. | **YES** All committers have iCLAs. | +| **LC50** | The project clearly defines and documents the copyright ownership of everything that the project produces. | **YES** And all source files are with APLv2 header, checked by GitHub Action. | + +### Releases + +| **ID** | **Description** | **Status** | +|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **RE10** | Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term. | **YES** Source release is distributed via [dist.apache.org](https://dist.apache.org/repos/dist/release/incubator/hertzbeat/) and linked from [download page](https://hertzbeat.apache.org/docs/download). | +| **RE20** | The project's PPMC (Project Management Committee, see CS10) approves each software release in order to make the release an act of the Foundation. | **YES** All releases have been voted at [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org) and [general@incubator.apache.org](mailto:general@incubator.apache.org), and have at least 3 PPMC member's votes. | +| **RE30** | Releases are signed and/or distributed along with digests that anyone can reliably use to validate the downloaded archives. | **YES** All releases are signed, and the [KEYS](https://dist.apache.org/repos/dist/release/hertzbeat/KEYS) are available. | +| **RE40** | The project can distribute convenience binaries alongside source code, but they are not Apache Releases, they are provided with no guarantee. | **YES** User can easily build binaries from source code, and we do not provide binaries as Apache Releases. | +| **RE50** | The project documents a repeatable release process so that someone new to the project can independently generate the complete set of artifacts required for a release. | **YES** We can follow the [Release guide](https://hertzbeat.apache.org/docs/community/how_to_release) to make a new Apache HertzBeat release, and so far we had 4 different release managers. | + +### Quality + +| **ID** | **Description** | **Status** | +|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **QU10** | The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated. | **YES** We encourage user to [report issues](https://github.com/apache/hertzbeat/issues). | +| **QU20** | The project puts a very high priority on producing secure software. | **YES** All security reports are actively handled. | +| **QU30** | The project provides a well-documented, secure and private channel to report security issues, along with a documented way of responding to them. | **Yes** The official Github Repo provides a [security doc](https://github.com/apache/hertzbeat/blob/master/SECURITY.md) | +| **QU40** | The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features. | **Yes** We follow semantic versions. As long as it's within one major version, it's backward compatible. And when any breaking changes added, we provide corresponding upgrade guides. | +| **QU50** | The project strives to respond to documented bug reports in a timely manner. | **YES** The project has resolved 743+ issues and 2348+ pull requests so far, with very prompt response. | + +### Community + +| **ID** | **Description** | **Status** | +|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **CO10** | The project has a well-known homepage that points to all the information required to operate according to this maturity model. | **YES** The [official website](https://hertzbeat.apache.org/) includes all information user need to run Apache HertzBeat. | +| **CO20** | The community welcomes contributions from anyone who acts in good faith and in a respectful manner, and who adds value to the project. | **Yes** We provide contributing guides for every component. And we also have a [general contributing guide](https://hertzbeat.apache.org/docs/community/contribution) | +| **CO30** | Contributions include source code, documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project. | **YES** All good contributions including code and non-code are welcomed. | +| **CO40** | The community strives to be meritocratic and gives more rights and responsibilities to contributors who, over time, add value to the project. | **YES** The community has elected 3 new PMC members and 13 new committers so far. | +| **CO50** | The project documents how contributors can earn more rights such as commit access or decision power, and applies these principles consistently. | **YES** The community has clear docs on nominating committers and PPMC members | +| **CO60** | The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects. | **YES** All decisions are made after vote by community members. | +| **CO70** | The project strives to answer user questions in a timely manner. | **YES** We use [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), [GitHub issue](https://github.com/apache/hertzbeat/issues) and [GitHub discussion](https://github.com/apache/hertzbeat/discussions) to do this in a timely manner. | + +### Consensus + +| **ID** | **Description** | **Status** | +|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| **CS10** | The project maintains a public list of its contributors who have decision power. The project's PPMC (Project Management Committee) consists of those contributors. | **Yes** See [members](https://hertzbeat.apache.org/team/) with all PPMC members and committers. | +| **CS20** | Decisions require a consensus among PPMC members and are documented on the project's main communications channel. The PPMC takes community opinions into account, but the PPMC has the final word. | **YES** All decisions are made by votes on [dev@hertzbeat.apache.org](mailto:dev@hertzbeat.apache.org), and with at least 3 +1 votes from PPMC. | +| **CS30** | The project uses documented voting rules to build consensus when discussion is not sufficient. | **YES** The project uses the standard ASF voting rules. | +| **CS40** | In Apache projects, vetoes are only valid for code commits. The person exercising the veto must justify it with a technical explanation, as per the Apache voting rules defined in CS30. | **YES** Apache HertzBeat community has not used the veto power yet except for code commits. | +| **CS50** | All "important" discussions happen asynchronously in written form on the project's main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel. | **YES** All important discussions and conclusions are recorded in written form. | + +### Independence + +| **ID** | **Description** | **Status** | +|----------|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **IN10** | The project is independent from any corporate or organizational influence. | **YES** The PPMC members and committer of Apache HertzBeat are from several different companies, and majority of them are NOT From the company that donated this project. | +| **IN20** | Contributors act as themselves, not as representatives of a corporation or organization. | **YES** The contributors act on their own initiative without representing a corporation or organization. | diff --git a/home/versioned_docs/version-1.7.x/community/new_committer_process.md b/home/versioned_docs/version-1.7.x/community/new_committer_process.md new file mode 100644 index 00000000000..b190b9f1ed4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/new_committer_process.md @@ -0,0 +1,287 @@ +--- +id: 'new_committer_process' +title: 'New Committer Process' +sidebar_position: 4 +--- + + + +[Apache New Committer Guideline](https://community.apache.org/newcommitter.html#new-committer-process) + +## The process of new Committer + +- Call a vote in mailing `private@hertzbeat.apache.org` + + see **Committer Vote Template** + +- Close the vote + + see **Close Vote Template** + +- If the result is positive, invite the new committer + + see **Committer Invite Template** + +- If accepted, then: Accept the committer + + see **Committer Accept Template** + +- New Committer sign CLA and wait for CLA is recorded + +- Request creation of the committer account + + see **Committer Account Creation** + + - Wait until root says it is done + - [Roster](https://whimsy.apache.org/roster/ppmc/hertzbeat) add the new committer +- Announce the new committer + + see **Announce New Committer Template** + +## Template + +Note that, there are three placeholder in template should be replaced before using + +- NEW_COMMITTER_NAME This Must Be Public Name, Not Github Name Or Id. +- NEW_COMMITTER_EMAIL +- NEW_COMMITTER_APACHE_NAME + +### Committer Vote Template + +:::note +NEW_COMMITTER_NAME This Must Be Public Name, Not Github Name Or Id. +::: + +```text +To: private@hertzbeat.apache.org +Subject: [VOTE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hi HertzBeat PMC, + +This is a formal vote about inviting `NEW_COMMITTER_NAME` as our community new committer. + +Work list: https://github.com/apache/hertzbeat/commits?author=xxx + +Here is the list of `NEW_COMMITTER_NAME`'s contributions in HertzBeat Community: + +> [27 commits](https://github.com/apache/hertzbeat/commits?author=xxx) +> +> 7,495 ++ 627 -- + +Submitted PR (27 commits) +- [ISSUE #4534] [feature] add new feature in hertzbeat #3445 +- xxx + +Submitted Issues (18 commits) + +- [bug] find some bugs in hertzbeat nodes #6565 +- xxx + +Please vote: + ++1: I support this proposal and will welcome `NEW_COMMITTER_NAME` as a committer. ++0: I don't care. +-1: I object to this proposal and here are my reasons. + +This vote will be open for at least 7 days. + +See voting guidelines at +https://community.apache.org/newcommitter.html + +Best Wishes, +ttt +``` + +Note that, Voting ends one week from today, i.e. +[midnight UTC on YYYY-MM-DD](https://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD) +[Apache Voting Guidelines](https://community.apache.org/newcommitter.html) + +### Close Vote Template + +```text +To: private@hertzbeat.apache.org +Subject: [RESULT] [VOTE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hi HertzBeat PMC, + +The vote has now closed. The results are: + +Binding Votes: + ++1 [TOTAL BINDING +1 VOTES] + 0 [TOTAL BINDING +0/-0 VOTES] +-1 [TOTAL BINDING -1 VOTES] + +The vote is ***successful/not successful*** +``` + +### Committer Invite Template + +```text +To: NewCommiter@domain.com +Cc: private@hertzbeat.apache.org +Subject: Invitation to become HertzBeat committer: [Candidate Name] + +``` + +```text +Hello [Candidate Name], + +The HertzBeat Project Management Committee (PMC) +hereby offers you committer privileges to the project + +These privileges are offered on the understanding that you'll use them +reasonably and with common sense. We like to work on trust +rather than unnecessary constraints. + +Being a committer enables you to more easily make +changes without needing to go through the patch +submission process. + +Being a committer does not require you to +participate any more than you already do. It does +tend to make one even more committed. You will +probably find that you spend more time here. + +Of course, you can decline and instead remain as a +contributor, participating as you do now. + +This personal invitation is a chance for you to accept or decline in private. +Please let us know in reply to this message whether you accept or decline. +Also, please refrain from sharing that you were invited before the official +announcement by the PMC. + +If you accept, you will need an Apache account (id) with privileges. +Please follow these instructions. + +A. If you already have an ICLA on file: + + 1. If you already have an Apache account, let us know your id and we +will grant you privileges on the project repositories. + + 2. If you have previously sent an ICLA, let us know the email address +and public name used on the ICLA and your preferred Apache id, and +we will request your account. + + 3. If the email address on the previously submitted ICLA is no longer +valid, let us know the email address and public name used on the new ICLA, +and your preferred Apache id. Continue to step B below and file your new ICLA. + +Look to see if your preferred ID is already taken at +https://people.apache.org/committer-index.html + +B. If there is not already an ICLA on file, you need to submit an ICLA: + + 1. Details of the ICLA and the forms are found + through this link: https://www.apache.org/licenses/#clas + + 2. Instructions for its completion and return to + the Secretary of the ASF are found at + https://www.apache.org/licenses/contributor-agreements.html#submitting + + Do not copy the project or any other individual on your message + to Secretary, as the form contains Personally Identifiable Information + that should be kept private. + + 3. When you complete the ICLA form, be sure to include in the form + the Apache HertzBeat project and choose a + unique Apache ID. Look to see if your preferred + ID is already taken at + https://people.apache.org/committer-index.html + This will allow the Secretary to notify the PMC + when your ICLA has been recorded. + +When recording of your ICLA is noted, you will +receive a follow-up message with the next steps for +establishing you as a committer. +``` + +### Committer Accept Template + +```text +To: `NEW_COMMITTER_EMAIL` +Cc: private@hertzbeat.apache.org +Subject: Re: invitation to become HertzBeat committer +``` + +```text +Welcome. Here are the next steps in becoming a project committer. After that +we will make an announcement to the dev@hertzbeat.apache.org list. + +You need to send a Contributor License Agreement to the ASF. +Normally you would send an Individual CLA. If you also make +contributions done in work time or using work resources, +see the Corporate CLA. Ask us if you have any issues. +https://www.apache.org/licenses/#clas. + +You need to choose a preferred ASF user name and alternatives. +In order to ensure it is available you can view a list of taken IDs at +https://people.apache.org/committer-index.html + +Please notify us when you have submitted the CLA and by what means +you did so. This will enable us to monitor its progress. + +We will arrange for your Apache user account when the CLA has +been recorded. + +After that is done, please make followup replies to the dev@hertzbeat.apache.org list. +We generally discuss everything there and keep the +private@hertzbeat.apache.org list for occasional matters which must be private. + +The developer section of the website describes roles within the ASF and provides other +resources: + https://www.apache.org/foundation/how-it-works.html + https://www.apache.org/dev/ + +The incubator also has some useful information for new committers +in incubating projects: + https://incubator.apache.org/guides/committer.html + https://incubator.apache.org/guides/ppmc.html + +Just as before you became a committer, participation in any ASF community +requires adherence to the ASF Code of Conduct: + https://www.apache.org/foundation/policies/conduct.html + +Yours, +The Apache HertzBeat new PMC +``` + +### Announce New Committer Template + +```text +To: dev@hertzbeat.apache.org, `NEW_COMMITTER_EMAIL` +Subject: [ANNOUNCE] New committer: `NEW_COMMITTER_NAME` +``` + +```text +Hello Community, + +The Podling Project Management Committee (new PMC) for Apache HertzBeat +has invited `NEW_COMMITTER_NAME` to become a committer and we are pleased to +announce that he has accepted. + +`NEW_COMMITTER_NAME` is active in the Apache HertzBeat community, hope to see your +further interactions with the community! +Thanks for your contributions. + +Best Wishes! +``` diff --git a/home/versioned_docs/version-v1.6.x/community/new_pmc_member_process.md b/home/versioned_docs/version-1.7.x/community/new_pmc_member_process.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/community/new_pmc_member_process.md rename to home/versioned_docs/version-1.7.x/community/new_pmc_member_process.md diff --git a/home/versioned_docs/version-1.7.x/community/submit-code.md b/home/versioned_docs/version-1.7.x/community/submit-code.md new file mode 100644 index 00000000000..c58670ef2f6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/community/submit-code.md @@ -0,0 +1,72 @@ +--- +id: 'submit_code' +title: 'Submit Code' +sidebar_position: 2 +--- + + +* First from the remote repository [https://github.com/apache/hertzbeat.git](https://github.com/apache/hertzbeat.git) fork a copy of the code into your own repository + +* The remote dev and merge branch is `master`. + +* Clone your repository to your local + +```shell +git clone git@github.com:/hertzbeat.git +``` + +* Add remote repository address, named upstream + +```shell +git remote add upstream git@github.com:apache/hertzbeat.git +``` + +* View repository + +```shell +git remote -v +``` + +> At this time, there will be two repositories: origin (your own repository) and upstream (remote repository) + +* Get/Update remote repository code + + ```shell + git fetch upstream + ``` + +* Synchronize remote repository code to local repository + + ```shell + git checkout origin/dev + git merge --no-ff upstream/dev + ``` + +* **⚠️Note that you must create a new branch to develop features `git checkout -b feature-xxx`. It is not recommended to use the master branch for direct development** +* After modifying the code locally, submit it to your own repository: + **Note that the submission information does not contain special characters** + + ```shell + git commit -m 'commit content' + git push + ``` + +* Submit changes to the remote repository, you can see a green button "Compare & pull request" on your repository page, click it. +* Select the modified local branch and the branch you want to merge with the past, you need input the message carefully, describe doc is important as code, click "Create pull request". +* Then the community Committers will do CodeReview, and then he will discuss some details (design, implementation, performance, etc.) with you, afterward you can directly update the code in this branch according to the suggestions (no need to create a new PR). When this pr is approved, the commit will be merged into the master branch +* Finally, congratulations, you have become an official contributor to HertzBeat ! You will be added to the contributor wall, you can contact the community to obtain a contributor certificate. diff --git a/home/versioned_docs/version-1.7.x/download.md b/home/versioned_docs/version-1.7.x/download.md new file mode 100644 index 00000000000..b1958923b62 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/download.md @@ -0,0 +1,36 @@ +--- +id: download +title: Download Apache HertzBeat +sidebar_label: Download +--- + +> **Here is the Apache HertzBeat™ official download page.** +> **Please choose version to download from the following tables. It is recommended use the latest.** + +:::tip + +- Please verify the release with corresponding hashes(sha512), signatures and [project release KEYS](https://downloads.apache.org/hertzbeat/KEYS). +- Refer to [How to Verify](https://www.apache.org/dyn/closer.cgi#verify) for how to check the hashes and signatures. + +::: + +## The Latest Release + +:::tip +Previous releases of HertzBeat may be affected by security issues, please use the latest one. +::: + +| Version | Date | Download | Release | +|---------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| +| v1.7.3 | 2025.09.05 | [apache-hertzbeat-1.7.3-bin.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz) (Server) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-bin.tar.gz.sha512) )
[apache-hertzbeat-collector-1.7.3-bin.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz) (Collector) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-collector-1.7.3-bin.tar.gz.sha512) )
[apache-hertzbeat-1.7.3-src.tar.gz](https://www.apache.org/dyn/closer.lua/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz) (Source Code) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-src.tar.gz.sha512) )
[apache-hertzbeat-1.7.3-docker-compose.tar.gz](https://github.com/apache/hertzbeat/releases/download/v1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz) (Docker Compose) ( [signature](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz.asc) , [sha512](https://downloads.apache.org/hertzbeat/1.7.3/apache-hertzbeat-1.7.3-docker-compose.tar.gz.sha512) ) | [note](https://github.com/apache/hertzbeat/releases/tag/v1.7.3) | + +## Release Docker Image + +> Apache HertzBeat™ provides a docker image for each release. You can pull the image from the [Docker Hub](https://hub.docker.com/r/apache/hertzbeat). + +- HertzBeat [https://hub.docker.com/r/apache/hertzbeat](https://hub.docker.com/r/apache/hertzbeat) +- HertzBeat Collector [https://hub.docker.com/r/apache/hertzbeat-collector](https://hub.docker.com/r/apache/hertzbeat-collector) + +## All Archived Releases + +For older releases, please check the [archive](https://archive.apache.org/dist/incubator/hertzbeat/). diff --git a/home/versioned_docs/version-v1.6.x/help/activemq.md b/home/versioned_docs/version-1.7.x/help/activemq.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/activemq.md rename to home/versioned_docs/version-1.7.x/help/activemq.md diff --git a/home/versioned_docs/version-1.7.x/help/ai_agent.md b/home/versioned_docs/version-1.7.x/help/ai_agent.md new file mode 100644 index 00000000000..9607c5ce665 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ai_agent.md @@ -0,0 +1,360 @@ +--- +id: ai_agent +title: HertzBeat AI Agent User Guide +sidebar_label: HertzBeat AI +keywords: [AI, Chat, Agent, Monitoring, AI Agent, OpenAI] +--- + +> HertzBeat AI Agent is an intelligent monitoring AI Agent that helps you manage monitors, configure alerts, and optimize your infrastructure monitoring through natural language conversation. + +## Overview + +The HertzBeat AI Agent feature provides an interactive chat interface where you can: + +**Monitor Management:** + +- 🔍 Query and filter existing monitors by status, type, host, and labels +- ➕ Add new monitors for websites, APIs, databases, and services +- 📊 Get detailed information about available monitor types and their parameters +- ⚡ Check monitor status and troubleshoot monitoring issues + +**Alert Management:** + +- 🚨 Query active alerts with comprehensive filtering (type, status, search) +- 📈 Get alert summary statistics and distribution +- 🔔 View both single and grouped alerts +- 📋 Analyze alert patterns and trends + +**Metrics Analysis:** + +- 📊 Retrieve real-time metrics data for any monitor +- 📈 Access historical metrics with customizable time ranges +- 💾 Check warehouse storage system status +- 🔍 Query specific metric fields and labels + +**Alert Rule Management:** + +- ⚙️ Configure alert rules and thresholds +- 📝 Manage alert definitions for different monitor types +- 🎯 Set up custom alerting criteria + +## Prerequisites + +Before using the AI Agent, ensure: + +1 **OpenAI Configuration**: Valid OpenAI API key must be configured. Optionally, you can change the model in `application.yml` under `spring.ai.openai.chat.options.model` (default is `gpt-4.1-nano`). +2 **Database Connection**: HertzBeat database must be accessible for monitor operations + +## Configuration + +### OpenAI API Key Setup + +The AI Agent uses OpenAI's GPT models. You need to configure an OpenAI API key in this ways: + +#### Database Configuration via UI + +1. Navigate to the AI Agent interface +2. If no API key is configured, you'll see a configuration dialog +3. Enter your OpenAI API key +4. Click **Save Configuration** + +### Configuration Priority + +- **Database configuration** takes priority over YAML configuration +- Configuration changes are applied immediately without restart +- Invalid API keys are automatically validated before saving + +## Using the AI Agent + +### Accessing the Chat Interface + +1. Navigate to the **AI Agent** section in HertzBeat web interface +2. You'll see the HertzBeat Monitoring AI Agent welcome screen +3. Start typing your questions in the chat input field + +### Sample Conversations + +#### Adding a New Monitor + +```text +You: Add a new HTTP monitor for my website https://example.com +AI Agent: I'll help you add an HTTP monitor for https://example.com. +Let me create that monitor with the following configuration: +- Name: example.com Website Monitor +- Type: HTTP +- Host: example.com +- Port: 443 (HTTPS) +- Path: / +- Interval: 60 seconds + +Monitor created successfully with ID: 12345 +``` + +#### Listing Existing Monitors + +```text +You: Show me all my current monitors +AI Agent: Here are your current monitors: + +1. **Linux Server** (ID: 1001) + - Status: ✅ Online + - Host: 192.168.1.100 + - Last Check: 2 minutes ago + +2. **MySQL Database** (ID: 1002) + - Status: ⚠️ Warning + - Host: db.example.com + - Last Check: 30 seconds ago + +3. **Website Monitor** (ID: 1003) + - Status: ✅ Online + - Host: https://example.com + - Last Check: 1 minute ago + +Would you like details on any specific monitor? +``` + +#### Getting Monitor Type Information + +```text +You: What parameters do I need to monitor a PostgreSQL database? +AI Agent: To monitor a PostgreSQL database, you'll need these parameters: + +**Required Parameters:** +- **Host**: Database server IP/hostname +- **Port**: PostgreSQL port (default: 5432) +- **Database**: Database name to connect to +- **Username**: Database username +- **Password**: Database password + +**Optional Parameters:** +- **Timeout**: Connection timeout (default: 6000ms) +- **Query Timeout**: SQL query timeout (default: 3000ms) +- **SSL**: Enable SSL connection (default: false) + +Would you like me to help you add a PostgreSQL monitor? +``` + +#### Alert Management + +```text +You: Show me all critical alerts from the last 24 hours +AI Agent: Here are the critical alerts from the last 24 hours: + +🚨 **Active Alerts (3 firing)** +1. **High CPU Usage** - Linux Server (ID: 1001) + - Status: 🔥 Firing + - Triggered: 2 hours ago + - Severity: Critical + - Message: CPU usage 95% > threshold 90% + +2. **Database Connection Failed** - MySQL Database (ID: 1002) + - Status: 🔥 Firing + - Triggered: 45 minutes ago + - Severity: Critical + - Message: Connection timeout after 10 seconds + +3. **Website Response Time** - Website Monitor (ID: 1003) + - Status: ⚠️ Warning + - Triggered: 15 minutes ago + - Severity: Warning + - Message: Response time 5.2s > threshold 3s + +**Alert Summary:** +- Total alerts: 12 +- Firing: 3 (2 critical, 1 warning) +- Resolved: 9 + +Would you like me to help you investigate any specific alert? +``` + +#### Metrics Analysis + +```text +You: Show me the CPU usage for my Linux server over the last 6 hours +AI Agent: Here's the CPU usage data for your Linux server (Monitor ID: 1001) over the last 6 hours: + +📊 **CPU Usage Metrics - Last 6 Hours** +``` + +Time | Usage (%) | Load Avg | Processes +14:00-15:00 | 45.2% | 1.2 | 156 +15:00-16:00 | 67.8% | 2.1 | 178 +16:00-17:00 | 89.4% | 3.8 | 195 +17:00-18:00 | 92.1% | 4.2 | 203 +18:00-19:00 | 94.7% | 4.8 | 210 +19:00-20:00 | 88.3% | 3.5 | 188 + +``` text + +**Analysis:** +- Peak usage: 94.7% at 19:00 +- Average usage: 79.6% +- Trend: High usage sustained for 3+ hours +- Current status: Decreasing (88.3%) + +**Real-time metrics:** +- Current CPU: 76.2% +- Memory usage: 82.1% +- Disk I/O: Normal + +Would you like me to check historical data for comparison or investigate the high usage cause? +``` + +#### Alert Rule Configuration + +```text +You: Set up an alert rule for when my website response time exceeds 5 seconds +AI Agent: I'll help you create an alert rule for website response time monitoring. + +**Alert Rule Configuration:** +- **Monitor Type**: HTTP/Website +- **Metric**: Response Time +- **Condition**: Greater than 5 seconds +- **Severity**: Warning +- **Evaluation**: Check every 60 seconds +- **Notification**: Email + Dashboard + +**Proposed Rule:** +```yaml +name: "Website Response Time Alert" +condition: "response_time > 5000ms" +severity: "warning" +description: "Alert when website response time exceeds 5 seconds" +evaluation_interval: 60s +for: 2m # Alert after condition persists for 2 minutes +``` + +This rule will: + +1. Monitor response time every minute +2. Trigger alert if response time > 5s for 2+ minutes +3. Send notifications via configured channels +4. Show in dashboard with warning status + +Would you like me to apply this configuration or modify any settings? + +``` text + +### Chat Features + +#### Message History + +- All conversations are automatically saved +- Access previous conversations from the sidebar +- Search through conversation history +- Export conversation logs + +#### Real-time Responses + +- Streaming responses for immediate feedback +- Typing indicators show when the assistant is processing +- Cancel ongoing requests if needed + +#### Conversation Management + +- Create new conversations for different topics +- Rename conversations for better organization +- Delete old conversations to keep things clean +Note: Conversations are not saved in the database + +## Troubleshooting + +### Common Issues + +#### Chat Interface Not Loading + +**Symptoms**: Chat interface shows loading spinner indefinitely +**Solutions**: + +1. Check browser console for JavaScript errors +2. Ensure network connectivity to HertzBeat server + +#### "Service Unavailable" Message + +**Symptoms**: Chat shows "HertzBeat AI monitoring service unavailable" +**Solutions**: +1.Verify OpenAI API key configuration +2.Check application logs for errors +3.Ensure database connectivity + +#### Invalid API Key Error + +**Symptoms**: Configuration dialog shows "Invalid API key" error +**Solutions**: + +1. Verify your OpenAI API key starts with `sk-` +2. Check API key has sufficient credits/quota +3. Test API key directly with OpenAI API +4. Ensure no extra spaces in the API key + +#### Monitor Creation Failures + +**Symptoms**: AI suggests monitor configuration but creation fails +**Solutions**: + +1. Verify you have permissions to create monitors +2. Check if monitor with same name already exists +3. Ensure target host/service is accessible +4. Review monitor parameter validation errors + +### Debug Mode + +Enable debug logging by setting log level to DEBUG for: + +```yaml +logging: + level: + org.apache.hertzbeat.ai.agent: DEBUG +``` + +## Best Practices + +### Effective Chat Usage + +1. **Be Specific**: "Add HTTP monitor for api.example.com port 8080" vs "add a monitor" +2. **Provide Context**: Mention if you want production vs test monitors +3. **Ask Follow-ups**: Request configuration details if needed +4. **Use Natural Language**: The AI understands conversational requests + +### Monitor Management + +1. **Naming Convention**: Use descriptive monitor names +2. **Documentation**: Ask the AI to document complex configurations + +### Security Considerations + +1. **API Key Security**: Store OpenAI API keys securely +2. **Access Control**: Limit AI chat access to authorized users +3. **Data Privacy**: Be mindful of sensitive information in chat logs +4. **Network Security**: Ensure secure connections to OpenAI API + +## Advanced Features + +### Bulk Operations + +```text +You: Add HTTP monitors for all services in my staging environment: +- api-staging.example.com:8080 +- web-staging.example.com:80 +- admin-staging.example.com:3000 +``` + +## Limitations + +- Requires active internet connection for OpenAI API +- OpenAI API usage incurs costs based on token consumption +- Complex multi-step operations may require multiple interactions +- Some advanced configurations may need manual setup +- Rate limiting may apply based on OpenAI plan + +## Support + +For issues with AI Agent: + +1. Check this documentation first +2. Review application logs for errors +3. Test OpenAI API connectivity independently +4. Contact HertzBeat support with specific error messages + +--- diff --git a/home/versioned_docs/version-1.7.x/help/airflow.md b/home/versioned_docs/version-1.7.x/help/airflow.md new file mode 100644 index 00000000000..f93aa2a33e0 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/airflow.md @@ -0,0 +1,38 @@ +--- +id: airflow +title: Monitoring Apache Airflow Monitoring +sidebar_label: Apache Airflow +keywords: [open source monitoring system, open source database monitoring, Apache Airflow monitoring] +--- + +> Collect and monitor general performance metrics for the Apache Airflow. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | IP address, IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ without protocol prefix (e.g., https://, http://). | +| Task Name | Name identifying this monitoring, ensuring uniqueness. | +| Port | Port number of the database exposed to the outside, default is 8080. | +| Query Timeout | Set timeout for unresponsive connections, in milliseconds (ms), default is 3000ms. | +| HTTPS | Whether to enable HTTPS. | +| Collection Interval | Interval for periodic data collection during monitoring, in seconds, with a minimum interval of 30 seconds. | +| Whether to detect | Whether to perform a probe check for monitoring availability before adding a new monitor; operations proceed if successful. | +| Description | Additional information to identify and describe this monitoring, where users can add remarks. | + +### Collection Metrics + +#### Metric Set: airflow_health + +| Metric Name | Metric Unit | Metric Description | +|--------------|-------------|--------------------| +| metadatabase | N/A | Response time | +| scheduler | N/A | scheduler health | +| triggerer | N/A | triggerer health | + +#### Metric Set: airflow_version + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|---------------------| +| value | N/A | Airflow version | +| git_version | N/A | Airflow git version | diff --git a/home/versioned_docs/version-1.7.x/help/alarm_center.md b/home/versioned_docs/version-1.7.x/help/alarm_center.md new file mode 100644 index 00000000000..5623c108274 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alarm_center.md @@ -0,0 +1,57 @@ +--- +id: alarm_center +title: Alarm Center +sidebar_label: Alarm Center +keywords: + [open-source monitoring system, alarm center, alarm management, alarm display] +--- + +> The Alarm Center serves as a comprehensive visualization platform that displays all alarms after undergoing grouping, consolidation, suppression, and silencing processes. It encompasses both internally triggered threshold-based alarms and integrated third-party notifications. + +## Alarm Sources + +The HertzBeat Alarm Center manages notifications from two primary sources: + +1. Internal Threshold-Triggered Alarms + - Generated when monitoring metrics exceed predefined thresholds + - Directly correlated with monitoring tasks and threshold rules configured within the system + - Manageable through adjustment of monitoring parameters and threshold configurations +2. Third-Party Integrated Alarms + - Received through API interfaces from external systems + - Compatible with various monitoring systems and alarm platforms + - Processed through identical workflow as internal alarms + +## Alarm Processing Mechanism + +Before appearing in the Alarm Center, all notifications undergo several processing stages: + +1. Grouping + - Categorizes related alarms based on source, type, severity, and other attributes (labels) + - Facilitates efficient management of high-volume alarms + - Supports customizable grouping rules for diverse scenarios +2. Consolidation + - Mitigates notification fatigue from multiple similar alarms within short intervals + - Presents consolidated alarms in a streamlined format, eliminating redundancy +3. Suppression + - Manages alarm dependencies + - Suppresses secondary alarms when primary alarms are triggered + - Supports configurable suppression rules based on alarm dependencies +4. Silencing + - Temporarily mutes specific alarms during designated periods + - Ideal for system maintenance windows and known issue handling + - Enables time-based silence rule configuration + +## Alarm Center Interface + +![alarm_center](/img/docs/help/alarm-center-1.png) + +The Alarm Center provides a comprehensive view of all system alarms: + +1. Alarm Display + - Lists all alarms with crucial information including status, source, labels, and timestamps + - Offers detailed view functionality for comprehensive alarm information and context +2. Search Functionality + - Enables rapid alarm identification + - Supports multiple search criteria (labels, annotations, alarm status) +3. Alarm Management + - Alarm Deletion: Removes alarms no longer requiring attention diff --git a/home/versioned_docs/version-1.7.x/help/alarm_group.md b/home/versioned_docs/version-1.7.x/help/alarm_group.md new file mode 100644 index 00000000000..8fa142979f3 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alarm_group.md @@ -0,0 +1,24 @@ +--- +id: alarm_group +title: Alarm Grouping +sidebar_label: Alarm Grouping +keywords: [Open source monitoring system, alarm reduce, alarm grouping] +--- + +> Group convergence supports grouping and convergence of alarms for specified packet labels, deduplication and convergence of the same repeated alarms for the time period. When the threshold rule triggers the alarm or external alarm reporting, it will enter the packet convergence to alarm grouping to deduplicate the alarm to avoid a large number of alarm messages causing alarm storms. + +## Grouping Policy Parameter Configuration + +- Strategy Name: The name that uniquely identifies the grouping policy +- Group Labels: Alarm grouping tag, support up to 10 tags + + > Tag source: monitoring, threshold rules, tags carried by external alarms + +- Wait Time: Waiting time after a new alarm is generated. The same alarms received during this time will be grouped, with a default of 30 seconds. + + > When a new (unable to join an existing group) alarm is generated, the group convergence will wait according to the `wait time`, during which time, the same alarm or the alarm that meets the grouping conditions will be grouped. The alarm after the grouping is sent to the alarm suppression module for subsequent processing until the time interval between the current time and the first alarm generation in the packet exceeds the `wait time`. + +- Interval time: The minimum time interval for sending group alarm notifications to avoid excessive alarm notifications, default 5 minutes +- Repeat interval: The minimum notification interval for repeated alarms. For continuously triggered alarms, avoid repeated notifications, default 4 hours + +**Note**: Only grouped alarms can be suppressed using suppression rules. diff --git a/home/versioned_docs/version-1.7.x/help/alarm_inhibit.md b/home/versioned_docs/version-1.7.x/help/alarm_inhibit.md new file mode 100644 index 00000000000..acc96b019b3 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alarm_inhibit.md @@ -0,0 +1,45 @@ +--- +id: alarm_inhibit +title: Alarm Inhibition +sidebar_label: Alarm Inhibition +keywords: [ Open Source Monitoring System, Alarm Convergence, Alarm Inhibition ] +--- + +> Alarm inhibition is used to configure the inhibition relationship between alarms. When an alarm occurs, other alarms can be suppressed. It can be understood as "important" alarms suppressing " +> unimportant" alarms. For example, the alarm generated by a server crash suppresses the alarms generated by other services on this server. + +## Prerequisites + +- Correctly configure the alarm grouping rule + +## Inhibit rule configuration + +- Inhibit Rule Name: The name that uniquely identifies the suppression rule + +- Source Labels: When the alarm contains these tags, the target alarm will be suppressed. Multiple tags can be added. + +> Identify the tag of the "important" alarm. The alarm tag needs to contain all source tags to suppress the alarm marked by the target tag. + +- Target Labels: Alarms matching these tags will be suppressed. + +> Identify the label of "unimportant" alarms. Alarm labels need to contain all target labels to be suppressed. + +- Equal Labels: Labels for determining alarm correlation. Supports up to 10 labels. +- Enabled: Enable or disable this inhibit rule + +## Example + +Scenario: Use Hertzbeat to monitor two Centos servers 192.168.1.1, 192.168.1.2, and Redis services Redis-1 and Redis-2 deployed on the two servers. +And configure the following threshold rules: + +- Monitor Centos Linux / Monitor availability. Bind label `server-status:down` +- Monitor Redis database / Monitor availability. Bind label `redis-status:down` + +If you need to achieve that when the Centos downtime alarm is generated, the Redis alarm will no longer be generated, you can configure the following alarm suppression rules: + +- Source label: `server-status:down` +- Target label: `redis-status:down` +- Equal label: `instancehost` + +When the Centos 192.168.1.1 downtime alarm is generated, the Redis-1 unavailable alarm will no longer be generated. And at the same time, when Centos 192.168.1.2 is running normally and Redis-2 is +unavailable, the alarm notifying Redis-2 unavailable will be generated normally. diff --git a/home/versioned_docs/version-1.7.x/help/alarm_silence.md b/home/versioned_docs/version-1.7.x/help/alarm_silence.md new file mode 100644 index 00000000000..c3867ce13f8 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alarm_silence.md @@ -0,0 +1,29 @@ +--- +id: alarm_silence +title: Alarm Silence +sidebar_label: Alarm Silence +keywords: [ Open Source Monitoring System, Alert Silence ] +--- + +> The alert silence management allows you to configure silence policies to suppress alert notifications during specified time periods, such as during system maintenance or when you don’t want to be disturbed by alerts at night or on weekends. Alert silence rules support both one-time and periodic time periods, and can match specific alerts using labels and alert levels. + +## One-Time Time Period Silence Configuration + +- Silence Strategy Name: A unique name to identify the silence policy; +- Match All: Whether to enable this silence policy for all alerts; +- Label Match: When "Apply to All" is disabled, you can match alerts to be silenced based on specified labels; +- Silence Type: Select "One Time Silence"; +- Silence Period: After selecting "One Time Silence", the silence period configuration is shown in the following image, which can be configured as needed + ![alarm_silence](/img/docs/help/alert-silence-1-en.png) +- Enable: Enable or disable the silence policy. + +## Periodic Time Period Silence Configuration + +- Silence Strategy Name: A unique name to identify the silence policy; +- Match All: Whether to enable this silence policy for all alerts; +- Label Match: When "Apply to All" is disabled, you can match alerts to be silenced based on specified labels; +- Silence Type: Select "Periodic Silence"; +- Choose Date: After selecting "Periodic Silence", you can configure the dates when alerts should be silenced; +- Silence Period: After selecting "Periodic Silence", the silence period configuration is shown in the following image, which can be configured as needed (e.g., silencing alerts during weekends) + ![alarm_silence](/img/docs/help/alert-silence-2-en.png) +- Enable: Enable or disable the silence policy. diff --git a/home/versioned_docs/version-1.7.x/help/alert_console.md b/home/versioned_docs/version-1.7.x/help/alert_console.md new file mode 100644 index 00000000000..45ab7d791d3 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_console.md @@ -0,0 +1,18 @@ +--- +id: alert_console +title: Custom console address in alarm template +sidebar_label: Console address in alarm template +--- + +> After the threshold is triggered, send the alarm information. When you notify through DingDing / enterprise Wechat / FeiShu robot or email, the alarm content has a detailed link to log in to the console. + +### Custom settings + +In our startup configuration file application.yml, find the following configuration + +```yml +alerter: + console-url: #Here is our custom console address +``` + +The default value is the official console address of HertzBeat. diff --git a/home/versioned_docs/version-1.7.x/help/alert_dingtalk.md b/home/versioned_docs/version-1.7.x/help/alert_dingtalk.md new file mode 100644 index 00000000000..fdac2211c74 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_dingtalk.md @@ -0,0 +1,41 @@ +--- +id: alert_dingtalk +title: Alert DingDing robot notification +sidebar_label: Alert DingDing robot notification +keywords: [open source monitoring tool, open source alerter, open source DingDing robot notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by DingDing robot. + +### Operation steps + +1. **【DingDing desktop client】-> 【Group settings】-> 【Intelligent group assistant】-> 【Add new robot-select custom】-> 【Set robot name and avatar】-> 【Note⚠️Set custom keywords: HertzBeat】 ->【Copy its webhook address after adding successfully】** + + > Note⚠️ When adding a robot, its custom keywords need to be set in the security setting block: HertzBeat. Other security settings or the IP segment don't need to be filled in. + + ![email](/img/docs/help/alert-notice-8.png) + +2. **【Save access_token value of the WebHook address of the robot】** + + > eg: webHook address:`https://oapi.dingtalk.com/robot/send?access_token=43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + > Its robot access_token value is `43aac28a236e001285ed84e473f8eabee70f63c7a70287acb0e0f8b65fade64f` + +3. **【Alarm notification】->【Add new recipient】 ->【Select DingDing robot notification method】->【Set DingDing robot ACCESS_TOKEN】-> 【Confirm】** + + ![email](/img/docs/help/alert-notice-9.png) + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-notice-4.png) + +### DingDing robot common issues + +1. DingDing group did not receive the robot alarm notification. + + > Please check whether there is any triggered alarm information in the alarm center. + > Please check whether DingDing robot is configured with security custom keywords :HertzBeat. + > Please check whether the robot ACCESS_TOKEN is configured correctly and whether the alarm strategy association is configured. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_discord.md b/home/versioned_docs/version-1.7.x/help/alert_discord.md new file mode 100644 index 00000000000..6eb18982dba --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_discord.md @@ -0,0 +1,68 @@ +--- +id: alert_discord +title: Alert Discord Bot Notifications +sidebar_label: Alert Discord bot notification +keywords: [open source monitoring tool, open source alerter, open source Discord bot notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Discord robot. + +## Steps + +### Create an application in Discord, create a robot under the application, and get the robot Token + +1. Visit [https://discord.com/developers/applications](https://discord.com/developers/applications) to create an application + + ![bot](/img/docs/help/discord-bot-1.png) + +2. Create a robot under the application and get the robot Token + + ![bot](/img/docs/help/discord-bot-2.png) + + ![bot](/img/docs/help/discord-bot-3.png) + +3. Authorize the bot to the chat server + + > Authorize the robot under the OAuth2 menu, select `bot` for `SCOPES`, `BOT PERMISSIONS` select `Send Messages` + + ![bot](/img/docs/help/discord-bot-4.png) + + > Obtain the URL generated at the bottom, and the browser accesses this URL to officially authorize the robot, that is, to set which chat server the robot will join. + +4. Check if your chat server has joined robot members + + ![bot](/img/docs/help/discord-bot-5.png) + +### Enable developer mode and get Channel ID + +1. Personal Settings -> Advanced Settings -> Enable Developer Mode + + ![bot](/img/docs/help/discord-bot-6.png) + +2. Get channel Channel ID + + > Right-click the chat channel you want to send the robot message to, click the COPY ID button to get the Channel ID + + ![bot](/img/docs/help/discord-bot-7.png) + +### Add an alarm notification person in HertzBeat, the notification method is Discord Bot + +1. **[Alarm notification] -> [Add recipient] -> [Select Discord robot notification method] -> [Set robot Token and ChannelId] -> [OK]** + + ![email](/img/docs/help/discord-bot-8.png) + +2. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + + > **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + + ![email](/img/docs/help/alert-notice-policy.png) + +### Discord Bot Notification FAQ + +1. Discord doesn't receive bot alert notifications + + > Please check whether the alarm information has been triggered in the alarm center + > Please check whether the robot Token and ChannelId are configured correctly, and whether the alarm policy association has been configured + > Please check whether the bot is properly authorized by the Discord chat server + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_email.md b/home/versioned_docs/version-1.7.x/help/alert_email.md new file mode 100644 index 00000000000..fd12b4eb164 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_email.md @@ -0,0 +1,33 @@ +--- +id: alert_email +title: Alert email notification +sidebar_label: Alert email notification +keywords: [open source monitoring tool, open source alerter, open source email notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by email. + +### Operation steps + +1. **【Alarm notification】->【Add new recipient】 ->【Select email notification method】** + + ![email](/img/docs/help/alert-notice-1.png) + +2. **【Get verification code】-> 【Enter email verification code】-> 【Confirm】** + ![email](/img/docs/help/alert-notice-2.png) + + ![email](/img/docs/help/alert-notice-3.png) + +3. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-notice-4.png) + +### Email notification common issues + +1. Hertzbeat deployed on its own intranet cannot receive email notifications + + > Hertzbeat needs to configure its own mail server. Please confirm whether you have configured its own mail server in application.yml + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_enterprise_wechat_app.md b/home/versioned_docs/version-1.7.x/help/alert_enterprise_wechat_app.md new file mode 100644 index 00000000000..352981b7d85 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_enterprise_wechat_app.md @@ -0,0 +1,34 @@ +--- +id: alert_enterprise_wechat_app +title: Alert Enterprise Wechat App notification +sidebar_label: Alert Enterprise Wechat App notification +keywords: [open source monitoring tool, open source alerter, open source Enterprise Wechat App notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by enterprise WeChat App. + +### Operation steps + +1. **【Enterprise Wechat backstage】-> 【App Management】-> 【Create an app】-> 【Set App message】->【Copy AgentId and Secret adding successfully】** + + ![email](/img/docs/help/alert-wechat-1.jpg) + +2. **【Alarm notification】->【Add new recipient】 ->【Select Enterprise WeChat App notification method】->【Set Enterprise WeChat ID,Enterprise App ID and Enterprise App Secret 】-> 【Confirm】** + + ![email](/img/docs/help/alert-wechat-2.jpg) + +3. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-wechat-3.jpg) + +### Enterprise WeChat App common issues + +1. Enterprise WeChat App did not receive the alarm notification. + + > Please check if the user has application permissions. + > Please check if the enterprise application callback address settings are normal. + > Please check if the server IP is on the enterprise application whitelist. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_feishu.md b/home/versioned_docs/version-1.7.x/help/alert_feishu.md new file mode 100644 index 00000000000..7aaf1a1e947 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_feishu.md @@ -0,0 +1,38 @@ +--- +id: alert_feishu +title: Alert FeiShu robot notification +sidebar_label: Alert FeiShu robot notification +keywords: [open source monitoring tool, open source alerter, open source feishu bot notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by FeiShu robot. + +### Operation steps + +1. **【FeiShu client】-> 【Group settings】-> 【Bots】-> 【Add Bot】-> 【Custom Bot】 -> 【Set robot name and avatar】-> 【Copy its webhook URL after adding successfully】** + +2. **【Save the key value of the WebHook address of the robot】** + + > eg: webHook address:`https://open.feishu.cn/open-apis/bot/v2/hook/3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + > Its robot KEY value is `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【Alarm notification】->【Add new recipient】 ->【Select FeiShu robot notification method】->【Set FeiShu robot KEY】-> 【Confirm】** + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-notice-4.png) + +### FeiShu robot notification common issues + +1. FeiShu group did not receive the robot alarm notification. + + > Please check whether there is any triggered alarm information in the alarm center. + > Please check whether the robot key is configured correctly and whether the alarm strategy association is configured. + +2. How to @someone in alarm notification + + > In the form for adding recipients, fill in the `User ID`. If you need to @everyone, you can enter `all` in the `User ID` field. Multiple user IDs are also supported, separated by commas `,`. For detailed instructions on how to get the Feishu user ID, please refer to: [Get feishu user id](https://open.feishu.cn/document/faq/trouble-shooting/how-to-get-internal-user-id). + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_feishu_app.md b/home/versioned_docs/version-1.7.x/help/alert_feishu_app.md new file mode 100644 index 00000000000..fbba8850117 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_feishu_app.md @@ -0,0 +1,75 @@ +--- +id: alert_feishu_app +title: Alert FeiShu app notification +sidebar_label: Alert FeiShu app notification +keywords: [Alert FeiShu app notification , open source alerter, open source feishu app notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by FeiShu app. + +### Operation steps + +1. **【[FeiShu Open Platform](https://open.feishu.cn/)】->【Create Custom App】->【Create】->【Add Features:Bot】** + +2. **【Development Configuration】->【Permissions & Scopes】:Different types of notification objects require different API permissions, which can be opened as needed** + + | Permission Name | Permission code | Designated User | Designated Group Chat | Designated Department | All User | + |-----------------------------------------------------------------|-----------------------------------|:---------------:|:---------------------:|:---------------------:|:--------:| + | Obtain user ID | contact:user.employee_id:readonly | ✓ | | | ✓ | + | Send messages as an app | im:message:send_as_bot | ✓ | ✓ | ✓ | ✓ | + | Obtain employee information in FeiShu CoreHR (Standard version) | ehr:employee:readonly | | | | ✓ | + | Send batch messages to members from one or more departments | im:message:send_multi_depts | | | ✓ | | + | Send batch messages to multiple users | im:message:send_multi_users | | | | ✓ | + + > Attention⚠️:In the designated notification type of group chat,the application needs to be added as a robot to the group chat, to @someone, you need to enable the permission to 'obtain user ID' + > + > Batch import scopes + > + > ```json + > { + > "scopes": { + > "tenant": [ + > "contact:user.employee_id:readonly", + > "im:message:send_as_bot", + > "ehr:employee:readonly", + > "im:message:send_multi_depts", + > "im:message:send_multi_users" + > ], + > "user": [] + > } + > } + > ``` + +3. **【App Versions】->【Version Management & Release】->【Create a version】->【Save】->【Publish】** + +4. **【Basic Info】->【Credentials & Basic Info】->【copy and save AppID and AppSecret】** + +5. **【Notice Receiver】->【New Receiver】 ->【Choose FeiShu App method】->【Set AppID and AppSecret】-> 【Select Notice Object Type】-> 【Set the corresponding ID】** + +6. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-notice-4.png) + +### FeiShu app notification common issues + +1. FeiShu app did not receive the robot alarm notification. + + > Please check whether there is any triggered alarm information in the alarm center. + > Please check whether the AppID and AppSecret is configured correctly and whether the alarm strategy association is configured. + > Please check if the user was within the available range when the application was published. + +2. How to @someone in a designated group chat + + > In the form for adding recipients, fill in the `User ID`. If you need to @everyone, you can enter `all` in the `User ID` field. Multiple user IDs are also supported, separated by commas `,`. For detailed instructions on how to get the FeiShu user ID, please refer to: [Get FeiShu user id](https://open.feishu.cn/document/faq/trouble-shooting/how-to-obtain-user-id#529e21a9) + +3. How to obtain a chat ID + + > Please refer to: [Chat ID description](https://open.feishu.cn/document/server-docs/group/chat/chat-id-description#394516c9) + +4. How to obtain party ID + + > Please refer to: [Department resource introduction](https://open.feishu.cn/document/server-docs/contact-v3/department/field-overview#9c02ed7a) + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_integration.md b/home/versioned_docs/version-1.7.x/help/alert_integration.md new file mode 100644 index 00000000000..ef3b605b35e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_integration.md @@ -0,0 +1,38 @@ +--- +id: alert_integration +title: Alert Integration +sidebar_label: Alert Integration +keywords: + [ + open-source monitoring, + alert integration, + alert management, + multi-source alerts, + ] +--- + +> The alert integration module of HertzBeat is designed to achieve unified reception, standardized processing, and intelligent dispatching of alerts from various third-party monitoring and observability platforms. As a centralized "Alert Center," HertzBeat efficiently ingests external alert information and applies flexible alert management strategies. + +### Core Capabilities + +- **Multi-Source Alert Ingestion**: Supports receiving alert messages from major platforms such as Webhook, Prometheus, Alertmanager, SkyWalking, and Tencent Cloud. +- **Alert Format Standardization**: Converts alerts from different platforms into a unified internal format within HertzBeat for easier processing. +- **Comprehensive Alert Processing Mechanisms**, including: + - **Grouping and Convergence**: Manage alerts by grouping them based on labels and deduplicate repeated alerts within a specific time window. + - **Inhibition**: Automatically suppresses secondary alerts when specific conditions are met. + - **Silencing**: Temporarily disables alert notifications during system maintenance or known issues to avoid unnecessary noise. + +### Supported Alert Sources + +HertzBeat currently supports alert integration from the following third-party monitoring platforms: + +- **Webhook**: A generic integration method supporting customized alert format push. +- **Prometheus**: You can configure HertzBeat’s service address directly in the Prometheus Server's Alertmanager configuration, allowing HertzBeat to replace Alertmanager for receiving and handling Prometheus Server alerts. +- **Alertmanager**: Supports forwarding alerts from Prometheus AlertManager to the HertzBeat alert platform. +- **SkyWalking**: Sends SkyWalking alerts to the HertzBeat alert platform via Webhook. +- **Tencent Cloud Monitoring**: Sends Tencent Cloud alerts to the HertzBeat alert platform via Webhook. +- **And more**:HertzBeat is actively expanding its integration support. If the integration you need is not yet available, the community is actively contributing and can assist in adding it. + +You can view the detailed integration methods and configuration examples through the "Integration" interface in HertzBeat. + +![integration](/img/docs/help/alert_integration_en.png) diff --git a/home/versioned_docs/version-1.7.x/help/alert_notification_template.md b/home/versioned_docs/version-1.7.x/help/alert_notification_template.md new file mode 100644 index 00000000000..1856dd6ef10 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_notification_template.md @@ -0,0 +1,124 @@ +--- +id: alert_notification_template +title: Notification Template +sidebar_label: Notification Template +keywords: [Template, Alert Template, Alarm Template, Notification Template, Message Notification, Alert Webhook Callback Notification] +--- + +> HertzBeat supports custom notification templates. Templates use placeholder variables for rendering, and the system automatically replaces variables with actual alert data during push notifications. + +## Template Configuration + +【Notification】->【Notice Template】->【Template Configuration】 + +![Template Configuration](/img/docs/help/alert-notification-template-1-en.png) + +## Template Rendering + +HertzBeat notification templates are based on FreeMarker syntax, supporting variable placeholders, conditional judgments, loops, formatting, and other advanced features. During template rendering, the system injects alert data objects (e.g., GroupAlert, SingleAlert) into the template, and variables are automatically replaced with actual values. + +## Available Variables and Data Structures + +### GroupAlert Structure Fields + +[GroupAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/GroupAlert.java) + +- `id`:Primary key of the alert group +- `groupKey`: Unique identifier for the group +- `status`:Group status (e.g., firing, resolved) +- `groupLabels`:Group labels (Map) +- `commonLabels`:Common labels (Map) +- `commonAnnotations`:Common annotations (Map) +- `alertFingerprints`:List of alert fingerprints +- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:Metadata +- `alerts`:List of alert details (`List`) + +### SingleAlert Structure Fields + +[SingleAlert Definition](https://github.com/apache/hertzbeat/blob/master/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/SingleAlert.java) + +- `id`:Primary key of the detail +- `fingerprint`:Unique fingerprint +- `labels`:Labels (Map) +- `annotations`:Annotations (Map) +- `content`:Alert content +- `status`:Status (firing|resolved) +- `triggerTimes`:Number of triggers +- `startAt`、`activeAt`、`endAt`:Timestamps +- `creator`、`modifier`、`gmtCreate`、`gmtUpdate`:Metadata + +## Template Variables and Syntax Explanation + +- **Global Variables**: + - ``status``:Alert status (e.g., alert, recovery, etc.) + - ``groupKey``:Unique identifier for the group + - `${commonLabels.xxx}`、`${commonAnnotations.xxx}`:Common labels and annotations, accessed via `xxx` + +- **Alert Details List**: + - ``alerts``:Collection of alert details, usually traversed with `<#list alerts as alert>` + - `${alert.labels.xxx}`、`${alert.annotations.xxx}`:Labels and annotations for a single alert + - `${alert.content}`:Alert content + - `${alert.triggerTimes}`:Number of triggers + - `${alert.startAt}`:First trigger time + +- **Template Syntax Support**: + - Supports FreeMarker syntax, including conditional statements `<#if>`, loops `<#list>`, JSON stringification `?json_string`, time formatting `?number_to_datetime`, string formatting `?string('yyyy-MM-dd HH:mm:ss')`, etc. + - Allows flexible combination of variables and template syntax to achieve complex message customization. + - For more syntax, refer to the [FreeMarker Documentation](https://freemarker.apache.org/) + +## Template Example + +```json +{ + "title": "🔔 HertzBeat Alert Notification", + "status": "${status!"UNKNOWN"}", + "commonLabels": { + <#if commonLabels?? && commonLabels.severity??> + "severity": "${commonLabels.severity?switch("critical", "❤️ Critical", "warning", "💛 Warning", "info", "💚 Info", "Unknown")}"<#if commonLabels.alertname??>, + + <#if commonLabels?? && commonLabels.alertname??> + "alertName": "${commonLabels.alertname}" + + }, + "alerts": [ + <#if alerts?? && alerts?size gt 0> + <#list alerts as alert> + { + "index": ${alert?index + 1}, + "labels": { + <#if alert.labels?? && alert.labels?size gt 0> + <#list alert.labels?keys as key> + "`key`": "${alert.labels[key]?json_string}"<#if key?has_next>, + + + }, + <#if alert.content?? && alert.content != ""> + "content": "${alert.content?json_string}", + + "triggerTimes": ${alert.triggerTimes!0}, + "startAt": "${((alert.startAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}", + <#if alert.activeAt?? && alert.activeAt gt 0> + "activeAt": "${((alert.activeAt!0)?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}", + + <#if alert.endAt?? && alert.endAt gt 0> + "endAt": "${(alert.endAt?number_to_datetime)?string('yyyy-MM-dd HH:mm:ss')}"<#if alert.annotations?? && alert.annotations?size gt 0>, + + <#if alert.annotations?? && alert.annotations?size gt 0> + "annotations": { + <#list alert.annotations?keys as key> + "`key`": "${alert.annotations[key]?json_string}"<#if key?has_next>, + + } + + }<#if alert?has_next>, + + + ], + "commonAnnotations": { + <#if commonAnnotations?? && commonAnnotations?size gt 0> + <#list commonAnnotations?keys as key> + "`key`": "${commonAnnotations[key]?json_string}"<#if key?has_next>, + + + } +} diff --git a/home/versioned_docs/version-1.7.x/help/alert_slack.md b/home/versioned_docs/version-1.7.x/help/alert_slack.md new file mode 100644 index 00000000000..7b5c395c729 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_slack.md @@ -0,0 +1,35 @@ +--- +id: alert_slack +title: Alert Slack Webhook Notifications +sidebar_label: Alert Slack Webhook Notification +keywords: [open source monitoring tool, open source alerter, open source slack webhook notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Slack Webhook. + +## Steps + +### Open Webhook in Slack, get Webhook URL + +Refer to the official website document [Sending messages using Incoming Webhooks](https://api.slack.com/messaging/webhooks) + +### Add an alarm notifier to HertzBeat, and the notification method is Slack Webhook + +1. **【Alarm Notification】->【Add Recipient】->【Select Slack Webhook Notification Method】->【Set Webhook URL】-> 【OK】** + + ![email](/img/docs/help/slack-bot-1.png) + +2. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + + > **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + + ![email](/img/docs/help/alert-notice-policy.png) + +### Slack Notification FAQ + +1. Slack did not receive the robot warning notification + + > Please check whether the alarm information has been triggered in the alarm center + > Please check whether the slack webhook url are configured correctly, and whether the alarm policy association has been configured + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_smn.md b/home/versioned_docs/version-1.7.x/help/alert_smn.md new file mode 100644 index 00000000000..a49ff926801 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_smn.md @@ -0,0 +1,43 @@ +--- +id: alert_smn +title: Alert Huawei Cloud SMN Notifications +sidebar_label: Alert Huawei Cloud SMN Notifications +keywords: [ open source monitoring tool, open source alerter, open source Huawei Cloud SMN notification ] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Huawei Cloud SMN. + +### 操作步骤 + +1. **According to [Huawei Cloud SMN Official Document](https://support.huaweicloud.com/qs-smn/smn_json.html) activate the SMN service and configure SMN** + + ![alert-notice-10](/img/docs/help/alert-notice-10.png) + +2. **Save topic URN for SMN** + + ![alert-notice-11](/img/docs/help/alert-notice-11.png) + +3. **According to [Huawei Cloud Signature Document](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html) obtain AK, SK, and project ID** + + ![alert-notice-12](/img/docs/help/alert-notice-12.png) + + ![alert-notice-13](/img/docs/help/alert-notice-13.png) + +4. **【Alarm Notification】->【Add Recipient】->【Select Slack Webhook Notification Method】->【Set Huawei Cloud SMN AK, SK and other configurations】-> 【OK】** + + ![alert-notice-14](/img/docs/help/alert-notice-14.png) + +5. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + + > **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + + ![email](/img/docs/help/alert-notice-4.png) + +### Huawei Cloud SMN Notification FAQ + +1. Huawei Cloud SMN did not receive the robot warning notification + + > Please check whether the alarm information has been triggered in the alarm center + > Please check whether the Huawei Cloud SMN AK, SK and other configurations are configured correctly, and whether the alarm policy association has been configured + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_sms.md b/home/versioned_docs/version-1.7.x/help/alert_sms.md new file mode 100644 index 00000000000..2b5dfe8d540 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_sms.md @@ -0,0 +1,282 @@ +--- +id: alert_sms +title: Alert SMS notification +sidebar_label: Alert SMS notification +keywords: [open source monitoring tool, open source alerter, open source SMS alert notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by SMS. + +## SMS Service Configuration + +Only when you successfully configure your own SMS service will the alert SMS triggered within the monitoring system be sent correctly. +HertzBeat provides two ways to configure the SMS service: modifying the `application.yml` configuration file directly or configuring it through the HertzBeat frontend interface (Settings > Message Server Setting). + +> ⚠️ Note: Only one method can be effective at a time. If both methods are configured and enabled, HertzBeat will prioritize the SMS service configured in the frontend interface. + +### Tencent Cloud SMS Configuration + +Add/Fill in the following Tencent Cloud SMS server configuration to `application.yml` (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: tencent # SMS provider type, supports "tencent" + tencent: # Tencent Cloud SMS configuration + secret-id: AKIDbQ4VhdMr89wDedFrIcgU2PaaMvOuBCzY + secret-key: PaXGl0ziY9UcWFjUyiFlCPMr77rLkJYlyA + app-id: 1435441637 + sign-name: HertzBeat + template-id: 1343434 +``` + +1. Create a signature (sign-name) in Tencent Cloud SMS + ![image](/img/docs/help/alert-sms-tencent-cloud-signature.png) + +2. Create a message template (template-id) in Tencent Cloud SMS + + ```text + Monitor: {1}, Alert Level: {2}. Content: {3} + ``` + + ![image](/img/docs/help/alert-sms-tencent-cloud-template.png) + +3. Create an application (app-id) in Tencent Cloud SMS + ![image](/img/docs/help/alert-sms-tencent-cloud-app.png) + +4. Obtain Tencent Cloud Access Management credentials (secret-id, secret-key) + ![image](/img/docs/help/alert-sms-tencent-cloud-access.png) + +### Alibaba Cloud SMS Configuration + +To activate and use Alibaba Cloud SMS service, you can refer to the official Alibaba Cloud documentation: [SMS Getting Started Guide](https://help.aliyun.com/zh/sms/getting-started/get-started-with-sms) + +You can configure the Alibaba Cloud SMS service either through the graphical interface or in the `application.yml` file. +To use `application.yml`, add/fill in the following Alibaba Cloud SMS configuration (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: alibaba # SMS provider type, supports "alibaba" + alibaba: # Alibaba Cloud SMS configuration + access-key-id: # Your AccessKey ID + access-key-secret: # Your AccessKey Secret + sign-name: # SMS signature + template-code: # SMS template code +``` + +1. Create an Alibaba Cloud account and activate SMS service + - Visit [Alibaba Cloud SMS Console](https://dysms.console.aliyun.com/) + - Activate SMS service + +2. Create a signature (sign-name) + - Log in to [SMS Console](https://dysms.console.aliyun.com/) + - Select Domestic/International SMS service + - Go to "Signature Management" page and click "Add Signature" + - Fill in signature information and submit for review + - Wait for signature approval + +3. Create a message template (template-code) + - Go to "Template Management" page + - Click "Add Template" + - Create a template with the following format: + + ```text + Monitor: `instance`, Alert Level: `priority`. Content: `content` + ``` + + - Submit the template for review + +4. Obtain Access Key credentials (access-key-id, access-key-secret) + :::tip + Alibaba Cloud officially recommends using RAM user AccessKey with minimal permissions. + ::: + - [Go to RAM Access Control](https://ram.console.aliyun.com/users) to manage RAM users + - Create user and select "Access Key for API Access" + - Securely save the AccessKey ID and AccessKey Secret + - Grant SMS service permission "AliyunDysmsFullAccess" to the user + +Now you can configure this information in your hertzbeat application. + +### UniSMS Configuration + +UniSMS is an aggregated SMS service platform. You can refer to [UniSMS Documentation](https://unisms.apistd.com/docs/tutorials) for configuration. + +Add/Fill in the following UniSMS configuration to `application.yml` (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: unisms # SMS provider type, set to unisms + unisms: # UniSMS configuration + # auth-mode: simple or hmac + auth-mode: simple + access-key-id: YOUR_ACCESS_KEY_ID + # hmac mode need to fill in access-key-secret + access-key-secret: YOUR_ACCESS_KEY_SECRET + signature: YOUR_SMS_SIGNATURE + template-id: YOUR_TEMPLATE_ID +``` + +1. Register UniSMS account + - Visit [UniSMS website](https://unisms.apistd.com/) + +2. Create signature + - Log in to [UniSMS Console](https://unisms.apistd.com/console/) + - Go to "SMS Filing - Signature Management" page + - Click "Add Signature" + - Fill in signature information and submit for review + - Wait for signature approval + +3. Create message template + - Go to "SMS Filing - Template Management" page + - Click "Add Template" + - Create a template with the following format: + + ```text + Monitor: {instance}, Alert Level: {priority}. Content: {content} + ``` + + - Submit the template for review + +4. Obtain `access-key-id` and `access-key-secret` + - Log in to [UniSMS Console](https://unisms.apistd.com/console/) + - Go to "Credential Management" page + - Get AccessKey ID and AccessKey Secret + - Securely save the AccessKey ID and AccessKey Secret + + :::note + UniSMS provides two authentication methods for developers to choose from, which can be set in Console - Credential Management, with Simple Mode as default. + - Simple Mode [Default]: This mode only verifies AccessKey ID without request parameter signature, making it easier for developers to integrate quickly. + - HMAC Mode: This mode requires signing request parameters with AccessKey Secret to enhance the security and authenticity of requests. + ::: + +Now you can configure this information in your hertzbeat application. + +### Smslocal SMS Configuration + +SMSLocal is an all-in-one SMS service for businesses, with features like multi-way sending, strong security, and 24/7 support. You can refer to smslocal's [Developer Documentation](https://www.smslocal.com/developer/) for configuration. + +Add/Fill in the following Smslocal configuration to `application.yml` (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: smslocal # SMS provider type, set to smslocal + smslocal: # Smslocal configuration + api-key: YOUR_API_KEY_HERE +``` + +1. Register smslocal account + - Visit [Smslocal Website](https://www.smslocal.com/) + +2. Obtain `api-key` + - Log in to [Smslocal Api Access](https://secure.smslocal.com/cpaas/pages/profile/settings/api-reference) + - Go to "API Access" page + - Click the eye button + - Copy the displayed access key + - Then you can configure the `application.yml` file + +Now you can configure this information in your hertzbeat application. + +### AWS Cloud SMS Configuration + +To activate and use the AWS Cloud SMS service, refer to the official AWS documentation: [SMS Getting Started Guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-sms-mms.html) + +You can configure the AWS Cloud SMS service either through the graphical interface or in the `application.yml` file. +To use `application.yml`, add/fill in the following AWS Cloud SMS configuration (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: aws # SMS provider type, supports "aws" + aws: # AWS Cloud SMS configuration + access-key-id: # Your AccessKey ID + access-key-secret: # Your AccessKey Secret + region: # Region Of Your AWS +``` + +1. Create an AWS Cloud account + - If you don’t already have an AWS account, sign up at [AWS Cloud SMS Console](https://aws.amazon.com/console/) + +2. Obtain Access Key credentials (access-key-id, access-key-secret) + - Go to the AWS IAM (Identity and Access Management) Console. + - Create an IAM user with programmatic access and attach the necessary permissions. + - Retrieve your Access Key ID and Secret Access Key (You will need these for configuration). + +3. Select a Specific AWS Region for SMS Messaging + - Choose a region that supports AWS End User Messaging (SMS Service). + - You can check the supported regions [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html). + +4. Move from the AWS SMS Sandbox to Production + - By default, AWS SMS operates in sandbox mode, which restricts SMS delivery to verified phone numbers. + To send messages to any number, you must move your account to production mode. follow this [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html#sandbox-sms-move-to-production) + +5. Verify Destination Phone Numbers (for Sandbox Mode) + - if you are still in sandbox mode, you can only send SMS messages to verified phone numbers. To add a verified number, follow this [guide](https://docs.aws.amazon.com/sms-voice/latest/userguide/verify-destination-phone-number.html) + - Note: You do not need to create an Origination Identity or Origination Simulator—just use the AWS CLI to add verified phone numbers. + + > The message template is fixed as follows: "Instance: {}, Priority: {}, Content: {}" + + Now you can configure this information in your hertzbeat application. + +### Twilio SMS Configuration + +To activate and use the Twilio SMS service, refer to the official Twilio documentation: [SMS Getting Started Guide](https://www.twilio.com/docs/sms/quickstart) + +You can configure the Twilio SMS service either through the graphical interface or in the `application.yml` file. +To use `application.yml`, add/fill in the following Twilio SMS configuration (replace parameters with your own SMS server configuration): + +```yaml +alerter: + sms: + enable: true # Whether to enable + type: twilio # SMS provider type, supports "twilio" + twilio: # Twilio SMS configuration + account-sid: # Your Twilio Account SID + auth-token: # Your Twilio Auth Token + twilio-phone-number: # Your Twilio Phone Number +``` + +1. Create a Twilio account + + - If you don't have a Twilio account, sign up at [Twilio Console](https://www.twilio.com/console) + - You'll get a free trial account that allows you to test the SMS service + +2. Obtain Twilio credentials + + - After signing in, locate your Account SID and Auth Token on the dashboard + - These credentials will be used to authenticate API requests + +3. Get a Twilio Phone Number + + - In the Twilio Console, navigate to "Phone Numbers" > "Manage" > "Active Numbers" + - Click "Buy a Number" or use the trial number provided by Twilio + - Make sure the number has SMS capabilities enabled + - This number will be used as the sender for your SMS alerts + - A phone number is required for the Twilio SMS service to work + +4. Testing Your Configuration on Twilio + + - Twilio provides a sandbox environment for testing + - If you are in the trial period, you will only be able to send SMS to verified phone numbers + - To verify a phone number, add it to your verified phone numbers list in the Twilio Console + + > The message follows the format: "Instance: {}, Priority: {}, Content: {}" + + This information can be configured in the Hertzbeat application. + +## Operation steps + +1. **【Alarm notification】->【Add new recipient】 ->【Select SMS notification method】** + +2. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +If you have any issues, please provide feedback through the communication group or ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_telegram.md b/home/versioned_docs/version-1.7.x/help/alert_telegram.md new file mode 100644 index 00000000000..f2923b847f2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_telegram.md @@ -0,0 +1,65 @@ +--- +id: alert_telegram +title: Alert Telegram Bot Notification +sidebar_label: Alert Telegram bot notification +keywords: [open source monitoring tool, open source alerter, open source Telegram bot notification] +--- + +> Send an alarm message after the threshold is triggered, and notify the recipient through the Telegram robot. + +## Steps + +### Create a bot in Telegram, get Bot Token and UserId + +1. Use [@BotFather](https://t.me/BotFather) to create your own bot and get an access token `Token` + + ![telegram-bot](/img/docs/help/telegram-bot-1.png) + +2. Get the `User ID` of the recipient + + **Use the recipient account you want to notify to send a message to the newly created Bot account**, + Visit ```https://api.telegram.org/bot``/getUpdates```, **`use the Bot Token from the previous step to replace the `**, and respond to the first in the `Json` data A `result.message.from.id` value is the recipient's `User ID` + + ```json + { + "ok": true, + "result": [ + { + "update_id": 632299191, + "message": { + "from":{ + "id": "User ID" + }, + "chat":{ + }, + "date": 1673858065, + "text": "111" + } + } + ] + } + ``` + +3. Record and save the `Token` and `User Id` we got + +### Add an alarm notification person to HertzBeat, the notification method is Telegram Bot + +1. **【Alarm Notification】->【Add Recipient】->【Select Telegram Robot Notification Method】->【Set Robot Token and UserId】-> 【OK】** + + ![email](/img/docs/help/telegram-bot-2.png) + +2. **Configure the associated alarm notification strategy⚠️ [Add notification strategy] -> [Associate the recipient just set] -> [OK]** + + > **Note ⚠️ Adding a new recipient does not mean that it has taken effect and can receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, specify which messages are sent to which recipients**. + + ![email](/img/docs/help/alert-notice-policy.png) + +### Telegram Bot Notification FAQ + +1. Telegram did not receive the robot warning notification + + > Please check whether the alarm information has been triggered in the alarm center + > Please check whether the robot Token and UserId are configured correctly, and whether the alarm policy association has been configured + > UserId should be the UserId of the recipient of the message + +Other questions can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_threshold.md b/home/versioned_docs/version-1.7.x/help/alert_threshold.md new file mode 100644 index 00000000000..be8e90bc5f7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_threshold.md @@ -0,0 +1,198 @@ +--- +id: alert_threshold +title: Alarm Threshold Configuration +sidebar_label: Alarm Threshold +--- + +:::tip +Alarm Threshold are the core function of `HertzBeat`, users can configure the trigger conditions of the alarm through the threshold rules. +Threshold rules support real-time threshold and scheduled threshold, and can be applied to **monitoring metrics** and **log data** data types. Real-time thresholds can directly trigger alerts when monitoring data is collected, and scheduled thresholds support PromQL, SQL and other expressions to calculate trigger alerts within a specified time period. +Support visual page configuration or more flexible expression rule configuration, support configuring trigger times, alarm levels, notification templates, associated specified monitoring and so on. Notification templates support object nested access, which can display alarm information more flexibly. +::: + +![threshold](/img/docs/help/alert-threshold-1.png) + +## Real-time Threshold + +> Real-time threshold means that the alarm is triggered directly when the monitoring data is collected, which is suitable for scenarios with high real-time requirements. Supports both monitoring metrics and log data types. + +### Creating Real-time Threshold Rules + +> System Page -> Alerting -> Alert Threshold -> New Threshold -> Select Real-time Threshold -> Select Data Type (Monitoring Metrics/Log Data) + +#### Monitoring Metrics Real-time Threshold + +> HertzBeat Page -> Alerting -> Threshold -> New Threshold -> ReadTime Threshold Rule + +Configure the threshold, for example: Select the SSL certificate metric object, configure the alarm expression-triggered when the metric `expired` is `true`, that is, `equals(expired,"true")`, set the alarm level notification template information, etc. + +![HertzBeat](/img/docs/start/ssl_5.png) + +Configuration item details: + +- **Threshold Name**: Unique name defining this threshold rule +- **Data Type**: Select monitoring metrics or log data +- **Metric Object**: Select the monitoring metric object for which we need to configure the threshold. For example: Under website monitoring type -> response time metric +- **Threshold Rule**: Configure the alarm trigger rules for specific indicators, support graphical interface and expression rules. For expression environment variables and operators, see the page prompts. For detailed help on threshold expressions, see [Threshold Expression Help](alert_threshold_expr) +- **Associated Monitors**: Apply this threshold rule to the specified monitoring object (support direct binding and label association). If not configured, it will be applied to all monitoring objects that meet this threshold type rule +- **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency +- **Trigger Count**: Set how many times the threshold must be triggered before the alert is actually triggered +- **Notification Template**: The template for the notification message sent after the alert is triggered. Template variables are provided on the page, supports object nested access. For example: `__instancename__`, metric value is `responseTime`, which is greater than 50 triggering the alert, also supports accessing object properties like `${log.attributes.hostname}` +- **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert +- **Additional Annotations**: Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm +- **Enable Alert**: Enable or disable this alert threshold configuration + +#### Log Data Real-time Threshold + +Configure real-time alert rules for log data, supporting condition judgment on log content, attributes, resource information, etc. + +For example, trigger an alert when 60 error logs are received within 300 seconds. + +![log_realtime](/img/docs/help/alert-threshold-3.png) + +Configuration item details: + +- **Threshold Name**: Unique name defining this threshold rule +- **Data Type**: Select log data +- **Threshold Rule**: Configure log alert trigger rules, support graphical interface and expression rules: + - **Graphical Interface**: Visual configuration of log field conditions, supports `log.level`, `log.message`, `log.attributes.*`, `log.resource.*` and other fields + - **Expression Rules**: Use custom expressions, supports object nested access, for example: `equals(log.level,"ERROR")` or `contains(log.attributes.hostname,"server-01")` +- **Time Window**: Set the time window for log aggregation, in seconds, minimum 60 seconds. Logs within this time window will be aggregated and processed +- **Alert Level**: The alert level triggered by the threshold, from low to high: warning, critical, emergency +- **Alert Mode**: Select alert sending method: + - **Window Group Mode (group)**: Send all logs that meet the conditions within the time window as one alert + - **Individual Mode (individual)**: Send each log that meets the conditions as a separate alert +- **Trigger Count**: Set how many logs that meet the conditions within the time window will trigger the alert +- **Notification Template**: The template for the notification message sent after the alert is triggered, supports object nested access: + - Basic variables: ``__instancename__``, ``__alertname__``, etc. + - Log fields: `${log.level}`, `${log.message}`, `${log.timestamp}`, etc. + - Nested attributes: `${log.attributes.hostname}`, `${log.resource.service.name}`, etc. +- **Additional Labels**: Add labels to this threshold rule. When an alert is generated, these labels will also be attached to the alert +- **Additional Annotations**: Add annotation information to this threshold rule (the annotation content supports environment variables). When an alarm is generated, this annotation information will be rendered and attached to the alarm +- **Enable Alert**: Enable or disable this alert threshold configuration + +**The threshold alert configuration is complete, and alerts that have been successfully triggered can be viewed in the [Alarm Center].** +**If you need to send alert notifications via email, WeChat, DingTalk, or Feishu, you can configure it in [Notification].** + +## Scheduled Threshold + +> **Scheduled Threshold Rules** refer to rules where the system evaluates an expression (such as PromQL, SQL) at specified periodic intervals to determine whether monitoring data or log data within a given time range meets alert conditions. These rules are suitable for scenarios requiring trend analysis or aggregated data evaluation, rather than immediate reactions to single real-time data points. Supports both monitoring metrics and log data types. + +### Syntax for Scheduled Threshold Expressions + +Scheduled threshold rules use a dedicated expression language based on ANTLR syntax, supporting different query syntax based on data type: + +#### Monitoring Metrics Expression Syntax (PromQL) + +Supports PromQL-style queries. For specific syntax, please refer to the official documentation of your configured time-series database regarding PromQL. The syntax includes: + +1. **Query Expressions**: Used to reference monitoring data + + ```text + cpu_usage + memory{__field__="field1"} + ``` + +2. **Comparison Expressions**: Used to compare values against thresholds + + ```text + cpu_usage > 80 + memory_usage >= 90.5 + response_time < 1000 + ``` + +3. **Logical Expressions**: Used to combine multiple conditions + + ```text + cpu_usage > 80 and memory_usage > 70 + disk_usage > 90 or inode_usage > 85 + cpu_usage > 80 unless maintenance_mode == 1 + ``` + +4. **Parenthesis Expressions**: Used to control the order of evaluation + + ```text + (cpu_usage > 80 or memory_usage > 90) and service_status == 1 + ``` + +#### Log Data Expression Syntax (SQL) + +Supports standard SQL syntax to query log data and filter data, allowing aggregated queries on log tables: + +```sql +-- Query error log count +SELECT COUNT(*) as error_count +FROM hertzbeat_logs +WHERE level = 'ERROR' +AND timestamp >= NOW() - INTERVAL 5 MINUTE + +-- Group by service to count errors +SELECT service_name, COUNT(*) as error_count +FROM hertzbeat_logs +WHERE level = 'ERROR' +GROUP BY service_name +HAVING COUNT(*) > 10 +``` + +### Creating Scheduled Threshold Rules + +> System Page -> Alerting -> Alert Threshold -> New Threshold -> Select Scheduled Threshold -> Select Data Type (Monitoring Metrics/Log Data) + +#### Monitoring Metrics Scheduled Threshold + +Configure scheduled thresholds for monitoring metrics. For example: define the expression `cpu_usage{instance="server1"}` > 80` for a group of CPU metrics, and trigger an alert when the expression is satisfied. + +![threshold](/img/docs/help/alert-threshold-2.png) + +Configuration Items Explained: + +- **Rule Name**: A unique identifier for the threshold rule +- **Data Type**: Select monitoring metrics +- **Query Language**: Select PromQL as the query language +- **Threshold Expression**: The expression that defines the alert condition. It will be evaluated periodically according to the "Execution Interval". Supported elements include: + - **Query Identifiers**: References to monitoring metrics (e.g., `cpu_usage`, `memory{instance="server1"}`) + - **Comparison Operators**: `>`, `>=`, `<`, `<=`, `==`, `!=` + - **Logical Operators**: `and`, `or`, `unless` + - **Parentheses**: Used for grouping and controlling evaluation order + - **Numeric Literals**: Threshold values (e.g., `80`, `90.5`) +- **Execution Interval**: The time interval (in seconds) at which the expression is evaluated. For example, `300` means the rule is checked every 5 minutes +- **Alert Level**: The severity level triggered when the condition is met. Available levels: `warning`, `critical`, `emergency` +- **Trigger Count**: The number of consecutive times the expression must evaluate to true before an alert is actually triggered +- **Notification Template**: The message template sent when an alert is triggered. Template variables are available on the configuration page, supports object nested access +- **Additional Labels**: Custom labels that will be attached to the alert when it is generated +- **Additional Annotations**: Custom annotation information (supports environment variables) that will be rendered and attached to the alert +- **Enable Alerting**: Controls whether this threshold rule is active or not + +#### Log Data Scheduled Threshold + +Configure scheduled thresholds for log data, performing aggregated analysis and alert judgment on logs through SQL queries. + +![threshold](/img/docs/help/alert-threshold-4.png) + +Configuration Items Explained: + +- **Rule Name**: A unique identifier for the threshold rule +- **Data Type**: Select log data +- **Query Language**: Select SQL as the query language +- **Log Query Expression**: Use standard SQL syntax to query log data, supporting aggregation functions, grouping, filtering and other operations. For example: + +```sql +SELECT COUNT(*) as error_count FROM hertzbeat_logs +WHERE level = 'ERROR' AND timestamp >= NOW() - INTERVAL 5 MINUTE +``` + +- **Execution Interval**: The time interval (in seconds) at which the SQL query is executed. For example, `300` means the query is executed every 5 minutes +- **Alert Level**: The severity level triggered when the condition is met. Available levels: `warning`, `critical`, `emergency` +- **Alert Mode**: Select alert sending method: + - **Window Group Mode (group)**: Send the query result as a single alert + - **Individual Mode (individual)**: Send each row in the query result as a separate alert +- **Trigger Count**: The number of consecutive times the query result meets the alert condition before an alert is actually triggered +- **Notification Template**: The message template sent when an alert is triggered, supports accessing fields in the query result, for example: + - Query result fields: ``error_count``, ``service_name``, etc. + - Basic variables: ``__alertname__``, ``__severity__``, etc. +- **Additional Labels**: Custom labels that will be attached to the alert when it is generated +- **Additional Annotations**: Custom annotation information (supports environment variables) that will be rendered and attached to the alert +- **Enable Alerting**: Controls whether this threshold rule is active or not + +**Once the threshold rules are configured, successfully triggered alerts will be displayed in the [Alert Center].** +**To send alert notifications via Email, WeChat, DingTalk, or Feishu, please go to [Notification Configuration] to set up the appropriate channels.** diff --git a/home/versioned_docs/version-1.7.x/help/alert_threshold_expr.md b/home/versioned_docs/version-1.7.x/help/alert_threshold_expr.md new file mode 100644 index 00000000000..3a0b3ad3af4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_threshold_expr.md @@ -0,0 +1,66 @@ +--- +id: alert_threshold_expr +title: Threshold Trigger Expression +sidebar_label: Threshold Trigger Expression +--- + +> When configuring threshold alerts, it is necessary to set up threshold trigger expressions. The system calculates whether to trigger an alert based on the expression and the monitored metric values. Here, we provide a detailed explanation of expression usage. + +#### Supported Operators in Expressions + +| Operator (Visual Configuration) | Operator (Expression Configuration) | Supported Types | Description | +|---------------------------------|-------------------------------------|-----------------------|--------------------------------------------| +| Equals | equals(str1,str2) | String | Check if strings are equal | +| Not Equals | !equals(str1,str2) | String | Check if strings are not equal | +| Contains | contains(str1,str2) | String | Check if string contains | +| Not Contains | !contains(str1,str2) | String | Check if string does not contain | +| Matches | matches(str1,str2) | String | Check if string matches regex | +| Not Matches | !matches(str1,str2) | String | Check if string does not match regex | +| Exists | exists(obj) | String, Numeric, Time | Check if value exists | +| Not Exists | !exists(obj) | String, Numeric, Time | Check if value does not exist | +| Greater than | obj1 > obj2 | Numeric, Time | Check if value is greater than | +| Less than | `obj1 < obj2` | Numeric, Time | Check if value is less than | +| Greater than or Equal to | obj1 >= obj2 | Numeric, Time | Check if value is greater than or equal to | +| Less than or Equal to | `obj1 <= obj2` | Numeric, Time | Check if value is less than or equal to | +| Not Equal to | obj1 != obj2 | Numeric, Time | Check if values are not equal | +| Equal to | obj1 == obj2 | Numeric, Time | Check if values are equal | + +#### Expression Function Library List + +| Supported Function Library | Description | +|--------------------------------------------|------------------------------------------------------------------------------------------| +| condition ? trueExpression : falseExpression | Ternary operator | +| toDouble(str) | Convert string to Double type | +| toBoolean(str) | Convert string to Boolean type | +| toInteger(str) | Convert string to Integer type | +| array[n] | Retrieve the nth element of an array | +| * | Multiplication | +| / | Division | +| % | Modulo | +| ( and ) | Parentheses for controlling the order of operations in logical or mathematical expressions | +| + | Addition | +| - | Subtraction | +| && | Logical AND operator | +| \|\| | Logical OR operator | + +#### Supported Environment Variables + +> Environment variables refer to variables supported by metric values, used in expressions. During threshold calculation and judgment, these variables will be replaced with actual values. + +Non-fixed Environment Variables: These variables change dynamically based on the selected monitoring metric. For example, if we choose **response time metric for website monitoring**, the environment variable would be `responseTime - this represents response time variable`. If we want to set an alert trigger for **response time greater than 400 for website monitoring**, the expression would be `responseTime>400`. + +Fixed Environment Variables (Less commonly used): `instance: instance value` +This variable is mainly used for calculations involving multiple instances. For instance, if we collect usage metrics for C drive and D drive (`usage` being a non-fixed environment variable), and we only want to set an alert for **usage greater than 80 for the C drive**, the expression would be `equals(instance,"c")&&usage>80`. + +#### Expression Configuration Examples + +1. Website Monitoring -> Alert when response time is greater than or equal to 400ms + `responseTime>=400` +2. API Monitoring -> Alert when response time is greater than 3000ms + `responseTime>3000` +3. Overall Monitoring -> Alert when response time for URL (instance) path '[https://baidu.com](https://baidu.com)' is greater than 200ms + `equals(instance,"https://baidu.com")&&responseTime>200` +4. MYSQL Monitoring -> Alert when 'threads_running' metric under 'status' exceeds 7 + `threads_running>7` + +If you encounter any issues, feel free to discuss and provide feedback through our community group or ISSUE tracker! diff --git a/home/versioned_docs/version-1.7.x/help/alert_webhook.md b/home/versioned_docs/version-1.7.x/help/alert_webhook.md new file mode 100644 index 00000000000..0960ba545c6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_webhook.md @@ -0,0 +1,66 @@ +--- +id: alert_webhook +title: Alert WebHook callback notification +sidebar_label: Alert webHook notification +keywords: [open source monitoring tool, open source alerter, open source webhook notification] +--- + +> After the threshold is triggered send alarm information and call the Webhook interface through post request to notify the recipient. + +### Operation steps + +1. **【Alarm notification】->【Add new recipient】 ->【Select WebHook notification method】-> 【Set WebHook callback address】 -> 【Confirm】** + + ![email](/img/docs/help/alert-notice-5.png) + +2. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + + ![email](/img/docs/help/alert-notice-4.png) + +### WebHook callback POST body BODY content + +Content format:JSON + +```json +{ + "alarmId": 76456, + "target": "`target`", + "thresholdId": 33455, + "priority": 0, + "content": "udp_port monitoring availability alert, code is FAIL", + "status": 0, + "times": 1, + "triggerTime": "2022-02-25T13:32:13", + "tags": { + "app": "windows", + "monitorId": "180427708350720", + "metrics": "availability", + "code": "UN_CONNECTABLE", + "thresholdId": "112", + "monitorName": "WINDOWS_192.168.124.12" + } +} +``` + +| | | +|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| alarmId | integer($int64) title: Alarm record entity primary key index ID 告警记录实体主键索引ID | +| target | string title: Alert target object: monitor availability-available metrics-app.metrics.field 告警目标对象: 监控可用性-available 指标-app.metrics.field | +| thresholdId | integer($int64) title: Alarm definition ID associated with the alarm 告警关联的告警定义ID | +| priority | string($byte) title: Alarm level 0: high-emergency-critical alarm-red 1: medium-critical-critical alarm-orange 2: low-warning-warning alarm-yellow 告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色 | +| content | string title: The actual content of the alarm notification 告警通知实际内容 | +| status | string($byte) title: Alarm status: 0-normal alarm (to be processed) 1-threshold triggered but not reached the number of alarms 2-recovered alarm 3-processed 告警状态: 0-正常告警(待处理) 1-阈值触发但未达到告警次数 2-恢复告警 3-已处理 | +| times | integer($int32) title: Alarm threshold trigger times 告警阈值触发次数 | +| triggerTime | integer($int64) title: Alarm trigger time (timestamp in milliseconds) 首次告警触发时间(毫秒时间戳) | +| tags | example: `{key1:value1}` | + +### Webhook notification common issues + +1. WebHook callback did not take effect + + > Please check whether there is any triggered alarm information in the alarm center. + > Please check whether the configured webhook callback address is correct. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/alert_wework.md b/home/versioned_docs/version-1.7.x/help/alert_wework.md new file mode 100644 index 00000000000..db0b0061757 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/alert_wework.md @@ -0,0 +1,38 @@ +--- +id: alert_wework +title: Alert enterprise Wechat notification +sidebar_label: Alert enterprise Wechat notification +keywords: [open source monitoring tool, open source alerter, open source WeWork notification] +--- + +> After the threshold is triggered send alarm information and notify the recipient by enterprise Wechat robot. + +### Operation steps + +1. **【Enterprise Wechat】-> 【Group settings】-> 【Group robot】-> 【Add new robot】-> 【Set robot name and avatar】-> 【Copy its webhook address after adding successfully】** + + ![email](/img/docs/help/alert-notice-6.jpg) + +2. **【Save the key value of the WebHook address of the robot】** + + > eg: webHook address:`https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + > Its robot KEY value is `3adafc96-23d0-4cd5-8feb-17f6e0b5fcs4` + +3. **【Alarm notification】->【Add new recipient】 ->【Select enterprise Wechat robot notification method】->【Set enterprise Wechat robot KEY】-> 【Confirm】** + + ![email](/img/docs/help/alert-notice-7.png) + +4. **Configure the associated alarm notification strategy⚠️ 【Add new notification strategy】-> 【Associate the recipient just set】-> 【Confirm】** + + > **Note⚠️ Adding a new recipient does not mean that it is effective to receive alarm information. It is also necessary to configure the associated alarm notification strategy, that is, to specify which messages are sent to which recipients.** + +![email](/img/docs/help/alert-notice-4.png) + +### Enterprise Wechat robot common issues + +1. The enterprise wechat group did not receive the robot alarm notification. + + > Please check whether there is any triggered alarm information in the alarm center. + > Please check whether the robot key is configured correctly and whether the alarm strategy association is configured. + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/almalinux.md b/home/versioned_docs/version-1.7.x/help/almalinux.md new file mode 100644 index 00000000000..eebb4c768db --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/almalinux.md @@ -0,0 +1,114 @@ +--- +id: almalinux +title: Monitoring AlmaLinux Operating System Monitoring +sidebar_label: AlmaLinux Operating System +keywords: [open-source monitoring system, open-source operating system monitoring, AlmaLinux operating system monitoring] +--- + +> Collect and monitor common performance metrics of the AlmaLinux operating system. + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/api.md b/home/versioned_docs/version-1.7.x/help/api.md new file mode 100644 index 00000000000..1d18c1c3912 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/api.md @@ -0,0 +1,36 @@ +--- +id: api +title: Monitoring HTTP API +sidebar_label: HTTP API +keywords: [ open source monitoring tool, monitoring http api ] +--- + +> Call HTTP API interface, check whether the interface is available, and monitor its response time and other Metrics. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Relative path | Suffix path of website address except IP port. For example, the relative path of `www.tancloud.io/console` website is `/console` | +| Request mode | Set the request mode of interface call:GET, POST, PUT, DELETE | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Username | User name used for interface Basic authentication or Digest authentication | +| Password | Password used for interface Basic authentication or Digest authentication | +| Headers | HTTP request headers | +| Params | HTTP query params, support [time expression](time_expression) | +| Content-Type | Set the resource type when carrying the BODY request body data request | +| Request BODY | Set the carry BODY request body data, which is valid when PUT or POST request method is used, support [time expression](time_expression) | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-------------------------| +| responseTime | ms | Website response time | diff --git a/home/versioned_docs/version-1.7.x/help/apollo.md b/home/versioned_docs/version-1.7.x/help/apollo.md new file mode 100644 index 00000000000..144ddc89425 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/apollo.md @@ -0,0 +1,61 @@ +--- +id: apollo +title: Apollo Configuration Center +sidebar_label: Apollo Configuration Center +keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Apollo configuration center monitoring ] +--- + +> Monitoring of general metrics for the Apollo Configuration Center service is performed by calling the Prometheus +> interface of the Apollo Configuration Center. + +### Prerequisites + +1. Set up the Apollo configuration center according to + the [deployment documentation](https://www.apolloconfig.com/#/en/deployment/quick-start). +2. Visit ```http://${someIp:somePort}/prometheus``` to verify if you can access the metrics data. + For more details, please refer + to: [Apollo Monitoring Documentation](https://www.apolloconfig.com/#/en/design/apollo-design?id=v-monitoring-related) +3. Note⚠️: Starting from version 1.5.0, the Apollo server supports exposing Prometheus-formatted metrics + via `/prometheus`. + +### Configuration parameters + +| Parameter Name | Parameter Help Description | +|-------------------|-----------------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored peer's IPv4, IPv6, or domain name. Note⚠️: Do not include protocol headers (e.g., https://, http://). | +| Port | Pulsar's webServicePort value, defaulting to 8080. | +| Task Name | The name identifying this monitoring task. The name must be unique. | +| Query Timeout | Set the connection timeout in milliseconds (ms). Default is 3000 ms. | +| Monitoring Cycle | The interval time for periodic data collection, measured in seconds. The minimum configurable interval is 30 seconds. | +| Binding Tags | Used for classifying and managing monitored resources | +| Description Notes | Additional identifiers and descriptive notes for this monitoring task. Users can add notes here. | + +### Collection Metrics + +#### Metric Set: Basic Information Metrics + +| Metric Name | Unit | Metric Help Description | +|--------------------------------|---------|--------------------------------------------------------------------------| +| application_ready_time_seconds | Seconds | Time taken for the application to transition from startup to ready state | +| process_uptime_seconds | seconds | Total time the process has been running | +| process_cpu_usage | % | Current process CPU usage | + +#### Metric Set: : JVM + +| Metric Name | Unit | Metric Help Description | +|-----------------------------------|------|---------------------------------------------------------------| +| system_cpu_usage | % | System CPU Usage | +| system_load_average_1m | None | System load average over the past minute | +| jvm_memory_committed_bytes | MB | Size of memory requested by the JVM from the operating system | +| jvm_memory_used_bytes | MB | JVM's current actual memory usage | +| jvm_memory_max_bytes | MB | Maximum memory limit available to the JVM | +| jvm_gc_pause_seconds_count | None | Total number of JVM GC pause events | +| jvm_gc_pause_seconds_sum | None | Total time spent in JVM GC pauses | +| jvm_memory_usage_after_gc_percent | None | JVM memory usage after garbage collection | + +#### Metric Set: System Resources + +| Metric Name | Unit | Metric Help Description | +|--------------------------|------|--------------------------------------------------------------------| +| process_files_max_files | None | Limit on the maximum number of file descriptors a process may open | +| process_files_open_files | None | Number of file descriptors currently opened by the process | diff --git a/home/versioned_docs/version-1.7.x/help/bulletin.md b/home/versioned_docs/version-1.7.x/help/bulletin.md new file mode 100644 index 00000000000..ce45f786736 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/bulletin.md @@ -0,0 +1,28 @@ +--- +id: bulletin +title: Customizable bulletins +sidebar_label: Customized bulletins +keywords: [bulletin, custom] +--- + +> Customize a bulletin to show a table of self-selected metrics for some kind of monitoring. + +### Add Bulletin Item + +1. Click `Add New Bulletin Item`, enter the `Bulletin Name`, scroll down to select the `Monitoring Type`, select the associated `Monitoring Task Name`, You can filter `Monitor Task Name` by `Label`, and then select the `Monitoring Metrics` you want to show in the shuttle box. + +2. Click `OK` button to finish creating the customized bulletin. + + ![new-bulletin](/img/docs/help/bulletin-1.png) + +### Viewing Multiple Bulletins + +1. Click the name of the bulletin in the tab to view the details of that bulletin. + +### Deleting Bulletins + +1. Click the `Delete Bulletin Item` button to delete the current bulletin. 2. + +2. Click the `Batch delete Bulletin Items` button to delete selected bulletins in a batch. + + ![bulletin](/img/docs/help/bulletin-2.png) diff --git a/home/versioned_docs/version-1.7.x/help/centos.md b/home/versioned_docs/version-1.7.x/help/centos.md new file mode 100644 index 00000000000..9ed5c9978a9 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/centos.md @@ -0,0 +1,114 @@ +--- +id: centos +title: CentOS operating system monitoring +sidebar_label: CentOS operating system +keywords: [open source monitoring tool, open source os monitoring tool, monitoring CentOS operating system metrics] +--- + +> Collect and monitor the general performance Metrics of CentOS operating system. + +### Configuration parameter + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/clickhouse.md b/home/versioned_docs/version-1.7.x/help/clickhouse.md new file mode 100644 index 00000000000..d9994148bcd --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/clickhouse.md @@ -0,0 +1,95 @@ +--- +id: clickhouse +title: Monitoring ClickHouse Database Monitoring +sidebar_label: ClickHouse Database +keywords: [open source monitoring system, open source database monitoring, ClickHouse database monitoring] +--- + +> Collect and monitor general performance metrics for the ClickHouse database. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | IP address, IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ without protocol prefix (e.g., https://, http://). | +| Task Name | Name identifying this monitoring, ensuring uniqueness. | +| Port | Port number of the database exposed to the outside, default is 8123. | +| Query Timeout | Timeout for SQL queries to respond, in milliseconds (ms), default is 6000ms. | +| Database Name | Name of the database instance, optional. | +| Username | Username for database connection, optional. | +| Password | Password for database connection, optional. | +| Collection Interval | Interval for periodic data collection during monitoring, in seconds, with a minimum interval of 30 seconds. | +| Tag Binding | Used for categorizing and managing monitored resources. | +| Description | Additional information to identify and describe this monitoring, where users can add remarks. | + +### Collected Metrics + +#### Metric Set: ping Availability + +| Metric Name | Metric Unit | Metric Description | +|--------------|-------------|--------------------| +| responseTime | N/A | Response time | + +#### Metric Set: Data from system.metrics table + +| Metric Name | Metric Unit | Metric Description | +|----------------------|-------------|----------------------------------------------------------| +| Query | N/A | Number of queries being executed | +| Merge | N/A | Number of background merges being executed | +| Move | N/A | Number of background moves being executed | +| PartMutation | N/A | Number of table mutations | +| ReplicatedFetch | N/A | Number of data blocks fetched from replicas | +| ReplicatedSend | N/A | Number of data blocks sent to replicas | +| ReplicatedChecks | N/A | Number of consistency checks on data blocks | +| QueryPreempted | N/A | Number of queries stopped or waiting | +| TCPConnection | N/A | Number of TCP connections | +| HTTPConnection | N/A | Number of HTTP connections | +| OpenFileForRead | N/A | Number of open readable files | +| OpenFileForWrite | N/A | Number of open writable files | +| QueryThread | N/A | Number of threads processing queries | +| ReadonlyReplica | N/A | Number of Replicated tables in read-only state | +| EphemeralNode | N/A | Number of ephemeral nodes in ZooKeeper | +| ZooKeeperWatch | N/A | Number of ZooKeeper event subscriptions | +| StorageBufferBytes | Bytes | Bytes in Buffer tables | +| VersionInteger | N/A | ClickHouse version number | +| RWLockWaitingReaders | N/A | Number of threads waiting for read-write lock on a table | +| RWLockWaitingWriters | N/A | Number of threads waiting for write lock on a table | +| RWLockActiveReaders | N/A | Number of threads holding read lock on a table | +| RWLockActiveWriters | N/A | Number of threads holding write lock on a table | +| GlobalThread | N/A | Number of threads in global thread pool | +| GlobalThreadActive | N/A | Number of active threads in global thread pool | +| LocalThread | N/A | Number of threads in local thread pool | +| LocalThreadActive | N/A | Number of active threads in local thread pool | + +#### Metric Set: Data from system.events table + +| Metric Name | Metric Unit | Metric Description | +|------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Query | N/A | Number of queries to parse and possibly execute. Excludes queries rejected due to AST size limits, quota limits, or simultaneous query limits. May include internal queries initiated by ClickHouse. Subqueries are not counted. | +| SelectQuery | N/A | Number of Select queries possibly executed | +| InsertQuery | N/A | Number of Insert queries possibly executed | +| InsertedRows | N/A | Number of rows inserted into all tables | +| InsertedBytes | Bytes | Number of bytes inserted into all tables | +| FailedQuery | N/A | Number of failed queries | +| FailedSelectQuery | N/A | Number of failed Select queries | +| FileOpen | N/A | Number of file openings | +| MergeTreeDataWriterRows | N/A | Number of data rows written to MergeTree tables | +| MergeTreeDataWriterCompressedBytes | Bytes | Number of compressed data bytes written to MergeTree tables | + +#### Metric Set: Data from system.asynchronous_metrics table + +| Metric Name | Metric Unit | Metric Description | +|------------------------------------------|-------------|-------------------------------------------------------| +| AsynchronousMetricsCalculationTimeSpent | N/A | Time spent calculating asynchronous metrics (seconds) | +| jemalloc.arenas.all.muzzy_purged | N/A | Number of purged muzzy pages | +| jemalloc.arenas.all.dirty_purged | N/A | Number of purged dirty pages | +| BlockReadBytes_ram1 | N/A | Number of bytes read from ram1 block | +| jemalloc.background_thread.run_intervals | N/A | Number of intervals jemalloc background thread ran | +| BlockQueueTime_nbd13 | N/A | Queue wait time for nbd13 block | +| jemalloc.background_thread.num_threads | N/A | Number of jemalloc background threads | +| jemalloc.resident | N/A | Physical memory size allocated by jemalloc (bytes) | +| InterserverThreads | N/A | Number of Interserver threads | +| BlockWriteMerges_nbd7 | N/A | Number of block write merges for nbd7 block | +| MarkCacheBytes | N/A | Size of marks cache in StorageMergeTree | +| MarkCacheFiles | N/A | Number of files in marks cache for StorageMergeTree | +| MaxPartCountForPartition | N/A | Maximum active data blocks in partitions | diff --git a/home/versioned_docs/version-1.7.x/help/collector.md b/home/versioned_docs/version-1.7.x/help/collector.md new file mode 100644 index 00000000000..0725b0c963d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/collector.md @@ -0,0 +1,131 @@ +--- +id: collector +title: HertzBeat Collector +sidebar_label: Collector +keywords: [monitoring, observability, collector, metrics] +--- + +> HertzBeat Collector is a lightweight data collection module that enables metrics collection, high availability deployments, and cloud-edge collaboration in Apache HertzBeat. + +## Introduction + +HertzBeat Collector is a versatile and lightweight metrics collection module within the Apache HertzBeat™ monitoring system. It's designed to gather monitoring data from various targets and send the collected metrics to the main HertzBeat server for processing, alerting, and visualization. + +With the collector module, you can implement: + +- **High Availability**: Deploy multiple collectors to ensure continuous monitoring even if some collector instances fail +- **Load Balancing**: Distribute monitoring tasks across multiple collectors to improve performance +- **Cloud-Edge Collaboration**: Monitor resources in isolated networks while managing everything from a central HertzBeat server + +## Collector Architecture + +The collector module is built with a modular design to make it easily extensible for various monitoring scenarios. The architecture consists of: + +1. **Collector Entry Point**: The main entry point for running the collector module, from which collection tasks are executed after startup. + +2. **collector-basic**: Contains implementations for common protocols like HTTP, JDBC, SSH, SNMP, etc. These collectors typically don't require additional proprietary dependencies and can handle most basic monitoring needs. + +3. **collector-common**: Provides general utility classes and methods, such as connection pools and caching mechanisms that other modules can reuse. + +4. **collector-xxx**: Extension modules for specific services or protocols (MongoDB, RocketMQ, Kafka, NebulaGraph, etc.). These modules often require specific dependencies for their respective services. + +## Supported Protocols + +HertzBeat Collector supports an extensive list of monitoring protocols: + +| Protocol Category | Protocols | +| ----------------- | ------------------------------------------------------------------------------------- | +| Web/API | `http`, `ssl_cert`, `websocket` | +| Databases | `jdbc`, `redis`, `mongodb`, `memcached` | +| Operating Systems | `ssh`, `ipmi` | +| Network | `icmp` (ping), `telnet`, `snmp`, `modbus` | +| Messaging | `mqtt`, `rocketmq`, `kafka` | +| Email | `pop3`, `smtp`, `imap` | +| Cloud Services | `prometheus`, `nebulagraph`, `ngql` | +| Others | `jmx`, `dns`, `ftp`, `ntp`, `udp`, `nginx`, `redfish`, `script`, `registry`, `httpsd` | + +## Deployment Options + +You can deploy HertzBeat Collector in several ways depending on your environment and needs, once you log in to the HertzBeat web interface and go to the collector, you can see the deployment options. + +Parameters explanation: + +- `-e IDENTITY=custom-collector-name`: (Optional) Set a unique identifier for this collector. Must be unique across all collectors. +- `-e MODE=public`: Set the running mode (public or private), for public cluster or private cloud-edge mode. +- `-e MANAGER_HOST=192.168.1.100`: Important! Set the IP address of the main HertzBeat server. Replace with your actual server IP. +- `-e MANAGER_PORT=1158`: (Optional) Set the port of the main HertzBeat server, default is 1158. +- `-v $(pwd)/logs:/opt/hertzbeat-collector/logs`: (Optional) Mount the log files to the local host. + +## Operating Modes + +HertzBeat Collector supports two operating modes: + +### Public Mode (Cluster Mode) + +In public mode, collectors form a cluster with the main HertzBeat server. Tasks are automatically distributed among collectors, providing high availability and load balancing. + +- Set `MODE=public` when deploying the collector +- All collectors must have connectivity to the main HertzBeat server +- Great for horizontal scaling to handle large numbers of monitoring tasks + +### Private Mode (Cloud-Edge Mode) + +In private mode, collectors operate in isolated networks while still reporting to a central HertzBeat server. This allows monitoring of resources in multiple separate networks. + +- Set `MODE=private` when deploying the collector +- Collectors need outbound connectivity to the HertzBeat server, but inbound connectivity is not required +- Ideal for monitoring resources across different data centers, cloud providers, or network segments + +## Configuration Parameters + +| Parameter | Description | Default | +| -------------- | ----------------------------------- | ------------------------- | +| `identity` | Unique identifier for the collector | Auto-generated if not set | +| `mode` | Operating mode (public/private) | public | +| `manager-host` | IP address of the HertzBeat server | IP | +| `manager-port` | Port of the HertzBeat server | 1158 | + +## Collector Management + +You can manage collectors through the HertzBeat web interface: + +1. Navigate to the Overview page to see all registered collectors +2. Monitor collector status (online/offline), metrics tasks, and system information +3. Enable or disable collectors as needed + +## High Availability Setup + +To achieve high availability with HertzBeat collectors: + +1. Deploy multiple collector instances across different servers or containers +2. Ensure all collectors have the same `mode` setting +3. Connect all collectors to the same HertzBeat server +4. HertzBeat will automatically distribute monitoring tasks and handle failover + +If a collector goes offline, its tasks will be reassigned to other available collectors. When the collector comes back online, it will receive new tasks based on the current load distribution. + +## Cloud-Edge Collaboration + +For monitoring across isolated networks: + +1. Deploy HertzBeat Server in your central management network +2. Deploy collectors in each isolated network you need to monitor +3. Configure collectors with: + - `MODE=private` + - `MANAGER_HOST=` pointing to your central HertzBeat server +4. Ensure outbound connectivity from each isolated network to the central server +5. Manage all monitoring tasks from the central HertzBeat dashboard + +## Advanced Features + +### Custom Protocol Support + +HertzBeat's architecture allows for extending the collector with custom protocols. Developers can create new collector modules following the project's modular design. + +### Task Scheduling + +The collector automatically handles task scheduling based on task priority, available resources, and current system load. Tasks are processed with intelligent prioritization to ensure critical monitoring is performed first. + +### Resource Utilization + +Collectors are designed to be lightweight and efficient with system resources, making them suitable for deployment on various hardware, from small edge devices to powerful servers. diff --git a/home/versioned_docs/version-1.7.x/help/consul_sd.md b/home/versioned_docs/version-1.7.x/help/consul_sd.md new file mode 100644 index 00000000000..0b499eecb17 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/consul_sd.md @@ -0,0 +1,108 @@ +--- +id: consul_sd +title: Monitoring Consul Service Discovery +sidebar_label: Consul Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Consul service discovery] +--- + +> HertzBeat integrates with Consul registry to automatically discover service instances and create monitoring tasks for them. + +### Overview + +Consul Service Discovery allows HertzBeat to connect to your Consul server and automatically discover all registered service instances. When a new service instance is registered or an existing instance goes offline, HertzBeat will automatically create or delete corresponding monitoring tasks, achieving automated monitoring in microservice environments. + +### PreRequisites + +#### Deploy Consul Server + +1. Deploy Consul server according to [Consul official documentation](https://www.consul.io/docs/install). +2. Ensure Consul server is accessible from HertzBeat. +3. Verify that you can access Consul UI at `http://your-consul-server:8500/ui/` +4. Ensure the Consul HTTP API is accessible (default port: 8500) + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique. | +| Consul Host | Consul server IP address or domain name. Note⚠️Without protocol header (eg: https://, http://). Example: `consul-server` or `192.168.1.100` | +| Consul Port | Port provided by the Consul server. The default is 8500 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Usage Steps + +1. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **Consul Service Discovery** + - Fill in the basic configuration parameters + +2. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - For example: If discovered instances are HTTP services, you can select HTTP monitoring template + - Common template types: Port, HTTP, HTTPS, Ping, etc. + +3. **Automatic Discovery** + - HertzBeat will periodically query Consul server based on the collection interval + - Automatically create monitoring tasks for newly registered service instances + - Automatically delete monitoring tasks for offline service instances + +4. **View Discovered Instances** + - In the monitoring list, you can see all automatically created sub-monitoring tasks + - Each sub-monitoring task corresponds to a discovered service instance + +### Example of usage + +Suppose your Consul server is running at `192.168.1.100:8500`, and you want to automatically monitor all service instances registered in it. + +Configuration example: + +- **Target Name**: `Consul-Service-Discovery` +- **Consul Host**: `192.168.1.100` +- **Consul Port**: `8500` +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring (to detect instance availability) + +After configuration: + +1. HertzBeat connects to Consul server via HTTP API +2. Retrieves all registered service instances +3. Automatically creates Port monitoring for each instance (e.g., `api-service-192.168.1.101:8080`) +4. Every 60 seconds, checks for newly registered or offline services and updates monitoring tasks accordingly + +### Notes + +- **Network Connectivity**: Ensure HertzBeat can access the Consul server address and port (default: 8500) +- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Consul server +- **ACL Token**: If Consul is configured with ACL (Access Control List), you may need to configure the appropriate token +- **Service Health**: Consul service discovery will discover both healthy and unhealthy instances +- **Datacenter**: By default, discovers services in the local datacenter. If you need to discover services in a specific datacenter, additional configuration may be required +- **Instance Naming**: Automatically created monitoring tasks are named in the format: `{ServiceName}-{Host}:{Port}` + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Microservice Architecture**: Automatically monitor all microservice instances registered in Consul +- **Service Mesh**: Monitor services using Consul Connect service mesh +- **Multi-Datacenter**: Monitor service instances across multiple Consul datacenters +- **Dynamic Scaling**: Automatically adapt to service instances added/removed due to autoscaling +- **Health Check**: Combine with Consul's health check mechanism to monitor service health status +- **Service Governance**: Centrally manage monitoring of all services in the Consul service ecosystem + +### Integration with Consul Features + +- **Service Health**: Consul service discovery can leverage Consul's health check information +- **Service Tags**: Service instances discovered from Consul may include tag information +- **KV Storage**: Can be used in conjunction with Consul KV storage to achieve more flexible service discovery +- **Service Mesh**: Supports service discovery in Consul Connect service mesh environment diff --git a/home/versioned_docs/version-1.7.x/help/dahua.md b/home/versioned_docs/version-1.7.x/help/dahua.md new file mode 100644 index 00000000000..82707663a1f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dahua.md @@ -0,0 +1,60 @@ +--- +id: dahua +title: Monitor Dahua Devices +sidebar_label: Dahua +keywords: [ monitor, dahua ] +--- + +> Monitor Dahua devices through HTTP interface to collect health data. + +## Configuration + +| Parameter | Description | +| ----------- | ----------- | +| Host | Target IP/Domain | +| Name | Unique monitor name | +| Port | Network port (default 80) | +| Timeout | Request timeout in ms | +| Username | Device username | +| Password | Device password | +| SSL | Enable HTTPS | +| Interval | Collection interval (≥30s) | + +## Metrics + +### Network Info + +- Default Interface +- Domain Name +- Hostname +- eth0 IP Address +- eth0 Gateway +- eth0 MAC +- eth0 Subnet Mask +- eth0 MTU +- DNS Servers + +### User Info + +- Client Address +- Username +- Login Type +- Login Time + +### NTP Info + +- NTP Server +- NTP Port +- Sync Interval + +## Implementation + +Access device APIs via: + +1. Network: `/cgi-bin/configManager.cgi?action=getConfig&name=Network` + +2. Users: `/cgi-bin/userManager.cgi?action=getActiveUserInfoAll` + +3. NTP: `/cgi-bin/configManager.cgi?action=getConfig&name=NTP` + +Using Digest Auth and parsing config format responses. diff --git a/home/versioned_docs/version-1.7.x/help/darwin.md b/home/versioned_docs/version-1.7.x/help/darwin.md new file mode 100644 index 00000000000..6597ae80149 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/darwin.md @@ -0,0 +1,111 @@ +--- +id: darwin +title: darwin operating system monitoring +sidebar_label: darwin operating system +keywords: [open source monitoring tool, open source os monitoring tool, monitoring darwin operating system metrics] +--- + +> Collect and monitor the general performance Metrics of darwin operating system. + +### Configuration parameter + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage (to be fixed) | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information - to be finished + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/db2.md b/home/versioned_docs/version-1.7.x/help/db2.md new file mode 100644 index 00000000000..5652094fa92 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/db2.md @@ -0,0 +1,80 @@ +--- +id: db2 +title: Monitoring:DB2 database monitoring +sidebar_label: DB2 Database +keywords: [ open source monitoring tool, open source database monitoring tool, monitoring DB2 database metrics ] +--- + + +> Collect and monitor general performance metrics (tablespace, session status, process count, locks, slow queries, etc.) +> for DB2 databases. + +### Note: DB2 JDBC Driver JAR Must be Added + +- Download the DB2 JDBC driver JAR package, for + example, [jcc.jar](https://repo1.maven.org/maven2/com/ibm/db2/jcc/11.5.9.0/jcc-11.5.9.0.jar). +- Copy the JAR package to the `hertzbeat/ext-lib` directory. +- Restart the HertzBeat service. + +### Configuration Parameters + +The following are the required configuration parameters for DB2 monitoring: + +| Parameter Name | Parameter Description | +|:---------------------|:---------------------------------------------------------------------------------------------------------------------------------------| +| **Target Host** | The IPv4, IPv6, or domain name of the monitored DB2 database server. | +| **Port** | The port provided by the DB2 database, default is `50000`. | +| **Database Name** | The name of the DB2 database to connect to. | +| **Username** | The username for the database connection. | +| **Password** | The password for the database connection. | +| **Query Timeout** | Sets the timeout for when an SQL query does not return data, in milliseconds (ms), default is `6000`. | +| **Reuse Connection** | Whether to reuse the database connection, boolean value, default is `true`. | +| **URL** | The database connection URL, optional. If configured, it will override the database name, username, and password parameters set above. | + +### Collected Metrics + +#### Metric Set: Basic Info + +| Metric Name | Metric Unit | Metric Description | +|:-------------------|:------------|:------------------------| +| `database_version` | None | Database Version. | +| `instance_name` | None | Database Instance Name. | +| `status` | None | Instance Status. | +| `num_db` | None | Number of Databases. | + +#### Metric Set: Tablespace Usage + +| Metric Name | Metric Unit | Metric Description | +|:------------------|:---------------|:-------------------| +| `tablespace_name` | None | Tablespace Name. | +| `status` | None | Type. | +| `total` | MB | Total Size. | +| `used` | MB | Used Size. | +| `free` | MB | Free Size. | +| `used_percentage` | Percentage (%) | Used Percentage. | + +#### Metric Set: Session Status + +| Metric Name | Metric Unit | Metric Description | +|:--------------|:------------|:----------------------------------| +| `status_type` | None | Session Status Type. | +| `count` | None | Count of sessions in that status. | + +#### Metric Set: Application Process Count + +| Metric Name | Metric Unit | Metric Description | +|:----------------|:------------|:-----------------------------------------------------------------------------------| +| `process_count` | None | Total number of application processes/sessions. | + +#### Metric Set: Locks + +| Metric Name | Metric Unit | Metric Description | +|:----------------|:------------|:-----------------------------------| +| `waiting_locks` | None | Number of currently waiting locks. | + +#### Metric Set: Slow Query + +| Metric Name | Metric Unit | Metric Description | +|:---------------|:------------|:----------------------------| +| `avg_exe_time` | ms | Average Execution Time. | +| `sql_text` | None | SQL Text of the slow query. | diff --git a/home/versioned_docs/version-1.7.x/help/debian.md b/home/versioned_docs/version-1.7.x/help/debian.md new file mode 100644 index 00000000000..9690be62cea --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/debian.md @@ -0,0 +1,114 @@ +--- +id: debian +title: Monitoring Debian System Monitoring +sidebar_label: Debian +keywords: [Open Source Monitoring System, Operating System Monitoring, Debian Monitoring] +--- + +> Collect and monitor general performance metrics of the Debian system. + +## Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/deepseek.md b/home/versioned_docs/version-1.7.x/help/deepseek.md new file mode 100644 index 00000000000..207185fe570 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/deepseek.md @@ -0,0 +1,35 @@ +--- +id: deepseek +title: Monitoring Deepseek Account Status +sidebar_label: Deepseek Account Status +keywords: [Open Source Monitoring System, Open Source Network Monitoring, Deepseek Account Monitoring] +--- + +### Preparation + +#### Obtain Session Key + +Log in to the Deepseek backend and visit the `https://platform.deepseek.com/api_keys` page to obtain the session key. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +| ------------- | --------------------- | +| Monitoring Host | Enter `api.deepseek.com` here. | +| Task Name | The name that identifies this monitoring task, which must be unique. | +| Session Key | The session key obtained in the preparation step. | +| Collector | Configure which collector is used to schedule data collection for this monitoring. | +| Monitoring Interval | The interval for periodically collecting data, in seconds. The minimum interval that can be set is 30 seconds. | +| Bound Tags | Tags for categorizing and managing monitoring resources. | +| Description/Remarks | Additional remarks to identify and describe this monitoring. Users can add notes here. | + +### Collection Metrics + +#### Metric Set: Billing + +| Metric Name | Metric Unit | Metric Description | +| ---------- | ---------- | ----------------- | +| Currency | None | Currency, either RMB or USD. | +| Available Balance | RMB/USD | Total available balance, including bonus and recharge balance. | +| Unexpired Bonus Balance | RMB/USD | Unexpired bonus balance. | +| Recharge Balance | RMB/USD | Recharge balance. | diff --git a/home/versioned_docs/version-1.7.x/help/dm.md b/home/versioned_docs/version-1.7.x/help/dm.md new file mode 100644 index 00000000000..f8e031bfe20 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dm.md @@ -0,0 +1,48 @@ +--- +id: dm +title: Monitoring DM database +sidebar_label: DM Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring DM database metrics] +--- + +> Collect and monitor the general performance metrics of the DM database. DM8+ is supported. + +### Configuration parameters + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | Monitored peer IPV4, IPV6 or domain name. Note ⚠️ without protocol headers (eg: https://, http://). | +| Monitor Name | Identifies the name of this monitor. The name needs to be unique. | +| Port | The port provided by the database externally, the default is 5236. | +| Query Timeout | Set the timeout when the SQL query does not respond to data, in ms milliseconds, the default is 3000 milliseconds. | +| database name | database instance name, optional. | +| username | database connection username, optional | +| password | database connection password, optional | +| URL | Database connection URL, optional | +| Collection Interval | Monitor periodical collection data interval, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and then continue to add and modify operations if the detection is successful | +| Description Remarks | More remarks that identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: basic + +| Metric Name | Metric Unit | Metric Help Description | +|--------------|-------------|-------------------------------| +| PORT_NUM | None | Database exposed service port | +| CTL_PATH | None | Control File Path | +| MAX_SESSIONS | None | Maximum database connections | + +#### Metric collection: status + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|----------------------------------| +| status$ | None | Open/Close status of DM database | + +#### Metric collection: thread + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------------------------------------------| +| dm_sql_thd | None | Thread for writing dmsql dmserver | +| dm_io_thd | None | IO threads, controlled by IO_THR_GROUPS parameter, default is 2 threads | +| dm_quit_thd | None | Thread used to perform a graceful shutdown of the database | diff --git a/home/versioned_docs/version-1.7.x/help/dns.md b/home/versioned_docs/version-1.7.x/help/dns.md new file mode 100644 index 00000000000..f68fba92297 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dns.md @@ -0,0 +1,71 @@ +--- +id: dns +title: Monitoring DNS +sidebar_label: DNS Monitor +keywords: [ open source monitoring tool, open source DNS monitoring tool, monitoring DNS metrics ] +--- + +> Collect and monitor the general performance Metrics of DNS. + +**Protocol Use:DNS** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6. Note⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Monitoring port | The port for DNS service provided to the outside,default is 53. | +| Address For DNS | The address for domain name resolution. | +| Connect Timeout | Set the timeout for connecting to the DNS server, default is 6000 milliseconds. | +| Record Type | The type of DNS record to query. Optional values include `A`, `AAAA`, `MX`, `NS`, `SRV`, and `ANY`. | +| Query Class | Resource class for DNS query. Optional values include `IN`, `CHAOS`, `HESIOD`, `NONE`, and `ANY`,default is IN. | +| Use TCP Protocol | DNS queries use the TCP protocol. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metrics + +#### Metrics Set:Header + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|---------------------------------------------------| +| Response Time | ms | Time taken for DNS server to respond to requests. | +| Opcode | none | Type of the current message. | +| Response Status | none | Status code of the response. | +| Response Flags | none | Response flags. | +| Question Record Count | none | Number of question records. | +| Answer Record Count | none | Number of answer records. | +| Authority Record Count | none | Number of authoritative resource records. | +| Additional Record Count | none | Number of additional resource records. | + +### Metrics Set: Question + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------| +| Section | none | Question record information, including the queried domain name, resource type, resource record class, and additional information. | + +### Metrics Set: Answer + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------| +| Section0 | none | Answer record information, including the queried domain name, TTL, resource record class, resource type, and query result. | + +> The metric set collects up to 10 records, with metric names from Section0 to Section9. + +### Metrics Set: Authority + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| +| Section0 | none | SOA (Start of Authority) record for the domain name, including queried domain name, TTL, resource type, resource record class, and other information. | + +> The metric set collects up to 10 records, with metric names from Section0 to Section9. + +### Metrics Set: Additional + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-----------------------------------------| +| Section0 | none | Additional information for DNS queries. | + +> The metric set collects up to 10 records, with metric names from Section0 to Section9. diff --git a/home/versioned_docs/version-1.7.x/help/dns_sd.md b/home/versioned_docs/version-1.7.x/help/dns_sd.md new file mode 100644 index 00000000000..005415d2520 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dns_sd.md @@ -0,0 +1,223 @@ +--- +id: dns_sd +title: Monitoring DNS Service Discovery +sidebar_label: DNS Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring DNS service discovery] +--- + +> HertzBeat integrates with DNS service to automatically discover service instances through DNS records and create monitoring tasks for them. + +### Overview + +DNS Service Discovery allows HertzBeat to discover service instances by querying DNS records. This is a simple and reliable service discovery method that utilizes standard DNS infrastructure to find service instances. It is particularly suitable for environments using DNS SRV records or environments that need to discover services through DNS. + +### PreRequisites + +#### Configure DNS Records + +Ensure your DNS server has properly configured service discovery records. Different record types have different formats: + +1. **SRV Records**: Used for service discovery, containing service host and port information +2. **A Records**: Return IPv4 addresses +3. **AAAA Records**: Return IPv6 addresses +4. **MX Records**: Mail server records +5. **NS Records**: Name server records + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique. | +| DNS Host | DNS server address. Example: `8.8.8.8` or `192.168.1.1` | +| DNS Port | DNS server port. The default is 53 | +| Record Type | Type of DNS record to query. Options: `SRV`, `A`, `AAAA`, `MX`, `NS` | +| Record Name | Name of the DNS record to query. Example: `_http._tcp.example.com` for SRV records | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Usage Steps + +1. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **DNS Service Discovery** + - Fill in the basic configuration parameters + +2. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - For SRV records, commonly used templates include Port, HTTP, etc. + - For A/AAAA records, Ping or Port monitoring can be used + +3. **Automatic Discovery** + - HertzBeat will periodically query the DNS server based on the collection interval + - Automatically create monitoring tasks for newly discovered service instances + - Automatically delete monitoring tasks for disappeared service instances + +4. **View Discovered Instances** + - In the monitoring list, you can see all automatically created sub-monitoring tasks + - Each sub-monitoring task corresponds to a discovered service instance + +### Example of usage + +#### Example 1: SRV Record Discovery + +Suppose you have an SRV record for your web service: + +- **SRV Record**: `_http._tcp.example.com` +- **DNS Server**: `8.8.8.8` +- **Expected discovery**: Automatically discover all HTTP service instances + +Configuration example: + +- **Target Name**: `DNS-SRV-Discovery` +- **DNS Host**: `8.8.8.8` +- **DNS Port**: `53` +- **Record Type**: Select `SRV` +- **Record Name**: `_http._tcp.example.com` +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring (using the port from SRV record) + +After configuration: + +1. HertzBeat queries the SRV record for `_http._tcp.example.com` +2. Extracts host and port information from the SRV record response +3. Automatically creates Port monitoring for each service instance + +#### Example 2: A Record Discovery + +Discover service instances through A records: + +- **A Record**: `services.example.com` +- This domain may resolve to multiple IP addresses + +Configuration example: + +- **DNS Host**: `192.168.1.1` (Internal DNS server) +- **DNS Port**: `53` +- **Record Type**: Select `A` +- **Record Name**: `services.example.com` +- **Monitoring Template**: Select `Ping` or `Port` monitoring + +#### Example 3: MX Record Discovery + +Discover mail servers through MX records: + +- **DNS Host**: `8.8.8.8` +- **Record Type**: Select `MX` +- **Record Name**: `example.com` +- **Monitoring Template**: Select `Port` monitoring (port 25) + +### DNS Record Types + +#### SRV Records (Recommended) + +SRV records are the most commonly used record type for service discovery, containing service name, port number, and priority information. + +Format: `_service._protocol.example.com` + +Example: `_http._tcp.example.com` + +Typical SRV record response contains: + +- Target domain name +- Port number +- Priority and weight + +#### A Records + +A records map domain names to IPv4 addresses. If a domain name resolves to multiple IPs, all IPs can be discovered. + +Example: `services.example.com` → `192.168.1.10`, `192.168.1.11`, `192.168.1.12` + +#### AAAA Records + +AAAA records map domain names to IPv6 addresses. + +Example: `services.example.com` → `2001:db8::1` + +#### MX Records + +MX records specify mail servers for a domain and include priority information. + +Example: `example.com` → `mail.example.com` + +#### NS Records + +NS records specify name servers for a domain. + +Example: `example.com` → `ns1.example.com` + +### Notes + +- **DNS Server**: Ensure the specified DNS server is accessible and contains the service discovery records +- **Record Name**: Record name must be accurate, including the service and protocol prefix for SRV records +- **Port Information**: + - SRV records contain port information + - A/AAAA records do not contain port information; a default port needs to be specified in the monitoring template +- **Monitoring Templates**: Service discovery only discovers service instance addresses; you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive DNS queries +- **DNS Caching**: DNS responses may be cached; the actual update frequency depends on the DNS record's TTL value +- **Network Connectivity**: Ensure HertzBeat can access the specified DNS server and port (default: 53) +- **Firewall**: Ensure firewalls allow DNS query traffic (UDP/TCP 53) + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Kubernetes Headless Services**: Discover Kubernetes pod instances through DNS +- **Cloud Services**: Discover cloud service instances (AWS Route53, Azure DNS, GCP Cloud DNS) +- **Traditional DNS**: Use existing DNS infrastructure for service discovery +- **Load Balancing**: Discover all backend server instances +- **Mail Servers**: Discover mail server instances through MX records +- **Multi-Environment**: Use different DNS records for service discovery across different environments + +### Common SRV Record Formats + +Different services use different SRV record formats: + +- **HTTP**: `_http._tcp.example.com` +- **HTTPS**: `_https._tcp.example.com` +- **LDAP**: `_ldap._tcp.example.com` +- **FTP**: `_ftp._tcp.example.com` +- **MySQL**: `_mysql._tcp.example.com` +- **PostgreSQL**: `_postgresql._tcp.example.com` + +### Kubernetes Integration + +In Kubernetes clusters, DNS service discovery can be used to discover pod instances: + +1. **Headless Services**: Kubernetes creates DNS A records for each pod of headless services +2. **Service Discovery**: Use DNS service discovery to monitor all pods of a specific service + +Example: + +- **DNS Host**: Kubernetes cluster DNS service IP (usually `10.96.0.10`) +- **Record Type**: `A` +- **Record Name**: `my-service.default.svc.cluster.local` +- **Monitoring Template**: `Port` monitoring + +### DNS Server Examples + +Commonly used DNS servers: + +- **Google Public DNS**: `8.8.8.8`, `8.8.4.4` +- **Cloudflare DNS**: `1.1.1.1`, `1.0.0.1` +- **Quad9 DNS**: `9.9.9.9` +- **OpenDNS**: `208.67.222.222`, `208.67.220.220` +- **Internal DNS**: Usually the enterprise's internal DNS server address + +### Best Practices + +1. **Use SRV Records**: SRV records are the recommended method for service discovery as they contain complete host and port information +2. **Set Proper TTL**: Set an appropriate DNS record TTL to balance real-time performance and DNS server load +3. **Redundancy**: Configure multiple DNS servers to ensure high availability +4. **Monitoring**: Regularly check DNS record validity and availability +5. **Security**: Ensure DNS queries are secure, consider using DNS over HTTPS (DoH) or DNS over TLS (DoT) diff --git a/home/versioned_docs/version-1.7.x/help/docker.md b/home/versioned_docs/version-1.7.x/help/docker.md new file mode 100644 index 00000000000..63fe3b03a19 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/docker.md @@ -0,0 +1,101 @@ +--- +id: docker +title: Monitor:Docker Monitor +sidebar_label: Docker Monitor +keywords: [open source monitoring tool, open source docker monitoring tool, monitoring docker metrics] +--- + +> Collect and monitor general performance Metrics of Docker containers. + +## Pre-monitoring operations + +If you want to monitor the container information in `Docker`, you need to open the port according to the following steps, so that the collection request can obtain the corresponding information. + +**1. Edit the docker.server file:** + +````shell +vi /usr/lib/systemd/system/docker.service +```` + +Find the **[Service]** node, modify the ExecStart property, and add `-H tcp://0.0.0.0:2375` + +````shell +ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 +```` + +This is equivalent to the **2375** port that is open to the outside world. Of course, it can be modified to other ports according to your own situation. + +**2. Reload the Docker configuration to take effect:** + +```shell +systemctl daemon-reload +systemctl restart docker +``` + +**Note: Remember to open the `2375` port number in the server console.** + +**3. If the above method does not work:** + +Open the `2375` port number inside the server. + +```shell +firewall-cmd --zone=public --add-port=2375/tcp --permanent +firewall-cmd --reload +``` + +### Configuration parameters + +| Parameter name | Parameter help description | +|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | Monitored peer IPV4, IPV6 or domain name. Note ⚠️ without protocol headers (eg: https://, http://). | +| Monitor Name | Identifies the name of this monitor. The name needs to be unique. | +| Port | The port provided by the database externally, the default is 2375. | +| Query Timeout | Set the timeout when getting the Docker server API interface, in ms, the default is 3000 ms. | +| Container Name | Generally monitors all running container information. | +| username | connection username, optional | +| password | connection password, optional | +| URL | Database connection URL, optional, if configured, the parameters such as database name, username and password in the URL will override the parameters configured above | +| Collection Interval | Monitor periodical collection data interval, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and then continue to add and modify operations if the detection is successful | +| Description Remarks | More remarks that identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: system + +| Metric Name | Metric Unit | Metric Help Description | +|--------------------|-------------|----------------------------------------------------| +| Name | None | Server Name | +| version | none | docker version number | +| os | none | server version eg: linux x86_64 | +| root_dir | none | docker folder directory eg: /var/lib/docker | +| containers | None | Total number of containers (running + not running) | +| containers_running | None | Number of running containers | +| containers_paused | none | number of containers in pause | +| images | None | The total number of container images. | +| ncpu | none | ncpu | +| mem_total | MB | Total size of memory used | +| system_time | none | system time | + +#### Metric collection: containers + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|----------------------------------------------| +| id | None | The ID of the container in Docker | +| name | None | The container name in the Docker container | +| image | None | Image used by the Docker container | +| command | None | Default startup command in Docker | +| state | None | The running state of the container in Docker | +| status | None | Update time in Docker container | + +#### Metrics collection: stats + +| Metric Name | Metric Unit | Metric Help Description | +|------------------|-------------|------------------------------------------------------------| +| name | None | The name in the Docker container | +| available_memory | MB | The amount of memory that the Docker container can utilize | +| used_memory | MB | The amount of memory already used by the Docker container | +| memory_usage | None | Memory usage of the Docker container | +| cpu_delta | None | The number of CPUs already used by the Docker container | +| number_cpus | None | The number of CPUs that the Docker container can use | +| cpu_usage | None | Docker container CPU usage | diff --git a/home/versioned_docs/version-1.7.x/help/dolphinscheduler.md b/home/versioned_docs/version-1.7.x/help/dolphinscheduler.md new file mode 100644 index 00000000000..5a38033fecc --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dolphinscheduler.md @@ -0,0 +1,106 @@ +--- +id: dolphinscheduler +title: Monitoring: Apache DolphinScheduler +sidebar_label: Apache DolphinScheduler +keywords: [ Open Source Monitoring System, Monitor Apache DolphinScheduler ] +--- + +> Collect monitoring metrics for Apache DolphinScheduler. + +## Pre-monitoring operations + +> Support Apache DolphinScheduler version 3.3.0 or later + +You need to create a token in Apache DolphinScheduler. + + +Please refer to [Open API](https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/guide/api/open-api) to create a new token.The main steps are as follows + +1. Log in to the Apache DolphinScheduler system, click "Security", then click "Token manage" on the left, and click "Create token" to create a token. +2. Select the "Expiration time" (Token validity time), select "User" (choose the specified user to perform the API operation), click "Generate token", copy the Token string, and click "Submit". + +## Configuration Parameters + +| Parameter Name | Parameter Help Description | +|---------------------|-----------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored endpoint's IPV4, IPV6, or domain name. Note ⚠️ no protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring task, which needs to be unique. | +| Port | The monitoring port opened by DolphinScheduler, default value: 12345. | +| SSL | Whether SSL is enabled for connecting to DolphinScheduler. | +| Token | Apache DolphinScheduler token string. | +| Query Timeout | Set the timeout for unresponsive queries, in milliseconds (ms), default 6000 ms. | +| Collection Interval | The interval time for periodic data collection, in seconds; the minimum interval that can be set is 30 seconds. | +| Binding Tags | Used for categorizing and managing monitoring resources. | +| Description Notes | Additional identification and description notes for this monitoring; users can add notes here. | + +## Collected Metrics + +### Metric Set: Master + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|---------------|-------------------------| +| host | None | Host | +| port | None | Port | +| serverStatus | None | Server Status | +| processId | None | Process Id | +| runningTime | Day | Running Time | +| cpuUsage | Percentage(%) | CPU Usage | +| memoryUsage | Percentage(%) | Memory Usage | +| diskUsage | Percentage(%) | Disk Usage | +| jvmCpuUsage | Percentage(%) | JVM CPU Usage | +| jvmMemoryUsage | Percentage(%) | JVM Memory Usage | +| jvmHeapUsed | None | JVM Heap Used | +| jvmNonHeapUsed | None | JVM NonHeap Used | +| jvmHeapMax | None | JVM Heap Max | +| jvmNonHeapMax | None | JVM NonHeap Max | + +### Metric Set: Worker + +| Metric Name | Metric Unit | Metric Help Description | +|------------------|---------------|-------------------------| +| host | None | Host | +| port | None | Port | +| serverStatus | None | Server Status | +| processId | None | Process Id | +| runningTime | Day | Running Time | +| cpuUsage | Percentage(%) | CPU Usage | +| memoryUsage | Percentage(%) | Memory Usage | +| diskUsage | Percentage(%) | Disk Usage | +| jvmCpuUsage | Percentage(%) | JVM CPU Usage | +| jvmMemoryUsage | Percentage(%) | JVM Memory Usage | +| jvmHeapUsed | None | JVM Heap Used | +| jvmNonHeapUsed | None | JVM NonHeap Used | +| jvmHeapMax | None | JVM Heap Max | +| jvmNonHeapMax | None | JVM NonHeap Max | +| workerHostWeight | None | Weight | +| threadPoolUsage | None | Thread Pool Usage | +| workerGroup | None | Worker Group | + +### Metric Set: Alert Server + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|---------------|-------------------------| +| host | None | Host | +| port | None | Port | +| serverStatus | None | Server Status | +| processId | None | Process Id | +| runningTime | Day | Running Time | +| cpuUsage | Percentage(%) | CPU Usage | +| memoryUsage | Percentage(%) | Memory Usage | +| diskUsage | Percentage(%) | Disk Usage | +| jvmCpuUsage | Percentage(%) | JVM CPU Usage | +| jvmMemoryUsage | Percentage(%) | JVM Memory Usage | +| jvmHeapUsed | None | JVM Heap Used | +| jvmNonHeapUsed | None | JVM NonHeap Used | +| jvmHeapMax | None | JVM Heap Max | +| jvmNonHeapMax | None | JVM NonHeap Max | + +### Metric Set: Database + +| Metric Name | Metric Unit | Metric Help Description | +|---------------------------|-------------|-----------------------------| +| dbType | None | Database Type | +| state | None | State | +| maxConnections | None | Max Connections | +| threadsConnections | None | Threads Connections | +| threadsRunningConnections | Day | Threads Running Connections | diff --git a/home/versioned_docs/version-1.7.x/help/doris_be.md b/home/versioned_docs/version-1.7.x/help/doris_be.md new file mode 100644 index 00000000000..1fc2f332d4b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/doris_be.md @@ -0,0 +1,170 @@ +--- +id: doris_be +title: Monitoring DORIS Database BE Monitoring +sidebar_label: DORIS Database BE +keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS Database BE Monitoring] +--- + +> Collect and monitor general performance metrics for DORIS database BE. Supports DORIS 2.0.0. + +### Pre-monitoring operations + +| Parameter Name | Parameter Description | +|--------|-----------------------------------------------------| +| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) | +| Task Name | A unique name identifying this monitoring task | +| Port | The port provided by the database to the outside, default is 8040 ,get the value of the`http_port` configuration item | +| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 3000 milliseconds | +| Database Name | Optional database instance name | +| Collection Interval | The interval between periodic data collections for monitoring, in seconds, with a minimum interval of 30 seconds | +| Probe Required | Whether to probe and check the availability of monitoring before adding new monitoring, continue with the addition or modification operation only if the probe is successful | +| Description | Additional notes and descriptions for this monitoring task | + +### Collection Indicators + +#### Metric Set:doris_be_load_channel_count + +| Metric Name | Metric Unit | Metric help description | +|-------|------|-----------------------| +| value | None | The current number of load channels | + +#### Metric Set:doris_be_memtable_flush_total + +| Metric Name | Metric Unit | Metric help description | +|-------|------|--------------------| +| value | None | Cumulative number of memtable writes to disk | + +#### Metric Set:doris_be_plan_fragment_count + +| Metric Name | Metric Unit | Metric help description | +|-------|------|------------------------------| +| value | None | Number of fragment instances currently received | + +#### Metric Set:doris_be_process_thread_num + +| Metric Name | Metric Unit | Metric help description | +|-------|------|---------------------------------| +| value | None | Number of BE process threads, collected through /proc/pid/task | + +#### Metric Set:doris_be_query_scan_rows + +| Metric Name | Metric Unit | Metric help description | +|-------|------|------------------------------------------------------------------------------| +| value | None | Cumulative number of rows read. This only counts the data volume read from OLAP tables, and it represents RawRowsRead (some data rows may be skipped by the index and not actually read, but they are still recorded in this value). | + +#### Metric Set:doris_be_result_buffer_block_count + +| Metric Name | Metric Unit | Metric help description | +|-------|------|---------------------| +| value | None | Number of queries in the current query result cache | + +#### Metric Set:doris_be_send_batch_thread_pool_queue_size + +| Metric Name | Metric Unit | Metric help description | +|-------|------|---------------------| +| value | None | Number of tasks in the queue of the thread pool used for sending data packets during import | + +#### Metric Set:doris_be_tablet_base_max_compaction_score + +| Metric Name | Metric Unit | Metric help description | +|-------|------|-----------------------------| +| value | None | Current maximum Base Compaction Score | + +#### Metric Set:doris_be_timeout_canceled_fragment_count + +| Metric Name | Metric Unit | Metric help description | +|-------|------|----------------------------------| +| value | None | Cumulative number of fragment instances cancelled due to timeout | + +#### Metric Set:doris_be_load_rows + +| Metric Name | Metric Unit | Metric help description | +|-------|------|------------------------| +| value | None | Cumulative number of rows sent through tablet sink | + +#### Metric Set:doris_be_all_rowsets_num + +| Metric Name | Metric Unit | Metric help description | +|-------|------|-----------------| +| value | None | Current number of rowsets | + +#### Metric Set:doris_be_all_segments_num + +| Metric Name | Metric Unit | Metric help description | +|-------|------|------------------| +| value | None | Current number of segments | + +#### Metric Set:doris_be_heavy_work_max_threads + +| Metric Name | Metric Unit | Metric help description | +|-------|------|-------------------| +| value | None | Number of threads in the brpc heavy thread pool | + +#### Metric Set:doris_be_light_work_max_threads + +| Metric Name | Metric Unit | Metric help description | +|-------|------|-------------------| +| value | None | Number of threads in the brpc light thread pool| + +#### Metric Set:doris_be_heavy_work_pool_queue_size + +| Metric Name | Metric Unit | Metric help description | +|-------|------|---------------------------------| +| value | None | Maximum queue length of the brpc heavy thread pool; if exceeded, work submissions will be blocked | + +#### Metric Set:doris_be_light_work_pool_queue_size + +| Metric Name | Metric Unit | Metric help description | +|-------|------|---------------------------------| +| value | None | Maximum queue length of the brpc light thread pool; if exceeded, work submissions will be blocked | + +#### Metric Set:doris_be_heavy_work_active_threads + +| Metric Name | Metric Unit | Metric help description | +|-------|------|--------------------| +| value | None | Number of active threads in the brpc heavy thread pool | + +#### Metric Set:doris_be_light_work_active_threads + +| Metric Name | Metric Unit | Metric help description | +|-------|------|--------------------| +| value | None | Number of active threads in the brpc light thread pool | + +#### Metric Set:doris_be_compaction_bytes_total + +| Metric Name | Metric Unit | Metric help description | +|------------|------|------------------------------| +| base | Bytes | Cumulative data volume of Base Compaction | +| cumulative | Bytes | Cumulative data volume of Cumulative Compaction | + +#### Metric Set:doris_be_disks_avail_capacity + +| Metric Name | Metric Unit | Metric help description | +|-------|------|--------------------------------------------| +| path | None | Specify data directory | +| value | Bytes | `{path="/path1/"}` represents the remaining disk space of the /path1 directory's disk. | + +#### Metric Set:doris_be_disks_total_capacity + +| Metric Name | Metric Unit | Metric help description | +|-------|------|--------------------------------------------| +| path | None | Specify data directory | +| value | Bytes | `{path="/path1/"}` represents the total disk space of the disk where the /path1 directory is located. | + +#### Metric Set:doris_be_local_bytes_read_total + +| Metric Name | Metric Unit | Metric help description | +|-------|------|----------------------------| +| value | Bytes | Number of bytes read by LocalFileReader | + +#### Metric Set:doris_be_local_bytes_written_total + +| Metric Name | Metric Unit | Metric help description | +|-------|------|----------------------------| +| value | Bytes | Number of bytes written by LocalFileWriter | + +#### Metric Set:doris_be_memory_allocated_bytes + +| Metric Name | Metric Unit | Metric help description | +|-------|------|------------------------------------------| +| value | Bytes | Physical memory size of the BE process, retrieved from /proc/self/status/VmRSS | diff --git a/home/versioned_docs/version-1.7.x/help/doris_fe.md b/home/versioned_docs/version-1.7.x/help/doris_fe.md new file mode 100644 index 00000000000..ecfad855ba6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/doris_fe.md @@ -0,0 +1,132 @@ +--- +id: doris_fe +title: Monitoring DORIS Database FE Monitoring +sidebar_label: DORIS Database FE +keywords: [Open Source Monitoring System, Open Source Database Monitoring, DORIS Database FE Monitoring] +--- + +> Collect and monitor general performance metrics for DORIS database FE. Supports DORIS 2.0.0. + +**Protocol: HTTP** + +### Pre-monitoring operations + +Check the `fe/conf/fe.conf` file to obtain the value of the `http_port` configuration item, which is used for monitoring. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) | +| Task Name | A unique name identifying this monitoring task | +| Port | The port provided by the database to the outside, default is 8030 ,get the value of the`http_port` configuration item | +| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 3000 milliseconds | +| Database Name | Optional database instance name | +| Collection Interval | The interval between periodic data collections for monitoring, in seconds, with a minimum interval of 30 seconds | +| Probe Required | Whether to probe and check the availability of monitoring before adding new monitoring, continue with the addition or modification operation only if the probe is successful | +| Description | Additional notes and descriptions for this monitoring task | + +### Collection Indicators + +#### Metric Set: doris_fe_connection_total + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|----------------------------------------------------| +| value | None | The current number of MySQL port connections on FE | + +#### Metric Set: doris_fe_edit_log_clean + +Should not fail; if it does, manual intervention is required. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|---------------------------------------------------------------| +| success | None | The number of successful cleanups of historical metadata logs | +| failed | None | The number of failed cleanups of historical metadata logs | + +#### Metric Set: doris_fe_edit_log + +| Metric Name | Metric Unit | Metric help description | +|-------------------|-------------|---------------------------------------------| +| write | None | The count of metadata log write operations | +| read | None | The count of metadata log read operations | +| current | None | The current number of metadata logs | +| accumulated_bytes | Bytes | The cumulative value of metadata log writes | +| current_bytes | Bytes | The current value of metadata logs | + +#### Metric Set: doris_fe_image_clean + +Should not fail; if it does, manual intervention is required. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|----------------------------------------------------------------------| +| success | None | The number of successful cleanups of historical metadata image files | +| failed | None | The number of failed cleanups of historical metadata image files | + +#### Metric Set: doris_fe_image_write + +Should not fail; if it does, manual intervention is required. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------------------------------| +| success | None | The number of successful generations of metadata image files | +| failed | None | The number of failed generations of metadata image files | + +#### Metric Set: doris_fe_query_err + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------------------------| +| value | None | The cumulative value of erroneous queries | + +#### Metric Set: doris_fe_max_journal_id + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| value | None | The current maximum metadata log ID on the FE node. If it is a Master FE, it is the maximum ID currently written; if it is a non-Master FE, it represents the maximum metadata log ID currently being replayed. Used to observe if there is a large gap between the IDs of multiple FEs. A large gap indicates issues with metadata synchronization | + +#### Metric Set: doris_fe_max_tablet_compaction_score + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| value | None | The largest compaction score value among all BE nodes. This value can observe the current cluster's maximum compaction score to judge if it is too high. If too high, there may be delays in queries or writes | + +#### Metric Set: doris_fe_qps + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|---------------------------------------------------------------------------------| +| value | None | The number of queries per second on the current FE (only counts query requests) | + +#### Metric Set: doris_fe_query_err_rate + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------------| +| value | None | The number of erroneous queries per second | + +#### Metric Set: doris_fe_report_queue_size + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| value | None | The length of the queue for various regular reporting tasks on the BE side at the FE end. This value reflects the degree of blocking of reporting tasks on the Master FE node. A larger value indicates insufficient processing capacity on the FE | + +#### Metric Set: doris_fe_rps + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|------------------------------------------------------------------------------------------------------| +| value | None | The number of requests per second on the current FE (includes queries and other types of statements) | + +#### Metric Set: doris_fe_scheduled_tablet_num + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| value | None | The number of tablets currently being scheduled by the Master FE node. This includes tablets that are being repaired and tablets that are being balanced. This value can reflect the number of tablets currently migrating in the cluster. If there is a value for a long time, it indicates that the cluster is unstable | + +#### Metric Set: doris_fe_txn_status + +Can observe the number of import transactions in various states to determine if there is a backlog. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| unknown | None | Unknown state | +| prepare | None | In preparation | +| committed | None | Committed | +| visible | None | Visible | +| aborted | None | Aborted / Revoked | diff --git a/home/versioned_docs/version-1.7.x/help/dynamic_tp.md b/home/versioned_docs/version-1.7.x/help/dynamic_tp.md new file mode 100644 index 00000000000..d739d95d561 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/dynamic_tp.md @@ -0,0 +1,101 @@ +--- +id: dynamic_tp +title: Monitoring DynamicTp ThreadPool +sidebar_label: DynamicTp Monitor +keywords: [open source monitoring tool, open source dynamicTp monitoring tool, monitoring DynamicTp metrics] +--- + +> Collect and monitor the thread pool performance Metrics exposed by DynamicTp actuator. + +### PreRequisites + +1. Integration Using `DynamicTp` + + `DynamicTp` is a lightweight dynamic thread pool based on the configuration center of the Jvm language. It has built-in monitoring and alarm functions, which can be realized through SPI custom extensions. + + For integrated use, please refer to the document [Quick Start](https://dynamictp.cn/guide/use/quick-start.html) + +2. Open SpringBoot Actuator Endpoint to expose `DynamicTp` Metric interface + + ```yaml + management: + endpoints: + web: + exposure: + include: '*' + ``` + + Test whether the access Metric interface `ip:port/actuator/dynamic-tp` has response json data as follows: + + ```json + [ + { + "poolName": "commonExecutor", + "corePoolSize": 1, + "maximumPoolSize": 1, + "queueType": "LinkedBlockingQueue", + "queueCapacity": 2147483647, + "queueSize": 0, + "fair": false, + "queueRemainingCapacity": 2147483647, + "activeCount": 0, + "taskCount": 0, + "completedTaskCount": 0, + "largestPoolSize": 0, + "poolSize": 0, + "waitTaskCount": 0, + "rejectCount": 0, + "rejectHandlerName": null, + "dynamic": false, + "runTimeoutCount": 0, + "queueTimeoutCount": 0 + }, + { + "maxMemory": "4GB", + "totalMemory": "444MB", + "freeMemory": "250.34 MB", + "usableMemory": "3.81GB" + } + ] + ``` + +3. Add DynamicTp monitoring under HertzBeat middleware monitoring + +### Configuration parameters + +| Parameter name | Parameter help description | +|-------------------|-------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the application service, the default is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, note ⚠️Enable HTTPS, the default corresponding port needs to be changed to 443 | +| Base Path | Exposed interface path prefix, default /actuator | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: thread_pool + +| Metric Name | Metric Unit | Metric Help Description | +|--------------------------|-------------|---------------------------------------------| +| pool_name | None | Thread pool name | +| core_pool_size | None | Number of core threads | +| maximum_pool_size | None | Maximum number of threads | +| queue_type | None | Task queue type | +| queue_capacity | MB | task queue capacity | +| queue_size | None | The current occupied size of the task queue | +| fair | None | Queue mode, SynchronousQueue will be used | +| queue_remaining_capacity | MB | task queue remaining size | +| active_count | None | Number of active threads | +| task_count | None | Total number of tasks | +| completed_task_count | None | Number of completed tasks | +| largest_pool_size | None | The largest number of threads in history | +| pool_size | none | current number of threads | +| wait_task_count | None | Number of tasks waiting to be executed | +| reject_count | None | Number of rejected tasks | +| reject_handler_name | None | Reject policy type | +| dynamic | None | Dynamic thread pool or not | +| run_timeout_count | None | Number of running timeout tasks | +| queue_timeout_count | None | Number of tasks waiting for timeout | diff --git a/home/versioned_docs/version-1.7.x/help/elasticsearch.md b/home/versioned_docs/version-1.7.x/help/elasticsearch.md new file mode 100644 index 00000000000..f0c29a8fd9f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/elasticsearch.md @@ -0,0 +1,63 @@ +--- +id: elasticsearch +title: Monitoring:ElasticSearch +sidebar_label: ElasticSearch +keywords: [ open source monitoring tool, monitoring ElasticSearch metrics ] +--- + +> Collect and monitor the general performance Metrics of ElasticSearch + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6. Note⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Monitoring port | The HTTP API port opened by Elasticsearch,default is 9200. | +| SSL | Whether SSL is enabled for connecting to Elasticsearch. | +| Auth Type | Authentication type,Optional. | +| Username | Username,Optional. | +| Password | Password,Optional. | +| Connect Timeout | Set the timeout for elasticsearch query, default is 6000 milliseconds. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metrics + +#### Metrics Set:health + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|-------------------------------------------| +| cluster_name | none | Cluster Name | +| status | none | status | +| nodes | none | Number of nodes in the cluster. | +| data_nodes | none | Number of data nodes in the cluster. | +| active_primary_shards | none | Number of active shards on primary nodes. | +| active_shards | none | Number of active shards. | +| active_percentage | % | Active Percentage | +| initializing_shards | none | Number of initialized shards. | +| unassigned_shards | none | Number of unassigned shards. | + +#### Metrics Set:nodes + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------| +| total | none | Number of nodes. | +| successful | none | Number of online nodes. | +| failed | none | Number of offline nodes. | + +#### Metrics Set:nodes_detail + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|-------------------------| +| node_name | none | Node Name | +| ip | none | IP Address | +| cpu_load_average | none | Cpu Load Average | +| cpu_percent | % | Cpu Percent | +| heap_used | MB | Heap Used | +| heap_used_percent | % | Heap Used Percent | +| heap_total | MB | Heap Total | +| disk_free | GB | Disk Free | +| disk_total | GB | Disk Total | +| disk_used_percent | % | Disk Used Percent | diff --git a/home/versioned_docs/version-1.7.x/help/euleros.md b/home/versioned_docs/version-1.7.x/help/euleros.md new file mode 100644 index 00000000000..3fe3e60261e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/euleros.md @@ -0,0 +1,114 @@ +--- +id: euleros +title: Monitoring EulerOS +sidebar_label: EulerOS +keywords: [ Open Source Monitoring System, Open Source OS Monitoring, EulerOS Monitoring ] +--- + +> Collect and monitor general performance metrics for EulerOS (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.). + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/eureka_sd.md b/home/versioned_docs/version-1.7.x/help/eureka_sd.md new file mode 100644 index 00000000000..41d886e075b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/eureka_sd.md @@ -0,0 +1,94 @@ +--- +id: eureka_sd +title: Monitoring Eureka Service Discovery +sidebar_label: Eureka Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Eureka service discovery] +--- + +> HertzBeat integrates with Eureka registry to automatically discover service instances and create monitoring tasks for them. + +### Overview + +Eureka Service Discovery allows HertzBeat to connect to your Eureka server and automatically discover all registered service instances. When a new service instance is registered or an existing instance goes offline, HertzBeat will automatically create or delete corresponding monitoring tasks, achieving automated monitoring in microservice environments. + +### PreRequisites + +#### Deploy Eureka Server + +1. Deploy Eureka server according to [Eureka official documentation](https://spring.io/guides/gs/service-registration-and-discovery/). +2. Ensure Eureka server is accessible from HertzBeat. +3. Verify that you can access Eureka dashboard at `http://your-eureka-server:port/` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|-------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique | +| Eureka Service Discovery Url | Eureka server address. Example: `http://eureka-server:8761/eureka` | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Usage Steps + +1. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **Eureka Service Discovery** + - Fill in the basic configuration parameters + +2. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - For example: If discovered instances are HTTP services, you can select HTTP monitoring template + - Common template types: Port, HTTP, HTTPS, etc. + +3. **Automatic Discovery** + - HertzBeat will periodically query Eureka server based on the collection interval + - Automatically create monitoring tasks for newly registered service instances + - Automatically delete monitoring tasks for offline service instances + +4. **View Discovered Instances** + - In the monitoring list, you can see all automatically created sub-monitoring tasks + - Each sub-monitoring task corresponds to a discovered service instance + +### Example of usage + +Suppose your Eureka server is running at `http://192.168.1.100:8761/eureka`, and you want to automatically monitor all service instances registered in it. + +Configuration example: + +- **Target Name**: `Eureka-Service-Discovery` +- **Eureka Service Discovery Url**: `http://192.168.1.100:8761/eureka` +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring (to detect instance availability) + +After configuration: + +1. HertzBeat connects to Eureka server +2. Retrieves all registered application instances +3. Automatically creates Port monitoring for each instance (e.g., `USER-SERVICE-192.168.1.101:8080`) +4. Every 60 seconds, checks for newly registered or offline services and updates monitoring tasks accordingly + +### Notes + +- **Network Connectivity**: Ensure HertzBeat can access the Eureka server address +- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Eureka server +- **Permission Requirements**: Eureka server does not require authentication by default, but if authentication is configured, the URL needs to include username and password +- **Instance Naming**: Automatically created monitoring tasks are named in the format: `{ApplicationName}-{Host}:{Port}` + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Microservice Architecture**: Automatically monitor all microservice instances registered in Eureka +- **Dynamic Scaling**: Automatically adapt to service instances added/removed due to autoscaling +- **Unified Monitoring**: Centrally manage monitoring of all services in the microservice environment +- **Operation and Maintenance**: Reduce manual configuration work and improve operation efficiency diff --git a/home/versioned_docs/version-1.7.x/help/fedora.md b/home/versioned_docs/version-1.7.x/help/fedora.md new file mode 100644 index 00000000000..39f0a7de12a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/fedora.md @@ -0,0 +1,114 @@ +--- +id: fedora +title: Monitoring Fedora Operating System +sidebar_label: Fedora OS Operating System +keywords: [ Open Source Monitoring System, Open Source OS Monitoring, Fedora OS Monitoring ] +--- + +> Collect and monitor general performance metrics for Fedora operating systems (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.). + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/flink.md b/home/versioned_docs/version-1.7.x/help/flink.md new file mode 100644 index 00000000000..9fb7c7cb9e1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/flink.md @@ -0,0 +1,35 @@ +--- +id: flink +title: Monitoring Flink +sidebar_label: Flink +keywords: [open source monitoring tool, open source flink monitoring tool] +--- + +> Collect and monitor the general performance Metrics of Flink. + +### Configuration parameter + +| Parameter Name | Parameter Help Description | +|---------------------|-----------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | The monitored peer IPV4, IPV6, or domain name. Note: Do not include protocol headers (e.g., https://, http://). | +| Task Name | Identifier for this monitoring task, name must be unique. | +| Port | Monitoring port. | +| Query Timeout | Sets the timeout for JVM connection in milliseconds, default is 3000 milliseconds. | +| SSL | Whether to enable SSL (default is off). | +| Username | Connection username. | +| Password | Connection password. | +| Collection Interval | Interval for periodic data collection during monitoring, in seconds. The minimum settable interval is 30 seconds. | +| Whether to detect | Whether to perform a probe check for monitoring availability before adding a new monitor; operations proceed if successful. | +| Description Remarks | Additional identifiers and descriptions for this monitoring, where users can note information. | + +### Collection Metrics + +#### Metrics Set:Overview + +| Metric Name | Metric Unit | Metric Help Description | +|--------------|-------------|-------------------------| +| slots_total | Units | Total number of slots. | +| slots_used | Units | Number of slots used. | +| task_total | Units | Total number of tasks. | +| jobs_running | Units | Number of jobs running. | +| jobs_failed | Units | Number of jobs failed. | diff --git a/home/versioned_docs/version-1.7.x/help/flink_on_yarn.md b/home/versioned_docs/version-1.7.x/help/flink_on_yarn.md new file mode 100644 index 00000000000..bc6bd97058c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/flink_on_yarn.md @@ -0,0 +1,137 @@ +# Flink On Yarn Monitoring + +> Measurement and monitoring of general metrics for Flink stream engine in Yarn running mode. + +## Configuration Parameters + +| Parameter Name | Parameter Help Description | +|---------------------|---------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The monitored peer's IPV4, IPV6, or domain name. Note ⚠️ do not include protocol headers (e.g., https://, http://). | +| Task Name | The name identifying this monitoring task. The name must be unique. | +| Yarn Port | The Yarn port, corresponding to the port in `yarn.resourcemanager.webapp.address`. | +| Query Timeout | The timeout for JVM connections, in milliseconds, default is 3000 ms. | +| Enable SSL | Whether to enable SSL | +| Username | Connection username | +| Password | Connection password | +| Monitoring Interval | Interval for periodic data collection, in seconds, minimum interval is 30 seconds. | +| Tags | Used for categorizing and managing monitoring resources. | +| Description | Additional notes and descriptions for this monitoring task. Users can add notes here. | + +### Collected Metrics + +#### Metrics Set: JobManager Metrics + +| Metric Name | Metric Unit | Metric Help Description | +|-------------------------------------------------------|-------------|----------------------------------------------------| +| Status.JVM.Memory.NonHeap.Committed | Bytes | Non-heap memory committed | +| Status.JVM.Memory.Mapped.TotalCapacity | Bytes | Total capacity of mapped memory | +| Status.JVM.Memory.NonHeap.Used | Bytes | Non-heap memory used | +| Status.JVM.Memory.Metaspace.Max | Bytes | Maximum capacity of metaspace | +| Status.JVM.GarbageCollector.G1_Old_Generation.Count | Count | Count of old generation garbage collections | +| Status.JVM.Memory.Direct.MemoryUsed | Bytes | Direct memory used | +| Status.JVM.Memory.Mapped.MemoryUsed | Bytes | Mapped memory used | +| Status.JVM.GarbageCollector.G1_Young_Generation.Count | Count | Count of young generation garbage collections | +| Status.JVM.Memory.Direct.TotalCapacity | Bytes | Total capacity of direct memory | +| Status.JVM.GarbageCollector.G1_Old_Generation.Time | ms | Time spent on old generation garbage collections | +| Status.JVM.Memory.Heap.Committed | Bytes | Heap memory committed | +| Status.JVM.Memory.Mapped.Count | Count | Count of mapped memory | +| Status.JVM.Memory.Metaspace.Used | Bytes | Metaspace memory used | +| Status.JVM.Memory.Direct.Count | Count | Count of direct memory | +| Status.JVM.Memory.Heap.Used | Bytes | Heap memory used | +| Status.JVM.Memory.Heap.Max | Bytes | Maximum capacity of heap memory | +| Status.JVM.GarbageCollector.G1_Young_Generation.Time | ms | Time spent on young generation garbage collections | +| Status.JVM.Memory.NonHeap.Max | Bytes | Maximum capacity of non-heap memory | + +#### Metrics Set: JobManager Config + +| Metric Name | Metric Unit | Metric Help Description | +|--------------------------------------------|-------------|----------------------------------------------------| +| internal.jobgraph-path | - | Internal job graph path | +| env.java.home | - | Java environment path | +| classloader.check-leaked-classloader | - | Whether to check for leaked class loaders | +| env.java.opts | - | Java options | +| high-availability.cluster-id | - | High availability cluster ID | +| jobmanager.rpc.address | - | JobManager's RPC address | +| jobmanager.memory.jvm-overhead.min | Bytes | Minimum JVM overhead for JobManager | +| jobmanager.web.port | Port | JobManager's Web port | +| webclient.port | Port | Web client port | +| execution.savepoint.ignore-unclaimed-state | - | Whether to ignore unclaimed state | +| io.tmp.dirs | Path | Temporary file directories | +| parallelism.default | - | Default parallelism | +| taskmanager.memory.fraction | - | TaskManager memory fraction | +| taskmanager.numberOfTaskSlots | - | Number of task slots for TaskManager | +| yarn.application.name | - | Yarn application name | +| taskmanager.heap.mb | MB | Heap memory size for TaskManager | +| taskmanager.memory.process.size | GB | Process memory size for TaskManager | +| web.port | Port | Web port | +| classloader.resolve-order | - | Class loader resolve order | +| jobmanager.heap.mb | MB | Heap memory size for JobManager | +| jobmanager.memory.off-heap.size | Bytes | Off-heap memory size for JobManager | +| state.backend.incremental | - | Whether the state backend is incremental | +| execution.target | - | Execution target | +| jobmanager.memory.process.size | GB | Process memory size for JobManager | +| web.tmpdir | Path | Web temporary directory | +| yarn.ship-files | Path | Yarn shipped files | +| jobmanager.rpc.port | Port | JobManager's RPC port | +| internal.io.tmpdirs.use-local-default | - | Whether to use local default temporary directories | +| execution.checkpointing.interval | ms | Checkpointing interval | +| execution.attached | - | Whether to execute attached | +| internal.cluster.execution-mode | - | Internal cluster execution mode | +| execution.shutdown-on-attached-exit | - | Whether to shutdown on attached exit | +| pipeline.jars | Path | Pipeline JAR files | +| rest.address | - | REST address | +| state.backend | - | State backend type | +| jobmanager.memory.jvm-metaspace.size | Bytes | JVM metaspace size for JobManager | +| $internal.deployment.config-dir | Path | Internal deployment configuration directory | +| $internal.yarn.log-config-file | Path | Internal Yarn log configuration file path | +| jobmanager.memory.heap.size | Bytes | Heap memory size for JobManager | +| state.checkpoints.dir | Path | State checkpoints directory | +| jobmanager.memory.jvm-overhead.max | Bytes | Maximum JVM overhead for JobManager | + +#### TaskManager Metrics + +| Metric Name | Metric Unit | Metric Help Description | +|---------------------------------------|-------------|---------------------------------------------------| +| Container ID | - | Container ID for uniquely identifying a container | +| Path | - | Container path | +| Data Port | Port | Data transmission port | +| JMX Port | Port | JMX (Java Management Extensions) port | +| Last Heartbeat | Timestamp | Last heartbeat time | +| All Slots | Count | Total number of task slots in the container | +| Free Slots | Count | Number of free task slots in the container | +| totalResourceCpuCores | Cores | Total number of CPU cores in the container | +| totalResourceTaskHeapMemory | MB | Total task heap memory size in the container | +| totalResourceManagedMemory | MB | Total managed memory size in the container | +| totalResourceNetworkMemory | MB | Total network memory size in the container | +| freeResourceCpuCores | Cores | Number of free CPU cores in the container | +| freeResourceTaskHeapMemory | MB | Free task heap memory size in the container | +| freeResourceTaskOffHeapMemory | MB | Free task off-heap memory size in the container | +| freeResourceManagedMemory | MB | Free managed memory size in the container | +| freeResourceNetworkMemory | MB | Free network memory size in the container | +| CPU Cores | Cores | Number of CPU cores | +| Physical MEM | MB | Size of physical memory | +| JVM Heap Size | MB | Size of JVM heap memory | +| Flink Managed MEM | MB | Size of Flink managed memory | +| Framework Heap | MB | Size of framework heap memory | +| Task Heap | MB | Size of task heap memory | +| Framework Off-Heap | MB | Size of framework off-heap memory | +| memoryConfigurationTaskOffHeap | Bytes | Task off-heap memory configuration | +| Network | MB | Network memory configuration | +| Managed Memory | MB | Managed memory configuration | +| JVM Metaspace | MB | Size of JVM metaspace | +| JVM Overhead | MB | JVM overhead | +| memoryConfigurationTotalFlinkMemory | Bytes | Total Flink memory configuration | +| memoryConfigurationTotalProcessMemory | Bytes | Total process memory configuration | + +#### TaskManager Status Metrics + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------------------------|-------------|------------------------------------| +| Status.Shuffle.Netty.TotalMemory | MB | Total memory used by Netty Shuffle | +| Status.Flink.Memory.Managed.Used | MB | Managed memory used by Flink | +| Status.JVM.Memory.Metaspace.Used | MB | Used JVM metaspace memory | +| Status.JVM.Memory.Metaspace.Max | MB | Maximum JVM metaspace memory | +| Status.JVM.Memory.Heap.Used | MB | Used JVM heap memory | +| Status.JVM.Memory.Heap.Max | MB | Maximum JVM heap memory | +| Status.Flink.Memory.Managed.Total | MB | Total managed memory by Flink | +| Status.Shuffle.Netty.UsedMemory | MB | Used memory by Netty Shuffle | diff --git a/home/versioned_docs/version-1.7.x/help/freebsd.md b/home/versioned_docs/version-1.7.x/help/freebsd.md new file mode 100644 index 00000000000..2293872e085 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/freebsd.md @@ -0,0 +1,94 @@ +--- +id: freebsd +title: Monitoring FreeBSD Operating System +sidebar_label: FreeBSD Operating System +keywords: [ Open Source Monitoring System, Open Source Operating System Monitoring, FreeBSD Operating System Monitoring ] +--- + +> Collect and monitor general performance metrics (system information, CPU, memory, disk, network cards, file systems, top resource processes, etc.) of the FreeBSD operating system. + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Collection Metrics + +#### Metric Set: Basic Info + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Info + +| Metric Name | Metric Unit | Metric help description | +|----------------|-------------|----------------------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load for the last 1/5/15 minutes | +| context_switch | None | Current context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Info + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| physmem | Mb | Physical memory | +| usermem | Mb | User program memory | +| realmem | Mb | Actual memory | +| availmem | Mb | Available memory | + +#### Metric Set: Disk Free + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| filesystem | None | File system name | +| used | Mb | Used disk space | +| available | Mb | Available disk space | +| usage | % | Usage percentage | +| mounted | None | Mount point directory | + +#### Metric Set: Top10 CPU Process + +Statistics of the top 10 processes using CPU. Statistics include: Process ID, CPU usage, memory usage, executed command. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top10 Memory Process + +Statistics of the top 10 processes using memory. Statistics include: Process ID, memory usage, CPU usage, executed command. + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/ftp.md b/home/versioned_docs/version-1.7.x/help/ftp.md new file mode 100644 index 00000000000..72d55e8c1e2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ftp.md @@ -0,0 +1,34 @@ +--- +id: ftp +title: Monitoring FTP +sidebar_label: FTP Monitor +keywords: [ open source monitoring tool, open source ftp server monitoring tool, monitoring ftp metrics ] +--- + +> Collect and monitor the general performance Metrics of FTP server. + +**Protocol Use:FTP** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: ftp://). | +| Monitoring name | Identify the name of this monitoring, The name needs to be unique. | +| Port | Port provided by FTP server ,default is 21. | +| Direction | Directory on the FTP server. | +| Timeout | Timeout for connecting to FTP server. | +| Username | Username for connecting to the FTP server, optional. | +| Password | Password for connecting to the FTP server, optional. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metrics + +#### Metrics Set:Basic + +| Metric name | Metric unit | Metric help description | +|---------------|-------------|----------------------------------------------------------| +| Is Active | none | Check if the directory exists and has access permission. | +| Response Time | ms | Response Time | diff --git a/home/versioned_docs/version-1.7.x/help/fullsite.md b/home/versioned_docs/version-1.7.x/help/fullsite.md new file mode 100644 index 00000000000..bad94c4b751 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/fullsite.md @@ -0,0 +1,34 @@ +--- +id: fullsite +title: Monitoring Full site +sidebar_label: Full site Monitor +keywords: [open source monitoring tool, open source website monitoring tool, monitoring sitemap metrics] +--- + +> Available or not to monitor all pages of the website. +> A website often has multiple pages provided by different services. We monitor the full site by collecting the SiteMap exposed by the website. +> Note⚠️ This monitoring requires your website to support SiteMap. We support SiteMap in XML and TXT formats. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| SiteMap | Relative path of website SiteMap address, eg:/sitemap.xml | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|------------------------------------------------------| +| url | none | URL path of web page | +| statusCode | none | Response HTTP status code for requesting the website | +| responseTime | ms | Website response time | +| errorMsg | none | Error message feedback after requesting the website | diff --git a/home/versioned_docs/version-1.7.x/help/grafana_dashboard.md b/home/versioned_docs/version-1.7.x/help/grafana_dashboard.md new file mode 100644 index 00000000000..680c65b06df --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/grafana_dashboard.md @@ -0,0 +1,78 @@ +--- +id: grafana_dashboard +title: Grafana Dashboard +sidebar_label: Grafana Historical Charts +keywords: [Grafana, Historical Dashboard] +--- + +> `Grafana` is an open source visualization and analytics platform that helps you easily create, share and monitor dashboards. In this article, we will cover how to use `Grafana` to display historical data in `HertzBeat`. + +### Prerequisites + +- We recommend using the latest version of Grafana. Earlier versions may not support the exposed API. +- The `Grafana` service is started and the account password is configured. +- The `HertzBeat` service is started and the `VictoriaMetrics` time-series database is configured (note: the `VictoriaMetrics` data source is required). + +:::caution Caution. +`Grafana` can only show historical data for `Prometheus` type of monitoring, currently it does not support monitoring data defined by `yml` in `HertzBeat`. +::: + +### Enable Grafana embedded features and configure anonymous authentication with role-based permissions + +ref: [https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/](https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/). +In the `Grafana` configuration file `grafana.ini`, set the configuration parameters. +Or run `Grafana` via `Docker`. + +Modify the following configuration parameters in the `Grafana` configuration file `grafana.ini`: + +```ini +[auth.proxy] +enabled = true + +[auth.anonymous] +enabled = true +org_role = Admin + +[users] +viewers_can_edit = true + +[security] +allow_embedding = true +``` + +Or run `Grafana` via `Docker` using the following command: + +```bash +docker run -d -p 3000:3000 --name=grafana \ + -v "$PWD/data:/var/lib/grafana" \ + -e "GF_AUTH_PROXY_ENABLED=true" \ + -e "GF_AUTH_ANONYMOUS_ENABLED=true" \ + -e "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" \ + -e "GF_USERS_VIEWERS_CAN_EDIT=true" \ + -e "GF_SECURITY_ALLOW_EMBEDDING=true" \ + grafana/grafana:latest +``` + +### Configuring Grafana in HertzBeat + +In the configuration file `application.yml` in `HertzBeat`, configure the `Grafana` data source. + +```yaml +grafana: + enabled: true + url: http://127.0.0.1:3000 + username: admin + password: admin +``` + +### Upload Grafana monitor template json file in HertzBeat monitor + +In `HertzBeat`, when creating or editing a `Prometheus` type monitor, click Enable Grafana Templates and select the Grafana template json file to upload. +The monitor template json file can be downloaded at [https://grafana.com/grafana/dashboards/](https://grafana.com/grafana/dashboards/). +For example, create a new monitor in `HertzBeat` for `VictoriaMetrics` single node, then open [https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/](https://grafana.com/grafana/dashboards/10229-victoriametrics-single-node/), click `Download JSON` button on the right side. `Download JSON` button on the right to download the template json file. Upload the template json file in the `HertzBeat` monitor, save it. + ![grafana-1.png](/img/docs/help/grafana-1.png) + +### View Grafana historical charts + +On the `HertzBeat` monitoring page, click the `Grafana` button, select `Grafana` Historical Charts, select a monitoring template, and click the `Query` button to view the `Grafana` historical charts. + ![grafana-2.png](/img/docs/help/grafana-2.png) diff --git a/home/versioned_docs/version-1.7.x/help/greenplum.md b/home/versioned_docs/version-1.7.x/help/greenplum.md new file mode 100644 index 00000000000..e05539ed8c1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/greenplum.md @@ -0,0 +1,55 @@ +--- +id: greenplum +title: Monitoring:GreenPlum database monitoring +sidebar_label: GreenPlum database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring greenplum database metrics] +--- + +> Collect and monitor the general performance Metrics of GreenPlum database. Support GreenPlum 6.23.0+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored Host address. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------------------------| +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the GreenPlum buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------------| +| running | connections | Number of current client connections | diff --git a/home/versioned_docs/version-1.7.x/help/guide.md b/home/versioned_docs/version-1.7.x/help/guide.md new file mode 100644 index 00000000000..190bcd42e5f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/guide.md @@ -0,0 +1,144 @@ +--- +id: guide +title: Help Center +sidebar_label: Help Center +--- + +> Hertzbeat - An open source, real-time monitoring tool with custom-monitor and agentLess. +> Help documents and auxiliary information during use + +## 🔬 Monitoring services + +> Regularly collect and monitor the performance Metrics exposed by end-to-end services, provide visual interfaces, and process data for alarm and other service scheduling. +> Planned monitoring type:application service, database, operating system, cloud native, open source middleware. + +### Application service monitoring + + 👉 [Website monitoring](website)
+ 👉 [HTTP API](api)
+ 👉 [PING Connectivity](ping)
+ 👉 [Port availability](port)
+ 👉 [Full site monitoring](fullsite)
+ 👉 [SSL Cert monitoring](ssl_cert)
+ 👉 [DNS monitoring](dns)
+ 👉 [FTP monitoring](ftp)
+ 👉 [Websocket monitoring](websocket)
+ 👉 [MQTT connection monitoring](mqtt)
+ +### Program monitoring + + 👉 [Process](process)
+ 👉 [JVM monitoring](jvm)
+ 👉 [SpringBoot2.0](springboot2)
+ 👉 [SpringBoot3.0](springboot3)
+ 👉 [DynamicTp](dynamic_tp)
+ +### Database monitoring + + 👉 [MYSQL database monitoring](mysql)
+ 👉 [MariaDB database monitoring](mariadb)
+ 👉 [PostgreSQL database monitoring](postgresql)
+ 👉 [SqlServer database monitoring](sqlserver)
+ 👉 [Oracle database monitoring](oracle)
+ 👉 [DM database monitoring](dm)
+ 👉 [OpenGauss database monitoring](opengauss)
+ 👉 [IoTDB database monitoring](iotdb)
+ 👉 [TiDB database monitoring](tidb)
+ 👉 [MongoDB database monitoring](mongodb)
+ 👉 [NebulaGraph cluster monitoring](nebulagraph_cluster)
+ +### Cache monitoring + + 👉 [Redis monitoring](redis)
+ 👉 [Memcached monitoring](memcached)
+ +### Operating system monitoring + + 👉 [Linux operating system monitoring](linux)
+ 👉 [Windows operating system monitoring](windows)
+ 👉 [Ubuntu operating system monitoring](ubuntu)
+ 👉 [Centos operating system monitoring](centos)
+ 👉 [FreeBSD operating system monitoring](freebsd)
+ 👉 [RedHat operating system monitoring](redhat)
+ 👉 [Rocky Linux operating system monitoring](rockylinux)
+ 👉 [EulerOS monitoring](euleros)
+ +### Middleware monitoring + + 👉 [Zookeeper](zookeeper)
+ 👉 [Kafka](kafka)
+ 👉 [Tomcat](tomcat)
+ 👉 [ShenYu](shenyu)
+ 👉 [DynamicTp](dynamic_tp)
+ 👉 [RabbitMQ](rabbitmq)
+ 👉 [ActiveMQ](activemq)
+ 👉 [Jetty](jetty)
+ 👉 [Nacos](nacos)
+ +### CloudNative monitoring + + 👉 [Docker](docker)
+ 👉 [Kubernetes](kubernetes)
+ +### Bigdata monitoring + + 👉 [Clickhouse](clickhouse)
+ 👉 [ElasticSearch](elasticsearch)
+ 👉 [Flink](flink)
+ +### Ai LLM monitoring + + 👉 [openai](openai)
+ +### Network monitoring + + 👉 [Huawei-switch](huawei_switch)
+ +### Server monitoring + +*** + +## 💡 Alarm service + +> More liberal threshold alarm configuration (calculation expression), supports email, SMS, WebHook, DingDing, WeChat and FeiShu for alarm notification. +> The positioning of alarm service is to trigger the threshold accurately and timely, and the alarm notification can be reached in time. + +### Alarm center + +> The triggered alarm information center provides query and filtering of alarm deletion, alarm processing, mark unprocessed, alarm level status, etc. + +More details see 👉 [Alarm center](alarm_center) + +### Alarm configuration + +> The Metric threshold configuration provides the Metric threshold configuration in the form of expression, which can set the alarm level, trigger times, alarm notification template and whether it is enabled, correlation monitoring and other functions. + +More details see 👉 [Threshold alarm](alert_threshold)
+   👉 [Threshold expression](alert_threshold_expr) + +### Alarm reduce + +> Combine related alarms through alarm grouping, alarm suppression and other functions to reduce the alarm storm caused by one event, reduce alarm noise and improve alarm response efficiency. + +More details see 👉 [Alarm grouping](alarm_group)
+   👉 [Alarm inhibit](alarm_inhibit) + +### Alarm notification + +> After triggering the alarm information, in addition to being displayed in the alarm center list, it can also be notified to the designated recipient in a specified way (e-mail, wechat and FeiShu etc.) +> Alarm notification provides different types of notification methods, such as email recipient, enterprise wechat robot notification, DingDing robot notification, and FeiShu robot notification. +> After setting the receiver, you need to set the associated alarm notification strategy to configure which alarm information is sent to which receiver. + + 👉 [Configure Email Notification](alert_email)
+ 👉 [Configure Discord Notification](alert_webhook)
+ 👉 [Configure Slack Notification](alert_webhook)
+ 👉 [Configure Telegram Notification](alert_webhook)
+ 👉 [Configure WebHook Notification](alert_webhook)
+ 👉 [Configure enterprise WeChat Robot Notification](alert_wework)
+ 👉 [Configure DingDing Robot Notification](alert_dingtalk)
+ 👉 [Configure FeiShu Robot Notification](alert_feishu)
+ 👉 [Configure Huawei Cloud SMN Notification](alert_smn)
+ +### Plugins + + 👉 [Plugin](plugin)
diff --git a/home/versioned_docs/version-1.7.x/help/hadoop.md b/home/versioned_docs/version-1.7.x/help/hadoop.md new file mode 100644 index 00000000000..751fedf8fb4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hadoop.md @@ -0,0 +1,89 @@ +--- +id: hadoop +title: Monitoring Hadoop +sidebar_label: Apache Hadoop +keywords: [Open Source Monitoring System, Open Source Java Monitoring, Hadoop JVM Monitoring] +--- + +> Collect and monitor general performance metrics for the JVM virtual machine in Hadoop. + +**Protocol used: JMX** + +### Pre-monitoring steps + +> You need to enable JMX service in the Hadoop application before monitoring. HertzBeat uses the JMX protocol to collect performance metrics from Hadoop's JVM. + +### Steps to enable JMX protocol in the Hadoop application + +Add JVM parameters when the application starts. ⚠️Note that you can customize the exposed port and external IP. + +- 1.Enter the hadoop-env.sh configuration file and enter the following command in the terminal: + +```shell +vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh +``` + +- 2.Add the following parameters, where `port` is the number of the custom-exposed port + +```shell +export HADOOP_OPTS= "$HADOOP_OPTS +-Djava.rmi.server.hostname=对外ip地址 +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false " +``` + +- 3.Save and exit, and then execute "start-all.sh" in the "$HADOOP_HOME/sbin" directory to restart the service. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-1.7.x/help/hbase_master.md b/home/versioned_docs/version-1.7.x/help/hbase_master.md new file mode 100644 index 00000000000..d30c8d4bdf7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hbase_master.md @@ -0,0 +1,59 @@ +--- +id: hbase_master +title: Monitoring Hbase Master +sidebar_label: HbaseMaster Monitoring +keywords: [Open Source Monitoring System, Open Source Database Monitoring, HbaseMaster Monitoring] +--- + +> Collect monitoring data for general performance metrics of Hbase Master. + +**Protocol: HTTP** + +## Pre-monitoring steps + +Check the `hbase-site.xml` file to obtain the value of the `hbase.master.info.port` configuration item, which is used for monitoring. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). | +| Port | The port number of the Hbase master, default is 16010. That is, the value of the`hbase.master.info.port` parameter. | +| Task Name | The name identifying this monitoring, which needs to be unique. | +| Query Timeout | Set the connection timeout in ms, the default is 3000 milliseconds. | +| Collection Interval | The periodic collection interval for monitoring data, in seconds, with the minimum allowable interval being 30 seconds. | +| Probe | Whether to probe and check the availability of monitoring before adding new monitoring, and proceed with the addition or modification operation only if the probe is successful. | +| Description | Additional notes and descriptions for this monitoring, users can add notes here. | + +### Collected Metrics + +#### Metric Set: server + +| Metric Name | Unit | Metric Description | +|----------------------|------|-----------------------------------------| +| numRegionServers | none | Number of currently alive RegionServers | +| numDeadRegionServers | none | Number of currently dead RegionServers | +| averageLoad | none | Cluster average load | +| clusterRequests | none | Total number of cluster requests | + +#### Metric Set: Rit + +| Metric Name | Unit | Metric Description | +|----------------------|------|----------------------------------| +| ritnone | none | Current number of RIT | +| ritnoneOverThreshold | none | Number of RIT over the threshold | +| ritOldestAge | ms | Duration of the oldest RIT | + +#### Metric Set: basic + +| Metric Name | Unit | Metric Description | +|-------------------------|------|---------------------------------------------| +| liveRegionServers | none | List of currently active RegionServers | +| deadRegionServers | none | List of currently offline RegionServers | +| zookeeperQuorum | none | Zookeeper list | +| masterHostName | none | Master node | +| BalancerCluster_num_ops | none | Number of cluster load balancing operations | +| numActiveHandler | none | Number of RPC handlers | +| receivedBytes | MB | Cluster received data volume | +| sentBytes | MB | Cluster sent data volume (MB) | +| clusterRequests | none | Total number of cluster requests | diff --git a/home/versioned_docs/version-1.7.x/help/hbase_regionserver.md b/home/versioned_docs/version-1.7.x/help/hbase_regionserver.md new file mode 100644 index 00000000000..a2940b9048c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hbase_regionserver.md @@ -0,0 +1,93 @@ +--- +id: hbase_regionserver +title: Monitoring HBase RegionServer Monitoring +sidebar_label: HBase RegionServer Monitoring +keywords: [Open-source monitoring system, Open-source database monitoring, RegionServer monitoring] +--- + +> Collect and monitor common performance metrics for HBase RegionServer. + +**Protocol:** HTTP + +## Pre-Monitoring Operations + +Review the `hbase-site.xml` file to obtain the value of the `hbase.regionserver.info.port` configuration item, which is used for monitoring. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IPV4, IPV6, or domain name of the monitored entity. Note ⚠️ Do not include the protocol header (e.g., https://, http://). | +| Port | The port number of the HBase regionserver, default is 16030, i.e., the value of the`hbase.regionserver.info.port` parameter | +| Task Name | A unique name to identify this monitoring task. | +| Query Timeout | Set the connection timeout in ms, the default is 3000 milliseconds. | +| Collection Interval | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Probe Before Adding | Whether to probe and check the availability of monitoring before adding new monitoring, only proceed with the addition if the probe is successful. | +| Description Note | Additional notes to identify and describe this monitoring, users can add notes here. | + +### Collection Metrics + +> All metric names are directly referenced from the official fields, hence there may be non-standard naming. + +#### Metric Set: server + +| Metric Name | Unit | Metric Description | +|-----------------------------------|-------|---------------------------------------------------------------------------| +| regionCount | None | Number of Regions | +| readRequestCount | None | Number of read requests since cluster restart | +| writeRequestCount | None | Number of write requests since cluster restart | +| averageRegionSize | MB | Average size of a Region | +| totalRequestCount | None | Total number of requests | +| ScanTime_num_ops | None | Total number of Scan requests | +| Append_num_ops | None | Total number of Append requests | +| Increment_num_ops | None | Total number of Increment requests | +| Get_num_ops | None | Total number of Get requests | +| Delete_num_ops | None | Total number of Delete requests | +| Put_num_ops | None | Total number of Put requests | +| ScanTime_mean | None | Average time of a Scan request | +| ScanTime_min | None | Minimum time of a Scan request | +| ScanTime_max | None | Maximum time of a Scan request | +| ScanSize_mean | bytes | Average size of a Scan request | +| ScanSize_min | None | Minimum size of a Scan request | +| ScanSize_max | None | Maximum size of a Scan request | +| slowPutCount | None | Number of slow Put operations | +| slowGetCount | None | Number of slow Get operations | +| slowAppendCount | None | Number of slow Append operations | +| slowIncrementCount | None | Number of slow Increment operations | +| slowDeleteCount | None | Number of slow Delete operations | +| blockCacheSize | None | Size of memory used by block cache | +| blockCacheCount | None | Number of blocks in Block Cache | +| blockCacheExpressHitPercent | None | Block cache hit ratio | +| memStoreSize | None | Size of Memstore | +| FlushTime_num_ops | None | Number of RS writes to disk/Memstore flushes | +| flushQueueLength | None | Length of Region Flush queue | +| flushedCellsSize | None | Size flushed to disk | +| storeFileCount | None | Number of Storefiles | +| storeCount | None | Number of Stores | +| storeFileSize | None | Size of Storefiles | +| compactionQueueLength | None | Length of Compaction queue | +| percentFilesLocal | None | Percentage of HFile in local HDFS Data Node | +| percentFilesLocalSecondaryRegions | None | Percentage of HFile for secondary region replicas in local HDFS Data Node | +| hlogFileCount | None | Number of WAL files | +| hlogFileSize | None | Size of WAL files | + +#### Metric Set: IPC + +| Metric Name | Unit | Metric Description | +|---------------------------|------|----------------------------------------| +| numActiveHandler | None | Current number of RITs | +| NotServingRegionException | None | Number of RITs exceeding the threshold | +| RegionMovedException | ms | Duration of the oldest RIT | +| RegionTooBusyException | ms | Duration of the oldest RIT | + +#### Metric Set: JVM + +| Metric Name | Unit | Metric Description | +|----------------------|------|-----------------------------------| +| MemNonHeapUsedM | None | Current active RegionServer list | +| MemNonHeapCommittedM | None | Current offline RegionServer list | +| MemHeapUsedM | None | Zookeeper list | +| MemHeapCommittedM | None | Master node | +| MemHeapMaxM | None | Cluster balance load times | +| MemMaxM | None | RPC handle count | +| GcCount | MB | Cluster data reception volume | diff --git a/home/versioned_docs/version-1.7.x/help/hdfs_datanode.md b/home/versioned_docs/version-1.7.x/help/hdfs_datanode.md new file mode 100644 index 00000000000..68e1c4a38de --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hdfs_datanode.md @@ -0,0 +1,56 @@ +--- +id: hdfs_datanode +title: Monitoring Apache HDFS DataNode Monitoring +sidebar_label: Apache HDFS DataNode +keywords: [big data monitoring system, distributed file system monitoring, Apache HDFS DataNode monitoring] +--- + +> Hertzbeat monitors metrics for Apache HDFS DataNode nodes. + +**Protocol Used: HTTP** + +## Pre-monitoring Operations + +Retrieve the HTTP monitoring port for the Apache HDFS DataNode. Value: `dfs.datanode.http.address` + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|-----------------------------|-------------------------------------------------------------------------------------------| +| Target Host | IP(v4 or v6) or domain name of the target to be monitored. Exclude protocol. | +| Port | Monitoring port number for Apache HDFS DataNode, default is 50075. | +| Query Timeout | Timeout for querying Apache HDFS DataNode, in milliseconds, default is 6000 milliseconds. | +| Metrics Collection Interval | Time interval for monitoring data collection, in seconds, minimum interval is 30 seconds. | +| Probe Before Monitoring | Whether to probe and check monitoring availability before adding. | +| Description/Remarks | Additional description and remarks for this monitoring. | + +### Metrics Collected + +#### Metric Set: FSDatasetState + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|----------------------------------| +| DfsUsed | GB | DataNode HDFS usage | +| Remaining | GB | Remaining space on DataNode HDFS | +| Capacity | GB | Total capacity of DataNode HDFS | + +#### Metric Set: JvmMetrics + +| Metric Name | Metric Unit | Metric Description | +|----------------------|-------------|---------------------------------------------------| +| MemNonHeapUsedM | MB | Current usage of NonHeapMemory by JVM | +| MemNonHeapCommittedM | MB | Committed size of NonHeapMemory configured in JVM | +| MemHeapUsedM | MB | Current usage of HeapMemory by JVM | +| MemHeapCommittedM | MB | Committed size of HeapMemory by JVM | +| MemHeapMaxM | MB | Maximum size of HeapMemory configured in JVM | +| MemMaxM | MB | Maximum memory available for JVM at runtime | +| ThreadsRunnable | Count | Number of threads in RUNNABLE state | +| ThreadsBlocked | Count | Number of threads in BLOCKED state | +| ThreadsWaiting | Count | Number of threads in WAITING state | +| ThreadsTimedWaiting | Count | Number of threads in TIMED WAITING state | + +#### Metric Set: runtime + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| StartTime | | Startup time | diff --git a/home/versioned_docs/version-1.7.x/help/hdfs_namenode.md b/home/versioned_docs/version-1.7.x/help/hdfs_namenode.md new file mode 100644 index 00000000000..975c2e5d935 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hdfs_namenode.md @@ -0,0 +1,92 @@ +--- +id: hdfs_namenode +title: Monitoring HDFS NameNode Monitoring +sidebar_label: Apache HDFS NameNode +keywords: [big data monitoring system, distributed file system monitoring, HDFS NameNode monitoring] +--- + +> Hertzbeat monitors metrics for HDFS NameNode nodes. + +**Protocol Used: HTTP** + +## Pre-Monitoring Actions + +Ensure that you have obtained the JMX monitoring port for the HDFS NameNode. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|-----------------------------|-------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the target being monitored. Exclude protocol headers. | +| Port | The monitoring port number of the HDFS NameNode, default is 50070. | +| Query Timeout | Timeout for querying the HDFS NameNode, in milliseconds, default is 6000 milliseconds. | +| Metrics Collection Interval | Time interval for collecting monitoring data, in seconds, minimum interval is 30 seconds. | +| Probe Before Monitoring | Whether to probe and check the availability of monitoring before adding it. | +| Description/Remarks | Additional description and remarks for this monitoring. | + +### Collected Metrics + +#### Metric Set: FSNamesystem + +| Metric Name | Metric Unit | Metric Description | +|---------------------------------|-------------|------------------------------------------------------------| +| CapacityTotal | | Total cluster storage capacity | +| CapacityTotalGB | GB | Total cluster storage capacity | +| CapacityUsed | | Used cluster storage capacity | +| CapacityUsedGB | GB | Used cluster storage capacity | +| CapacityRemaining | | Remaining cluster storage capacity | +| CapacityRemainingGB | GB | Remaining cluster storage capacity | +| CapacityUsedNonDFS | | Non-HDFS usage of cluster capacity | +| TotalLoad | | Total client connections in the cluster | +| FilesTotal | | Total number of files in the cluster | +| BlocksTotal | | Total number of BLOCKs | +| PendingReplicationBlocks | | Number of blocks awaiting replication | +| UnderReplicatedBlocks | | Number of blocks with insufficient replicas | +| CorruptBlocks | | Number of corrupt blocks | +| ScheduledReplicationBlocks | | Number of blocks scheduled for replication | +| PendingDeletionBlocks | | Number of blocks awaiting deletion | +| ExcessBlocks | | Number of excess blocks | +| PostponedMisreplicatedBlocks | | Number of misreplicated blocks postponed for processing | +| NumLiveDataNodes | | Number of live data nodes in the cluster | +| NumDeadDataNodes | | Number of data nodes marked as dead | +| NumDecomLiveDataNodes | | Number of decommissioned live nodes | +| NumDecomDeadDataNodes | | Number of decommissioned dead nodes | +| NumDecommissioningDataNodes | | Number of nodes currently being decommissioned | +| TransactionsSinceLastCheckpoint | | Number of transactions since the last checkpoint | +| LastCheckpointTime | | Time of the last checkpoint | +| PendingDataNodeMessageCount | | Number of DATANODE requests queued in the standby namenode | + +#### Metric Set: RPC + +| Metric Name | Metric Unit | Metric Description | +|--------------------|-------------|---------------------| +| ReceivedBytes | | Data receiving rate | +| SentBytes | | Data sending rate | +| RpcQueueTimeNumOps | | RPC call rate | + +#### Metric Set: runtime + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| StartTime | | Start time | + +#### Metric Set: JvmMetrics + +| Metric Name | Metric Unit | Metric Description | +|---------------------------------|--------------|------------------------------------------| +| MemNonHeapUsedM | MB | Current usage of NonHeapMemory by JVM | +| MemNonHeapCommittedM | MB | Committed NonHeapMemory by JVM | +| MemHeapUsedM | MB | Current usage of HeapMemory by JVM | +| MemHeapCommittedM | MB | Committed HeapMemory by JVM | +| MemHeapMaxM | MB | Maximum HeapMemory configured for JVM | +| MemMaxM | MB | Maximum memory that can be used by JVM | +| GcCountParNew | Count | Number of ParNew GC events | +| GcTimeMillisParNew | Milliseconds | Time spent in ParNew GC | +| GcCountConcurrentMarkSweep | Count | Number of ConcurrentMarkSweep GC events | +| GcTimeMillisConcurrentMarkSweep | Milliseconds | Time spent in ConcurrentMarkSweep GC | +| GcCount | Count | Total number of GC events | +| GcTimeMillis | Milliseconds | Total time spent in GC events | +| ThreadsRunnable | Count | Number of threads in RUNNABLE state | +| ThreadsBlocked | Count | Number of threads in BLOCKED state | +| ThreadsWaiting | Count | Number of threads in WAITING state | +| ThreadsTimedWaiting | Count | Number of threads in TIMED WAITING state | diff --git a/home/versioned_docs/version-1.7.x/help/hikvision_isapi.md b/home/versioned_docs/version-1.7.x/help/hikvision_isapi.md new file mode 100644 index 00000000000..21454caf595 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hikvision_isapi.md @@ -0,0 +1,60 @@ +--- +id: hikvision_isapi +title: Monitor Hikvision ISAPI +sidebar_label: Hikvision ISAPI +keywords: [ monitor, hikvision_isapi ] +--- + +> Monitor Hikvision devices through ISAPI interface to collect health data. + +## Monitor Configuration + +| Parameter | Description | +| ----------- | ----------- | +| Host | The IP or domain name of the monitored device. Note⚠️ Do not include protocol prefix (eg: https://, http://). | +| Name | The unique name that identifies this monitor. | +| Port | Network request port, default is 80. | +| Timeout | Timeout period, in milliseconds, default is 5000ms. | +| Username | Login username for Hikvision device. | +| Password | Login password for Hikvision device. | +| SSL | Whether to enable HTTPS, disabled by default. | +| Collection Interval | The interval time for periodic data collection, in seconds. The minimum interval is 30 seconds. | + +## Metrics + +### System Info + +- Device Name +- Device ID +- Firmware Version +- Device Model +- Mac Address + +### Status + +- CPU Utilization (%) +- Memory Usage (MB) +- Memory Available (MB) +- Cache Size (MB) +- Net Port 1 Speed (Mbps) +- Net Port 2 Speed (Mbps) +- Boot Time +- Device Uptime +- Last Calibration Time +- Last Calibration Time Diff (s) +- Avg Upload Time (ms) +- Max Upload Time (ms) +- Min Upload Time (ms) +- Last Calibration Mode +- Last Calibration Address +- Response Time (ms) + +## Implementation Principle + +The monitoring is implemented by accessing the Hikvision device's ISAPI interface: + +1. Collect system information through: `/ISAPI/System/deviceInfo` + +2. Collect device status through: `/ISAPI/System/status` + +It uses HTTP protocol with Digest Authentication to access the interfaces and parses XML response data to extract monitoring metrics. diff --git a/home/versioned_docs/version-1.7.x/help/hive.md b/home/versioned_docs/version-1.7.x/help/hive.md new file mode 100644 index 00000000000..34e8b53ca33 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hive.md @@ -0,0 +1,76 @@ +--- +id: hive +Title: Monitoring Apache Hive +sidebar_label: Apache Hive +keywords: [open source monitoring tool, open source apache hive monitoring tool, monitoring apache hive metrics] +--- + +> Collect and monitor the general performance metrics exposed by the Apache Hive. + +## Pre-monitoring operations + +If you want to monitor information in `Apache Hive` with this monitoring type, you need to open your `Hive Server2` in remoting mode. + +**1、Enable metastore:** + +```shell +hive --service metastore & +``` + +**2. Enable hive server2:** + +```shell +hive --service hiveserver2 & +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| Port | The default port provided by the database is 10002. | +| Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | +| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric Collection: basic + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-----------------------------------------------------------| +| vm_name | None | The name of the virtual machine (VM) running HiveServer2. | +| vm_vendor | None | The vendor or provider of the virtual machine. | +| vm_version | None | The version of the virtual machine. | +| up_time | None | The duration for which HiveServer2 has been running. | + +#### metric Collection: enviroment + +| Metric Name | metric unit | Metrics help describe | +|----------------------|-------------|-------------------------------------------------------------------| +| https_proxyPort | None | The port number used for HTTPS proxy communication. | +| os_name | None | The name of the operating system on which HiveServer2 is running. | +| os_version | None | The version of the operating system. | +| os_arch | None | The architecture of the operating system. | +| java_runtime_name | None | The name of the Java runtime environment used by HiveServer2. | +| java_runtime_version | None | The version of the Java runtime environment. | + +#### metric Collection: thread + +| Metric Name | metric unit | Metrics help describe | +|----------------------|-------------|----------------------------------------------------------------------| +| thread_count | None | The current number of threads being used by HiveServer2. | +| total_started_thread | None | The total count of threads started by HiveServer2 since its launch. | +| peak_thread_count | None | The highest number of threads used by HiveServer2 at any given time. | +| daemon_thread_count | None | The number of daemon threads currently active in HiveServer2. | + +#### metric Collection: code_cache + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-------------------------------------------------------------------------| +| committed | MB | The amount of memory currently allocated for the memory pool. | +| init | MB | The initial amount of memory requested for the memory pool. | +| max | MB | The maximum amount of memory that can be allocated for the memory pool. | +| used | MB | The amount of memory currently being used by the memory pool. | diff --git a/home/versioned_docs/version-1.7.x/help/http_sd.md b/home/versioned_docs/version-1.7.x/help/http_sd.md new file mode 100644 index 00000000000..fd29acd77d1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/http_sd.md @@ -0,0 +1,228 @@ +--- +id: http_sd +title: Monitoring HTTP Service Discovery +sidebar_label: HTTP Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring HTTP service discovery] +--- + +> HertzBeat integrates with custom HTTP APIs to automatically discover service instances and create monitoring tasks for them. + +### Overview + +HTTP Service Discovery allows HertzBeat to discover service instances by calling your custom HTTP API. This is the most flexible service discovery method, suitable for any system that can expose service instance information via HTTP API. You only need to provide an HTTP endpoint that returns a list of target addresses in the specified format. + +### PreRequisites + +#### Prepare HTTP API + +You need to provide or develop an HTTP API that meets the following requirements: + +1. **HTTP Method**: Support GET requests +2. **Response Format**: Return JSON format data +3. **Response Structure**: Must contain a `targets` field, which is a string array. Each string is a service instance address in the format `host:port` +4. **Accessibility**: The API must be accessible from HertzBeat + +#### API Response Example + +```json +{ + "targets": [ + "192.168.1.101:8080", + "192.168.1.102:8080", + "192.168.1.103:8080", + "api.example.com:443" + ] +} +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique. | +| Service Discovery Url | HTTP API address for service discovery. Must start with http:// or https://. Example: `http://api.example.com/services` | +| Auth Type | Authentication method, optional values: `Bearer Token`, `Basic Auth`, `Digest Auth`. Default: None | +| Access Token | Token for authentication when Auth Type is Bearer Token. | +| Username | Username for authentication when Auth Type is Basic Auth or Digest Auth. | +| Password | Password for authentication when Auth Type is Basic Auth or Digest Auth. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Usage Steps + +1. **Prepare HTTP API** + - Develop or configure an API endpoint that returns service instance list + - Ensure the API returns JSON data in the correct format + - Test the API accessibility and response format + +2. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **HTTP Service Discovery** + - Fill in the basic configuration parameters + - Configure authentication information if needed + +3. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - Common template types: Port, HTTP, HTTPS, Ping, etc. + +4. **Automatic Discovery** + - HertzBeat will periodically call your HTTP API based on the collection interval + - Automatically create monitoring tasks for newly discovered service instances + - Automatically delete monitoring tasks for disappeared service instances + +### Example of usage + +#### Example 1: API Without Authentication + +Suppose you have a service management API: + +- **API URL**: `http://service-manager.example.com/api/v1/services` +- **Response**: + + ```json + { + "targets": [ + "10.0.1.10:8080", + "10.0.1.11:8080", + "10.0.1.12:8080" + ] + } + ``` + +Configuration example: + +- **Target Name**: `HTTP-Service-Discovery` +- **Service Discovery Url**: `http://service-manager.example.com/api/v1/services` +- **Auth Type**: Leave empty (no authentication) +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring + +#### Example 2: API With Bearer Token Authentication + +If your API requires Bearer Token authentication: + +- **API URL**: `https://api.example.com/services` +- **Auth Type**: `Bearer Token` +- **Access Token**: `your-bearer-token-here` + +Configuration example: + +- **Target Name**: `Secure-API-Discovery` +- **Service Discovery Url**: `https://api.example.com/services` +- **Auth Type**: Select `Bearer Token` +- **Access Token**: Enter your token +- **Monitoring Template**: Select `HTTP` monitoring + +#### Example 3: API With Basic Authentication + +If your API requires Basic authentication: + +- **API URL**: `http://api.internal.com/discover` +- **Auth Type**: `Basic Auth` +- **Username**: `admin` +- **Password**: `password123` + +Configuration example: + +- **Target Name**: `Basic-Auth-Discovery` +- **Service Discovery Url**: `http://api.internal.com/discover` +- **Auth Type**: Select `Basic Auth` +- **Username**: `admin` +- **Password**: `password123` +- **Monitoring Template**: Select appropriate template + +### Notes + +- **Response Format**: The API response must be in JSON format and contain a `targets` field (string array) +- **Address Format**: Each target address should be in the format `host:port`, for example: + - `192.168.1.100:8080` + - `api.example.com:443` + - `localhost:3000` +- **Network Connectivity**: Ensure HertzBeat can access the HTTP API address +- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Set a reasonable collection interval based on API performance and service change frequency +- **Authentication**: Choose the appropriate authentication method according to your API security requirements +- **HTTPS**: If using HTTPS, ensure SSL certificates are properly configured +- **API Performance**: Ensure the API can respond quickly to avoid affecting HertzBeat performance +- **Error Handling**: If the API returns an error or invalid format, HertzBeat will keep the current monitoring tasks unchanged + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Custom Registry**: Integrate with your own service registry system +- **Cloud Platform**: Discover services from cloud platforms (AWS, GCP, Azure) +- **CMDB**: Integrate with CMDB systems to obtain service information +- **Service Gateway**: Discover service instances through API gateway +- **Container Platforms**: Obtain service lists from Kubernetes API or container orchestration platforms +- **Service Management Systems**: Integrate with existing service management platforms +- **Multi-Cloud Environments**: Unify service discovery across different cloud platforms + +### Advanced Usage + +#### Response with Additional Metadata + +While the basic requirement is just the `targets` field, your API can include additional metadata for future extensions: + +```json +{ + "targets": [ + "192.168.1.10:8080" + ], + "labels": { + "env": "production", + "version": "1.0.0" + } +} +``` + +Note: Currently, only the `targets` field is used for service discovery, but future versions may support using label information. + +### API Implementation Examples + +#### Spring Boot Example + +```java +@RestController +@RequestMapping("/api/v1") +public class ServiceDiscoveryController { + + @GetMapping("/services") + public Map getServices() { + List`` targets = Arrays.asList( + "192.168.1.10:8080", + "192.168.1.11:8080", + "192.168.1.12:8080" + ); + + Map response = new HashMap<>(); + response.put("targets", targets); + return response; + } +} +``` + +#### Node.js Express Example + +```javascript +app.get('/api/services', (req, res) => { + const targets = [ + '192.168.1.10:8080', + '192.168.1.11:8080', + '192.168.1.12:8080' + ]; + + res.json({ + targets: targets + }); +}); +``` diff --git a/home/versioned_docs/version-1.7.x/help/huawei_switch.md b/home/versioned_docs/version-1.7.x/help/huawei_switch.md new file mode 100644 index 00000000000..6bc99169bce --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/huawei_switch.md @@ -0,0 +1,53 @@ +--- +id: huawei_switch +title: Monitoring:Huawei switch +sidebar_label: Huawei switch +keywords: [ open source monitoring tool, network monitoring, Huawei switch ] +--- + +> Collect and monitor the general indicators (availability, system information, port traffic, etc.) of Huawei switches. + +**Protocol Use: SNMP** + +### Configuration parameter + +| Parameter name | Parameter help description | +|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Task Name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port of SNMP. The default is 161 | +| SNMP Version | SNMP version to use | +| SNMP Community | Used in SNMP v1 and SNMP v2c, used to complete authentication in SNMP Agent, in string form. Group name includes "read" and "write", when performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. When performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. | +| SNMP username | For SNMP v3, MSG username | +| SNMP contextName | For SNMP v3, used to determine the MIB view of the Context EngineID to the managed device | +| SNMP authPassword | For SNMP v3, SNMP authentication passwords | +| authPassword Encryption | For SNMP v3, SNMP authentication algorithm | +| SNMP privPassphrase | For SNMP v3, SNMP encrypted passwords | +| privPassword Encryption | For SNMP v3, SNMP encrypted algorithm | +| Timeout | Set the timeout time when querying unresponsive data, in milliseconds, the default is 6000 milliseconds | +| Intervals | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Description | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +Since there are too many metrics that can be queried on Huawei switches, detailed metrics can be queried +on [Huawei MIB Query Platform](https://info.support.huawei.com/info-finder/tool/en/enterprise/mib). + +This document only introduces the monitoring indicators queried in the monitor template. + +#### Metric set: huawei_core + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ifIndex | none | Interface index. This value is greater than zero and globally unique. | +| ifDescr | none | A textual string containing information about the interface. This string should include the name of the manufacturer, the product name and the version of the interface hardware/software. | +| ifMtu | octets | The size of the largest packet which can be sent/received on the interface. For interfaces that are used for transmitting network datagrams, this is the size of the largest network datagram that can be sent on the interface. | +| ifSpeed | bit/s | An estimate of the interface's current bandwidth. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. If the bandwidth of the interface is greater than the maximum value reportable by this object then this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interace's speed. For a sub-layer which has no concept of bandwidth, this object should be zero. | +| ifInOctets | octets | The total number of octets received on the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifInDiscards | none | The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifInErrors | none | For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifOutOctets | octets | The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifOutDiscards | none | The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifOutErrors | none | For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. | +| ifAdminStatus | none | The desired state of the interface. The testing(3) state indicates that no operational packets can be passed. When a managed system initializes, all interfaces start with ifAdminStatus in the down(2) state. As a result of either explicit management action or per configuration information retained by the managed system, ifAdminStatus is then changed to either the up(1) or testing(3) states (or remains in the down(2) state). | +| ifOperStatus | none | The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed. If ifAdminStatus is down(2) then ifOperStatus should be down(2). If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic; it should change to dormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection); it should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state; it should remain in the notPresent(6) state if the interface has missing (typically, hardware) components. | diff --git a/home/versioned_docs/version-1.7.x/help/hugegraph.md b/home/versioned_docs/version-1.7.x/help/hugegraph.md new file mode 100644 index 00000000000..90334a4bc03 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/hugegraph.md @@ -0,0 +1,140 @@ +--- +id: hugegraph +title: Monitoring HugeGraph Monitoring +sidebar_label: Apache HugeGraph +keywords: [Open Source Monitoring System, Open Source Database Monitoring, HugeGraph Monitoring] +--- + +> Collect and monitor the general performance metrics of HugeGraph + +**Protocol used: HTTP** + +## Pre-monitoring Operations + +Check the `rest-server.properties` file to obtain the value of the `restserver_port` configuration item, which is used for monitoring. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored endpoint. Note ⚠️ Do not include protocol headers (eg: https://, http://). | +| Port | Port number of the HugeGraph restserver, default is 8080. i.e., the value of the `restserver_port` parameter | +| Enable SSL | Enable SSL usage | +| Base Path | Base path, default is: /metrics, usually does not need to be modified | +| Task Name | Identifies the name of this monitoring, ensuring uniqueness. | +| Collection Interval | Interval for periodically collecting data for monitoring, in seconds, with a minimum interval of 30 seconds | +| Probe Enabled | Whether to probe before adding new monitoring, only continue with add/modify operations if the probe is successful | +| Description | Additional identification and description of this monitoring, users can add information here | + +### Metrics Collection + +#### Metric Set: gauges + +| Metric Name | Metric Unit | Metric Description | +|--------------------------------|-------------|----------------------------------------------------------------| +| edge-hugegraph-capacity | NONE | Indicates the capacity limit of edges in the current graph | +| edge-hugegraph-expire | NONE | Indicates the expiration time of edge data | +| edge-hugegraph-hits | NONE | Indicates the number of hits in the edge data cache | +| edge-hugegraph-miss | NONE | Indicates the number of misses in the edge data cache | +| edge-hugegraph-size | NONE | Indicates the number of edges in the current graph | +| instances | NONE | Indicates the number of currently running HugeGraph instances | +| schema-id-hugegraph-capacity | NONE | Indicates the capacity limit of schema IDs in the graph | +| schema-id-hugegraph-expire | NONE | Indicates the expiration time of schema ID data | +| schema-id-hugegraph-hits | NONE | Indicates the number of hits in the schema ID data cache | +| schema-id-hugegraph-miss | NONE | Indicates the number of misses in the schema ID data cache | +| schema-id-hugegraph-size | NONE | Indicates the number of schema IDs in the current graph | +| schema-name-hugegraph-capacity | NONE | Indicates the capacity limit of schema names in the graph | +| schema-name-hugegraph-expire | NONE | Indicates the expiration time of schema name data | +| schema-name-hugegraph-hits | NONE | Indicates the number of hits in the schema name data cache | +| schema-name-hugegraph-miss | NONE | Indicates the number of misses in the schema name data cache | +| schema-name-hugegraph-size | NONE | Indicates the number of schema names in the current graph | +| token-hugegraph-capacity | NONE | Indicates the capacity limit of tokens in the graph | +| token-hugegraph-expire | NONE | Indicates the expiration time of token data | +| token-hugegraph-hits | NONE | Indicates the number of hits in the token data cache | +| token-hugegraph-miss | NONE | Indicates the number of misses in the token data cache | +| token-hugegraph-size | NONE | Indicates the number of tokens in the current graph | +| users-hugegraph-capacity | NONE | Indicates the capacity limit of users in the graph | +| users-hugegraph-expire | NONE | Indicates the expiration time of user data | +| users-hugegraph-hits | NONE | Indicates the number of hits in the user data cache | +| users-hugegraph-miss | NONE | Indicates the number of misses in the user data cache | +| users-hugegraph-size | NONE | Indicates the number of users in the current graph | +| users_pwd-hugegraph-capacity | NONE | Indicates the capacity limit of user passwords | +| users_pwd-hugegraph-expire | NONE | Indicates the expiration time of user password data | +| users_pwd-hugegraph-hits | NONE | Indicates the number of hits in the user password data cache | +| users_pwd-hugegraph-miss | NONE | Indicates the number of misses in the user password data cache | +| users_pwd-hugegraph-size | NONE | Indicates the number of user passwords in the current graph | +| vertex-hugegraph-capacity | NONE | Indicates the capacity limit of vertices in the graph | +| vertex-hugegraph-expire | NONE | Indicates the expiration time of vertex data | +| vertex-hugegraph-hits | NONE | Indicates the number of hits in the vertex data cache | +| vertex-hugegraph-miss | NONE | Indicates the number of misses in the vertex data cache | +| vertex-hugegraph-size | NONE | Indicates the number of vertices in the current graph | +| batch-write-threads | NONE | Indicates the number of threads for batch write operations | +| max-write-threads | NONE | Indicates the maximum number of threads for write operations | +| pending-tasks | NONE | Indicates the number of pending tasks | +| workers | NONE | Indicates the current number of worker threads | +| average-load-penalty | NONE | Indicates the average load penalty | +| estimated-size | NONE | Indicates the estimated data size | +| eviction-count | NONE | Indicates the number of evicted data entries | +| eviction-weight | NONE | Indicates the weight of evicted data | +| hit-count | NONE | Indicates the total cache hits | +| hit-rate | NONE | Indicates the cache hit rate | +| load-count | NONE | Indicates the number of data loads | +| load-failure-count | NONE | Indicates the number of data load failures | +| load-failure-rate | NONE | Indicates the data load failure rate | +| load-success-count | NONE | Indicates the number of successful data loads | +| long-run-compilation-count | NONE | Indicates the number of long-running compilations | +| miss-count | NONE | Indicates the total cache misses | +| miss-rate | NONE | Indicates the cache miss rate | +| request-count | NONE | Indicates the total request count | +| total-load-time | NONE | Indicates the total data load time | +| sessions | NONE | Indicates the current number of active sessions | + +#### Metric Set: counters + +| Metric Name | Metric Unit | Metric Description | +|-----------------------------------------------------|-------------|--------------------------------------------------------------------------------| +| GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests | +| GET-TOTAL_COUNTER | NONE | Records the total number of GET requests | +| favicon-ico-GET-FAILED_COUNTER | NONE | Records the number of failed GET requests to retrieve favicon.ico | +| favicon-ico-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve favicon.ico | +| graphs-HEAD-FAILED_COUNTER | NONE | Records the number of failed HEAD requests for graphs resources | +| graphs-HEAD-SUCCESS_COUNTER | NONE | Records the number of successful HEAD requests for graphs resources | +| graphs-HEAD-TOTAL_COUNTER | NONE | Records the total number of HEAD requests for graphs resources | +| graphs-hugegraph-graph-vertices-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests for vertices in HugeGraph graphs | +| graphs-hugegraph-graph-vertices-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests for vertices in HugeGraph graphs | +| metrics-GET-FAILED_COUNTER | NONE | Records the number of failed GET requests to retrieve metrics | +| metrics-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics | +| metrics-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests to retrieve metrics | +| metrics-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics | +| metrics-gauges-GET-SUCCESS_COUNTER | NONE | Records the number of successful GET requests to retrieve metrics gauges | +| metrics-gauges-GET-TOTAL_COUNTER | NONE | Records the total number of GET requests to retrieve metrics gauges | + +#### Metric Set: system + +| Metric Name | Metric Unit | Metric Description | +|---------------------------------------------|-------------|---------------------------------------------------------------------------------------------------------| +| mem | NONE | Indicates the total memory of the system | +| mem_total | NONE | Indicates the total memory of the system (same as mem) | +| mem_used | NONE | Indicates the currently used memory of the system | +| mem_free | NONE | Indicates the free memory of the system | +| mem_unit | NONE | Indicates the unit of memory (such as bytes, kilobytes, megabytes, etc.) | +| processors | NONE | Indicates the number of processors in the system | +| uptime | NONE | Indicates the system uptime, i.e., the time since booting | +| systemload_average | NONE | Indicates the average system load, reflecting the system's busyness | +| heap_committed | NONE | Indicates the committed size of JVM heap memory, i.e., the guaranteed heap memory size available to JVM | +| heap_init | NONE | Indicates the initial size of JVM heap memory | +| heap_used | NONE | Indicates the currently used JVM heap memory size | +| heap_max | NONE | Indicates the maximum available size of JVM heap memory | +| nonheap_committed | NONE | Indicates the committed size of JVM non-heap memory | +| nonheap_init | NONE | Indicates the initial size of JVM non-heap memory | +| nonheap_used | NONE | Indicates the currently used JVM non-heap memory size | +| nonheap_max | NONE | Indicates the maximum available size of JVM non-heap memory | +| thread_peak | NONE | Indicates the peak number of threads since JVM startup | +| thread_daemon | NONE | Indicates the current number of active daemon threads | +| thread_total_started | NONE | Indicates the total number of threads started since JVM startup | +| thread_count | NONE | Indicates the current number of active threads | +| garbage_collector_g1_young_generation_count | NONE | Indicates the number of young generation garbage collections by G1 garbage collector | +| garbage_collector_g1_young_generation_time | NONE | Indicates the total time spent in young generation garbage collections by G1 garbage collector | +| garbage_collector_g1_old_generation_count | NONE | Indicates the number of old generation garbage collections by G1 garbage collector | +| garbage_collector_g1_old_generation_time | NONE | Indicates the total time spent in old generation garbage collections by G1 garbage collector | +| garbage_collector_time_unit | NONE | Indicates the unit of garbage collection time (such as milliseconds, seconds, etc.) | diff --git a/home/versioned_docs/version-1.7.x/help/iceberg.md b/home/versioned_docs/version-1.7.x/help/iceberg.md new file mode 100644 index 00000000000..ceba73377af --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/iceberg.md @@ -0,0 +1,76 @@ +--- +id: iceberg +Title: Monitoring Apache Iceberg +sidebar_label: Apache Iceberg +keywords: [open source monitoring tool, open source apache hive monitoring tool, monitoring apache iceberg metrics] +--- + +> Collect and monitor the general performance metrics exposed by the Apache Iceberg. + +## Pre-monitoring operations + +If you want to monitor information in `Apache Iceberg` with this monitoring type, you need to open your `Hive Server2` in remoting mode. + +**1、Enable metastore:** + +```shell +hive --service metastore & +``` + +**2. Enable hive server2:** + +```shell +hive --service hiveserver2 & +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| Port | The default port provided by the database is 10002. | +| Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | +| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | will continue only if the probe is successful | +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric Collection: basic + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-----------------------------------------------------------| +| vm_name | None | The name of the virtual machine (VM) running HiveServer2. | +| vm_vendor | None | The vendor or provider of the virtual machine. | +| vm_version | None | The version of the virtual machine. | +| up_time | None | The duration for which HiveServer2 has been running. | + +#### metric Collection: enviroment + +| Metric Name | metric unit | Metrics help describe | +|----------------------|-------------|-------------------------------------------------------------------| +| https_proxyPort | None | The port number used for HTTPS proxy communication. | +| os_name | None | The name of the operating system on which HiveServer2 is running. | +| os_version | None | The version of the operating system. | +| os_arch | None | The architecture of the operating system. | +| java_runtime_name | None | The name of the Java runtime environment used by HiveServer2. | +| java_runtime_version | None | The version of the Java runtime environment. | + +#### metric Collection: thread + +| Metric Name | metric unit | Metrics help describe | +|----------------------|-------------|----------------------------------------------------------------------| +| thread_count | None | The current number of threads being used by HiveServer2. | +| total_started_thread | None | The total count of threads started by HiveServer2 since its launch. | +| peak_thread_count | None | The highest number of threads used by HiveServer2 at any given time. | +| daemon_thread_count | None | The number of daemon threads currently active in HiveServer2. | + +#### metric Collection: code_cache + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-------------------------------------------------------------------------| +| committed | MB | The amount of memory currently allocated for the memory pool. | +| init | MB | The initial amount of memory requested for the memory pool. | +| max | MB | The maximum amount of memory that can be allocated for the memory pool. | +| used | MB | The amount of memory currently being used by the memory pool. | diff --git a/home/versioned_docs/version-1.7.x/help/idrac.md b/home/versioned_docs/version-1.7.x/help/idrac.md new file mode 100644 index 00000000000..7659aee1d80 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/idrac.md @@ -0,0 +1,104 @@ +--- +id: idrac +title: Dell iDRAC Monitoring +sidebar_label: Server Monitor +keywords: [open source monitoring tool, open source server Monitoring, Dell iDRAC Monitoring] +--- + +> Collect and monitor the general performance Metrics of Dell Server using SNMP Protocol. + +**Protocol: SNMP** + +## Pre-monitoring steps + +1. The target Dell server supports the **SNMP protocol**. +2. The **iDRAC** (Integrated Dell Remote Access Controller) has been configured with a network interface, allowing access to the **SNMP port**. +3. **SNMP community string** or **user credentials** have been configured with appropriate **permissions**. + +These are basic checks you can follow, and for further details on enabling and configuring SNMP on Dell iDRAC, you can consult the specific user manual of the Dell server. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +| -------------- |----------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). | +| Port | The port number of the server SNMP, default is 161. | +| SNMP Version | Choose between SNMPv1, SNMPv2c, or SNMPv3 | +| SNMP Community | SNMP community for v1 v2c | +| Username | SNMP username for v3 | +| Context Name | SNMP contextName for v3 | +| Auth Password | SNMP authPassword for v3 | +| Auth Encryption| Authentication encryption method for v3 (MD5 or SHA1) | +| Priv Password | SNMP privPassphrase for v3 | +| Priv Encryption| Privacy encryption method for v3 (DES or AES128) | + +### Collected Metrics + +#### Metric Set: System Status + +| Metric Name | Unit | Metric Description | +| ----------------------- | ---- | ------------------------------------------------------------ | +| Global System Status | none | Overall status of the system | +| System LCD Status | none | Status of the system LCD | +| Global Storage Status | none | Overall status of the storage subsystem | +| System Power State | none | Current power state of the system | +| System Power Up Time | day | Time since the system was last powered on | + +#### Metric Set: Power Supply + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the power supply | +| Name | none | Name/Location of the power supply | +| Wattage | W | Output wattage of the power supply | +| Type | none | Type of the power supply (Linear, Switching, Battery, etc.) | +| Status | none | Current status of the power supply | + +#### Metric Set: Cooling Devices + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the cooling device | +| Name | none | Name/Location of the cooling device | +| Type | none | Type of the cooling device (Fan, Blower, Heat Pipe, etc.) | +| Reading | RPM | Current rotation per minute reading | +| Status | none | Current status of the cooling device | + +#### Metric Set: Temperature Sensors + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the temperature sensor | +| Name | none | Name/Location of the temperature sensor | +| Reading | °C | Current temperature reading | +| Status | none | Current status of the temperature sensor | + +#### Metric Set: Voltage Sensors + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the voltage sensor | +| Name | none | Name/Location of the voltage sensor | +| Reading | V | Current voltage reading | +| Type | none | Type of voltage (3.3V, 5V, 12V, etc.) | +| Status | none | Current status of the voltage sensor | + +#### Metric Set: Memory Devices + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the memory device | +| Name | none | Name/Location of the memory device | +| Type | none | Type of memory (DDR, DDR2, DDR3, DDR4, etc.) | +| Size | G | Size of the memory device | +| Status | none | Current status of the memory device | + +#### Metric Set: Processors + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Index | none | Index of the processor | +| Name | none | Name/Location of the processor | +| Speed | MHz | Current speed of the processor | +| Family | none | Family of the processor (Pentium, Xeon, Core i7, etc.) | +| Status | none | Current status of the processor | diff --git a/home/versioned_docs/version-1.7.x/help/imap.md b/home/versioned_docs/version-1.7.x/help/imap.md new file mode 100644 index 00000000000..88e4e08a5e7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/imap.md @@ -0,0 +1,47 @@ +--- +id: imap +title: Monitoring detailed mailbox info +sidebar_label: mailbox Monitor +keywords: [Open Source Monitoring System, Open Source Network Monitoring, mailbox Monitor] +--- + +> IMAP, or Internet Message Access Protocol, allows you to retrieve detailed information from your email server. +> You can click on `Create New QQ Email Monitoring` or `Create New Netease Email Monitoring` to configure, or select `More Actions` to import existing configurations. + +### Enable IMAP Service + +If you want to use this monitoring type to monitor your email information, please first enable the IMAP service in your email: + +For example, in QQ Mail (other emails are similar): + +1. Go to `Mail Settings` +2. Find and enable the `IMAP/SMTP option` in `General` +3. Obtain the IMAP server domain, port number, whether to use SSL, and authorization code from the help section +4. Use the above information to configure in HertzBeat and collect monitoring metrics + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|:--------------------|------------------------------------------------------------------------------------------------------------| +| Monitoring Host | IMAP mail server domain. Note ⚠️ do not include protocol headers (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring task, which needs to be unique. | +| Enable SSL | Whether to enable SSL. | +| Port | The port provided by the website. | +| Connection Timeout | The wait timeout for the port connection, in milliseconds, default is 6000 ms. | +| IMAP Email Address | The email address to be monitored. | +| Authorization Code | The authorization code provided by the email server. | +| Monitoring Interval | The interval time for periodic data collection, in seconds, the minimum interval can be set to 30 seconds. | +| Binding Tags | Classification management tags for monitoring resources. | +| Description Notes | Additional identification and description notes for this monitoring task, users can leave notes here. | + +### Collection Metrics + +Collect information on each folder in the email (custom folders can be configured), as the metrics collected for each folder are the same, only a common set of metrics is listed below + +#### Metrics Collection: (Folder Name in Email) + +| Metric Name | Metric Unit | Metric Help Description | +|----------------------|-------------|-------------------------------------------------------| +| Total message count | None | The total number of emails in this folder | +| Recent message count | None | The number of recently received emails in this folder | +| Unseen message count | None | The number of unread emails in this folder | diff --git a/home/versioned_docs/version-1.7.x/help/influxdb.md b/home/versioned_docs/version-1.7.x/help/influxdb.md new file mode 100644 index 00000000000..31fb3efec6c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/influxdb.md @@ -0,0 +1,65 @@ +--- +id: influxdb +title: Monitoring InfluxDB Database +sidebar_label: InfluxDB Database +keywords: [open source monitoring system, open source database monitoring, InfluxDB database monitoring] +--- + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|-------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | The IPv4, IPv6, or domain name of the target being monitored. Note⚠️: Do not include the protocol header (e.g., https://, http://). | +| Task Name | A unique identifier for this monitoring task. | +| Port | The port on which the database is exposed. Default is 8086. | +| URL | The database connection URL, usually constructed from the host. No need to add it separately. | +| Collection Interval | The interval at which data is collected during monitoring, in seconds. The minimum interval that can be set is 30 seconds. | +| Probe Enabled | Whether to perform a probe check for monitoring availability before adding or modifying the monitoring task. | +| Description | Additional notes and remarks about this monitoring task. Users can provide information and descriptions here. | + +### Collected Metrics + +#### Metric Set: influxdb_info + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| build_date | N/A | Creation date | +| os | N/A | Operating system | +| cpus | N/A | CPUs | +| version | N/A | Version number | + +#### Metric Set: http_api_request_duration_seconds + +| Metric Name | Metric Unit | Metric Description | +|---------------|-------------|--------------------| +| handler | N/A | Handler | +| path | N/A | Path | +| response_code | N/A | Response code | +| method | N/A | Request method | +| user_agent | N/A | User agent | +| status | N/A | Status | + +#### Metric Set: storage_compactions_queued + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| bucket | N/A | Storage bucket | +| engine | N/A | Engine type | +| id | N/A | Identifier | +| level | N/A | Level | +| path | N/A | Data file path | + +#### Metric Set: http_write_request_bytes + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-------------------------| +| endpoint | N/A | Endpoint | +| org_id | N/A | Organization identifier | +| status | N/A | Status | + +#### Metric Set: qc_requests_total + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-------------------------| +| result | N/A | Result | +| org | N/A | Organization identifier | diff --git a/home/versioned_docs/version-1.7.x/help/influxdb_promql.md b/home/versioned_docs/version-1.7.x/help/influxdb_promql.md new file mode 100644 index 00000000000..c8b55c9ae76 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/influxdb_promql.md @@ -0,0 +1,61 @@ +--- +id: influxdb_promql +title: Monitoring InfluxDB-PromQL +sidebar_label: InfluxDB-PromQL +keywords: [ Open Source Monitoring System, InfluxDB Monitoring, InfluxDB-PromQL Monitoring ] +--- + +> Monitor InfluxDB by querying generic metrics data from Prometheus server using Prometheus PromQL. This approach is suitable when Prometheus is already monitoring InfluxDB and you need to fetch InfluxDB's monitoring data from Prometheus server. + +### Configuration Parameters + +| Parameter Name | Parameter help description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | IP, IPv6, or domain name of the target being monitored. Note ⚠️: Do not include protocol header (e.g., https://, http://). | +| Monitoring name | Name to identify this monitoring, ensuring uniqueness of names. | +| Port | Prometheus API port, default: 9090. | +| Relative path | Relative path of Prometheus to query PromQL, default: /api/v1/query | +| Request mode | Set the request method for API calls: GET, POST, PUT, DELETE, default: GET | +| Enable HTTPS | Whether to access the website via HTTPS, note ⚠️: enabling HTTPS generally requires changing the corresponding port to 443 | +| Username | Username for Basic or Digest authentication when accessing the API. | +| Password | Password for Basic or Digest authentication when accessing the API. | +| Content-Type | Resource type when carrying BODY request data. | +| Request BODY | Set the BODY request data, effective for PUT and POST request methods. | +| Collection interval | Interval for periodic data collection in seconds, the minimum interval that can be set is 30 seconds | +| Description remarks | Additional remarks and descriptions for this monitoring. Users can add notes here. | + +### Metrics Collection + +#### Metric Set: basic_influxdb_memstats_alloc + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +#### Metric Set: influxdb_database_numMeasurements + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| job | None | Metric name | +| instance | None | Instance to which the metric belongs | +| database | None | Name of the database | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +#### Metric Set: influxdb_query_rate_seconds + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +#### Metric Set: influxdb_queryExecutor_queriesFinished_10s + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | diff --git a/home/versioned_docs/version-1.7.x/help/iotdb.md b/home/versioned_docs/version-1.7.x/help/iotdb.md new file mode 100644 index 00000000000..f449c5fd87e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/iotdb.md @@ -0,0 +1,120 @@ +--- +id: iotdb +title: Monitoring Apache IoTDB Database +sidebar_label: IoTDB Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring IotDB database metrics] +--- + +> Monitor the running status of the Apache IoTDB Internet of Things time series database (JVM-related), memory task clusters and other related Metrics. + +## Operation before monitoring + +You need to enable the `metrics` function in IoTDB, which will provide interface data in the form of prometheus metrics. + +To enable the `metrics` function, refer to [Official Documentation](https://iotdb.apache.org/UserGuide/V0.13.x/Maintenance-Tools/Metric-Tool.html) + +The main steps are as follows: + +1. The metric collection is disabled by default, you need to modify the parameters in `conf/iotdb-metric.yml` first, then restart the server + + ```yaml + # Whether to start the monitoring module, the default is false + enableMetric: true + + # Whether to enable operation delay statistics + enablePerformanceStat: false + + # Data provision method, externally provide metrics data through jmx and prometheus protocol, optional parameters: [JMX, PROMETHEUS, IOTDB], IOTDB is closed by default. + metricReporterList: + - JMX + - PROMETHEUS + + # The metric architecture used at the bottom layer, optional parameters: [MICROMETER, DROPWIZARD] + monitorType: MICROMETER + + # Initialize the level of the metric, optional parameters: [CORE, IMPORTANT, NORMAL, ALL] + metricLevel: IMPORTANT + + # Predefined metrics set, optional parameters: [JVM, LOGBACK, FILE, PROCESS, SYSTEM] + predefinedMetrics: + - JVM + - FILE + ``` + +2. Restart IoTDB, open a browser or use curl to access http://servier_ip:9091/metrics, and you can see the metric data. + +3. Add the corresponding IoTDB monitoring in HertzBeat. + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------|---------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the IoTDB Metric interface, which is 9091 by default. | +| Timeout | HTTP request query timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: cluster_node_status + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|---------------------------------| +| name | None | Node name IP | +| status | None | Node status, 1=online 2=offline | + +#### Metric collection: jvm_memory_committed_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|------------------------------------------------| +| area | none | heap memory or nonheap memory | +| id | none | memory block | +| value | MB | The memory size currently requested by the JVM | + +#### Metric collection: jvm_memory_used_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------| +| area | none | heap memory or nonheap memory | +| id | none | memory block | +| value | MB | JVM used memory size | + +#### Metric collection: jvm_threads_states_threads + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|---------------------------------------------------------| +| state | none | thread state | +| count | None | The number of threads corresponding to the thread state | + +#### Index collection: quantity business data + +| Metric Name | Metric Unit | Metric Help Description | +|--|------|----------------| +| name | None | Business name timeSeries/storageGroup/device/deviceUsingTemplate | +| type | none | type total/normal/template/template | +| value | None | The current timeSeries/storageGroup/device/The number of devices that have activated the template | + +#### Metric collection: cache_hit cache + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|-------------------------------| +| name | None | Cache name chunk/timeSeriesMeta/bloomFilter | +| value | % | chunk/timeSeriesMeta cache hit rate, bloomFilter interception rate | + +#### Metric collection: queue task queue + +| Metric Name | Metric Unit | Metric Help Description | +| ----------- |------|------------------------------| +| name | None | Queue name compaction_inner/compaction_cross/flush | +| status | none | status running/waiting | +| value | None | Number of tasks at current time | + +#### Metric collection: thrift_connections + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|----------------------------------| +| name | None | name | +| connection | none | thrift current connection number | diff --git a/home/versioned_docs/version-1.7.x/help/ipmi.md b/home/versioned_docs/version-1.7.x/help/ipmi.md new file mode 100644 index 00000000000..65a18528e70 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ipmi.md @@ -0,0 +1,53 @@ +--- +id: ipmi +title: IPMI2 Monitoring +sidebar_label: Server Monitor +keywords: [open source monitoring tool, open source server Monitoring, IPMI Monitoring] +--- + +> Collect and monitor the general performance Metrics of Server using IPMI2. + +**Protocol: IPMI** + +## Pre-monitoring steps + +1. The target server supports the **IPMI2 protocol**. +2. The **BMC** (Baseboard Management Controller) has been configured with a network interface, allowing access to the **IPMI port**. +3. **User accounts** have been configured, and appropriate **permissions** have been assigned to the accounts. + +These are basic checks you can follow, and for further details on enabling and configuring IPMI over LAN, you can consult the specific user manual of the server manufacturer. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +| -------------- |----------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note: without protocol header (e.g., https://, http://). | +| Port | The port number of the server IPMI over LAN, default is 623. | +| Username | IPMI user name | +| Password | IPMI password | + +### Collected Metrics + +#### Metric Set: Chassis + +| Metric Name | Unit | Metric Description | +| -------------------- | ---- | ------------------------------------------------------------ | +| System Power | none | Current Power State. Power is on. | +| Power Overload | none | Power overload. System shutdown because of power overload condition. | +| Power Interlock | none | Power Interlock. | +| Main Power Fault | none | Power fault. Fault detected in main power subsystem. | +| Power Control Fault | none | Power control fault. Controller attempted to turn system power on or off, but systemdid not enter desired state. | +| Power Restore Policy | none | Power restore policy. | +| Last Power Event | none | Last Power Event. | +| Cooling/Fan Fault | none | Cooling/fan fault detected. | +| Drive Fault | none | Drive Fault. | +| Front-Panel Lockout | none | Front Panel Lockout active (power off and reset via chassispush-buttons disabled.) | + +#### Metric Set: Sensor + +| Metric Name | Unit | Metric Description | +| -------------- | ---- | ------------------------------------------------------------ | +| Sensor ID | none | Sensor ID. | +| Entity ID | none | Indicates the physical entity that the sensor is monitoring or is otherwiseassociated with the sensor. | +| Sensor Type | none | Sensor Type. | +| Sensor Reading | none | Current Sensor Reading. | diff --git a/home/versioned_docs/version-1.7.x/help/issue.md b/home/versioned_docs/version-1.7.x/help/issue.md new file mode 100644 index 00000000000..0eae3fca8df --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/issue.md @@ -0,0 +1,74 @@ +--- +id: issue +title: Common issues +sidebar_label: Common issues +--- + +### Monitoring common issues + +1. **Page feedback:monitor.host: Monitoring Host must be ipv4, ipv6 or domain name** + + > As shown in the information, the entered monitoring Host must be ipv4, ipv6 or domain name, and cannot carry a protocol header, such as http + +2. **The website API and other monitoring feedback statusCode:403 or 401, but the opposite end service itself does not need authentication, and the direct access of the browser is OK** + + > Please check whether it is blocked by the firewall. For example, BaoTa/aaPanel have set the blocking of `User-Agent=Apache-HttpClient` in the request header by default. If it is blocked, please delete this blocking rule. (user-agent has been simulated as a browser in the v1.0.beat5 version. This problem does not exist) + +3. Ping connectivity monitoring exception when installing hertzbeat for package deployment. + The hertzbeat installed and deployed by the installation package is not available for ping connectivity monitoring, but local direct ping is available 。 + + > The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. + > When you install HertzBeat via DockerDocker root is enabled by default. No such problem. + > See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) + +4. Configured Kubernetes monitoring, but the actual monitoring is not executing at the correct interval + Please troubleshoot the issue by following these steps: + + > 1. First, check HertzBeat's error logs. If you see the message 'desc: SQL statement too long, check maxSQLLength config', + > 2. You need to adjust the TDengine configuration file. Create a taos.cfg file on the server and modify # max length of an SQL : maxSQLLength 654800, then restart TDengine. Ensure the configuration file is properly mounted. + > 3. If TDengine fails to restart, adjust the configuration in the mounted data file. Refer to .../taosdata/dnode/dnodeEps.json and change dnodeFqdn to the Docker ID of the failed startup instance, then run docker restart tdengine. + +5. Configured HTTP API monitoring for business interface probing to ensure service availability. The API has token authentication, e.g., "Authorization: Bearer eyJhbGciOiJIUzI1....". After configuration, testing returns "StatusCode 401". The server receives the token as "Authorization: Bearer%20eyJhbGciOiJIUzI1....". HertzBeat escapes spaces to %20, but the server does not unescape it, causing authentication failure. It is recommended to make the escaping feature optional. + +6. What is the task limit for a single collector? + + > Specific limit parameters: + Core thread count: Math.max(2, Runtime.getRuntime().availableProcessors()) – at least 2 threads, or equal to the number of CPU cores. + Maximum thread count: Runtime.getRuntime().availableProcessors() * 16 – 16 times the number of CPU cores. + > The limit depends entirely on the server's CPU core count. For example, on an 8-core CPU server, a maximum of 8 × 16 = 128 collection tasks can be processed simultaneously. Exceeding this number triggers the error message. This is a dynamic configuration that adjusts automatically based on the hardware specifications of the runtime environment. + > If the runtime exceeds the maximum thread count, an error will appear: "the worker pool is full, reject this metrics task, put in queue again". + > In such cases, it is recommended to configure a new collector in public mode. HertzBeat will automatically distribute tasks to other collectors, avoiding errors due to the task limit of a single collector. + +### Docker Deployment common issues + +1. **MYSQL, TDENGINE and HertzBeat are deployed on the same host by Docker,HertzBeat use localhost or 127.0.0.1 connect to the database but fail** + The problems lies in Docker container failed to visit and connect localhost port. Because the docker default network mode is Bridge mode which can't access local machine through localhost. + + > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. + > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + +2. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** + Please refer to the following points to troubleshoot issues: + + > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. + > two:Check whether dependent service, IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. + > three:`docker logs hertzbeat` Check whether the container log has errors. If you haven't solved the issue, report it to the communication group or community. + +3. **Log an error TDengine connection or insert SQL failed** + + > one:Check whether database account and password configured is correct, the database is created. + > two:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. + +### Package Deployment common issues + +1. **According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface** + Please refer to the following points to troubleshoot issues: + + > one:Whether the MySQL database and tdengine database as dependent services have been successfully started, whether the corresponding hertzbeat database has been created, and whether the SQL script has been executed. + > two:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `hertzbeat/config/application.yml`. + > three: Check whether the running log has errors in `hertzbeat/logs/` directory. If you haven't solved the issue, report it to the communication group or community. + +2. **Log an error TDengine connection or insert SQL failed** + + > one:Check whether database account and password configured is correct, the database is created. + > two:If you install TDengine2.3+ version, you must execute `systemctl start taosadapter` to start adapter in addition to start the server. diff --git a/home/versioned_docs/version-1.7.x/help/jenkins.md b/home/versioned_docs/version-1.7.x/help/jenkins.md new file mode 100644 index 00000000000..ceb9c943efb --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/jenkins.md @@ -0,0 +1,80 @@ +--- +id: jenkins +title: Monitoring Jenkins +sidebar_label: Jenkins +keywords: [ open-source, monitoring system, CI/CD, DevOps, Jenkins monitoring ] +--- + +> Monitoring of Jenkins' general metrics is performed by invoking the Jenkins Prometheus Plugin. + +### Prerequisites + +1. Set up Jenkins-related services according to + the [deployment documentation](https://www.jenkins.io/doc/book/installing/). +2. Requires installation of the [plugin](https://www.jenkins.io/doc/book/managing/plugins/) Exposed metric information + has been accessed; refer to the [prometheus-plugin](https://plugins.jenkins.io/prometheus/) for details. +3. The externally exposed metrics endpoint is ```/prometheus```. Verify whether you can access the metrics + data. + +### Configuration parameters + +| Parameter Name | Parameter Help Description | +|-------------------|-----------------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored peer's IPv4, IPv6, or domain name. Note⚠️: Do not include protocol headers (e.g., https://, http://). | +| Port | Jenkins port value, default is 8080. | +| Task Name | The name identifying this monitoring task. The name must be unique. | +| Query Timeout | Set the connection timeout in milliseconds (ms). Default is 3000 ms. | +| Monitoring Cycle | The interval time for periodic data collection, measured in seconds. The minimum configurable interval is 30 seconds. | +| Binding Tags | Used for classifying and managing monitored resources | +| Description Notes | Additional identifiers and descriptive notes for this monitoring task. Users can add notes here. | + +### Collection indicators + +#### Indicator Set: System Information Indicators + +| Indicator name | Unit | Metric Help Description | +|------------------------------|-------------|-----------------------------| +| default_jenkins_uptime | millisecond | Jenkins runtime | +| default_jenkins_up | None | Jenkins still running | +| default_jenkins_version_info | None | Jenkins Version Information | +| jenkins_health_check_score | None | Jenkins Health Check Score | + +#### Metric Set: jvm + +| Indicator name | Unit | Metric Help Description | +|------------------------|-------------|-------------------------------------------| +| vm_uptime_milliseconds | millisecond | JVM runtime | +| system_cpu_load | None | System Load | +| vm_count | None | Total Number of JVM Threads | +| vm_memory_heap_max | MB | Maximum memory limit available to the JVM | +| vm_memory_heap_used | MB | Current memory usage of the JVM | + +#### Indicator set: Basic information indicators + +| Indicator name | Unit | Metric Help Description | +|-------------------------------------|------|----------------------------------------| +| jenkins_project_count_value | None | Number of projects | +| jenkins_project_enabled_count_value | None | Number of enabled items | +| jenkins_queue_size_value | None | Number of tasks in the build queue | +| jenkins_node_online_value | None | Number of currently online build nodes | + +#### Indicator Set: Actuator Information Indicators + +| Indicator name | Unit | Metric Help Description | +|--------------------------------------|------|-----------------------------------------| +| default_jenkins_executors_available | None | Number of available actuators | +| default_jenkins_executors_busy | None | Number of active actuators | +| default_jenkins_executors_connecting | None | Number of actuators currently connected | + +#### Indicator Set: Task Information Indicators + +| Indicator name | Unit | Metric Help Description | +|----------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------| +| jenkins_job_count_value | None | Number of assignments | +| default_jenkins_builds_duration_milliseconds_summary_sum | millisecond | Task Construction Duration Summary | +| default_jenkins_builds_last_build_duration_milliseconds | millisecond | Time of the most recent build | +| default_jenkins_builds_success_build_count_total | None | Number of successful builds | +| default_jenkins_builds_failed_build_count_total | None | Number of build failures | +| default_jenkins_builds_unstable_build_count_total | None | Number of unstable builds | +| default_jenkins_builds_total_build_count_total | None | Total number of builds (excluding unbuilt states) | +| default_jenkins_builds_last_build_result_ordinal | 0=Success, 1=Unstable, 2=Failure, 3=Not Built, 4=Aborted | Task Build Status (Last Build) | diff --git a/home/versioned_docs/version-v1.6.x/help/jetty.md b/home/versioned_docs/version-1.7.x/help/jetty.md similarity index 100% rename from home/versioned_docs/version-v1.6.x/help/jetty.md rename to home/versioned_docs/version-1.7.x/help/jetty.md diff --git a/home/versioned_docs/version-1.7.x/help/jvm.md b/home/versioned_docs/version-1.7.x/help/jvm.md new file mode 100644 index 00000000000..1d59d025d41 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/jvm.md @@ -0,0 +1,76 @@ +--- +id: jvm +title: Monitoring JVM +sidebar_label: JVM Monitor +keywords: [open source monitoring tool, open source java jvm monitoring tool, monitoring jvm metrics] +--- + +> Collect and monitor the general performance Metrics of JVM. + +**Protocol Use:JMX** + +### JVM App Enable JMX Protocol + +1. Add JVM `VM options` When Start Server ⚠️ customIP + +Refer: [https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote](https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote) + +```shell +-Djava.rmi.server.hostname=customIP +-Dcom.sun.management.jmxremote.port=9999 +-Dcom.sun.management.jmxremote.ssl=false +-Dcom.sun.management.jmxremote.authenticate=false +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-1.7.x/help/kafka.md b/home/versioned_docs/version-1.7.x/help/kafka.md new file mode 100644 index 00000000000..48d06b2037b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/kafka.md @@ -0,0 +1,89 @@ +--- +id: kafka +title: Monitor:Apache Kafka +sidebar_label: Apache Kafka +keywords: [open source monitoring tool, open source apache kafka monitoring tool, monitoring apache kafka metrics] +--- + +> Collect and monitor the general performance Metrics of Apache Kafka. + +**Protocol Use:JMX** + +### Kafka Enable JMX Protocol + +1. Install Kafka + +2. Modify `kafka-server-start.sh` + +Append content in kafka-server-start.sh, Attention Replace Port And IP. + +```shell +export JMX_PORT=9999; +export KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=ip地址 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"; + +# Already Has +exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@" +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:server_info + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| Version | | Kafka Version | +| StartTimeMs | ms | Start Time | +| CommitId | | Version Commit ID | + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:active_controller_count + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------| +| Value | | server active controller count | + +#### Metrics Set:broker_partition_count + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| Value | | broker partition count | + +#### Metrics Set:broker_leader_count + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| Value | | broker leader count | + +#### Metrics Set:broker_handler_avg_percent + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|-------------------------| +| EventType | | event type | +| RateUnit | | rate unit | +| Count | | percent count | +| OneMinuteRate | % | One Minute Rate | +| FiveMinuteRate | % | Five Minute Rate | +| MeanRate | % | Mean Rate | +| FifteenMinuteRate | % | Fifteen Minute Rate | diff --git a/home/versioned_docs/version-1.7.x/help/kafka_client.md b/home/versioned_docs/version-1.7.x/help/kafka_client.md new file mode 100644 index 00000000000..ccff28798bf --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/kafka_client.md @@ -0,0 +1,57 @@ +--- +id: kafka_client +title: Monitoring: Kafka Monitoring (Client-based) +sidebar_label: Kafka Monitoring (Client-based) +keywords: [open-source monitoring system, open-source message middleware monitoring, Kafka monitoring] +--- + +> Collect and monitor general metrics for Kafka. + +### Configuration Parameters + +| Parameter Name | Help Description | +|------------------|---------------------------------------------------------------| +| Monitoring Host | The monitored peer's IPv4, IPv6, or domain name. Note: ⚠️ Do not include protocol headers (e.g., https://, http://). | +| Monitoring Port | The monitored service port. | +| Task Name | The identifier for this monitoring task, which must be unique. | +| Collection Interval | The interval for periodic data collection, in seconds. The minimum allowable interval is 30 seconds. | +| Description/Remarks | Additional information to describe and identify this monitoring task. Users can add remarks here. | + +### Collected Metrics + +#### Metric Set: topic_list + +| Metric Name | Unit | Help Description | +|--------------|------|------------------| +| TopicName | None | Topic Name | + +#### Metric Set: topic_detail + +| Metric Name | Unit | Help Description | +|----------------------|------|------------------| +| TopicName | None | Topic Name | +| PartitionNum | None | Number of Partitions | +| PartitionLeader | None | Partition Leader | +| BrokerHost | None | Broker Host | +| BrokerPort | None | Broker Port | +| ReplicationFactorSize| None | Replication Factor Size | +| ReplicationFactor | None | Replication Factor | + +#### Metric Set: topic_offset + +| Metric Name | Unit | Help Description | +|---------------|------|------------------| +| TopicName | None | Topic Name | +| PartitionNum | None | Number of Partitions | +| earliest | None | Earliest Offset | +| latest | None | Latest Offset | + +#### Metric Set:consumer_detail + +| Metric Name | Unit | Help Description | +|-----------|--|------------------------------------| +| GroupId | None | Consumer Group Id | +| group_member_num | None | Number of Consumer Instances | +| Subscribed Topic Name | None | Topic Name Subscribed by the Group | +| offset_of_each_partition | None | Offsets for Each Partition | +| Lag | None | Lag of Consumer | diff --git a/home/versioned_docs/version-1.7.x/help/kafka_promql.md b/home/versioned_docs/version-1.7.x/help/kafka_promql.md new file mode 100644 index 00000000000..ef790ba1e61 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/kafka_promql.md @@ -0,0 +1,66 @@ +--- +id: kafka_promql +title: Monitoring Kafka-PromQL +sidebar_label: Kafka-PromQL +keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, Kafka Monitoring, Kafka-PromQL Monitoring ] +--- + +> Monitor Kafka by querying generic metrics data from Prometheus server using Prometheus PromQL. This approach is suitable when Prometheus is already monitoring Kafka and you need to fetch Kafka's +> monitoring data from Prometheus server. + +### Prerequisites + +1. Deploy Kafka. +2. Deploy kafka_exporter. +3. Collect monitoring metrics exposed by kafka_exporter through Prometheus. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | IP, IPv6, or domain name of the target being monitored. Note ⚠️: Do not include protocol header (e.g., https://, http://). | +| Monitoring name | Name to identify this monitoring, ensuring uniqueness of names. | +| Port | Prometheus API port, default: 9090. | +| Relative path | Relative path of Prometheus to query PromQL, default: /api/v1/query | +| Request mode | Set the request method for API calls: GET, POST, PUT, DELETE, default: GET | +| Enable HTTPS | Whether to access the website via HTTPS, note ⚠️: enabling HTTPS generally requires changing the corresponding port to 443 | +| Username | Username for Basic or Digest authentication when accessing the API. | +| Password | Password for Basic or Digest authentication when accessing the API. | +| Content-Type | Resource type when carrying BODY request data. | +| Request BODY | Set the BODY request data, effective for PUT and POST request methods. | +| Collection interval | Interval for periodic data collection in seconds, the minimum interval that can be set is 30 seconds | +| Description remarks | Additional remarks and descriptions for this monitoring. Users can add notes here. | + +### Metrics Collection + +#### Metric Set: kafka_brokers + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| __name__ | None | Metric name | +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +#### Metric Set: kafka_topic_partitions + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| __name__ | None | Metric name | +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +#### Metric Set: kafka_server_brokertopicmetrics_bytesinpersec + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|--------------------------------------| +| __name__ | None | Metric name | +| instance | None | Instance to which the metric belongs | +| timestamp | None | Timestamp of metric collection | +| value | None | Metric value | + +### Other Kafka Monitoring Methods Supported by HertzBeat + +1. If Kafka is enabled with JMX monitoring, you can use [Kafka](kafka) Monitoring. +2. If Kafka cluster deploys kafka_exporter to expose monitoring metrics, you can refer to [Prometheus task](prometheus) to configure the Prometheus collection task to monitor kafka. diff --git a/home/versioned_docs/version-1.7.x/help/kingbase.md b/home/versioned_docs/version-1.7.x/help/kingbase.md new file mode 100644 index 00000000000..7a0b69f0971 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/kingbase.md @@ -0,0 +1,55 @@ +--- +id: kingbase +title: Monitoring:Kingbase database monitoring +sidebar_label: Kingbase database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring kingbase database metrics] +--- + +> Collect and monitor the general performance Metrics of Kingbase database. Support Kingbase V8R6+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------------------------| +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the Kingbase buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------------| +| running | connections | Number of current client connections | diff --git a/home/versioned_docs/version-1.7.x/help/kubernetes.md b/home/versioned_docs/version-1.7.x/help/kubernetes.md new file mode 100644 index 00000000000..48369057ff5 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/kubernetes.md @@ -0,0 +1,99 @@ +--- +id: kubernetes +Title: Monitoring Kubernetes +sidebar_label: Kubernetes Monitor +keywords: [open source monitoring tool, open source kubernetes monitoring tool, monitoring kubernetes metrics] +--- + +> Collect and monitor the general performance metrics of Kubernetes. + +## Pre-monitoring operations + +If you want to monitor the information in 'Kubernetes', you need to obtain an authorization token that can access the API Server, so that the collection request can obtain the corresponding information. + +Refer to the steps to obtain token + +### method one + +1. Create a service account and bind the default cluster-admin administrator cluster role + + ```kubectl create serviceaccount dashboard-admin -n kube-system``` + +2. User Authorization + + ```shell + kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin + kubectl -n kube-system get secret | grep dashboard-admin | awk '{print $1}' + kubectl describe secret {secret} -n kube-system + ``` + +### method two + +```shell +kubectl create serviceaccount cluster-admin +kubectl create clusterrolebinding cluster-admin-manual --clusterrole=cluster-admin --serviceaccount=default:cluster-admin +kubectl create token --duration=1000h cluster-admin +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| APiServer port | K8s APiServer port, default 6443 | +| token | Authorize the Access Token | +| URL | The database connection URL is optional, if configured, the database name, user name and password parameters in the URL will override the parameter configured above | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric collection: nodes + +| Metric Name | metric unit | Metrics help describe | +|--------------------|-------------|-----------------------| +| node_name | None | Node name | +| is_ready | None | Node Status | +| capacity_cpu | None | CPU capacity | +| allocatable_cpu | None | CPU allotted | +| capacity_memory | None | Memory capacity | +| allocatable_memory | None | Memory allocated | +| creation_time | None | Node creation time | +| uid | None | UUID unique identifier| + +#### metric Collection: namespaces + +| Metric Name | metric unit | Metrics help describe | +|---------------|-------------|-----------------------| +| namespace | None | namespace name | +| status | None | Status | +| creation_time | None | Created | +| uid | None | UUID unique identifier| + +#### metric collection: pods + +| Metric Name | metric unit | Metrics help describe | +|---------------|-------------|-------------------------------| +| pod | None | Pod name | +| namespace | None | The namespace to which the pod belongs | +| status | None | Pod status | +| restart | None | Number of restarts | +| host_ip | None | The IP address of the host is | +| pod_ip | None | pod ip | +| creation_time | None | Pod creation time | +| start_time | None | Pod startup time | +| uid | None | UUID unique identifier | + +#### metric Collection: services + +| Metric Name | metric unit | Metrics help describe | +|---------------|-------------|-----------------------------------------------------------| +| service | None | Service Name | +| namespace | None | The namespace to which the service belongs | +| type | None | Service Type ClusterIP NodePort LoadBalancer ExternalName | +| cluster_ip | None | cluster ip | +| selector | None | tag selector matches | +| creation_time | None | Created | +| uid | None | UUID unique identifier | diff --git a/home/versioned_docs/version-1.7.x/help/linux.md b/home/versioned_docs/version-1.7.x/help/linux.md new file mode 100644 index 00000000000..b8cb7ef67ab --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/linux.md @@ -0,0 +1,114 @@ +--- +id: linux +title: Monitoring:Linux operating system monitoring +sidebar_label: Linux operating system +keywords: [open source monitoring tool, open source linux monitoring tool, monitoring linux metrics] +--- + +> Collect and monitor the general performance Metrics of Linux operating system. + +### Configuration parameter + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/linux_script.md b/home/versioned_docs/version-1.7.x/help/linux_script.md new file mode 100644 index 00000000000..e51d40c8028 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/linux_script.md @@ -0,0 +1,101 @@ +--- +id: linux_script +title: Monitoring:Using Scripts to Monitor Linux Operating System +sidebar_label: Using Scripts to Monitor Linux OS +keywords: [open source monitoring system, open source network monitoring, using scripts to monitor Linux OS] +--- + +### Preparation + +> To monitor the local machine, simply deploy Hertzbeat. To monitor other hosts, you need to deploy a collector on the target host. Refer to [this link](https://github.com/apache/hertzbeat?tab=readme-ov-file#2install-via-package) for step 5 of the installation process. +If the collector is installed using Docker, it will cause the collector to be unable to monitor the process information on the host machine, because Docker containers run in an isolated environment, with each container having its own process space. +> When creating a monitoring task and selecting a collector, choose the corresponding collector deployed on the target host. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|:---------------|-----------------------------------------------------| +| Monitor Host | The IPv4, IPv6, or domain of the monitored endpoint. Note ⚠️ Do not include protocol headers (e.g., https://, http://). | +| Task Name | The name identifying this monitoring task, which needs to be unique. | +| Collector | Specifies which collector will be used for data collection in this monitoring task. | +| Monitoring Interval | The time interval for periodic data collection, in seconds. | +| Binding Tag | Classification management tags for monitoring resources. | +| Description Notes | Additional notes to describe this monitoring task. Users can add remarks here. | + +### Metrics Collection + +#### Metric Set: basic + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------------| +| hostname | None | Name of the host | +| version | None | Operating system version | +| uptime | None | System uptime | + +#### Metric Set: cpu + +| Metric Name | Metric Unit | Metric Description | +|----------------|-------------|-----------------------------------------------| +| info | None | CPU model | +| cores | Number | Number of CPU cores | +| interrupt | Count | Number of CPU interrupts | +| load | None | Average CPU load over the last 1/5/15 minutes | +| context_switch | Count | Current number of context switches | +| usage | % | CPU usage percentage | + +#### Metric Set: memory + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used by cache | +| available | Mb | Available memory capacity | +| usage | % | Memory usage percentage | + +#### Metric Set: disk + +| Metric Name | Metric Unit | Metric Description | +|---------------|-------------|-------------------------------------------| +| disk_num | Count | Total number of disks | +| partition_num | Count | Total number of partitions | +| block_write | Count | Total number of blocks written to disk | +| block_read | Count | Total number of blocks read from disk | +| write_rate | iops | Rate of blocks written to disk per second | + +#### Metric Set: interface + +| Metric Name | Metric Unit | Metric Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network interface name | +| receive_bytes | byte | Inbound data traffic (bytes) | +| transmit_bytes | byte | Outbound data traffic (bytes) | + +#### Metric Set: disk_free + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|------------------------| +| filesystem | None | Name of the filesystem | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Disk usage percentage | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 Programs by CPU Usage + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-------------------------| +| id | None | Process ID | +| cpu | % | CPU usage percentage | +| ws | % | Memory usage percentage | +| command | None | Executed command | + +#### Metric Set: Top 10 Programs by Memory Usage + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-------------------------| +| id | None | Process ID | +| cpu | % | CPU usage percentage | +| ws | % | Memory usage percentage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/macos.md b/home/versioned_docs/version-1.7.x/help/macos.md new file mode 100644 index 00000000000..62d4bdae865 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/macos.md @@ -0,0 +1,116 @@ +--- +id: macos +title: macOS operating system monitoring +sidebar_label: macOS operating system +keywords: [open source monitoring tool, open source os monitoring tool, monitoring macOS operating system metrics] +--- + +> Collect and monitor the general performance Metrics of macOS operating system. + +## Pre-monitoring operations + +Please refer to [Allow a remote computer to access your Mac](https://support.apple.com/guide/mac-help/allow-a-remote-computer-to-access-your-mac-mchlp1066/mac) to enable remote login. + +## Configuration parameter + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +## Data Collection Metrics + +### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| load | None | Average CPU load (1/5/15 minutes) | +| usage | % | CPU usage | + +### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/mariadb.md b/home/versioned_docs/version-1.7.x/help/mariadb.md new file mode 100644 index 00000000000..6bd75d08c48 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mariadb.md @@ -0,0 +1,59 @@ +--- +id: mariadb +title: Monitoring:MariaDB database monitoring +sidebar_label: MariaDB database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring mariadb database metrics] +--- + +> Collect and monitor the general performance Metrics of MariaDB database. Support MariaDB5+. + +### Attention, Need Add MYSQL jdbc driver jar + +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) +- Copy the jar package to the `hertzbeat/ext-lib` directory. +- Restart the HertzBeat service. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 3306 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|------------------------------------| +| version | none | Database version | +| port | none | Database exposure service port | +| datadir | none | Database storage data disk address | +| max_connections | none | Database maximum connections | + +#### Metric set:status + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|------------------------------------| +| threads_created | none | MariaDB created total connections | +| threads_connected | none | MariaDB connected connections | +| threads_cached | none | MariaDB current cached connections | +| threads_running | none | MariaDB current active connections | + +#### Metric set:innodb + +| Metric name | Metric unit | Metric help description | +|---------------------|-------------|------------------------------------------------------| +| innodb_data_reads | none | innodb average number of reads from files per second | +| innodb_data_writes | none | innodb average number of writes from file per second | +| innodb_data_read | KB | innodb average amount of data read per second | +| innodb_data_written | KB | innodb average amount of data written per second | diff --git a/home/versioned_docs/version-1.7.x/help/mcp_server.md b/home/versioned_docs/version-1.7.x/help/mcp_server.md new file mode 100644 index 00000000000..963d4a53e30 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mcp_server.md @@ -0,0 +1,153 @@ +--- +id: mcp_server +title: MCP Server +sidebar_label: MCP Server +keywords: [MCP, StreamableHttp, streaming, server] +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This page explains how connect to the HertzBeat MCP server. The MCP server auto starts on the default port 1157 when you start the HertzBeat server. + +### Overview + +- Provides Streamable-Http protocol MCP server. +- Intended for MCP integrations and clients that consume streaming events. + +### Connect to the MCP server + +Make sure that hertzbeat server is up and running. If you are using any other port than 1157, replace the following accordingly + +- URL: `http://your-hertzbeat-server-host:1157/api/mcp` + +### Authentication + +You must authenticate each request using one of the following methods: + +- JWT bearer token + + - Header: `Authorization: Bearer ` + +Note: You can generate a JWT token from the HertzBeat web UI under the Log Integration or Alarm Integration Page. + +- Basic authentication + - Header: `Authorization: Basic ` + +### Editor MCP configuration + + + + +Claude Code use a global config file `~/.claude.json` to config mcp server. You can add HertzBeat MCP by CLI or edit this file directly. + +Method A: Use the CLI. + +```bash +claude mcp add -s user -t http hertzbeat-mcp http://your-hertzbeat-server-host:1157/api/mcp --header "Authorization: Bearer your_jwt_key" +``` + +Method B: Edit the file directly. + +Basic auth: + +```jsonc +{ + "mcpServers": { + "hertzbeat-mcp": { + "type": "sse", + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Basic " + } + } + } +} +``` + +JWT bearer: + +```jsonc +{ + "mcpServers": { + "hertzbeat-mcp": { + "type": "sse", + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Bearer " + } + } + } +} +``` + +After saving `~/.claude.json`, restart or reload Claude Code to make the new MCP configuration take effect. + + + + +Create or edit `.cursor/mcp.json` in your home directory or project root. + +Basic auth: + +```json +{ + "hertzbeat-mcp": { + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Basic " + } + } +} +``` + +JWT bearer: + +```json +{ + "hertzbeat-mcp": { + "url": "http://your-hertzbeat-server-host:1157/api/mcp", + "headers": { + "Authorization": "Bearer " + } + } +} +``` + +After saving, reload MCP in Cursor or restart the editor. + + + + +### Tools available + +#### Monitor Management Tools + +- **query_monitors**: Query existing/configured monitors with comprehensive filtering, pagination, and status overview. Supports filtering by IDs, type, status, host, labels, and sorting. +- **add_monitor**: Add a new monitoring target to HertzBeat with comprehensive configuration. Handles different parameter requirements for each monitor type. +- **list_monitor_types**: List all available monitor types that can be added to HertzBeat. Shows all supported monitor types with their display names. +- **get_monitor_additional_params**: Get the parameter definitions required for a specific monitor type. Shows what parameters are needed when adding a monitor. + +#### Metrics Data Tools + +- **query_realtime_metrics**: Get real-time metrics data for a specific monitor. Returns current metrics values including CPU, memory, disk usage, etc. +- **get_historical_metrics**: Get historical metrics data for analysis and trending. Returns time-series data for specified metrics over a time range. +- **get_warehouse_status**: Check the status of the metrics storage warehouse system. Returns whether the metrics storage is operational and accessible. + +#### Alert Management Tools + +- **query_alerts**: Query alerts with comprehensive filtering and pagination options. Supports filtering by alert type (single/group), status (firing/resolved), search terms, and sorting. +- **get_alerts_summary**: Get alerts summary statistics including total counts, status distribution, and priority breakdown across all monitors. + +#### Alert Rule Definition Tools + +- **create_alert_rule**: Create a HertzBeat alert rule based on app hierarchy structure and user requirements. Supports threshold values, field conditions, and comprehensive alert configuration. +- **list_alert_rules**: List existing alert rules with filtering options. Shows configured thresholds and alert definitions with search and pagination. +- **get_alert_rule_details**: Get detailed information about a specific alert rule. Shows complete threshold configuration and rule settings. +- **toggle_alert_rule**: Enable or disable an alert rule. Allows activating or deactivating threshold monitoring for specific rules. +- **get_apps_metrics_hierarchy**: Get the hierarchical structure of all available apps and their metrics for alert rule creation. Returns structured JSON data with field parameters. +- **bind_monitors_to_alert_rule**: Bind monitors to an alert rule. Associates specific monitors with alert rules to enable monitoring and alerting. + +### Notes + +- If the connection drops, reconnect using the same headers. diff --git a/home/versioned_docs/version-1.7.x/help/memcached.md b/home/versioned_docs/version-1.7.x/help/memcached.md new file mode 100644 index 00000000000..a1949f535cb --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/memcached.md @@ -0,0 +1,67 @@ +--- +id: memcached +title: Monitoring Memcached +sidebar_label: Memcached Monitor +keywords: [ open source monitoring tool, open source Memcached monitoring tool, monitoring memcached metrics ] +--- + +> Collect and monitor the general performance Metrics of Memcached. + +**Protocol Use:Memcached** + +```text +The default YML configuration for the memcache version is in compliance with 1.4.15. +You need to use the stats command to view the parameters that your memcache can monitor +``` + +**1、Obtain usable parameter indicators through commands such as stats、stats setting、stats settings. + +```shell +# telnet ip port +[root@server ~]# telnet localhost 11211 +Trying ::1... +Connected to localhost. +Escape character is '^]'. +stats +STAT pid 15168 +STAT uptime 11691 +STAT time 1702569246 +STAT version 1.4.15 +... +``` + +**There is help_doc: [https://www.runoob.com/memcached/memcached-stats.html](https://www.runoob.com/memcached/memcached-stats.html)** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Memcached | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:server_info + +| Metric name | Metric unit | Metric help description | +|------------------|-------------|---------------------------------------------------| +| pid | | Memcache server process ID | +| uptime | s | The number of seconds the server has been running | +| version | | Memcache version | +| curr_connections | | Current number of connections | +| auth_errors | | Number of authentication failures | +| threads | | Current number of threads | +| item_size | byte | The size of the item | +| item_count | | Number of items | +| curr_items | | The total number of data currently stored | +| total_items | | The total number of data stored since startup | +| bytes | byte | The current number of bytes occupied by storage | +| cmd_get | | Get command request count | +| cmd_set | | Set command request count | +| cmd_flush | | Flush command request count | +| get_misses | | Get command misses | +| delete_misses | | Delete command misses | diff --git a/home/versioned_docs/version-1.7.x/help/modbus.md b/home/versioned_docs/version-1.7.x/help/modbus.md new file mode 100644 index 00000000000..a26462cb410 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/modbus.md @@ -0,0 +1,80 @@ +--- +id: modbus +title: Monitoring Modbus +sidebar_label: Modbus Monitor +keywords: [ open source monitoring tool, Modbus monitoring ] +--- + +> The response of Modbus service and other related indicators are monitored. + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| Host of Modbus Service | The IPv4, IPv6, or domain name of the Modbus device to be monitored. Note ⚠️ do not include the protocol header (e.g., https://, http://). | +| Task Name | A name that identifies this monitoring task; the name must be unique. | +| Port | The port used for Modbus network communication. | +| Slave ID (slaveId) | The ID of the slave device in the Modbus network. | +| Holding Register Address | Used for categorizing and managing monitored resources. | +| Coil Register Address | Additional notes and descriptions for this monitoring task; users can add remarks here. | +| Timeout | The allowed time for collecting a response. | + +### Collected Metrics + +#### Metric Set: holding-register + +1. The number of parameters must match the total number of coil register addresses specified in the parameters. +2. Alias format for parameters: holding-register:m or holding-register:m-n + +Parameter example: + +Coil register addresses: + +```text +1,2[3] +``` + +Parameter alias names: + +```yaml +aliasFields: + - responseTime + - holding-register:0 + - holding-register:1-0 + - holding-register:1-1 + - holding-register:1-2 +``` + +| Metric Name | Metric Unit | Metric Help Description | +|----------------------------|--------------|-----------------------------------------------------------------| +| Response Time | Milliseconds | The time required by the Modbus server to respond to a request. | +| Holding Register Parameter | | Setpoint for analog output | + +#### Metric Set: coil + +1. The number of parameters must match the total number of coil register addresses specified in the parameters. +2. Alias format for parameters: coil:m or coil:m-n + +Parameter example: + +Coil register addresses: + +```text +1,2[3] +``` + +Parameter alias names: + +```yaml +aliasFields: + - responseTime + - coil:0 + - coil:1-0 + - coil:1-1 + - coil:1-2 +``` + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|--------------|-----------------------------------------------------------------| +| Response Time | Milliseconds | The time required by the Modbus server to respond to a request. | +| Coil Status | | Coil status (0 or 1) | diff --git a/home/versioned_docs/version-1.7.x/help/mongodb.md b/home/versioned_docs/version-1.7.x/help/mongodb.md new file mode 100644 index 00000000000..52582b47097 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mongodb.md @@ -0,0 +1,95 @@ +--- +id: mongodb +title: Monitoring:MongoDB +sidebar_label: MongoDB database +keywords: [ open source monitoring tool, open source database monitoring tool, monitoring MongoDB database metrics ] +--- + +> Collect and monitor the general performance Metrics of MongoDB database. + +### Configuration parameter + +| Parameter name | Parameter help description | +|------------------------|-------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Port | Port provided by the database. The default is 27017. | +| Username | Username for MongoDB,Optional. | +| Password | Password for MongoDB,Optional. | +| database | Database name. | +| authenticationDatabase | Credentials Storage Database. | +| Connect Timeout(ms) | Set connection timeout for MongoDB, unit: ms, default: 6000ms. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metric + +#### Metric set:Build Info + +| Metric name | Metric unit | Metric help description | +|------------------|-------------|-----------------------------------------------------------------------------------------| +| version | none | The version number of the MongoDB server. | +| gitVersion | none | The Git version of the MongoDB codebase. | +| sysInfo | none | System information, typically includes details about the operating system and platform. | +| loaderFlags | none | Loader flags used to link MongoDB binaries | +| compilerFlags | none | Compiler flags used when compiling MongoDB. | +| allocator | none | The memory allocator used by MongoDB. | +| javascriptEngine | none | The JavaScript engine used by MongoDB. | + +#### Metric set:Server Document + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-----------------------------------| +| deleted | none | The number of documents deleted. | +| inserted | none | The number of documents inserted. | +| returned | none | The number of documents returned. | +| updated | none | The number of documents updated. | + +#### Metric set:Server Operation + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|------------------------------------------------------------------| +| scanAndOrder | none | The number of times a query required both scanning and ordering. | +| writeConflicts | none | The number of write conflicts that occurred. | + +#### Metric set: Max Connections + +| Metric name | Metric unit | Metric help description | +|------------------|-------------|--------------------------------------------| +| deletedDocuments | none | Number of deleted documents. | +| passes | none | Total number of passes for TTL operations. | + +#### Metric set:System Info + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|------------------------------------------------------| +| currentTime | none | Current system time. | +| hostname | none | Hostname of the server. | +| cpuAddrSize | MB | Size of CPU address in bits. | +| memSizeMB | MB | Total size of system memory in megabytes. | +| memLimitMB | MB | Memory limit for the MongoDB process in megabytes. | +| numCores | none | Total number of CPU cores. | +| cpuArch | none | CPU architecture. | +| numaEnabled | none | Whether NUMA (Non-Uniform Memory Access) is enabled. | + +#### Metric set:OS Info + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|----------------------------------| +| type | none | Type of the operating system. | +| name | none | Name of the operating system. | +| version | none | Version of the operating system. | + +#### Metric set:Extra Info + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------------------| +| versionString | none | String describing the version of the operating system. | +| libcVersion | none | Version of the C standard library (libc). | +| kernelVersion | none | Version of the operating system kernel. | +| cpuFrequencyMHz | none | Frequency of the CPU in megahertz. | +| cpuFeatures | none | Features supported by the CPU. | +| pageSize | none | Size of a memory page in bytes. | +| numPages | none | Total number of memory pages. | +| maxOpenFiles | none | Maximum number of open files allowed. | diff --git a/home/versioned_docs/version-1.7.x/help/mongodb_atlas.md b/home/versioned_docs/version-1.7.x/help/mongodb_atlas.md new file mode 100644 index 00000000000..66a895bd2fa --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mongodb_atlas.md @@ -0,0 +1,77 @@ +--- +id: mongodb_atlas +title: Monitoring MongoDB Atlas Database +sidebar_label: MongoDB Atlas Database +keywords: [open-source monitoring system, open-source database monitoring, MongoDB Atlas database monitoring] +--- + +> Collect and monitor general performance metrics of MongoDB Atlas databases. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IP address, IPv4, IPv6, or domain name of the target to be monitored. Note: ⚠️ Do not include protocol headers (e.g., https://, http://). | +| Task Name | The name identifying this monitor, which must be unique. | +| Username | MongoDB username, optional. | +| Password | MongoDB password, optional. | +| Database | Name of the database. | +| Authentication Database | The name of the database storing user credentials. | +| Connection Timeout | Timeout for MongoDB connection when no response is received, in milliseconds (ms). Default is 6000 ms. | +| Cluster Mode | Value for MongoDB Atlas cluster: mongodb-atlas | +| Collection Interval | Interval for periodic data collection, in seconds. The minimum interval is 30 seconds. | +| Binding Tags | Used for categorizing and managing monitoring resources. | +| Description/Remarks | Additional labels and description for this monitor; users can add notes here. | + +### Collection Metrics + +#### Metric Set: Build Information + +| Metric Name | Unit | Metric Description | +|------------------|------|-----------------------------------| +| version | None | MongoDB version information | +| gitVersion | None | Source code git version | +| sysInfo | None | System information | +| allocator | None | Memory allocator used by MongoDB | +| javascriptEngine | None | JavaScript engine used by MongoDB | + +#### Metric Set: Server Document + +| Metric Name | Unit | Metric Description | +|-------------|------|---------------------------------------------------| +| delete | None | Number of deletions | +| insert | None | Number of insertions | +| update | None | Number of updates | +| query | None | Number of queries | +| getmore | None | Number of requests for remaining cursor documents | +| command | None | Total number of command operations | + +#### Metric Set: Network Operations + +| Metric Name | Unit | Metric Description | +|-------------|------|-----------------------------------------------------| +| Bytes In | None | Number of times a query needs to scan and sort data | +| Bytes Out | None | Number of write conflicts | +| Request Num | None | Number of requests | + +#### Metric Set: Connection Information + +| Metric Name | Unit | Metric Description | +|---------------------------|------|--------------------------------------| +| Current Connections | None | Number of current active connections | +| Available Connections | None | Number of available connections | +| Total Created Connections | None | Total number of connections created | + +#### Metric Set: Database Statistics + +| Metric Name | Unit | Metric Description | +|-------------------|-------|---------------------------| +| Database Name | None | Name of the database | +| Collections | None | Number of collections | +| Views | None | Number of views | +| Objects | None | Number of documents | +| Document Avg Size | Bytes | Average size of documents | +| Document Size | Bytes | Total size of documents | +| Storage Size | Bytes | Size of storage used | +| Indexes | None | Number of indexes | +| Index Size | Bytes | Total size of indexes | diff --git a/home/versioned_docs/version-1.7.x/help/mqtt.md b/home/versioned_docs/version-1.7.x/help/mqtt.md new file mode 100644 index 00000000000..2843366d0cc --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mqtt.md @@ -0,0 +1,44 @@ +--- +id: mqtt +title: Monitoring MQTT Connection +sidebar_label: MQTT Connection +keywords: [ Open Source Monitoring System, MQTT Connection Monitoring ] +--- + +> Monitor MQTT connection status, supporting MQTT5 and MQTT3.1.1 protocols. + +**Protocol used: mqtt** + +:::tip +To check if topics can be subscribed to normally, HertzBeat will subscribe to a topic and then immediately unsubscribe; to verify if messages can be published correctly, HertzBeat will send a test +message to a topic (if the test message parameter is empty, this check will not be performed). +Please ensure that these operations will not affect your system. +::: + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|------------------------|------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored target's IPv4, IPv6, or domain name. Note ⚠️: Do not include protocol headers (e.g., https://, http://). | +| Task Name | The name of this monitoring task, which needs to be unique. | +| Port | The port where the MQTT service is open, default is 1883. | +| Protocol Version | The MQTT protocol version, supporting MQTT5 and MQTT3.1.1. | +| Connection Timeout(ms) | Connection timeout in milliseconds, default is 6000 ms. | +| Client Id | MQTT client ID, default is `hertzbeat-mqtt-client`. | +| Topic | The topic to be monitored. | +| Test Message | Message content used to test whether a topic can be published to normally (optional; if empty, `canPublish` will always be false). | +| Username | MQTT authentication username (optional). | +| Password | MQTT authentication password (optional). | +| Intervals | Interval for periodic data collection, in seconds; the minimum interval that can be set is 30 seconds. | +| Binding Tag | Used for classification and management of monitoring resources. | +| Description | Additional notes to identify and describe this monitoring task, users can leave notes here. | + +### Collected Metrics + +#### Metric Set: Summary + +| Metric Name | Unit | Metric Description | +|--------------|------|---------------------------------------------------------| +| responseTime | none | Response time | +| canPublish | none | Whether messages can be published to the topic normally | +| canSubscribe | none | Whether the topic can be subscribed to normally | diff --git a/home/versioned_docs/version-1.7.x/help/mysql.md b/home/versioned_docs/version-1.7.x/help/mysql.md new file mode 100644 index 00000000000..f21a1a1da87 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/mysql.md @@ -0,0 +1,60 @@ +--- +id: mysql +title: Monitoring:MySQL database monitoring +sidebar_label: MySQL database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring mysql database metrics] +--- + +> Collect and monitor the general performance Metrics of MySQL database. Support MYSQL5+. + +### Attention, Need Add MYSQL jdbc driver jar + +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.4.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.4.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.4.0) +- It is recommended that you use the latest available mysql-connector-java version as there are regular security fixes to JDBC drivers. +- Copy the jar package to the `hertzbeat/ext-lib` directory. +- Restart the HertzBeat service. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 3306 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|------------------------------------| +| version | none | Database version | +| port | none | Database exposure service port | +| datadir | none | Database storage data disk address | +| max_connections | none | Database maximum connections | + +#### Metric set:status + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|----------------------------------| +| threads_created | none | MySql created total connections | +| threads_connected | none | MySql connected connections | +| threads_cached | none | MySql current cached connections | +| threads_running | none | MySql current active connections | + +#### Metric set:innodb + +| Metric name | Metric unit | Metric help description | +|---------------------|-------------|------------------------------------------------------| +| innodb_data_reads | none | innodb average number of reads from files per second | +| innodb_data_writes | none | innodb average number of writes from file per second | +| innodb_data_read | KB | innodb average amount of data read per second | +| innodb_data_written | KB | innodb average amount of data written per second | diff --git a/home/versioned_docs/version-1.7.x/help/nacos.md b/home/versioned_docs/version-1.7.x/help/nacos.md new file mode 100644 index 00000000000..6b5f6f1f523 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nacos.md @@ -0,0 +1,94 @@ +--- +id: nacos +title: Monitoring:Nacos Server monitoring +sidebar_label: Nacos Server +keywords: [open source monitoring tool, open source middleware monitoring tool, monitoring Nacos Server metrics] +--- + +> Hertzbeat monitors metrics of the Nacos Server by calling the Nacos Metrics Api. + +### PreRequisites + +#### Deploy Nacos cluster to expose metrics data + +1. Deploy the Nacos cluster according to [deployment document](https://nacos.io/en-us/docs/deployment.html). +2. Configure the application. properties file to expose metrics data. + + ```properties + management.endpoints.web.exposure.include=* + ``` + +3. Access ```{ip}:8848/nacos/actuator/prometheus``` to see if metrics data can be accessed. + +More information see [Nacos monitor guide](https://nacos.io/en-us/docs/monitor-guide.html). + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|-------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Target name | Identify the name of this monitoring. The name needs to be unique | +| Nacos Port | Port provided by the Nacos Server. The default is 8848 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:jvm + +| Metric name | Metric unit | Metric help description | +|----------------------------|-------------|-------------------------| +| system_cpu_usage | none | cpu usage | +| system_load_average_1m | none | load | +| jvm_memory_used_bytes | byte | jvm memory used | +| jvm_memory_max_bytes | byte | jvm max memory | +| jvm_gc_pause_seconds_count | none | gc count | +| jvm_gc_pause_seconds_sum | second | gc time | +| jvm_threads_daemon | none | jvm threads count | + +#### Metric set:Nacos + +| Metric name | Metric unit | Metric help description | +|----------------------------------------|-------------|-----------------------------------------| +| http_server_requests_seconds_count | second | http requests count | +| http_server_requests_seconds_sum | second | http requests time | +| nacos_timer_seconds_sum | second | Nacos config notify time | +| nacos_timer_seconds_count | none | Nacos config notify count | +| nacos_monitor`{name="longPolling"}` | none | Nacos config connection count | +| nacos_monitor`{name="configCount"}` | none | Nacos configuration file count | +| nacos_monitor`{name="dumpTask"}` | none | Nacos config dump task count | +| nacos_monitor`{name="notifyTask"}` | none | Nacos config notify task count | +| nacos_monitor`{name="getConfig"}` | none | Nacos config read configuration count | +| nacos_monitor`{name="publish"}` | none | Nacos config update configuration count | +| nacos_monitor`{name="ipCount"}` | none | Nacos naming ip count | +| nacos_monitor`{name="domCount"}` | none | Nacos naming domain count(1.x version) | +| nacos_monitor`{name="serviceCount"}` | none | Nacos naming domain count(2.x version) | +| nacos_monitor`{name="failedPush"}` | none | Nacos naming push fail count | +| nacos_monitor`{name="avgPushCost"}` | second | Nacos naming push cost time(average) | +| nacos_monitor`{name="leaderStatus"}` | none | Nacos naming if node is leader | +| nacos_monitor`{name="maxPushCost"}` | second | Nacos naming push cost time(max) | +| nacos_monitor`{name="mysqlhealthCheck"}` | none | Nacos naming mysql health check count | +| nacos_monitor`{name="httpHealthCheck"}` | none | Nacos naming http health check count | +| nacos_monitor`{name="tcpHealthCheck"}` | none | Nacos naming tcp health check count | + +#### Metric set:Nacos exception + +| Metric name | Metric unit | Metric help description | +|----------------------------------------------------|-------------|------------------------------------------------| +| nacos_exception_total`{name="db"}` | none | database exception | +| nacos_exception_total`{name="configNotify"}` | none | Nacos config notify exception | +| nacos_exception_total`{name="unhealth"}` | none | Nacos config server health check exception | +| nacos_exception_total`{name="disk"}` | none | Nacos naming write disk exception | +| nacos_exception_total`{name="leaderSendBeatFailed"}` | none | Nacos naming leader send heart beat fail count | +| nacos_exception_total`{name="illegalArgument"}` | none | request argument illegal count | +| nacos_exception_total`{name="nacos"}` | none | Nacos inner exception | + +#### Metric set:client + +| Metric name | Metric unit | Metric help description | +|----------------------------------------|-------------|-----------------------------------| +| nacos_monitor`{name="subServiceCount"}` | none | subscribed services count | +| nacos_monitor`{name="pubServiceCount"}` | none | published services count | +| nacos_monitor`{name="configListenSize"}` | none | listened configuration file count | +| nacos_client_request_seconds_count | none | request count | +| nacos_client_request_seconds_sum | second | request time | diff --git a/home/versioned_docs/version-1.7.x/help/nacos_sd.md b/home/versioned_docs/version-1.7.x/help/nacos_sd.md new file mode 100644 index 00000000000..fb6aaefa29e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nacos_sd.md @@ -0,0 +1,99 @@ +--- +id: nacos_sd +title: Monitoring Nacos Service Discovery +sidebar_label: Nacos Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Nacos service discovery] +--- + +> HertzBeat integrates with Nacos registry to automatically discover service instances and create monitoring tasks for them. + +### Overview + +Nacos Service Discovery allows HertzBeat to connect to your Nacos server and automatically discover all registered service instances. When a new service instance is registered or an existing instance goes offline, HertzBeat will automatically create or delete corresponding monitoring tasks, achieving automated monitoring in microservice environments. + +### PreRequisites + +#### Deploy Nacos Server + +1. Deploy Nacos server according to [Nacos official documentation](https://nacos.io/en-us/docs/quick-start.html). +2. Ensure Nacos server is accessible from HertzBeat. +3. Verify that you can access Nacos console at `http://your-nacos-server:8848/nacos/` +4. Default credentials: username `nacos`, password `nacos` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique. | +| Nacos Service Discovery Host | Nacos server IP address or domain name. Note⚠️Without protocol header (eg: https://, http://). Example: `nacos-server` or `192.168.1.100` | +| Nacos Service Discovery Port | Port provided by the Nacos server. The default is 8848 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Usage Steps + +1. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **Nacos Service Discovery** + - Fill in the basic configuration parameters + +2. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - For example: If discovered instances are HTTP services, you can select HTTP monitoring template + - Common template types: Port, HTTP, HTTPS, etc. + +3. **Automatic Discovery** + - HertzBeat will periodically query Nacos server based on the collection interval + - Automatically create monitoring tasks for newly registered service instances + - Automatically delete monitoring tasks for offline service instances + +4. **View Discovered Instances** + - In the monitoring list, you can see all automatically created sub-monitoring tasks + - Each sub-monitoring task corresponds to a discovered service instance + +### Example of usage + +Suppose your Nacos server is running at `192.168.1.100:8848`, and you want to automatically monitor all service instances registered in it. + +Configuration example: + +- **Target Name**: `Nacos-Service-Discovery` +- **Nacos Service Discovery Host**: `192.168.1.100` +- **Nacos Service Discovery Port**: `8848` +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring (to detect instance availability) + +After configuration: + +1. HertzBeat connects to Nacos server +2. Retrieves all registered service instances (including healthy and unhealthy instances) +3. Automatically creates Port monitoring for each instance (e.g., `user-service-192.168.1.101:8080`) +4. Every 60 seconds, checks for newly registered or offline services and updates monitoring tasks accordingly + +### Notes + +- **Network Connectivity**: Ensure HertzBeat can access the Nacos server address and port +- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Nacos server +- **Namespace**: By default, discovers services in the public namespace. If you need to discover services in a specific namespace, you may need to configure it separately +- **Health Check**: Nacos service discovery will discover all instances, including unhealthy ones +- **Instance Naming**: Automatically created monitoring tasks are named in the format: `{ServiceName}-{Host}:{Port}` + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Spring Cloud Alibaba**: Automatically monitor all microservice instances registered in Nacos +- **Dynamic Scaling**: Automatically adapt to service instances added/removed due to autoscaling +- **Unified Monitoring**: Centrally manage monitoring of all services in the microservice environment +- **Multi-Environment**: Manage services across development, testing, and production environments +- **Service Governance**: Combine with Nacos service governance capabilities for comprehensive service management diff --git a/home/versioned_docs/version-1.7.x/help/nebulagraph.md b/home/versioned_docs/version-1.7.x/help/nebulagraph.md new file mode 100644 index 00000000000..f12b0f50b5a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nebulagraph.md @@ -0,0 +1,72 @@ +--- +id: nebulaGraph +title: Monitoring NebulaGraph +sidebar_label: NebulaGraph Database +keywords: [ open source monitoring tool, open source NebulaGraph monitoring tool, monitoring NebulaGraph metrics ] +--- + +> Collect and monitor the general performance Metrics of nebulaGraph. + +**Protocol Use:nebulaGraph** + +```text +The monitoring has two parts,nebulaGraph_stats and rocksdb_stats. +nebulaGraph_stats is nebulaGraph's statistics, and rocksdb_stats is rocksdb's statistics. +``` + +**1、Obtain available parameters through the stats and rocksdb stats interfaces.** + +1.1、 If you only need to get nebulaGraph_stats, you need to ensure that you have access to stats, or you'll get errors. + +The default port is 19669 and the access address is [http://ip:19669/stats](http://ip:19669/stats) + +1.2、If you need to obtain additional parameters for rocksdb stats, you need to ensure that you have access to rocksdb +stats, otherwise an error will be reported. + +Once you connect to NebulaGraph for the first time, you must first register your Storage service in order to properly +query your data. + +**There is help_doc: [https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/](https://docs.nebula-graph.com.cn/3.4.3/4.deployment-and-installation/connect-to-nebula-graph/)** + +**[https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/](https://docs.nebula-graph.com.cn/3.4.3/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)** + +The default port is 19779 and the access address is:[http://ip:19779/rocksdb_stats](http://ip:19779/rocksdb_stats) + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| graphPort | Port of the Graph service provided by Nebula Graph | +| timePeriod | The value can be 5 seconds, 60 seconds, 600 seconds, or 3600 seconds, indicating the last 5 seconds, last 1 minute, last 10 minutes, and last 1 hour, respectively. | +| storagePort | Port of the storage service provided by Nebula Graph | +| Timeout | Allow collection response time | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:nebulaGraph_stats + +Too many indicators, related links are as follows +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/1.query-performance-metrics/)** + +| Metric name | Metric unit | Metric help description | +|---------------------------------------|-------------|--------------------------------------------------------------| +| num_queries_hit_memory_watermark_rate | | The rate of statements that reached the memory watermark. | +| num_queries_hit_memory_watermark_sum | | The sum of statements that reached the memory watermark. | +| num_reclaimed_expired_sessions_sum | | Number of expired sessions actively reclaimed by the server. | +| ... | | ... | + +#### Metrics Set:rocksdb_stats + +Too many indicators, related links are as follows +**[https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/](https://docs.nebula-graph.com.cn/3.4.3/6.monitor-and-metrics/2.rocksdb-statistics/)** + +| Metric name | Metric unit | Metric help description | +|----------------------------|-------------|-------------------------------------------------------------| +| rocksdb.backup.read.bytes | | Number of bytes read during the RocksDB database backup. | +| rocksdb.backup.write.bytes | | Number of bytes written during the RocksDB database backup. | +| ... | | ... | diff --git a/home/versioned_docs/version-1.7.x/help/nebulagraph_cluster.md b/home/versioned_docs/version-1.7.x/help/nebulagraph_cluster.md new file mode 100644 index 00000000000..1a4291dd5f6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nebulagraph_cluster.md @@ -0,0 +1,91 @@ +--- +id: nebulagraph_cluster +title: Monitoring NebulaGraph Cluster +sidebar_label: NebulaGraph Cluster +keywords: [ Open Source Monitoring System, Open Source Database Monitoring, Open Source Graph Database Monitoring, NebulaGraph Cluster Monitoring ] +--- + +> Monitor basic information, nodes, tasks, etc., of the NebulaGraph cluster. + +**Protocol Use:ngql** + +### Configuration parameters + +| Parameter Name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored peer. Note ⚠️ without the protocol header (eg: https://, http://). | +| Task Name | Identifies the name of this monitor, ensuring uniqueness of the name. | +| Graph Port | The port where the graph service is open, default is 9669. | +| Connection Timeout | Timeout for connecting to the graph service, in milliseconds, default is 6000 milliseconds. | +| Username | Database connection username. | +| Password | Database connection password. | +| Collection Interval | Interval for periodically collecting data, in seconds. The minimum interval that can be set is 30 seconds. | +| Bind Labels | Used to categorize and manage monitored resources. | +| Description | Additional information for identifying and describing this monitor. Users can add remarks here. | + +### Collection Metric + +#### Metric Set: Base info + +| Metric Name | Metric Unit | Metric help description | +|--------------|-------------|-------------------------| +| responseTime | None | Response time | +| charset | None | Character set | +| collation | None | Character set collation | + +#### Metric Set: Session + +| Metric Name | Metric Unit | Metric help description | +|---------------------|-------------|----------------------------------| +| session | None | Number of sessions | +| running_query_count | None | Number of queries being executed | + +#### Metric Set: Jobs + +| Metric Name | Metric Unit | Metric help description | +|--------------|-------------|-------------------------------------------| +| queue_jobs | None | Number of pending background tasks | +| running_jobs | None | Number of background tasks being executed | + +#### Metric Set: Cluster node info + +| Metric Name | Metric Unit | Metric help description | +|----------------------|-------------|---------------------------------| +| total_storage_node | None | Number of storage nodes | +| offline_storage_node | None | Number of offline storage nodes | +| total_meta_node | None | Number of meta nodes | +| offline_meta_node | None | Number of offline meta nodes | +| total_graph_node | None | Number of graph nodes | +| offline_graph_node | None | Number of offline graph nodes | + +#### Metric Set: Storage Nodes + +| Metric Name | Metric Unit | Metric help description | +|-----------------------|-------------|-------------------------------------------------------| +| host | None | Node address | +| port | None | Port | +| status | None | Status (ONLINE/OFFLINE) | +| leaderCount | None | Number of leader partitions on the current node | +| leaderDistribution | None | Distribution of leader partitions on the current node | +| partitionDistribution | None | Distribution of partitions on the current node | +| version | None | Version | + +#### Metric Set: Meta Nodes + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| host | None | Node address | +| port | None | Port | +| status | None | Status (ONLINE/OFFLINE) | +| version | None | Version | + +#### Metric Set: Graph Nodes + +| Metric Name | Metric Unit | Metric help description | +|-------------|-------------|-------------------------| +| host | None | Node address | +| port | None | Port | +| status | None | Status (ONLINE/OFFLINE) | +| version | None | Version | + +> If you need to customize monitoring templates to collect data from NebulaGraph clusters, please refer to: [NGQL Custom Monitoring](../advanced/extend-ngql.md) diff --git a/home/versioned_docs/version-1.7.x/help/nginx.md b/home/versioned_docs/version-1.7.x/help/nginx.md new file mode 100644 index 00000000000..9f9feffa872 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nginx.md @@ -0,0 +1,156 @@ +--- +id: nginx +title: Monitoring Nginx +sidebar_label: Nginx Monitor +keywords: [open source monitoring tool, open source java monitoring tool, monitoring nginx metrics] +--- + +> Collect and monitor the general performance Metrics of Nginx. + +**Protocol Use:Nginx** + +### Need Enable `ngx_http_stub_status_module` And `ngx_http_reqstat_module` Module + +If you want to monitor information in 'Nginx' with this monitoring type, you need to modify your nginx configure file for enable the module monitor. + +### Enable `ngx_http_stub_status_module` + +1. Check if `ngx_http_stub_status_module` has been added + + ```shell + nginx -V + ``` + + View whether it contains `--with-http_stub_status_module`, if not, you need to recompile and install Nginx. + +2. Compile and install Nginx, add `ngx_http_stub_status_module` module + + Download Nginx and unzip it, execute the following command in the directory + + ```shell + + ./configure --prefix=/usr/local/nginx --with-http_stub_status_module + + make && make install + ``` + +3. Modify Nginx configure file + + Modify the `nginx.conf` file and add the monitoring module exposed endpoint, as follows: + + ```shell + # modify nginx.conf + server { + listen 80; # port + server_name localhost; + location /nginx-status { + stub_status on; + access_log on; + #allow 127.0.0.1; #only allow requests from localhost + #deny all; #deny all other hosts + } + } + ``` + +4. Reload Nginx + + ```shell + + nginx -s reload + ``` + +5. Access `http://localhost/nginx-status` in the browser to view the Nginx monitoring status information. + +### Enable `ngx_http_reqstat_module` + +1. Install `ngx_http_reqstat_module` + + ```shell + # install `ngx_http_reqstat_module` + wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip + + unzip ngx_req_status.zip + + patch -p1 < ../ngx_req_status-master/write_filter.patch + + ./configure --prefix=/usr/local/nginx --add-module=/path/to/ngx_req_status-master + + make -j2 + + make install + ``` + +2. Modify Nginx configure file + + update `nginx.conf` file, add status module exposed endpoint, as follows: + + ```shell + # modify nginx.conf + http { + req_status_zone server_name $server_name 256k; + req_status_zone server_addr $server_addr 256k; + + req_status server_name server_addr; + + server { + location /req-status { + req_status_show on; + #allow 127.0.0.1; #only allow requests from localhost + #deny all; #deny all other hosts + } + } + } + ``` + +3. Reload Nginx + + ```shell + + nginx -s reload + ``` + +4. Access `http://localhost/req-status` in the browser to view the Nginx monitoring status information. + +**Refer Doc: [https://github.com/zls0424/ngx_req_status](https://github.com/zls0424/ngx_req_status)** + +**⚠️Attention: The endpoint path of the monitoring module is `/nginx-status` `/req-status`** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Nginx | +| Timeout | Allow collection response time | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:nginx_status + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-----------------------------------------| +| accepts | | Accepted connections | +| handled | | Successfully processed connections | +| active | | Currently active connections | +| dropped | | Discarded connections | +| requests | | Client requests | +| reading | | Connections performing read operations | +| writing | | Connections performing write operations | +| waiting | | Waiting connections | + +#### Metrics Set:req_status + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------| +| zone_name | | Group category | +| key | | Group name | +| max_active | | Maximum concurrent connections | +| max_bw | kb | Maximum bandwidth | +| traffic | kb | Total traffic | +| requests | | Total requests | +| active | | Current concurrent connections | +| bandwidth | kb | Current bandwidth | diff --git a/home/versioned_docs/version-1.7.x/help/ntp.md b/home/versioned_docs/version-1.7.x/help/ntp.md new file mode 100644 index 00000000000..fc7f7925ca6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ntp.md @@ -0,0 +1,37 @@ +--- +id: ntp +title: Monitoring NTP +sidebar_label: NTP Monitor +keywords: [ open source monitoring tool, open source NTP monitoring tool, monitoring NTP metrics ] +--- + +> Collect and monitor the general performance Metrics of NTP. + +**Protocol Use:NTP** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|------------------------------------------------------------------------------------------| +| responseTime | ms | The time it takes for the NTP server to respond to a request). | +| time | ms | The current time reported by the NTP server). | +| date | | The date corresponding to the current time reported by the NTP server). | +| offset | ms | The time difference between the NTP server's clock and the client's clock). | +| delay | ms | The time it takes for a request to reach the NTP server and for the response to return). | +| version | | The version number of the NTP protocol used by the server). | +| mode | | The operating mode of the NTP server, such as client, server, or broadcast). | +| stratum | | The stratumevel of the NTP server, indicating its distance from a reference clock). | +| referenceId | | An identifier that indicates the reference clock or time source used by the NTP server). | +| precision | | The precision of the NTP server's clock, indicating its accuracy). | diff --git a/home/versioned_docs/version-1.7.x/help/nvidia.md b/home/versioned_docs/version-1.7.x/help/nvidia.md new file mode 100644 index 00000000000..6cc3f0d2f67 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/nvidia.md @@ -0,0 +1,37 @@ +--- +id: nvidia +title: NVIDIA Monitoring +sidebar_label: NVIDIA Monitoring +keywords: [Open Source Monitoring System, NVIDIA Monitoring] +--- + +> Collect and monitor general performance metrics of NVIDIA operating systems. +> NVIDIA monitoring requires the nvidia-smi command, which is installed together with the NVIDIA GPU driver. So when monitoring NVIDIA, we need to install the NVIDIA GPU driver. + +### Configuration Parameters + +| Parameter Name | Description | +|------------------|-------------------------------------------------------------| +| Monitoring Host | The IP address (IPv4/IPv6) or domain name of the monitored endpoint. Note ⚠️ do not include protocol headers (e.g., https://, http://). | +| Task Name | The name identifying this monitoring task, which needs to be unique. | +| Port | The port exposed for Linux SSH, default is 22. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collection Interval | Interval for periodically collecting monitoring data, in seconds. The minimum interval is 30 seconds. | +| Probe Before Monitoring | Whether to probe the monitoring endpoint to check its availability before adding it. Monitoring is added or modified only if the probe succeeds. | +| Description/Remarks | Additional notes and descriptions for this monitoring task. Users can add relevant information here. | + +### Collected Metrics + +#### Metric Set: basic + +| Metric Name | Unit | Description | +|------------------------|--------|------------------| +| index | None | GPU index | +| name | None | GPU name | +| utilization.gpu[%] | None | GPU utilization | +| utilization.memory[%] | None | Memory utilization | +| memory.total[MiB] | MiB | Total memory | +| memory.used[MiB] | MiB | Used memory | +| memory.free[MiB] | MiB | Free memory | +| temperature.gpu | None | GPU temperature | diff --git a/home/versioned_docs/version-1.7.x/help/oceanbase.md b/home/versioned_docs/version-1.7.x/help/oceanbase.md new file mode 100644 index 00000000000..510934771f5 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/oceanbase.md @@ -0,0 +1,59 @@ +--- +id: oceanbase +title: Monitoring:OceanBase database monitoring +sidebar_label: OceanBase database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring oceanbase database metrics] +--- + +> Collect and monitor the general performance Metrics of OceanBase database. Support OceanBase 4.0+. + +### Attention, Need Add MYSQL jdbc driver jar + +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.1.0.jar. [https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0](https://mvnrepository.com/artifact/com.mysql/mysql-connector-j/8.1.0) +- Copy the jar package to the `hertzbeat/ext-lib` directory. +- Restart the HertzBeat service. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 2881 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 6000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|------------------------------------| +| version | none | Database version | +| port | none | Database exposure service port | +| datadir | none | Database storage data disk address | +| max_connections | none | Database maximum connections | + +#### Metric set:status + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|----------------------------------| +| threads_created | none | OceanBase created total connections | +| threads_connected | none | OceanBase connected connections | +| threads_cached | none | OceanBase current cached connections | +| threads_running | none | OceanBase current active connections | + +#### Metric set:innodb + +| Metric name | Metric unit | Metric help description | +|---------------------|-------------|------------------------------------------------------| +| innodb_data_reads | none | innodb average number of reads from files per second | +| innodb_data_writes | none | innodb average number of writes from file per second | +| innodb_data_read | KB | innodb average amount of data read per second | +| innodb_data_written | KB | innodb average amount of data written per second | diff --git a/home/versioned_docs/version-1.7.x/help/openai.md b/home/versioned_docs/version-1.7.x/help/openai.md new file mode 100644 index 00000000000..0bf3c496af8 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/openai.md @@ -0,0 +1,83 @@ +--- +id: openai +title: Monitoring OpenAI Account Status +sidebar_label: OpenAI Account Status +keywords: [open source monitoring system, open source network monitoring, OpenAI account monitoring] +--- + +### Preparation + +#### Obtain Session Key + +> 1. Open Chrome browser's network request interface +> `Mac: cmd + option + i` +> `Windows: ctrl + shift + i` +> 2. Visit [https://platform.openai.com/usage](https://platform.openai.com/usage) +> 3. Find the request to [https://api.openai.com/dashboard/billing/usage](https://api.openai.com/dashboard/billing/usage) +> 4. Find the Authorization field in the request headers, and copy the content after `Bearer`. For example: `sess-123456` + +### Notes + +> 1. Please ensure that HertzBeat has external network access capability. If unsure, you can try detecting by creating HTTP API monitoring for openai.com in HertzBeat. +> 2. The monitoring period should be at least greater than 120 seconds to avoid sending requests too frequently, resulting in return status code 429 (Too Many Requests). + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|:------------------|------------------------------------------------------------------------------------------------| +| Monitoring Host | Fill in api.openai.com here. | +| Task Name | Identify the name of this monitoring, ensuring uniqueness. | +| Session Key | The session key obtained in the preparation step. | +| Collector | Configure which collector to use for scheduling collection for this monitoring. | +| Monitoring Period | Interval time for periodic data collection, in seconds, with a minimum interval of 30 seconds. | +| Bound Tags | Tags for managing classification of monitoring resources. | +| Description | Additional identification and description for this monitoring, users can leave remarks here. | + +### Collection Metrics + +#### Metric Set: Credit Grants + +| Metric Name | Metric Unit | Metric Description | +|----------------------|-------------|--------------------------------------| +| Total Granted | USD ($) | Total granted credit limit | +| Total Used | USD ($) | Total used credit limit | +| Total Available | USD ($) | Total available credit limit | +| Total Paid Available | USD ($) | Total payable available credit limit | + +#### Metric Set: Model Cost + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|------------------------| +| Model Name | None | Name of the model | +| Cost | USD ($) | Expenses for the model | + +#### Metric Set: Billing Subscription + +| Metric Name | Metric Unit | Metric Description | +|--------------------------|-------------|-----------------------------------------| +| Has Payment Method | None | Whether payment method is available | +| Canceled | None | Whether subscription is cancelled | +| Canceled At | None | Time of subscription cancellation | +| Delinquent | None | Whether subscription is overdue | +| Soft Limit | Times | Maximum usage limit in a certain period | +| Hard Limit | Times | Maximum usage limit | +| System Hard Limit | Times | System hard limit usage | +| Soft Limit USD | USD ($) | Soft limit charge | +| Hard Limit USD | USD ($) | Hard limit charge | +| System Hard Limit USD | USD ($) | System hard limit charge | +| Plan | None | Subscription plan | +| Primary | None | Whether it's a primary subscription | +| Billing Mechanism | None | Settlement mechanism | +| Is Arrears Eligible | None | Whether eligible for overdue | +| Max Balance | USD ($) | Maximum balance | +| Auto Recharge Eligible | None | Whether eligible for auto recharge | +| Auto Recharge Enabled | None | Whether auto recharge is enabled | +| Auto Recharge Threshold | USD ($) | Auto recharge threshold | +| Auto Recharge To Balance | USD ($) | Auto recharge amount | +| Trust Tier | None | Credit level | +| Account Name | None | Account name | +| Po Number | None | Purchase order | +| Billing Email | None | Billing email | +| Tax IDs | None | Tax IDs | +| Billing Address | None | Billing address | +| Business Address | None | Business address | diff --git a/home/versioned_docs/version-1.7.x/help/opengauss.md b/home/versioned_docs/version-1.7.x/help/opengauss.md new file mode 100644 index 00000000000..3490bb8b003 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/opengauss.md @@ -0,0 +1,55 @@ +--- +id: opengauss +title: OpenGauss Database Monitor +sidebar_label: OpenGauss Database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring opengauss database metrics] +--- + +> Collect and monitor the general performance Metrics of OpenGauss database. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------------------------| +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the PostgreSQL buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------------| +| running | connections | Number of current client connections | diff --git a/home/versioned_docs/version-1.7.x/help/opensuse.md b/home/versioned_docs/version-1.7.x/help/opensuse.md new file mode 100644 index 00000000000..78e916122c9 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/opensuse.md @@ -0,0 +1,114 @@ +--- +id: opensuse +title: Monitoring OpenSUSE Operating System Monitoring +sidebar_label: OpenSUSE OS +keywords: [open source monitoring system, open source operating system monitoring, OpenSUSE OS monitoring] +--- + +> Collect and monitor general performance metrics of the OpenSUSE operating system. + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/oracle.md b/home/versioned_docs/version-1.7.x/help/oracle.md new file mode 100644 index 00000000000..83d7854030e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/oracle.md @@ -0,0 +1,172 @@ +--- +id: oracle +title: Monitoring:ORACLE database monitoring +sidebar_label: ORACLE database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring oracle database metrics] +--- + +> Collect and monitor the general performance Metrics of ORACLE database. + +### Attention, Need Add ORACLE jdbc driver jar + +- Download the ORACLE jdbc driver jar package, such as [ojdbc8.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) [oracle-i18n](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar) +- Copy the jar package to the `hertzbeat/ext-lib` directory. +- Restart the HertzBeat service. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 1521 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optionalIf you need to use a dba user, you can fill in like "sys as sysdba". | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|------------------|-------------|-------------------------| +| database_version | none | Database version | +| hostname | none | Host name | +| instance_name | none | Database instance name | +| startup_time | none | Database start time | +| status | none | Database status | + +#### Metric set:tablespace + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------| +| file_id | none | File ID | +| file_name | none | File name | +| tablespace_name | none | Table space name | +| status | none | Status | +| bytes | MB | Size | +| blocks | none | Number of blocks | + +#### Metric set:total_sessions + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|---------------------------| +| counts | number | Current connection counts | + +#### Metric set:active_sessions + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| counts | number | Active sessions counts | + +#### Metric set:background_sessions + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|----------------------------| +| counts | number | Background sessions counts | + +#### Metric set:connection + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| username | none | User name | +| counts | number | User sessions counts | + +#### Metric set:performance + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-----------------------------| +| qps | QPS | I/O Requests per second | +| tps | TPS | User transaction per second | +| mbps | MBPS | I/O Megabytes per second | + +#### Metric set:percentage + +| Metric name | Metric unit | Metric help description | +|-----------------|---------------|-------------------------| +| tablespace_name | none | Tablespace name | +| total | none | Total | +| used | none | Used | +| free | none | Free | +| used_percentage | percentage(%) | Used Percentage | +| free_percentage | percentage(%) | Free Percentage | + +#### Metric set:process + +| Metric name | Metric unit | Metric help description | +|---------------|-------------|-------------------------| +| process_count | none | Process count | + +#### Metric set:transaction + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| commits | t/s | User Commits Per Sec | +| rollbacks | t/s | User Rollbacks Per Sec | + +#### Metric set:wait + +| Metric name | Metric unit | Metric help description | +|----------------------|-------------|-------------------------| +| concurrent_wait_time | ms | Concurrent Wait Time | +| commit_wait_time | ms | Commit Wait Time | +| app_wait_time | ms | Application Wait Time | +| network_wait_time | ms | Network Wait Time | +| system_io_wait_time | ms | System I/O Wait Time | +| user_io_wait_time | ms | User I/O Wait Time | +| configure_wait_time | ms | Configure Wait Time | +| scheduler_wait_time | ms | Scheduler Wait Time | + +#### Metric set:cpu_stats + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| type | none | Type | +| num | none | Num | + +#### Metric set:mem_stats + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| type | none | Type | +| num | none | Num | + +#### Metric set:cache_hit_ratio + +| Metric name | Metric unit | Metric help description | +|------------------------|-------------|-------------------------| +| lib_cache_hit_ratio | none | Library Cache Hit Ratio | +| buffer_cache_hit_ratio | none | Buffer Cache Hit Ratio | + +#### Metric set:slow_query + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|-------------------------| +| sql_id | none | SQL ID | +| child_number | none | Child Number | +| executions | none | EXECUTIONS | +| per_secs | seconds | Per Secs | +| cpu_secs | seconds | CPU Secs | +| buffer_gets | none | Buffer Gets | +| disk_reads | none | Disk Reads | +| fetches | none | Fetches | +| parse_calls | none | Parse Calls | +| optimizer_cost | none | Optimizer Cost | +| sql_text | none | SQL Text | + +#### Metric set:users + +| Metric name | Metric unit | Metric help description | +|---------------------|-------------|---------------------------------------------------------------------------------------------------| +| username | none | User Name | +| account_status | none | Account Status | +| lock_date | none | If the account status is LOCKED, the date and time when the account was locked will be displayed. | +| expiry_date | none | Password Expiry Date | +| expiry_seconds | seconds | Password Validity Period Remaining | +| created | none | Creation Date | +| authentication_type | none | Authentication Type | diff --git a/home/versioned_docs/version-1.7.x/help/ping.md b/home/versioned_docs/version-1.7.x/help/ping.md new file mode 100644 index 00000000000..9535a311375 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ping.md @@ -0,0 +1,36 @@ +--- +id: ping +title: Monitoring:PING connectivity +sidebar_label: PING connectivity +keywords: [open source monitoring tool, open source network monitoring tool, monitoring ping metrics] +--- + +> Ping the opposite end HOST address and judge its connectivity. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Ping timeout | Set the timeout when Ping does not respond to data, unit:ms, default: 3000ms | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-------------------------| +| responseTime | ms | Website response time | + +### Common Problem + +1. Ping connectivity monitoring exception when installing hertzbeat for package deployment. + The hertzbeat installed and deployed by the installation package is not available for ping connectivity monitoring, but local direct ping is available 。 + +> The deployment of the installation package requires configuring the root permission of the Java virtual machine to start hertzbeat to use ICMP. If the root permission is not enabled, judge whether port 7 of telnet opposite end is opened. +> When you install HertzBeat via DockerDocker root is enabled by default. No such problem. +> See [https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address](https://stackoverflow.com/questions/11506321/how-to-ping-an-ip-address) diff --git a/home/versioned_docs/version-1.7.x/help/plugin.md b/home/versioned_docs/version-1.7.x/help/plugin.md new file mode 100644 index 00000000000..4dabb13ebda --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/plugin.md @@ -0,0 +1,111 @@ +--- +id: plugin +title: Custom plugin(Beta) +sidebar_label: Custom plugin(Beta) +--- + +### Introduction + +In the current usage of `HertzBeat`, interaction with external systems only occurs after an alert through the notification feature. The plugin functionality allows users to add custom operations at various stages of the `HertzBeat` lifecycle, such as executing `SQL` or `shell` scripts after an alert, or sending collected monitoring data to other systems. Users can develop plugins following the custom plugin development process, package them, and then upload and enable them using the `Plugin Management` - `Upload Plugin` feature, thereby adding custom functionality without restarting `HertzBeat`. + +:::warning +In the current version, custom plugins are a test feature and may have some limitations and instability. The plugin functionality might be restructured in future versions. +::: + +### Supported Plugin Types + +1. `Post-Alert` Plugin + - Purpose: Execute custom operations after an alert + - Implementing Interface: `org.apache.hertzbeat.plugin.PostAlertPlugin` +2. `Post-Collect` Plugin + - Purpose: Execute custom operations after data collection + - Implementing Interface: `org.apache.hertzbeat.plugin.PostCollectPlugin` + +:::tip +To ensure that plugin functionality is clear and easy to manage, we recommend and only support one implementation of one plugin type interface in a plugin. +::: + +If you want to set trigger methods during collection, program startup, etc., please submit a `Task` at `https://github.com/apache/hertzbeat/issues/new/choose`. + +### Development Steps (Example: Implementing a Post-Alert Plugin) + +1. Clone the main branch code `git clone https://github.com/apache/hertzbeat.git`, and locate the `Plugin` interface in the `plugin` module. + ![plugin-1.png](/img/docs/help/plugin-1.png) +2. In the `org.apache.hertzbeat.plugin.impl` directory (create it if it does not exist), create an implementation class of `org.apache.hertzbeat.plugin.PostAlertPlugin`, such as `org.apache.hertzbeat.plugin.impl.DemoPlugin`. In the implementation class, receive the `Alert` class as a parameter, implement the `execute` method, and define custom logic. Here, we simply print the object. + + ```java + package org.apache.hertzbeat.plugin.impl; + + import org.apache.hertzbeat.common.entity.alerter.Alert; + import org.apache.hertzbeat.common.entity.plugin.PluginContext; + import org.apache.hertzbeat.plugin.PostAlertPlugin; + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; + + public class DemoPlugin implements PostAlertPlugin { + + private static final Logger log = LoggerFactory.getLogger(DemoPlugin.class); + + @Override + public void execute(Alert alert, PluginContext pluginContext) { + log.info("DemoPlugin alert: {}", alert); + log.info("DemoPlugin pluginContext: {}", pluginContext); + } + } + ``` + +3. Add the fully qualified name of the implementation class to the `META-INF/services/org.apache.hertzbeat.plugin.PostAlertPlugin` file (create it if it does not exist). Each fully qualified name should be on a separate line. + + ```shell + org.apache.hertzbeat.plugin.impl.DemoPluginImpl + ``` + +4. Package the `hertzbeat-plugin` module. + + ```shell + cd plugin + mvn package + ``` + +5. Use the `Plugin Management` - `Upload Plugin` feature to upload the plugin package ending with `-jar-with-lib.jar`, and enable the plugin to execute custom operations after an alert. + +### Defining Plugin Parameters + +The plugin feature supports custom parameters, and you can fill in the required parameters for the plugin during runtime using the `Plugin Management` - `Edit Parameters` feature. +Below is an example of defining a plugin with two parameters, detailing the process of defining plugin parameters: + +1. Add a parameter definition file in the `define` directory. Note that the parameter definition file must be a YAML file starting with `define`, such as `define-demo.yml`. +2. Define parameters in `define-demo.yml` as shown below: + + ```yaml + params: + - field: host + # name-param field display i18n name + name: + zh-CN: 目标 Host + en-US: Target Host + # type-param field type(most mapping the html input type) + type: text + # required-true or false + required: true + # field-param field key + - field: port + # name-param field display i18n name + name: + zh-CN: 端口 + en-US: Port + # type-param field type(most mapping the html input type) + type: number + # when type is number, range is required + range: '[0,65535]' + ``` + +3. Use the parameters in the plugin logic + + ```java + @Override + public void execute(Alert alert, PluginContext pluginContext) { + log.info("param host:{}",pluginContext.getString("host")); + log.info("param port:{}",pluginContext.getInteger("port")); + } + ``` diff --git a/home/versioned_docs/version-1.7.x/help/pop3.md b/home/versioned_docs/version-1.7.x/help/pop3.md new file mode 100644 index 00000000000..e33a34c131b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/pop3.md @@ -0,0 +1,47 @@ +--- +id: pop3 +title: Monitoring POP3 +sidebar_label: POP3 Monitor +keywords: [open source monitoring tool, open source java monitoring tool, monitoring POP3 metrics] +--- + +> Collect and monitor the general performance Metrics of POP3. + +**Protocol Use:POP3** + +### Enable POP3 Service + +If you want to monitor information in 'POP3' with this monitoring type, you just need to open `POP3` service in your mail server. + +**1、Open `POP3` Service:** + +```text +Using QQ Mail as an example [similar for other email services]: + 1. Click the "Settings" option + 2. Select "Account" + 3. Find the option to enable SMTP/POP3/IMAP, and turn it on + 4. Obtain the POP3 server domain name, port number, and authorization code [provided by QQ Mail after enabling SMTP/POP3/IMAP services] + 5. Connect to the POP3 server using the POP3 server domain name, port number, QQ email account, and authorization code to collect monitoring metrics +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by POP3 | +| SSL | POP3 If enabled SSL | +| Timeout | Allow collection response time | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:email_status + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-----------------------------------------| +| email_count | | Number of emails | +| mailbox_size | kb | The total size of emails in the mailbox | diff --git a/home/versioned_docs/version-1.7.x/help/port.md b/home/versioned_docs/version-1.7.x/help/port.md new file mode 100644 index 00000000000..6ae4a6bda2d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/port.md @@ -0,0 +1,28 @@ +--- +id: port +title: Monitoring:TCP port availability +sidebar_label: TCP Port availability +keywords: [open source monitoring tool, open source port monitoring tool, monitoring TCP port metrics] +--- + +> Judge whether the exposed port of the opposite end service is available, then judge whether the opposite end service is available, and collect Metrics such as response time for monitoring. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Connection timeout | Waiting timeout for port connection, unit:ms, default: 3000ms | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-------------------------| +| responseTime | ms | Website response time | diff --git a/home/versioned_docs/version-1.7.x/help/postgresql.md b/home/versioned_docs/version-1.7.x/help/postgresql.md new file mode 100644 index 00000000000..5191f7d325d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/postgresql.md @@ -0,0 +1,55 @@ +--- +id: postgresql +title: Monitoring:PostgreSQL database monitoring +sidebar_label: PostgreSQL database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring postgresql database metrics] +--- + +> Collect and monitor the general performance Metrics of PostgreSQL database. Support PostgreSQL 10+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------------------------| +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the PostgreSQL buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------------| +| running | connections | Number of current client connections | diff --git a/home/versioned_docs/version-1.7.x/help/prestodb.md b/home/versioned_docs/version-1.7.x/help/prestodb.md new file mode 100644 index 00000000000..3fb1cee3d78 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/prestodb.md @@ -0,0 +1,74 @@ +--- +id: presto +title: Monitoring PrestoDB Database +sidebar_label: PrestoDB Database +keywords: [ open source monitoring system, open source database monitoring, presto database monitoring] +--- + +> Collect and monitor general performance metrics of PrestoDB Atlas databases. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IP address, IPv4, IPv6, or domain name of the target to be monitored. Note: ⚠️ Do not include protocol headers (e.g., https://, http://). | +| port | Port | +| Task Name | The name identifying this monitor, which must be unique. | +| Connection Timeout | Timeout for PrestoDB connection when no response is received, in milliseconds (ms). Default is 6000 ms. | +| Collection Interval | Interval for periodic data collection, in seconds. The minimum interval is 30 seconds. | +| Binding Tags | Used for categorizing and managing monitoring resources. | +| Description/Remarks | Additional labels and description for this monitor; users can add notes here. | + +### Collection Metrics + +#### Metric Set: Cluster Status + +| Metric Name | Unit | Metric Description | +|----------------|------|--------------------| +| activeWorkers | None | Active Workers | +| runningQueries | None | Running Queries | +| queuedQueries | None | Queued Queries | +| blockedQueries | None | Blocked Queries | +| runningDrivers | None | Running Drivers | +| runningTasks | None | Running Tasks | + +### Metrics Collection: Node Information + +| Metric Name | Unit | Metric Description | +|----------------------|------|----------------------------------------------------| +| `uri` | None | Node link | +| `recentRequests` | None | Number of requests in the recent period | +| `recentFailures` | None | Number of failed requests in the recent period | +| `recentSuccesses` | None | Number of successful requests in the recent period | +| `lastRequestTime` | None | Time of the most recent request | +| `lastResponseTime` | None | Time of the most recent response | +| `age` | None | Duration of operation | +| `recentFailureRatio` | None | Failure rate in the recent period | + +#### Metric Set: Node Status + +| Metric Name | Unit | Metric Description | +|-----------------|------|-----------------------| +| nodeId | None | Node ID | +| nodeVersion | None | Node Version | +| environment | None | Environment | +| coordinator | None | Is Coordinator | +| uptime | None | Uptime | +| externalAddress | None | External Address | +| internalAddress | None | Internal Address | +| processors | None | Processors | +| processCpuLoad | None | Process CPU Load | +| systemCpuLoad | None | System CPU Load | +| heapUsed | MB | Heap Memory Used | +| heapAvailable | MB | Heap Memory Available | +| nonHeapUsed | MB | Non-Heap Memory Used | + +#### Metric Set: Task Query + +| Metric Name | Unit | Metric Description | +|---------------|------|--------------------| +| taskId | None | Task ID | +| version | None | Version | +| state | None | State | +| self | None | Self | +| lastHeartbeat | None | Last Heartbeat | diff --git a/home/versioned_docs/version-1.7.x/help/process.md b/home/versioned_docs/version-1.7.x/help/process.md new file mode 100644 index 00000000000..61dacc52ba6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/process.md @@ -0,0 +1,87 @@ +--- +id: process +title: Monitoring Linux Process Monitoring +sidebar_label: Process +keywords: [Open Source Monitoring System, Operating System Process Monitoring, Process Monitoring] +--- + +> Collect and monitor basic information of processes on Linux systems, including CPU usage, memory usage, physical memory, IO, etc. + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------------| +| Target Host | The IPv4, IPv6, or domain name of the monitored endpoint. Note ⚠️: Do not include the protocol header (e.g., https://, http://). | +| Task Name | Identifies the name of this monitoring, ensuring uniqueness. | +| Port | SSH port of the Linux system, default: 22 | +| Timeout | Sets the timeout for the connection in milliseconds, default is 6000 milliseconds. | +| Reuse Connection | Sets whether SSH connection is reused, default is false. When false, a new connection is created for each information retrieval. | +| Username | Username for the server. | +| Password | Password for the server. | +| Process Name | Name or part of the name of the process to be monitored. | +| Collector | Specifies which collector to use for scheduling this monitoring. | +| Monitoring Interval | Interval for periodic data collection, in seconds. Minimum interval that can be set is 30 seconds. | +| Tags | Used for categorizing and managing monitoring resources. | +| Description | Additional notes and descriptions for identifying this monitoring. Users can add remarks here. | +| Private Key | Private key required for connecting to the server. | + +### Metrics Collected + +#### Metric Set: Process Basic Information + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| PID | NONE | Process ID | +| User | NONE | User | +| CPU | NONE | CPU Usage | +| MEM | NONE | Memory Usage | +| rss | NONE | Physical Memory | +| cmd | NONE | Command | + +#### Metric Set: Memory Usage Information + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| PID | NONE | Process ID | +| detail | NONE | Detailed metrics | + +Includes metrics for: + +- Peak Virtual Memory +- Current Virtual Memory Usage +- Locked Memory +- Fixed Memory +- Peak Physical Memory +- Current Physical Memory Usage +- Data Segment Size +- Stack Size +- Code Size +- Shared Library Size +- Page Table Entry Size + +#### Metric Set: Other Monitoring Information + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-----------------------------------| +| PID | NONE | Process ID | +| path | NONE | Execution Path | +| date | NONE | Start Time | +| fd_count | NONE | Number of File Descriptors Opened | + +#### Metric Set: IO + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------| +| PID | NONE | Process ID | +| metric | NONE | Metric Name | +| value | NONE | Metric Value | + +Includes metrics for: + +- rchar (Total bytes read by the process from disk or other files) +- wchar (Total bytes written by the process to disk or other files) +- syscr (Number of read operations initiated by the process) +- syscw (Number of write operations initiated by the process) +- read_bytes (Actual number of bytes read by the process from disk) +- write_bytes (Actual number of bytes written by the process to disk) +- cancelled_write_bytes (Actual number of bytes cancelled by the process while writing to disk) diff --git a/home/versioned_docs/version-1.7.x/help/prometheus.md b/home/versioned_docs/version-1.7.x/help/prometheus.md new file mode 100755 index 00000000000..39af4dff7e4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/prometheus.md @@ -0,0 +1,41 @@ +--- +id: prometheus +title: Monitoring Prometheus Task +sidebar_label: Prometheus Task Monitor +keywords: [ open source monitoring tool, Prometheus protocol monitoring ] +--- + +> Collect metric data of applications that support the Prometheus protocol. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Task Name | Identify the name of this monitoring. The name needs to be unique. | +| Port | Monitor HTTP port. | +| Endpoint Path | Monitor the path of HTTP interfaces, Note ⚠️ It needs to start with /. | +| Query Timeout | Set the data collection timeout, unit: ms, default: 6000ms. | +| HTTPS | HTTPS enable,optional,default:false. | +| Headers | HTTP request headers,optional. | +| Params | Request params,optional. | +| Content-Type | ContentType,optional. | +| BODY | Request body,optional. | +| Auth Type | Authentication methods, optional values include: `Basic Auth`, `Digest Auth`,optional. | +| Username | Username,optional. | +| Password | Password,optional. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Example of usage + +The exposed monitoring address of the application is: `http://127.0.0.1:8080/actuator/prometheus` + +You can use the following configuration: + +- Target Host: `127.0.0.1` +- Port: `8080` +- Endpoint Path: `/actuator/prometheus` + +Keep the rest of the settings default. diff --git a/home/versioned_docs/version-1.7.x/help/pulsar.md b/home/versioned_docs/version-1.7.x/help/pulsar.md new file mode 100644 index 00000000000..a938c6f02f6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/pulsar.md @@ -0,0 +1,72 @@ +--- +id: pulsar +title: Monitoring Pulsar Monitoring +sidebar_label: Apache Pulsar +keywords: [open-source monitoring system, open-source database monitoring, HbaseMaster monitoring] +--- + +> Collecting and monitoring general performance metrics of Pulsar + +**Protocol Used: HTTP** + +## Configuration Parameters + +| Parameter Name | Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored endpoint's IPV4, IPV6, or domain name. Note⚠️: Do not include the protocol header (e.g., https://, http://). | +| Port | The webServicePort value of Pulsar, default is 8080. | +| Task Name | The name identifying this monitoring task, must be unique. | +| Query Timeout | Set the connection timeout in milliseconds, default is 3000 milliseconds. | +| Monitoring Interval | Interval time for periodic data collection, in seconds, minimum interval is 30 seconds. | +| Binding Tags | Used for categorizing monitoring resources. | +| Description/Remarks | Additional notes and descriptions for this monitoring task. Users can add more information here. | + +### Collected Metrics + +#### Metric Set: Version Information + +| Metric Name | Unit | Description | +|--------------|------|---------------------| +| Version Info | NONE | Version Information | + +#### Metric Set: process_start_time_seconds + +| Metric Name | Unit | Description | +|--------------------|------|--------------------| +| Process Start Time | NONE | Process Start Time | + +#### Metric Set: process_open_fds + +| Metric Name | Unit | Description | +|-----------------------|------|---------------------------------| +| Open File Descriptors | NONE | Number of Open File Descriptors | + +#### Metric Set: process_max_fds + +| Metric Name | Unit | Description | +|----------------------|------|------------------------------------| +| Max File Descriptors | NONE | Maximum Number of File Descriptors | + +#### Metric Set: jvm_memory_pool_allocated_bytes_total + +Number of bytes of memory allocated in a specific memory pool in the Java Virtual Machine (JVM). In Pulsar, this typically refers to the amount of memory allocated for various purposes in the JVM (such as heap memory, non-heap memory, etc.). + +#### Metric Set: jvm_memory_pool_used_bytes + +Unlike allocated_bytes, this metric shows the actual used memory, not just the allocated memory. + +#### Metric Set: jvm_memory_pool_committed_bytes + +Number of bytes of memory committed in a specific memory pool in the JVM. In the JVM, committed memory is the amount of memory guaranteed to be available for the application to use. This portion of memory is typically locked by the operating system to reduce swapping or garbage collection. + +#### Metric Set: jvm_memory_pool_max_bytes + +Maximum number of bytes of memory that can be allocated in a specific memory pool in the JVM. This is the upper limit on memory usage for that memory pool and helps in setting the memory usage cap. + +#### Metric Set: pulsar_broker_publish_latency + +Message publishing latency on the broker side. + +#### Metric Set: pulsar_metadata_store_ops_latency_ms_bucket + +Latency of metadata store operations on the broker side. diff --git a/home/versioned_docs/version-1.7.x/help/rabbitmq.md b/home/versioned_docs/version-1.7.x/help/rabbitmq.md new file mode 100644 index 00000000000..4dd30d94318 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/rabbitmq.md @@ -0,0 +1,125 @@ +--- +id: rabbitmq +title: Monitoring RabbitMQ +sidebar_label: RabbitMQ Monitor +keywords: [open source monitoring tool, open source rabbitmq monitoring tool, monitoring rabbitmq metrics] +--- + +> Monitoring the running status of RabbitMQ message middleware, nodes, topics and other related metrics. + +### Pre-monitoring Operations + +> HertzBeat uses RabbitMQ Management's Rest Api to collect RabbitMQ metric data. +> Therefore, you need to enable the Management plug-in in your RabbitMQ environment + +1. Open the Management plugin, or use the self-opening version + + ```shell + rabbitmq-plugins enable rabbitmq_management + ``` + +2. Access [http://ip:15672/](http://ip:15672/) with a browser, and the default account password is `guest/guest`. Successful login means that it is successfully opened. + +3. Just add the corresponding RabbitMQ monitoring in HertzBeat, the parameters use the IP port of Management, and the default account password. + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The HTTP port provided by RabbitMQ Management, the default is 15672. | +| Username | Username used for interface Basic authentication | +| Password | The password used for interface Basic authentication | +| Timeout | HTTP request query timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect Metrics + +#### metrics: overview + +| Metric Name | Metric Unit | Metric Description | +|--------------------|-------------|------------------------------------| +| product_version | None | Product Version | +| product_name | None | Product name | +| rabbitmq_version | none | rabbitmq version | +| management_version | None | rabbitmq management plugin version | +| erlang_version | None | erlang version | +| cluster_name | None | Cluster name | +| rates_mode | None | rates mode | + +#### metrics: object_totals + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|-----------------------------| +| channels | none | total number of channels | +| connections | none | total number of connections | +| consumers | none | total number of consumers | +| exchanges | none | total number of exchanges | +| queues | none | total number of queues | + +#### metrics: nodes + +| Metric Name | Metric Unit | Metric Description | +|--------------------|-------------|-----------------------------------------------------------| +| name | None | The node name | +| type | None | The node type | +| running | None | Running state | +| os_pid | None | Pid in OS | +| mem_limit | MB | Memory usage high watermark | +| mem_used | MB | Total amount of memory used | +| fd_total | None | File descriptors available | +| fd_used | None | File descriptors used | +| sockets_total | None | Sockets available | +| sockets_used | None | Sockets used | +| proc_total | None | Erlang process limit | +| proc_used | None | Erlang processes used | +| disk_free_limit | GB | Free disk space low watermark | +| disk_free | GB | Free disk space | +| gc_num | None | GC runs | +| gc_bytes_reclaimed | MB | Bytes reclaimed by GC | +| context_switches | None | Context_switches num | +| io_read_count | None | Total number of read operations | +| io_read_bytes | KB | Total data size read into disk | +| io_read_avg_time | ms | Average read operation time in milliseconds | +| io_write_count | None | Total disk write operations | +| io_write_bytes | KB | Total amount of data written to disk | +| io_write_avg_time | ms | Average time of each disk write operation in milliseconds | +| io_seek_count | None | total seek operation | +| io_seek_avg_time | ms | average seek operation time, in milliseconds | +| io_sync_count | None | total amount of fsync operations | +| io_sync_avg_time | ms | Average time of fsync operation in milliseconds | +| connection_created | None | connection created num | +| connection_closed | None | connection closed num | +| channel_created | None | channel created num | +| channel_closed | None | channel closed num | +| queue_declared | None | queue declared num | +| queue_created | None | queue created num | +| queue_deleted | None | queue deleted num | +| connection_closed | None | connection closed num | + +#### metrics: queues + +| Metric Name | Metric Unit | Metric Description | +|------------------------------|-------------|--------------------------------------------------------------------------------------------------------------------------------------| +| name | None | The name of the queue with non-ASCII characters escaped as in C. | +| node | None | The queue on the node name | +| state | None | The state of the queue. Normally "running", but may be `{syncing, message_count}` if the queue is synchronising. | +| type | None | Queue type, one of: quorum, stream, classic. | +| vhost | None | vhost path | +| auto_delete | None | Whether the queue will be deleted automatically when no longer used | +| policy | None | Effective policy name for the queue. | +| consumers | None | Number of consumers. | +| memory | B | Bytes of memory allocated by the runtime for the queue, including stack, heap and internal structures. | +| messages_ready | None | Number of messages ready to be delivered to clients | +| messages_unacknowledged | None | Number of messages delivered to clients but not yet acknowledged | +| messages | None | Sum of ready and unacknowledged messages (queue depth) | +| messages_ready_ram | None | Number of messages from messages_ready which are resident in ram | +| messages_persistent | None | Total number of persistent messages in the queue (will always be 0 for transient queues) | +| message_bytes | B | Sum of the size of all message bodies in the queue. This does not include the message properties (including headers) or any overhead | +| message_bytes_ready | B | Like message_bytes but counting only those messages ready to be delivered to clients | +| message_bytes_unacknowledged | B | Like message_bytes but counting only those messages delivered to clients but not yet acknowledged | +| message_bytes_ram | B | Like message_bytes but counting only those messages which are currently held in RAM | +| message_bytes_persistent | B | Like message_bytes but counting only those messages which are persistent | diff --git a/home/versioned_docs/version-1.7.x/help/redhat.md b/home/versioned_docs/version-1.7.x/help/redhat.md new file mode 100644 index 00000000000..4b398c83714 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/redhat.md @@ -0,0 +1,114 @@ +--- +id: redhat +title: Monitoring RedHat Operating System +sidebar_label: RedHat OS Operating System +keywords: [ Open Source Monitoring System, Open Source OS Monitoring, RedHat OS Monitoring ] +--- + +> Collect and monitor general performance metrics for RedHat operating systems (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.). + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/redis.md b/home/versioned_docs/version-1.7.x/help/redis.md new file mode 100644 index 00000000000..2edbc47f482 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/redis.md @@ -0,0 +1,234 @@ +--- +id: redis +title: Monitorin REDIS database +sidebar_label: REDIS +keywords: [ open source monitoring tool, open source Redis monitoring tool, monitoring Redis metrics ] +--- + +> Collect and monitor the general performance Metrics of Redis database. Support REDIS1.0+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|--------|------------------------------------------------------| +| Target Host | The IP, IPV6, or domain name of the monitored endpoint. Note ⚠️: Do not include protocol headers (eg: https://, http://). | +| Port | The HTTP port provided by Redis, default value is 6379, sentinel node`s default value is 26379 | +| Timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | + +### Collection Metric + +#### Metric set:server + +| Metric name | Metric unit | Metric help description | +|--------------------------|------|-----------------------------------------------| +| redis_version | none | Version of the Redis server | +| redis_git_sha1 | none | Git SHA1 | +| redis_git_dirty | none | Git dirty flag | +| redis_build_id | none | The build id | +| redis_mode | none | The server's mode ("standalone", "sentinel" or "cluster") | +| os | none | Operating system hosting the Redis server | +| arch_bits | none | Architecture (32 or 64 bits) | +| multiplexing_api | none | Event loop mechanism used by Redis | +| atomicvar_api | none | Atomicvar API used by Redis | +| gcc_version | none | Version of the GCC compiler used to compile the Redis server | +| process_id | none | PID of the server process | +| process_supervised | none | Supervised system ("upstart", "systemd", "unknown" or "no") | +| run_id | none | Random value identifying the Redis server (to be used by Sentinel and Cluster) | +| tcp_port | none | TCP/IP listen port | +| server_time_usec | none | Epoch-based system time with microsecond precision | +| uptime_in_seconds | none | Number of seconds since Redis server start | +| uptime_in_days | none | Same value expressed in days | +| hz | none | The server's current frequency setting | +| configured_hz | none | The server's configured frequency setting | +| lru_clock | none | Clock incrementing every minute, for LRU management | +| executable | none | The path to the server's executable | +| config_file | none | The path to the config file | +| io_threads_active | none | Flag indicating if I/O threads are active | +| shutdown_in_milliseconds | none | The maximum time remaining for replicas to catch up the replication before completing the shutdown sequence. This field is only present during shutdown. | + +#### Metric set:clients + +| Metric name | Metric unit | Metric help description | +|---------------------------------|------|--------------------------------------------------------------------------------| +| connected_clients | none | Number of client connections (excluding connections from replicas) | +| cluster_connections | none | An approximation of the number of sockets used by the cluster's bus | +| maxclients | none | The value of the maxclients configuration directive. This is the upper limit for the sum of connected_clients, connected_slaves and cluster_connections. | +| client_recent_max_input_buffer | byte | Biggest input buffer among current client connections | +| client_recent_max_output_buffer | byte | Biggest output buffer among current client connections | +| blocked_clients | none | Number of clients pending on a blocking call (BLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BZPOPMIN, BZPOPMAX) | +| tracking_clients | none | Number of clients being tracked (CLIENT TRACKING) | +| clients_in_timeout_table | none | Number of clients in the clients timeout table | + +#### Metric set:memory + +| Metric name | Metric unit | Metric help description | +|---------------------------|----------|-----------------------------------------------------------------------------------------------| +| used_memory | byte | Total number of bytes allocated by Redis using its allocator (either standard libc, jemalloc, or an alternative allocator such as tcmalloc) | +| used_memory_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_rss | byte | Number of bytes that Redis allocated as seen by the operating system (a.k.a resident set size). This is the number reported by tools such as top(1) and ps(1) | +| used_memory_rss_human | GB/MB/KB | Human readable representation of previous value值 | +| used_memory_peak | byte | Peak memory consumed by Redis (in bytes) | +| used_memory_peak_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_peak_perc | none | The percentage of used_memory_peak out of used_memory | +| used_memory_overhead | byte | The sum in bytes of all overheads that the server allocated for managing its internal data structures | +| used_memory_startup | byte | Initial amount of memory consumed by Redis at startup in bytes | +| used_memory_dataset | byte | The size in bytes of the dataset (used_memory_overhead subtracted from used_memory) | +| used_memory_dataset_perc | none | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) | +| allocator_allocated | byte | Total bytes allocated form the allocator, including internal-fragmentation. Normally the same as used_memory. | +| allocator_active | byte | Total bytes in the allocator active pages, this includes external-fragmentation. | +| allocator_resident | byte | Total bytes resident (RSS) in the allocator, this includes pages that can be released to the OS (by MEMORY PURGE, or just waiting). | +| total_system_memory | byte | The total amount of memory that the Redis host has | +| total_system_memory_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_lua | byte | Number of bytes used by the Lua engine for EVAL scripts. Deprecated in Redis 7.0, renamed to used_memory_vm_eval | +| used_memory_lua_human | KB | Human readable representation of previous value. Deprecated in Redis 7.0 | +| used_memory_scripts | byte | used_memory_scripts_eval + used_memory_functions (part of used_memory). Added in Redis 7.0 | +| used_memory_scripts_human | GB/MB/KB | Human readable representation of previous value | +| number_of_cached_scripts | none | The number of EVAL scripts cached by the server. Added in Redis 7.0 | +| maxmemory | byte | The value of the maxmemory configuration directive | +| maxmemory_human | GB/MB/KB | Human readable representation of previous value | +| maxmemory_policy | none | The value of the maxmemory-policy configuration directive | +| allocator_frag_ratio | none | Ratio between allocator_active and allocator_allocated. This is the true (external) fragmentation metric (not mem_fragmentation_ratio). | +| allocator_frag_bytes | byte | Delta between allocator_active and allocator_allocated. See note about mem_fragmentation_bytes. | +| allocator_rss_ratio | | Ratio between allocator_resident and allocator_active. | +| allocator_rss_bytes | byte | Delta between allocator_resident and allocator_active | +| rss_overhead_ratio | none | Ratio between used_memory_rss (the process RSS) and allocator_resident. This includes RSS overheads that are not allocator or heap related. | +| rss_overhead_bytes | byte | Delta between used_memory_rss (the process RSS) and allocator_resident | +| mem_fragmentation_ratio | none | Ratio between used_memory_rss and used_memory. Note that this doesn't only includes fragmentation, but also other process overheads (see the allocator_* metrics), and also overheads like code, shared libraries, stack, etc. | +| mem_fragmentation_bytes | byte | Delta between used_memory_rss and used_memory. Note that when the total fragmentation bytes is low (few megabytes), a high ratio (e.g. 1.5 and above) is not an indication of an issue. | +| mem_not_counted_for_evict | byte | Used memory that's not counted for key eviction. This is basically transient replica and AOF buffers. | +| mem_replication_backlog | byte | Memory used by replication backlog | +| mem_clients_slaves | none | Memory used by replica clients - Starting Redis 7.0, replica buffers share memory with the replication backlog, so this field can show 0 when replicas don't trigger an increase of memory usage. | +| mem_clients_normal | none | Memory used by normal clients | +| mem_aof_buffer | none | Transient memory used for AOF and AOF rewrite buffers | +| mem_allocator | none | Memory allocator, chosen at compile time. | +| active_defrag_running | none | When activedefrag is enabled, this indicates whether defragmentation is currently active, and the CPU percentage it intends to utilize. | +| lazyfree_pending_objects | none | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) | +| lazyfreed_objects | none | The number of objects that have been lazy freed. | + +#### Metric set:persistence + +| Metric name | Metric unit | Metric help description | +|------------------------------|--------|-----------------------------------------------------------------------------------------------------| +| loading | none | Flag indicating if the load of a dump file is on-going | +| current_cow_size | byte | The size in bytes of copy-on-write memory while a child fork is running | +| current_cow_size_age | second | The age, in seconds, of the current_cow_size value. | +| current_fork_perc | none | The percentage of progress of the current fork process. For AOF and RDB forks it is the percentage of current_save_keys_processed out of | +| current_save_keys_processed | none | Number of keys processed by the current save operation | +| current_save_keys_total | none | Number of keys at the beginning of the current save operation | +| rdb_changes_since_last_save | none | Number of changes since the last dump | +| rdb_bgsave_in_progress | none | Flag indicating a RDB save is on-going | +| rdb_last_save_time | second | Epoch-based timestamp of last successful RDB save | +| rdb_last_bgsave_status | none | Status of the last RDB save operation | +| rdb_last_bgsave_time_sec | second | Duration of the last RDB save operation in seconds | +| rdb_current_bgsave_time_sec | none | Duration of the on-going RDB save operation if any | +| rdb_last_cow_size | none | The size in bytes of copy-on-write memory during the last RDB save operation | +| aof_enabled | none | Flag indicating AOF logging is activated | +| aof_rewrite_in_progress | none | Flag indicating a AOF rewrite operation is on-going | +| aof_rewrite_scheduled | none | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete. | +| aof_last_rewrite_time_sec | none | Duration of the last AOF rewrite operation in seconds | +| aof_current_rewrite_time_sec | second | Duration of the on-going AOF rewrite operation if any | +| aof_last_bgrewrite_status | none | Status of the last AOF rewrite operation | +| aof_last_write_status | none | Status of the last write operation to the AOF | +| aof_last_cow_size | none | The size in bytes of copy-on-write memory during the last AOF rewrite operation | +| module_fork_in_progress | none | Flag indicating a module fork is on-going | +| module_fork_last_cow_size | none | The size in bytes of copy-on-write memory during the last module fork operation | + +#### Metric set:stats + +| Metric name | Metric unit | Metric help description | +|--------------------------------|------|----------------------------------------------------| +| total_connections_received | none | Total number of connections accepted by the server | +| total_commands_processed | none | Total number of commands processed by the server | +| instantaneous_ops_per_sec | none | Number of commands processed per second | +| total_net_input_bytes | byte | The total number of bytes read from the network | +| total_net_output_bytes | byte | The total number of bytes written to the network | +| instantaneous_input_kbps | KB/S | The network's read rate per second in KB/sec | +| instantaneous_output_kbps | KB/S | The network's write rate per second in KB/sec | +| rejected_connections | none | Number of connections rejected because of maxclients limit | +| sync_full | none | The number of full resyncs with replicas | +| sync_partial_ok | none | The number of accepted partial resync requests | +| sync_partial_err | none | The number of denied partial resync requests | +| expired_keys | none | Total number of key expiration events | +| expired_stale_perc | none | The percentage of keys probably expired | +| expired_time_cap_reached_count | none | The count of times that active expiry cycles have stopped early | +| expire_cycle_cpu_milliseconds | none | The cumulative amount of time spent on active expiry cycles | +| evicted_keys | none | Number of evicted keys due to maxmemory limit | +| keyspace_hits | none | Number of successful lookup of keys in the main dictionary | +| keyspace_misses | none | Number of failed lookup of keys in the main dictionary | +| pubsub_channels | none | Global number of pub/sub channels with client subscriptions | +| pubsub_patterns | none | Global number of pub/sub pattern with client subscriptions | +| latest_fork_usec | none | Duration of the latest fork operation in microseconds | +| total_forks | none | Total number of fork operations since the server start | +| migrate_cached_sockets | none | The number of sockets open for MIGRATE purposes | +| slave_expires_tracked_keys | none | The number of keys tracked for expiry purposes (applicable only to writable replicas) | +| active_defrag_hits | none | Number of value reallocations performed by active the defragmentation process | +| active_defrag_misses | none | Number of aborted value reallocations started by the active defragmentation process | +| active_defrag_key_hits | none | Number of keys that were actively defragmented | +| active_defrag_key_misses | none | Number of keys that were skipped by the active defragmentation process | +| tracking_total_keys | none | Number of keys being tracked by the server | +| tracking_total_items | none | Number of items, that is the sum of clients number for each key, that are being tracked | +| tracking_total_prefixes | none | Number of tracked prefixes in server's prefix table (only applicable for broadcast mode) | +| unexpected_error_replies | none | Number of unexpected error replies, that are types of errors from an AOF load or replication | +| total_error_replies | none | Total number of issued error replies, that is the sum of rejected commands (errors prior command execution) and failed commands (errors within the command execution) | +| dump_payload_sanitizations | none | Total number of dump payload deep integrity validations (see sanitize-dump-payload config). | +| total_reads_processed | none | Total number of read events processed | +| total_writes_processed | none | Total number of write events processed | +| io_threaded_reads_processed | none | Number of read events processed by the main and I/O threads | +| io_threaded_writes_processed | none | Number of write events processed by the main and I/O threads | + +#### Metric set:replication + +| Metric name | Metric unit | Metric help description | +|--------------------------------|------|-------------------------------------------------------------------------------------| +| role | none | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). | +| connected_slaves | none | Number of connected replicas | +| master_failover_state | none | The state of an ongoing failover, if any. | +| master_replid | none | The replication ID of the Redis server. | +| master_replid2 | none | The secondary replication ID, used for PSYNC after a failover. | +| master_repl_offset | none | The server's current replication offset | +| second_repl_offset | none | The offset up to which replication IDs are accepted | +| repl_backlog_active | none | Flag indicating replication backlog is active | +| repl_backlog_size | byte | Total size in bytes of the replication backlog buffer | +| repl_backlog_first_byte_offset | none | The master offset of the replication backlog buffer | +| repl_backlog_histlen | none | Size in bytes of the data in the replication backlog buffer | + +#### Metric set:cpu + +| Metric name | Metric unit | Metric help description | +|---------------------------|------|------------------------| +| used_cpu_sys | none | System CPU consumed by the Redis server, which is the sum of system CPU consumed by all threads of the server process (main thread and background threads) | +| used_cpu_user | none | User CPU consumed by the Redis server, which is the sum of user CPU consumed by all threads of the server process (main thread and background threads) | +| used_cpu_sys_children | none | System CPU consumed by the background processes | +| used_cpu_user_children | none | User CPU consumed by the background processes | +| used_cpu_sys_main_thread | none | System CPU consumed by the Redis server main thread | +| used_cpu_user_main_thread | none | User CPU consumed by the Redis server main thread | + +#### Metric set:errorstats + +| Metric name | Metric unit | Metric help description | +|-------------------|------|-----------| +| errorstat_ERR | none | ERR count | +| errorstat_MISCONF | none | MISCONF count | + +#### Metric set:cluster + +| Metric name | Metric unit | Metric help description | +|-----------------|------|--------------------| +| cluster_enabled | none | Indicate Redis cluster is enabled | + +#### Metric set:commandstats + +| Metric name | Metric unit | Metric help description | +|---------------|------|---------------------------------------------------------------------------------------------------------------------------| +| cmdstat_set | none | set command stat | +| cmdstat_get | none | get command stat | +| cmdstat_setnx | none | setnx command stat | +| cmdstat_hset | none | hset command stat | +| cmdstat_hget | none | hget command stat | +| cmdstat_lpush | none | lpush command stat | +| cmdstat_rpush | none | rpush command stat | +| cmdstat_lpop | none | lpop command stat | +| cmdstat_rpop | none | rpop command stat | +| cmdstat_llen | none | llen command stat | diff --git a/home/versioned_docs/version-1.7.x/help/redis_cluster.md b/home/versioned_docs/version-1.7.x/help/redis_cluster.md new file mode 100644 index 00000000000..f8284bd9a78 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/redis_cluster.md @@ -0,0 +1,166 @@ +--- +id: redis_cluster +title: Monitoring Redis Cluster +sidebar_label: Redis Cluster Monitor +keywords: [ open source monitoring tool, open source Redis Cluster monitoring tool, monitoring Redis Cluster metrics ] +--- + +### Pre-monitoring operations + +1. create a empty folder and add two files. + + *redis.config* + + ```shell + port 6379 + cluster-enabled yes + cluster-config-file nodes.conf + cluster-node-timeout 5000 + appendonly yes + bind 0.0.0.0 + protected-mode no + + ``` + + *docker-compose.yml* + + ```yml + services: + redis-master-1: + image: redis:latest + container_name: redis-master-1 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "1000:6379" + + redis-master-2: + image: redis:latest + container_name: redis-master-2 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "2000:6379" + + redis-master-3: + image: redis:latest + container_name: redis-master-3 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "3000:6379" + + redis-slave-1: + image: redis:latest + container_name: redis-slave-1 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "1001:6379" + + redis-slave-2: + image: redis:latest + container_name: redis-slave-2 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "2001:6379" + + redis-slave-3: + image: redis:latest + container_name: redis-slave-3 + command: ["redis-server", "/usr/local/etc/redis/redis.conf"] + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf + ports: + - "3001:6379" + + networks: + default: + external: + name: hertzbeat-redis-cluster + ``` + +2. View the IP addresses of all containers from the network, which is required when building a cluster. + + ```bash + docker-compose up -d + docker network inspect hertzbeat-redis-cluste + ``` + + ```json + "Containers": { + "187b879f73c473b3cbb82ff95f668e65af46115ddaa27f3ff1a712332b981531": { + ... + "Name": "redis-slave-2", + "IPv4Address": "192.168.117.6/24", + ... + }, + "45e22b64c82e51857fc104436cdd6cc0c5776ad10a2e4b9d8e52e36cfb87217e": { + ... + "Name": "redis-master-3", + "IPv4Address": "192.168.117.3/24 + ... + }, + "57838ae37956f8af181f9a131eb011efec332b9ed3d49480f59d8962ececf288": { + ... + "Name": "redis-master-2", + "IPv4Address": "192.168.117.7/24", + ... + }, + "94478d14bd950bcde533134870beb89b392515843027a0595af56dd1e3305a76": { + ... + "Name": "redis-master-1", + "IPv4Address": "192.168.117.4/24", + ... + }, + "ad055720747e7fc430ba794d5321723740eeb345c280073e4292ed4302ff657c": { + ... + "Name": "redis-slave-3", + "IPv4Address": "192.168.117.2/24", + ... + }, + "eddded1ac4c7528640ba0c6befbdaa48faa7cb13905b934ca1f5c69ab364c725": { + ... + "Name": "redis-slave-1", + "IPv4Address": "192.168.117.5/24", + ... + } + }, + ``` + +3. Go inside the container to build a Redis cluster. + + ```bash + docker exec -it redis-master-1 /bin/bash + ``` + + ```bash + redis-cli --cluster create \ + 192.168.117.4:6379 \ + 192.168.117.7:6379 \ + 192.168.117.3:6379 \ + 192.168.117.5:6379 \ + 192.168.117.6:6379 \ + 192.168.117.2:6379 \ + --cluster-replicas 1 + ``` + +4. Specific operations. + + Add a redis monitor center, fill require parameters. + + ![HertzBeat](/img/docs/help/redis-cluster-add.png) + + final effect. + + ![HertzBeat](/img/docs/help/redis-cluster-view.png) + +### Configuration Parameters + + Please see [REDIS](https://hertzbeat.apache.org/docs/help/redis) doc. diff --git a/home/versioned_docs/version-1.7.x/help/registry.md b/home/versioned_docs/version-1.7.x/help/registry.md new file mode 100644 index 00000000000..abf4c395b55 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/registry.md @@ -0,0 +1,51 @@ +--- +id: registry +title: Monitoring Registry +sidebar_label: Registry Monitor +keywords: [open source monitoring tool, open source java monitoring tool, monitoring registry metrics] +--- + +> Collect and monitor the general performance Metrics of Registry. + +**Protocol Use:registry** + +## Steps to monitor micro services + +1. Make sure your **Register center** is available + + > We currently support for `Consul` and `Nacos`. + +2. Add http_sd monitor and enter necessary info about **Register center** on Hertzbeat, such as host, port and so on. +3. Click **OK** + +## Configuration parameter + +| Parameter name | Parameter help description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Task name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Register center | +| Discovery Client Type | Select one Register center that you want to monitor | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +## Collection Metrics + +## Metrics Set:server + +| Metric name | Metric unit | Metric help description | +|---------------|-------------|-------------------------| +| Address | | | +| Port | | | +| Response Time | ms | | + +## Metrics Set:service + +| Metric name | Metric unit | Metric help description | +|---------------|-------------|----------------------------------| +| Service Id | | | +| Service Name | | | +| Address | | | +| Port | | | +| Health Status | | Current health status of service | diff --git a/home/versioned_docs/version-1.7.x/help/risc-v.md b/home/versioned_docs/version-1.7.x/help/risc-v.md new file mode 100644 index 00000000000..6e44b36c6c1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/risc-v.md @@ -0,0 +1,96 @@ +--- +id: risc-v +title: HertzBeat Running in RISC-V Architecture Environment +sidebar_label: RISC-V +keywords: [ Open Source Monitoring System, RISC-V Architecture, RISC-V Running HertzBeat ] +--- + +> How to Set Up a RISC-V Environment and Run HertzBeat on RISC-V Architecture. + +## RISC-V Environment Setup + +Ensure your RISC-V development environment is properly configured, including compatible hardware or emulators. This guide uses the QEMU emulator on Ubuntu to simulate RISC-V architecture. + +**1. Install QEMU and Required Packages** + +```shell +sudo apt update +sudo apt install opensbi qemu-system-misc u-boot-qemu +``` + +**2. Download Ubuntu Image for RISC-V Architecture** + +Download link: [https://ubuntu.com/download/risc-v](https://ubuntu.com/download/risc-v) +Select the `QEMU Emulator` version and download your preferred release. + +**3. Install Ubuntu on QEMU** + +> Use QEMU to boot Ubuntu and emulate RISC-V architecture. Parameters (e.g., boot settings, disk size) can be customized. + +```shell +# Decompress the image +xz -dk ubuntu-24.04.2-preinstalled-server-riscv64.img.xz + +# Optional: Expand the disk size +qemu-img resize -f raw ubuntu-24.04-preinstalled-server-riscv64.img +5G + +# Start the VM using u-boot-qemu +qemu-system-riscv64 \ + -machine virt -nographic -m 2048 -smp 4 \ + -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \ + -device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \ + -device virtio-rng-pci \ + -drive file=ubuntu-24.04.2-preinstalled-server-riscv64.img,format=raw,if=virtio +``` + +After the console output completes, log in with username ubuntu and default password ubuntu. You will be prompted to set a new password. +Reference: [Ubuntu Official Documentation](https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/how-to/qemu-riscv/) + +## Install and Configure RISC-V-Compatible JDK + +> Configure a JDK that supports RISC-V architecture. Here we use Temurin JDK 17. + +**1. Download Temurin JDK** +Download link: [https://adoptium.net/temurin/releases](https://adoptium.net/temurin/releases) + +**2. Configure JDK Environment** + +> Adjust commands based on your downloaded JDK version. + +```shell +# Install tools +sudo apt update +sudo apt install -y tar wget + +# Create installation directory +sudo mkdir -p /usr/lib/jvm + +# Extract to system directory +sudo tar -xzf OpenJDK17U-jdk_riscv64_linux_hotspot_17.0.15_6.tar.gz -C /usr/lib/jvm + +# Edit environment variables +sudo nano /etc/profile.d/java.sh +export JAVA_HOME=/usr/lib/jvm/jdk-17.0.15+6 +export PATH=$JAVA_HOME/bin:$PATH + +# Apply configuration +source /etc/profile.d/java.sh + +# Verify installation +java -version +``` + +## Run HertzBeat + +> Download the installer from [HertzBeat Official Site](https://hertzbeat.apache.org/zh-cn/docs/download/) and follow the deployment guide. Example for v1.7.2 . + +```shell +cd apache-hertzbeat-1.7.2-incubating-bin/bin/ +./startup.sh +``` + +> Notes: +> +> 1. Replace `OpenJDK17U-jdk_riscv64_linux_hotspot_17.0.15_6.tar.gz` with your actual JDK filename. +> 2. Ensure the emulator has internet access to download HertzBeat. +> 3. If issues arise, verify disk permissions and Java environment paths. diff --git a/home/versioned_docs/version-1.7.x/help/rocketmq.md b/home/versioned_docs/version-1.7.x/help/rocketmq.md new file mode 100644 index 00000000000..4fbe5e195a4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/rocketmq.md @@ -0,0 +1,48 @@ +--- +id: rocketmq +title: Monitoring Apache RocketMQ +sidebar_label: Apache RocketMQ +keywords: [ open source monitoring tool, monitoring Apache RocketMQ metrics ] +--- + +> Monitor the broker, consumer and other related metrics of RocketMQ. + +### Configuration parameters + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Namesrv Host | IPV4,IPV6 of RocketMQ name server(eg: https://, http://)。 | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Port | Port of RocketMQ name server. | +| accessKey | accessKey. | +| secretKey | secretKey. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metric + +#### Metric set:cluster + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|---------------------------------------| +| BrokerId | none | Broker id | +| Address | none | Broker address | +| Version | none | Version | +| Producer_Message_TPS | none | Produce message TPS | +| Consumer_Message_TPS | none | Consume message TPS | +| Yesterday_Produce_Count | none | Number of messages produced yesterday | +| Yesterday_Consume_Count | none | Number of messages consumed yesterday | +| Today_Produce_Count | none | Number of messages produced today | +| Today_Consume_Count | none | Number of messages consumed today | + +#### Metric set:Consumer + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------| +| Consumer_group | none | Consumer group | +| Client_quantity | none | Number of clients | +| Message_model | none | Message model | +| Consume_type | none | Consume type | +| Consume_tps | none | Consume tps | +| Delay | none | Delay | diff --git a/home/versioned_docs/version-1.7.x/help/rockylinux.md b/home/versioned_docs/version-1.7.x/help/rockylinux.md new file mode 100644 index 00000000000..d62ecc20c49 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/rockylinux.md @@ -0,0 +1,114 @@ +--- +id: rockylinux +title: Monitoring Rocky Linux Operating System +sidebar_label: Rocky Linux Operating System +keywords: [ Open Source Monitoring System, Open Source OS Monitoring, Rocky Linux Monitoring ] +--- + +> Collect and monitor general performance metrics for Rocky Linux operating systems (system information, CPU, memory, disk, network interface, file system, top resource processes, etc.). + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | diff --git a/home/versioned_docs/version-1.7.x/help/seatunnel.md b/home/versioned_docs/version-1.7.x/help/seatunnel.md new file mode 100644 index 00000000000..e967edb558d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/seatunnel.md @@ -0,0 +1,99 @@ +--- +id: seatunnel +title: Monitoring: SeaTunnel +sidebar_label: SeaTunnel +keywords: [ Open Source Monitoring System, Monitor SeaTunnel ] +--- + +> Collect monitoring metrics for SeaTunnel. + +### Configuration Parameters + +| Parameter Name | Parameter Help Description | +|-------------------|-----------------------------------------------------------------------------------------------------------------| +| Target Host | The monitored endpoint's IPV4, IPV6, or domain name. Note ⚠️ no protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring task, which needs to be unique. | +| Port | The monitoring port opened by SeaTunnel, default value: 5801. | +| SSL | Whether SSL is enabled for connecting to SeaTunnel. | +| Query Timeout | Set the timeout for unresponsive queries, in milliseconds (ms), default 6000 ms. | +| Collection Interval| The interval time for periodic data collection, in seconds; the minimum interval that can be set is 30 seconds. | +| Binding Tags | Used for categorizing and managing monitoring resources. | +| Description Notes | Additional identification and description notes for this monitoring; users can add notes here. | + +### Collected Metrics + +#### Metric Set: Cluster Overview + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------------|-------------|----------------------------| +| projectVersion | None | Project version | +| gitCommitAbbrev | None | Git commit hash | +| totalSlot | None | Total number of slots | +| unassignedSlot | None | Number of unassigned slots | +| runningJobs | None | Number of running tasks | +| finishedJobs | None | Number of completed tasks | +| failedJobs | None | Number of failed tasks | +| cancelledJobs | None | Number of cancelled tasks | +| workers | None | Number of workers | + +#### Metric Set: Thread Information + +| Metric Name | Metric Unit | Metric Help Description | +|------------------|-------------|-------------------------| +| threadName | None | Thread name | +| threadId | None | Thread ID | +| threadState | None | Thread state | +| stackTrace | None | Stack trace information | + +#### Metric Set: Node Monitoring + +| Metric Name | Metric Unit | Metric Help Description | +|---------------------------------|-------------|------------------------------| +| isMaster | None | Whether it is a master node | +| host | None | IP address | +| port | None | Port | +| processors | None | Number of processors | +| physical.memory.total | None | Total physical memory | +| physical.memory.free | None | Available physical memory | +| swap.space.total | None | Total swap space | +| swap.space.free | None | Available swap space | +| heap.memory.used | None | Used heap memory | +| heap.memory.free | None | Available heap memory | +| heap.memory.total | None | Total heap memory | +| heap.memory.max | None | Maximum heap memory | +| heap.memory.used/total | None | Heap memory usage rate | +| heap.memory.used/max | None | Maximum heap memory usage rate| +| minor.gc.count | None | Minor garbage collection count| +| minor.gc.time | None | Minor garbage collection time | +| major.gc.count | None | Major garbage collection count| +| major.gc.time | None | Major garbage collection time | +| load.process | None | Process load | +| load.system | None | System load | +| load.systemAverage | None | Average system load | +| thread.count | None | Number of threads | +| thread.peakCount | None | Peak thread count | +| cluster.timeDiff | None | Cluster time difference | +| event.q.size | None | Event queue size | +| executor.q.async.size | None | Asynchronous execution queue size | +| executor.q.client.size | None | Client execution queue size | +| executor.q.client.query.size | None | Client query queue size | +| executor.q.client.blocking.size | None | Client blocking queue size | +| executor.q.query.size | None | Query queue size | +| executor.q.scheduled.size | None | Scheduled execution queue size | +| executor.q.io.size | None | IO queue size | +| executor.q.system.size | None | System execution queue size | +| executor.q.operations.size | None | Operations queue size | +| executor.q.priorityOperation.size| None | Priority operations queue size | +| operations.completed.count | None | Completed operations count | +| executor.q.mapLoad.size | None | Map load queue size | +| executor.q.mapLoadAllKeys.size | None | Map load all keys size | +| executor.q.cluster.size | None | Cluster execution queue size | +| executor.q.response.size | None | Response queue size | +| operations.running.count | None | Number of running operations | +| operations.pending.invocations.percentage | None | Percentage of pending invocations | +| operations.pending.invocations.count | None | Number of pending invocations | +| proxy.count | None | Number of proxies | +| clientEndpoint.count | None | Number of client endpoints | +| connection.active.count | None | Number of active connections | +| client.connection.count | None | Number of client connections | +| connection.count | None | Total number of connections | diff --git a/home/versioned_docs/version-1.7.x/help/security_model.md b/home/versioned_docs/version-1.7.x/help/security_model.md new file mode 100644 index 00000000000..39ab4afe957 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/security_model.md @@ -0,0 +1,49 @@ +--- +id: security_model +title: Security Model +sidebar_label: Security Model +--- + +:::tip +Apache HertzBeat™ is a highly extensible system that provides users with a lot of custom capabilities. Users can enhance the platform by customizing monitoring templates, custom monitoring, custom plugins, etc. In this case, security is very important. +This document will introduce the security model of Apache HertzBeat. +The security model here mainly involves the security boundaries that users need to pay attention to in the extension process, and how to ensure that user customization will not cause security risks to the system. +::: + +## User Permission Security + +Apache HertzBeat™ uses [Sureness](https://github.com/dromara/sureness) to support system user security. + +Use the `sureness.yml` provided by Sureness to configure user accounts, roles, API resources, etc. It is strongly recommended that the initial user modify the account password. For details, refer to [Account Permission Management](../start/account-modify) + +Please note that the role permission function is being improved, please do not use roles to control user permissions, all users have management permissions. + +## Monitoring Template Security + +Apache HertzBeat™ provides a monitoring template feature that allows users to define monitoring rules by configuring custom monitoring templates and custom scripts. + +A monitoring template may include scripts and other content such as SQL, SHELL, JMX, URL, and API. When creating custom monitoring templates, users are responsible for ensuring the security of the template content and avoiding malicious code or other unsafe elements. + +## Custom Plugin Security + +Apache HertzBeat™ supports users to upload custom code plugins to run in the life cycle of multiple systems, and users need to ensure the security of the custom plugin code themselves. + +## Custom Collector Security + +Apache HertzBeat™ supports users to customize collectors to personalize the collection of monitoring indicators, and users need to ensure the security of the custom collectors themselves. + +## Custom URL and Other Parameter Security + +Apache HertzBeat™ provides the ability to configure custom parameters. All users authorized to configure URLs and other parameters are considered highly trusted and are expected to trigger certain behaviors. + +## Security Constraints in Other Customizations + +Apache HertzBeat™ provides a variety of system extension methods and custom capabilities. Users need to pay attention to the security of customizations during use. Of course, all extension capabilities need to be within the scope of authenticated users. + +---- + +## Reporting a Vulnerability + +Please do not file GitHub issues for security vulnerabilities as they are public! + +To report a new vulnerability you have discovered please follow the [ASF vulnerability reporting process](https://apache.org/security/#reporting-a-vulnerability). diff --git a/home/versioned_docs/version-1.7.x/help/shenyu.md b/home/versioned_docs/version-1.7.x/help/shenyu.md new file mode 100644 index 00000000000..f63da053b8b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/shenyu.md @@ -0,0 +1,129 @@ +--- +id: shenyu +title: Monitoring:Apache ShenYu API Gateway +sidebar_label: Apache ShenYu +keywords: [open source monitoring tool, open source apache shenyu monitoring tool, monitoring apache shenyu metrics] +--- + +> monitor ShenYu running status (JVM-related), include request response and other related metrics. + +## Pre-monitoring operations + +Enable `metrics` plugin in ShenYu, expose it's prometheus metrics endpoint。 + +Refer [ShenYu Document](https://shenyu.apache.org/docs/plugin-center/observability/metrics-plugin) + +Two Steps Mainly: + +1. add metrics plugin dependency in gateway's pom.xml. + + ```xml + + org.apache.shenyu + shenyu-spring-boot-starter-plugin-metrics + ${project.version} + + ``` + +2. modify this config in shenyu gateway yaml. + + ```yaml + shenyu: + metrics: + enabled: false #false is close, true is open + name : prometheus + host: 127.0.0.1 + port: 8090 + jmxConfig: + props: + jvm_enabled: true #enable jvm monitoring + ``` + +Finally, restart the access gateway metrics endpoint `http://ip:8090` to respond to prometheus format data. + +### Configuration parameters + +| Parameter name | Parameter help description | +|--------|----------------------------------------- --------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the gateway Metric interface, the default is 8090. | +| Timeout | HTTP request response timeout | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Index collection: shenyu_request_total + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|------------------------------------------| +| value | None | Collect all requests from ShenYu gateway | + +#### Metric collection: shenyu_request_throw_created + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------------------------------| +| value | None | Collect the number of abnormal requests from ShenYu Gateway | + +#### Metric collection: process_cpu_seconds_total + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------------| +| value | none | total user and system CPU elapsed seconds | + +#### Metric collection: process_open_fds + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|---------------------------------| +| value | none | number of open file descriptors | + +#### Metric collection: process_max_fds + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-----------------------------------------| +| value | none | maximum number of open file descriptors | + +#### Metric collection: jvm_info + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| runtime | none | JVM version information | +| vendor | none | JVM version information | +| version | None | JVM version information | + +#### Metric collection: jvm_memory_bytes_used + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|------------------------------------------| +| area | None | JVM memory area | +| value | MB | used size of the given JVM memory region | + +#### Metric collection: jvm_memory_pool_bytes_used + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|----------------------------------------| +| pool | None | JVM memory pool | +| value | MB | used size of the given JVM memory pool | + +#### Metric collection: jvm_memory_pool_bytes_committed + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------------------| +| pool | None | JVM memory pool | +| value | MB | The committed size of the given JVM memory pool | + +#### Metric collection: jvm_memory_pool_bytes_max + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------------------------| +| pool | None | JVM memory pool | +| value | MB | The maximum size of the memory pool for the given JVM | + +#### Metric collection: jvm_threads_state + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|---------------------------------------------------------| +| state | none | thread state | +| value | None | The number of threads corresponding to the thread state | diff --git a/home/versioned_docs/version-1.7.x/help/smtp.md b/home/versioned_docs/version-1.7.x/help/smtp.md new file mode 100644 index 00000000000..0a43c2dfab2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/smtp.md @@ -0,0 +1,40 @@ +--- +id: smtp +title: Monitoring SMTP +sidebar_label: SMTP Monitor +keywords: [ open source monitoring tool, open source SMTP monitoring tool, monitoring SMTP metrics ] +--- + +> Collect and monitor the general performance Metrics of SMTP. + +```text +Determine whether the server is available through the hello command in SMTP +``` + +> see [https://datatracker.ietf.org/doc/html/rfc821#page-13](https://datatracker.ietf.org/doc/html/rfc821#page-13) + +**Protocol Use:SMTP** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by SMTP | +| Email | Your email name, parameters for the hello command | +| Timeout | Allow collection response time | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|----------------------------------------------------------------| +| responseTime | ms | The time it takes for the SMTP server to respond to a request. | +| response | | Response Status. | +| smtpBanner | | Banner of SMTP server. | +| heloInfo | | Response information returned by helo. | diff --git a/home/versioned_docs/version-1.7.x/help/spark.md b/home/versioned_docs/version-1.7.x/help/spark.md new file mode 100644 index 00000000000..8efa5ed7662 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/spark.md @@ -0,0 +1,114 @@ +--- +id: spark +title: Monitoring Spark +sidebar_label: Spark Monitor +keywords: [open source monitoring tool, open source java spark monitoring tool, monitoring spark metrics] +--- + +> Collect and monitor the general performance Metrics of Spark. + +**Protocol Use:JMX** + +### Spark App Enable JMX Protocol + +1. Add Spark `VM options` When Start Server ⚠️ customIP + +Refer: [https://spark.apache.org/docs/latest/spark-standalone.html](https://spark.apache.org/docs/latest/spark-standalone.html) + +**Monitoring configuration spark can be monitored by Master, Worker, driver, and executor. The Master and Worker can be monitored when the spark cluster is running, while the Driver and Excutor need to be monitored for an app.** +**If you want to monitor them, perform the following steps to configure them** + +## First step + +**Modify $SPARK_HOME/conf/spark-env.sh to add the following statement:** + +```shell +# JMX Port to use +SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" + +# export SPARK_DAEMON_JAVA_OPTS="$SPARK_DAEMON_JAVA_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " +export SPARK_DAEMON_JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8712 " +``` + +The statement contains $JMX_PORT, the value of which can be customized, or a random number can be obtained as the port number. +If the port is customized to a specific value, and the spark Master and one of the workers are on the same machine, a port conflict will occur. + +## The second step + +**vim $SPARK_HOME/conf/metrics.properties to add the following statement:** + +```shell +*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink +master.source.jvm.class=org.apache.spark.metrics.source.JvmSource +worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource +driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource +executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource +``` + +## The third step + +**vim $SPARK_HOME/conf/spark-defaults.conf, add the following items to set the monitoring port for the driver and executor. This port will be opened when programs are running.** + +```shell +spark.metrics.conf /opt/bigdata/spark/conf/metrics.properties +spark.driver.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.mana +gement.jmxremote.port=8712 + +spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.mana +gement.jmxremote.port=8711 +``` + +With spark's Master and Worker running properly and spark-Submit submitting a program, the port number can be queried from linux. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache (Only Support JDK8) + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | diff --git a/home/versioned_docs/version-1.7.x/help/spring_gateway.md b/home/versioned_docs/version-1.7.x/help/spring_gateway.md new file mode 100644 index 00000000000..923eb239af1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/spring_gateway.md @@ -0,0 +1,90 @@ +--- +id: spring_gateway +Title: Monitoring Spring Cloud Gateway +sidebar_label: Spring Cloud Gateway +keywords: [open source monitoring tool, open source Spring Cloud Gateway monitoring tool, monitoring Spring Cloud Gateway metrics] +--- + +> Collect and monitor the general performance metrics exposed by the SpringBoot actuator. + +## Pre-monitoring operations + +If you want to monitor information in `Spring Cloud Gateway` with this monitoring type, you need to integrate your `Spring Cloud Gateway` application and enable the SpringBoot Actuator. + +**1、Add POM .XML dependencies:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2. Modify the YML configuration exposure metric interface:** + +```yaml +management: + endpoint: + gateway: + enabled: true + env: + show-values: ALWAYS + endpoints: + web: + exposure: + include: "*" +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| Port | The default port provided by the database is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | +| The acquisition interval is | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe the | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation will continue only if the probe is successful | +| Description Comment | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric Collection: Health + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|--------------------------| +| status | None | Service health: UP, Down | + +#### metric Collection: enviroment + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-----------------------------------------------| +| profile | None | The application runs profile: prod, dev, test | +| port | None | Apply the exposed port | +| os | None | Run the operating system | +| os_arch | None | Run the operating system architecture | +| jdk_vendor | None | jdk vendor | +| jvm_version | None | jvm version | + +#### metric Collection: threads + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|----------------------------------| +| state | None | Thread status | +| number | None | This thread state corresponds to number of threads | + +#### metric Collection: memory_used + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|--------------------------------------| +| space | None | Memory space name | +| mem_used | MB | This space occupies a memory size of | + +#### metric Collection: route_info + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|---------------------------------------| +| route_id | None | Route id | +| predicate | None | This is a routing matching rule | +| uri | None | This is a service resource identifier | +| order | None | The priority of this route | diff --git a/home/versioned_docs/version-1.7.x/help/springboot2.md b/home/versioned_docs/version-1.7.x/help/springboot2.md new file mode 100644 index 00000000000..4292e101d01 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/springboot2.md @@ -0,0 +1,95 @@ +--- +id: springboot2 +Title: Monitoring SpringBoot 2.0 +sidebar_label: SpringBoot 2.0 +keywords: [open source monitoring tool, open source springboot2 monitoring tool, monitoring springboot2 metrics] +--- + +> Collect and monitor the general performance metrics exposed by the SpringBoot 2.0 actuator. + +## Pre-monitoring operations + +If you want to monitor information in 'SpringBoot' with this monitoring type, you need to integrate your SpringBoot application and enable the SpringBoot Actuator. + +**1、Add POM .XML dependencies:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2. Modify the YML configuration exposure metric interface:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: true +``` + +*Note: If your project also introduces authentication related dependencies, such as springboot security, the interfaces exposed by SpringBoot Actor may be intercepted. In this case, you need to manually release these interfaces. Taking springboot security as an example, you should add the following code to the Security Configuration class:* + +```java +public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // Configure the interfaces to be released ----------------------------------- + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // 。。。 + // For other interfaces, please refer to: https://blog.csdn.net/JHIII/article/details/126601858 ----------------------------------- + } +} +``` + +### Configure parameters + +| Parameter name | Parameter Help describes the | +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitor Host | THE MONITORED PEER IPV4, IPV6 OR DOMAIN NAME. Note ⚠️ that there are no protocol headers (eg: https://, http://). | +| Monitoring Name | A name that identifies this monitoring that needs to be unique. | +| Port | The default port provided by the database is 8080. | +| Enable HTTPS | Whether to access the website through HTTPS, please note that ⚠️ when HTTPS is enabled, the default port needs to be changed to 443 | +| Collection interval | Monitor the periodic data acquisition interval, in seconds, and the minimum interval that can be set is 30 seconds | +| Whether to probe | Whether to check the availability of the monitoring before adding a monitoring is successful, and the new modification operation | +| Description remarks | For more information identifying and describing the remarks for this monitoring, users can remark the information here | + +### Collect metrics + +#### metric Collection: Health + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|--------------------------| +| status | None | Service health: UP, Down | + +#### metric Collection: enviroment + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|-----------------------------------------------| +| profile | None | The application runs profile: prod, dev, test | +| port | None | Apply the exposed port | +| os | None | Run the operating system | +| os_arch | None | Run the operating system architecture | +| jdk_vendor | None | jdk vendor | +| jvm_version | None | jvm version | + +#### metric Collection: threads + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|----------------------------------| +| state | None | Thread status | +| number | None | This thread state corresponds to number of threads | + +#### metric Collection: memory_used + +| Metric Name | metric unit | Metrics help describe | +|-------------|-------------|------------------------------------------| +| space | None | Memory space name | +| mem_used | MB | This space occupies a memory size of | diff --git a/home/versioned_docs/version-1.7.x/help/springboot3.md b/home/versioned_docs/version-1.7.x/help/springboot3.md new file mode 100644 index 00000000000..4ad2143b8a1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/springboot3.md @@ -0,0 +1,91 @@ +--- +id: springboot3 +Title: Monitoring SpringBoot 3.0 +sidebar_label: SpringBoot 3.0 +keywords: [open source monitoring tool, open source monitoring tool, monitoring springboot3 metrics] +--- + +> Collect and monitor the general performance metrics exposed by the SpringBoot 3.0 actuator. + +## Pre-monitoring operations + +If you want to monitor information in 'SpringBoot' with this monitoring type, you need to integrate your SpringBoot application and enable the SpringBoot Actuator. + +**1、Add POM .XML dependencies:** + +```xml + + org.springframework.boot + spring-boot-starter-actuator + +``` + +**2. Modify the YML configuration exposure metric interface:** + +```yaml +management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: true +``` + +*Note: If your project also introduces authentication related dependencies, such as springboot security, the interfaces exposed by SpringBoot Actor may be intercepted. In this case, you need to manually release these interfaces. Taking springboot security as an example, you should add the following code to the Security Configuration class:* + +```java +public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // Configure the interfaces to be released ----------------------------------- + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // ... + // For other interfaces, please refer to: https://blog.csdn.net/JHIII/article/details/126601858 ----------------------------------- + } +} +``` + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|-------------------|----------------------------------------------------------------------------------------------------------------------| +| Monitor Host | The monitored peer's IPV4, IPV6, or domain name. Note⚠️: Do not include protocol headers (eg: https://, http://). | +| Task Name | Identifies the name of this monitor, ensuring uniqueness is necessary. | +| Port | The port provided by the application service, default is 8080. | +| Enable SSL | Whether to access the website via HTTPS. Note⚠️: Enabling HTTPS generally requires changing the default port to 443. | +| Collector | Specifies which collector to use for scheduling data collection for this monitor. | +| Monitoring Period | Interval for periodically collecting data, in seconds, with a minimum interval of 30 seconds. | +| Bind Tags | Tags for categorizing and managing monitored resources. | +| Description | Additional identification and description for this monitor, where users can add remarks. | + +### Collection Metrics + +#### Metric Set: Availability + +| Metric Name | Unit | Metric Description | +|--------------|------|--------------------| +| responseTime | ms | Response time | + +#### Metric Set: Threads + +| Metric Name | Unit | Metric Description | +|-------------|------|----------------------------------| +| state | None | Thread state | +| size | None | Number of threads for this state | + +#### Metric Set: Memory Usage + +| Metric Name | Unit | Metric Description | +|-------------|------|-----------------------------| +| space | None | Memory space name | +| mem_used | MB | Memory usage for this space | + +#### Metric Set: Health Status + +| Metric Name | Unit | Metric Description | +|-------------|------|---------------------------------| +| status | None | Service health status: UP, Down | diff --git a/home/versioned_docs/version-1.7.x/help/sqlserver.md b/home/versioned_docs/version-1.7.x/help/sqlserver.md new file mode 100644 index 00000000000..a72936c97d7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/sqlserver.md @@ -0,0 +1,76 @@ +--- +id: sqlserver +title: Monitoring:SqlServer database monitoring +sidebar_label: SqlServer database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring sqlserver database metrics] +--- + +> Collect and monitor the general performance Metrics of SqlServer database. Support SqlServer 2017+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 1433 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-----------------------------------------------------------------------------| +| machine_name | none | Windows computer name running the server instance | +| server_name | none | Server and instance information SQL Server associated with Windows instance | +| version | none | Version of the instance,SQL Server,format is "major.minor.build.revision" | +| edition | none | The product SQL server version of the installed instance | +| start_time | none | Database start time | + +#### Metric set:performance_counters + +| Metric name | Metric unit | Metric help description | +|------------------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| database_pages | none | Database pages, Number of pages obtained (buffer pool) | +| target_pages | none | Target pages, The desired number of pages that the buffer pool must have | +| page_life_expectancy | s | Page life expectancy. The time that data pages stay in the buffer pool. This time is generally greater than 300 | +| buffer_cache_hit_ratio | % | Buffer cache hit ratio, Database buffer pool cache hit rate. The probability that the requested data is found in the buffer pool is generally greater than 80%, otherwise the buffer pool capacity may be too small | +| checkpoint_pages_sec | none | Checkpoint pages/sec, The number of dirty pages written to the disk by the checkpoint per second. If the data is too high, it indicates that there is a lack of memory capacity | +| page_reads_sec | none | Page reads/sec, Number of pages read per second in the cache pool | +| page_writes_sec | none | Page writes/sec, Number of pages written per second in the cache pool | + +#### Metric set:connection + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|------------------------------| +| user_connection | none | Number of connected sessions | + +### Common Problem + +1. SSL connection problem fixed + +jdk version: jdk11 +Description of the problem: SQL Server 2019 uses the SA user connection to report an error +Error message: + +```text +The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:xxxxxxxxxxxxxxxxxxxx +``` + +Screenshot of the problem: +![issue](https://user-images.githubusercontent.com/38679717/206621658-c0741d48-673d-45ff-9a3b-47d113064c12.png) + +solution: +Use advanced settings when adding `SqlServer` monitoring, customize JDBC URL, add parameter configuration after the spliced jdbc url, ```;encrypt=true;trustServerCertificate=true;```This parameter true means unconditionally trust the server returned any root certificate. + +Example: ```jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo;encrypt=true;trustServerCertificate=true;``` + +Reference document: [microsoft pkix-path-building-failed-unable-to-find-valid-certification](https://techcommunity.microsoft.com/t5/azure-database-support-blog/pkix-path-building-failed-unable-to-find-valid-certification/ba-p/2591304) diff --git a/home/versioned_docs/version-1.7.x/help/ssl_cert.md b/home/versioned_docs/version-1.7.x/help/ssl_cert.md new file mode 100644 index 00000000000..253485f8b1a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ssl_cert.md @@ -0,0 +1,33 @@ +--- +id: ssl_cert +title: Monitoring SSL Certificate +sidebar_label: SSL Monitor +keywords: [open source monitoring tool, open source ssl cert monitoring tool, monitoring website ssl metrics] +--- + +> Monitor the website's SSL certificate expiration time, response time and other Metrics + +### Configuration parameters + +| Parameter name | Parameter help description | +|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | +| Port | The port provided by the website, https generally defaults to 443. | +| Relative path | The suffix path of the website address except the IP port, for example, `www.tancloud.io/console` The relative path of the website is `/console`. | +| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | +| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | + +### Collect metrics + +#### Metric collection: certificate + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------|-----------------|--------------------------| +| subject | none | certificate name | +| expired | no | expired or not | +| start_time | None | Validity start time | +| start_timestamp | ms millisecond | Validity start timestamp | +| end_time | None | Expiration time | +| end_timestamp | ms milliseconds | expiration timestamp | diff --git a/home/versioned_docs/version-1.7.x/help/starrocks_be.md b/home/versioned_docs/version-1.7.x/help/starrocks_be.md new file mode 100644 index 00000000000..34a751b195a --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/starrocks_be.md @@ -0,0 +1,112 @@ +--- +id: starrocks_be +title: Monitoring StarRocks Database BE Monitoring +sidebar_label: StarRocks Database BE +keywords: [Open Source Monitoring System, Open Source Database Monitoring, StarRocks Database BE Monitoring] +--- + +> Collect and monitor general performance metrics for StarRocks database BE. Supports StarRocks 2.4.0 and later versions. + +**Protocol: HTTP** + +### Pre-monitoring Operations + +Check the `be/conf/be.conf` file to obtain the value of the `http_port` configuration item, which is used for monitoring. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------|----------------------| +| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) | +| Task Name | A unique name identifying this monitoring task | +| Port | The port provided by the database to the outside, default is 8040, get the value of the `http_port` configuration item | +| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 6000 milliseconds | +| Description | Additional notes and descriptions for this monitoring task | + +### Collection Metrics + +> For more metrics, please refer to the StarRocks official documentation: [General Monitoring Metrics](https://docs.mirrorship.cn/docs/administration/management/monitoring/metrics/). + +#### Metric Set: starrocks_be_cpu + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | CPU usage information returned by /proc/stat | + +#### Metric Set: starrocks_be_disks_state + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | State of each disk. 1 indicates that the disk is in use, and 0 indicates that the disk is not in use | + +#### Metric Set: starrocks_be_tablet_base_max_compaction_score + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Highest base compaction score of tablets in this BE | + +#### Metric Set: starrocks_be_tablet_cumulative_max_compaction_score + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Highest cumulative compaction score of tablets in this BE | + +#### Metric Set: starrocks_be_engine_requests_total + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Total count of all types of requests, including CREATE TABLE, Publish Version and Tablet Clone | + +#### Metric Set: starrocks_be_max_disk_io_util_percent + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | % | Maximum disk I/O utilization percentage | + +#### Metric Set: starrocks_be_disks_avail_capacity + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | MB | Available capacity of a specific disk | + +#### Metric Set: starrocks_be_disks_data_used_capacity + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | MB | Used capacity of each disk (represented by a storage path) | + +#### Metric Set: starrocks_be_load_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Bytes | Total loaded bytes | + +#### Metric Set: starrocks_be_load_rows + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Total loaded rows | + +#### Metric Set: starrocks_be_process_mem_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | MB | Memory used by this process | + +#### Metric Set: starrocks_be_jemalloc_allocated_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | MB | Total number of bytes allocated by jemalloc | + +#### Metric Set: starrocks_be_network_receive_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Bytes | Total bytes received via network | + +#### Metric Set: starrocks_be_network_send_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Bytes | Number of bytes sent over the network | diff --git a/home/versioned_docs/version-1.7.x/help/starrocks_fe.md b/home/versioned_docs/version-1.7.x/help/starrocks_fe.md new file mode 100644 index 00000000000..6cf6b49c631 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/starrocks_fe.md @@ -0,0 +1,136 @@ +--- +id: starrocks_fe +title: Monitoring StarRocks Database FE Monitoring +sidebar_label: StarRocks Database FE +keywords: [Open Source Monitoring System, Open Source Database Monitoring, StarRocks Database FE Monitoring] +--- + +> Collect and monitor general performance metrics for StarRocks database FE. Supports StarRocks 2.4.0 and later versions. + +**Protocol: HTTP** + +### Pre-monitoring Operations + +Check the `fe/conf/fe.conf` file to obtain the value of the `http_port` configuration item, which is used for monitoring. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|---------------|----------------------| +| Monitor Host | The monitored target's IPV4, IPV6, or domain name. Note: Without the protocol header (e.g., https://, http://) | +| Task Name | A unique name identifying this monitoring task | +| Port | The port provided by the database to the outside, default is 8030, get the value of the `http_port` configuration item | +| Query Timeout | The timeout for the connection to not respond, in milliseconds, default is 6000 milliseconds | +| Description | Additional notes and descriptions for this monitoring task | + +### Collection Metrics + +> For more metrics, please refer to the StarRocks official documentation: [General Monitoring Metrics](https://docs.mirrorship.cn/docs/administration/management/monitoring/metrics/). + +#### Metric Set: jvm_heap_size_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Byte | JVM heap memory size | + +#### Metric Set: jvm_non_heap_size_bytes + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Byte | JVM non-heap memory size | + +#### Metric Set: jvm_thread + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of JVM threads | + +#### Metric Set: starrocks_fe_query_err + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of failed queries | + +#### Metric Set: starrocks_fe_query_latency_ms + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | ms | Query response time | + +#### Metric Set: starrocks_fe_edit_log_write + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | Byte/s | Write speed of FE edit log | + +#### Metric Set: starrocks_fe_load_add + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of new load jobs | + +#### Metric Set: starrocks_fe_load_finished + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of finished load jobs | + +#### Metric Set: starrocks_fe_job + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | FE job status | + +#### Metric Set: starrocks_fe_tablet_max_compaction_score + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Indicates the highest Compaction Score on each BE node | + +#### Metric Set: starrocks_fe_meta_log_count + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | The number of Edit Logs without a checkpoint. A value within 100000 is reasonable | + +#### Metric Set: starrocks_fe_query_total + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Total number of queries | + +#### Metric Set: starrocks_fe_request_total + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Total number of requests | + +#### Metric Set: starrocks_fe_txn_reject + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of rejected transactions | + +#### Metric Set: starrocks_fe_txn_begin + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of beginning transactions | + +#### Metric Set: starrocks_fe_txn_success + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of successful transactions | + +#### Metric Set: starrocks_fe_txn_failed + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Number of failed transactions | + +#### Metric Set: starrocks_fe_connection_total + +| Metric Name | Metric Unit | Metric Help Description | +|------------|-------------|------------------------| +| value | None | Total number of FE connections | diff --git a/home/versioned_docs/version-1.7.x/help/status.md b/home/versioned_docs/version-1.7.x/help/status.md new file mode 100644 index 00000000000..daf362a0f5c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/status.md @@ -0,0 +1,73 @@ +--- +id: status +title: Status Page +sidebar_label: Status Page +keywords: [Open Source Monitoring System, Open Source Website Monitoring, Status Page] +--- + +Quickly build a powerful status page with HertzBeat to easily communicate the real-time status of your product services to users. For example, see GitHub's service status page [https://www.githubstatus.com](https://www.githubstatus.com). + +It supports the linkage synchronization between component status and monitoring status, provides a fault event maintenance management mechanism, and more. This enhances your transparency and professionalism, builds user trust, and reduces communication costs. + +## 1. Set Organization Information + +The fields that need to be filled in are as follows: + +| Field Name | Field Description | Example | +|--------------------------|----------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Organization Name | Name of the organization | HertzBeat | +| Organization Description | Detailed description of the organization | Apache HertzBeat™ is an easy-to-use and user-friendly open-source real-time monitoring and alerting system, no agent required, high-performance cluster, compatible with Prometheus, providing powerful custom monitoring and status page building capabilities. | +| Website Link | URL of the organization's website for more information | [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/) | +| Logo Image | Path or URL of the organization's official logo image, preferably in .svg format | [https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg](https://hertzbeat.apache.org/zh-cn/img/hertzbeat-logo.svg) | +| Feedback Address | Address to receive feedback | [https://github.com/apache/hertzbeat/issues](https://github.com/apache/hertzbeat/issues) | +| Theme Color | Main color tone of the status page | Click to select on the page | + +After filling in the organization information, click `Confirm`. + +![HertzBeat](/img/docs/help/status-3.png) + +## 2. Add Component + +After adding a component, the status page will display the status information of the component. + +Click `Add Component` to add the component to be monitored and fill in the following fields: + +| Field Name | Field Description | Example | +|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------| +| Service Component | Name of the component service | Development Environment ElasticSearch | +| Component Description | Detailed description of the component service | Development environment, ElasticSearch (ip:192.168.1.1) | +| Service Status Calculation Method | Method of calculating the service status of the component.
Automatic Calculation: Automatically calculate the status based on the monitored status of the component.
Manual Setting: Manually configure the component status. | Automatic Calculation / Manual Setting (Choose one) | +| Matching Tag | Status calculation associated tag, use the availability status data of all monitors associated with the tag to calculate the service status of the component. | Select the component tag on the page | + +### Set Status Calculation Time + +> Note: The service status is calculated every 300 seconds by default. + +Modify `application.yml`: + +```yaml +status: + calculate: + interval: 60 +``` + +![HertzBeat](/img/docs/help/status-4.png) + +## 3. Maintain Events + +When an event occurs, you can publish a notification on the status page. + +Click `Publish Event` + +![HertzBeat](/img/docs/help/status-1.png) + +| Field Name | Field Description | Example | +|--------------------|-----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Event Name | Title of the event, should clearly reflect the core content of the event | "Server Downtime Event - April 5, 2023" | +| Affected Component | Select the components affected by this event | Select on the page | +| Process Status | Set the current status of the event for tracking the progress. Optional values: Investigating / Confirmed / Monitoring / Resolved | Confirmed | +| Publish Message | Official notification to convey to relevant parties, including event details, impact assessment, and countermeasures | Dear All, there is an issue with the development environment, the developers are urgently handling it, it is expected to be fixed within two hours. Please be patient, if you have urgent matters, please contact Tom: 130xxxx0000! | + +> Note: You can publish messages multiple times to keep the team updated on the current status. + +![HertzBeat](/img/docs/help/status-2.png) diff --git a/home/versioned_docs/version-1.7.x/help/synology_nas.md b/home/versioned_docs/version-1.7.x/help/synology_nas.md new file mode 100644 index 00000000000..9f5d5beb4ce --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/synology_nas.md @@ -0,0 +1,128 @@ +--- +id: synology_nas +title: Monitoring:Synology NAS +sidebar_label: Synology NAS +keywords: [ open source monitoring tool, server monitoring, Synology Nas ] +--- + +> Collect and monitor the general performance Metrics of Synology NAS device. + +**Protocol Use: SNMP** + +## Pre-monitoring operations + +Please refer to [SNMP](https://kb.synology.com/en-global/DSM/help/DSM/AdminCenter/system_snmp) to enable SNMP service. Currently, SNMPv1, SNMPv2c and SNMPv3 protocols are supported. + +### Configuration parameter + +| Parameter name | Parameter help description | +|-------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Task Name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port of SNMP. The default is 161 | +| SNMP Version | SNMP version to use | +| SNMP Community | Used in SNMP v1 and SNMP v2c, used to complete authentication in SNMP Agent, in string form. Group name includes "read" and "write", when performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. When performing SNMP query operation, "read" group name is used for authentication; when performing SNMP setting operation, "write" group name is used for authentication. | +| SNMP username | For SNMP v3, MSG username | +| SNMP contextName | For SNMP v3, used to determine the MIB view of the Context EngineID to the managed device | +| SNMP authPassword | For SNMP v3, SNMP authentication passwords | +| authPassword Encryption | For SNMP v3, SNMP authentication algorithm | +| SNMP privPassphrase | For SNMP v3, SNMP encrypted passwords | +| privPassword Encryption | For SNMP v3, SNMP encrypted algorithm | +| Timeout | Set the timeout time when querying unresponsive data, in milliseconds, the default is 6000 milliseconds | +| Intervals | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Description | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +Since there are too many metrics that can be queried, detailed metrics can be queried +on [SNMP MIB Guide](https://kb.synology.com/en-global/DG/Synology_DiskStation_MIB_Guide/3). + +This document only introduces the monitoring indicators queried in the monitor template. + +### Metric Set: system + +| Metric Name | Metric Unit | Metric Help Description | +|------------------|-------------|-------------------------| +| modelName | None | Model name of this NAS | +| serialNumber | None | Model serial number | +| version | None | The version of DSM | +| controllerNumber | None | The controller number | + +### Metric Set: status + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------|---------------|---------------------------------------------------------| +| powerStatus | None | Power status,returns error if power supplies fail | +| systemFanStatus | None | System fan status, returns error if system fan fails | +| cpuFanStatus | None | CPU fan status, returns error if CPU fan fails | +| systemStatus | None | System partition status | +| thermalStatus | None | returns error if thermal status is abnormal | +| temperature | None | Temperature of this NAS | +| cpuUtilization | Percentage(%) | Utilization (%) is the sum of user and system CPU usage | +| memUtilization | Percentage(%) | Utilization (%) is the sum of memory usage | + +### Metric Set: disk + +| Metric Name | Metric Unit | Metric Help Description | +|------------------|-------------|-------------------------------------------------------------------| +| diskID | None | Disk name in DSM | +| diskModel | None | Disk model | +| diskType | None | Disk type, e.g. SATA, SSD | +| diskStatus | None | Current disk status | +| diskTemperature | None | Disk temperature | +| diskRole | None | The role of the disk in system | +| diskRetry | None | The count of each disk connection retries | +| diskBadSector | None | The count of each disk I/O bad sector | +| diskIdentifyFail | None | The count of each disk identify fails | +| diskRemainLife | None | The estimate remain life of each disk | +| diskName | None | Disk name which will keep the same value in different DSM version | +| diskHealthStatus | None | Current disk health status | + +### Metric Set: RAID + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------|-------------|------------------------------------------------------------------------------------------| +| raidName | None | The name of each RAID in DSM | +| raidStatus | None | It shows the RAID status right now | +| raidFreeSize | None | The free size of volume / disk group | +| raidTotalSize | None | The total size of volume / disk group | +| raidHotspareCnt | None | Total hotspare disks count which can protect RAID (smaller than 0 means something wrong) | + +### Metric Set: S.M.A.R.T + +| Metric Name | Metric Unit | Metric Help Description | +|------------------------|-------------|--------------------------------------------------------| +| diskSMARTInfoDevName | None | Describes the disk to which this SMART info belongs to | +| diskSMARTAttrName | None | The name of the SMART info attribute | +| diskSMARTAttrId | None | SMART attribute ID number | +| diskSMARTAttrCurrent | None | SMART attribute current value | +| diskSMARTAttrWorst | None | SMART attribute worst value | +| diskSMARTAttrThreshold | None | SMART attribute threshold value | +| diskSMARTAttrRaw | None | SMART attribute raw value | +| diskSMARTAttrStatus | None | Status of this SMART info | + +### Metric Set: space io + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|---------------|---------------------------------------------------------| +| spaceIODevice | None | The name of the device this volume mounted on | +| spaceIOReads | None | The number of read accesses from this volume since boot | +| spaceIOWrites | None | The number of write accesses to this volume since boot | +| spaceIOLA | Percentage(%) | The load of disk in the volume | +| spaceIOLA1 | Percentage(%) | The 1 minute average load of disk in the volume | +| spaceIOLA5 | Percentage(%) | The 5 minute average load of disk in the volume | +| spaceIOLA15 | Percentage(%) | The 15 minute average load of disk in the volume | +| spaceUUID | None | The UUID of this volume | + +### Metric Set: storage io + +| Metric Name | Metric Unit | Metric Help Description | +|-----------------------|---------------|---------------------------------------------------------| +| storageIODevice | None | The name of the device we are counting/checking | +| storageIOReads | None | The number of read accesses from this device since boot | +| storageIOWrites | None | The number of write accesses to this device since boot | +| storageIOLA | Percentage(%) | The load of disk | +| storageIOLA1 | Percentage(%) | The 1-minute average load of disk | +| storageIOLA5 | Percentage(%) | The 5-minute average load of disk | +| storageIOLA15 | Percentage(%) | The 15-minute average load of disk | +| storageIODeviceSerial | None | The serial number of this device | diff --git a/home/versioned_docs/version-1.7.x/help/tdengine_promql.md b/home/versioned_docs/version-1.7.x/help/tdengine_promql.md new file mode 100644 index 00000000000..8049756701c --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/tdengine_promql.md @@ -0,0 +1,94 @@ +--- +id: tdengine_promql +title: Monitoring TDengine-PromQL +sidebar_label: TDengine-PromQL +keywords: [ Open Source Monitoring System, Open Source Middleware Monitoring, TDengine Monitoring, TDengine-PromQL Monitoring ] +--- + +> Use Prometheus PromQL to query general metric data from the Prometheus server to monitor TDengine. This solution is +> suitable for situations where Prometheus is already monitoring TDengine and you need to retrieve TDengine monitoring +> data from the Prometheus server. + +### Prerequisites + +1. Deploy TDengine; +2. Deploy taosKeeper; note that installing the official TDengine installation package will automatically install + taosKeeper. For details, please refer to: [taosKeeper](https://docs.taosdata.com/reference/components/taoskeeper/); +3. Collect monitoring metrics exposed by TDengine taosKeeper through prometheus; + +### Configuration parameters + +| Parameter Name | Parameter Description | +|---------------------|----------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | IP, IPv6, or domain name of the target being monitored. Note ⚠️: Do not include protocol header (e.g., https://, http://). | +| Monitoring name | Name to identify this monitoring, ensuring uniqueness of names. | +| Port | Prometheus API port, default: 9090. | +| Relative path | Relative path of Prometheus to query PromQL, default: /api/v1/query | +| Request mode | Set the request method for API calls: GET, POST, PUT, DELETE, default: GET | +| Enable HTTPS | Whether to access the website via HTTPS, note ⚠️: enabling HTTPS generally requires changing the corresponding port to 443 | +| Username | Username for Basic or Digest authentication when accessing the API. | +| Password | Password for Basic or Digest authentication when accessing the API. | +| Content-Type | Resource type when carrying BODY request data. | +| Request BODY | Set the BODY request data, effective for PUT and POST request methods. | +| Collection interval | Interval for periodic data collection in seconds, the minimum interval that can be set is 30 seconds | +| Description remarks | Additional remarks and descriptions for this monitoring. Users can add notes here. | + +### Collection indicators + +#### Indicator set: Basic information indicators + +| Indicator name | indicator unit | Indicators help describe | +|---------------------------------|----------------|--------------------------| +| taos_cluster_info_first_ep | none | first endpoint | +| taos_cluster_info_version | none | Version Information | +| taos_cluster_info_master_uptime | day | Master node runtime | + +#### Indicator set: Number of nodes indicator + +| Indicator name | indicator unit | Indicators help describe | +|---------------------------------|----------------|------------------------------------| +| taos_cluster_info_dnodes_total | none | Total number of dnodes | +| taos_cluster_info_dnodes_alive | none | Number of surviving dnodes | +| taos_cluster_info_mnodes_total | none | Total number of mnodes | +| taos_cluster_info_mnodes_alive | none | Number of surviving mnodes | +| taos_cluster_info_vgroups_total | none | Total number of virtual groups | +| taos_cluster_info_vgroups_alive | none | Number of surviving virtual groups | +| taos_cluster_info_vnodes_total | none | Total number of virtual nodes | +| taos_cluster_info_vnodes_alive | none | Number of surviving virtual nodes | + +### Indicator set: Database and table statistics + +| Indicator name | indicator unit | Indicators help describe | +|-------------------------------------|----------------|-----------------------------| +| taos_cluster_info_dbs_total | none | Total number of databases | +| taos_cluster_info_tbs_total | none | Total number of tables | +| taos_cluster_info_connections_total | day | total number of connections | + +### Indicator set: Dnode information + +| Indicator name | indicator unit | Indicators help describe | +| --- | --- | --- | +| taos_d_info_status | Ready indicates normal, offline indicates offline, and unknown indicates unknown. | dnode status | +| taos_dnodes_info_uptime | s | The startup time of this dnode | +| taos_dnodes_info_cpu_engine | none | The percentage of CPU used by the process of this dnode. | +| taos_dnodes_info_cpu_system | none | The percentage of CPU used by the system of the node where the dnode is located. | +| taos_dnodes_info_mem_engine | KB | Memory used by the process of this dnode | +| taos_dnodes_info_mem_system | KB | The memory used by the system of the node where the dnode is located. | +| taos_dnodes_info_disk_total | Byte | The total disk capacity of the node where the dnode is located. | +| taos_dnodes_info_disk_used | Byte | The amount of disk space used on the node where the dnode is located. | +| taos_dnodes_info_io_write_disk | Bytes per second | The disk IO write rate of the node where the dnode is located. | +| taos_dnodes_info_io_read_disk | Bytes per second | The disk IO read rate of the node where the dnode is located. | + +### Indicator set: taosadapter related + +| Indicator name | indicator unit | Indicators help describe | +|--------------------------------------|----------------|-------------------------------| +| total_requests_for_adapter_transfers | none | Total number of requests | +| taos_adapter_requests_success | none | Number of successful requests | +| taos_adapter_requests_fail | none | Number of failed requests | +| taos_adapter_requests_query | none | Number of query requests | + +### Other TDengine monitoring methods supported by HertzBeat + +1. Through the monitoring metrics exposed by taosKeeper, you can refer to [Prometheus Task](prometheus) to configure + Prometheus collection tasks for monitoring TDengine. diff --git a/home/versioned_docs/version-1.7.x/help/template_marketplace.md b/home/versioned_docs/version-1.7.x/help/template_marketplace.md new file mode 100644 index 00000000000..fa8c8e16e95 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/template_marketplace.md @@ -0,0 +1,152 @@ +--- +id: template_marketplace +title: Template Marketplace +sidebar_label: Template Marketplace +--- + +> Hertzbeat official template marketplace: users can freely upload, download, view, search and share monitoring template files. + +## Basic Functions + +### Search + +💡 Guest availability + +> Display template name, brief description, favorites, downloads, views and other information + +1. **No filter: displayed in order of upload** + + ![search.png](/img/template-marketplace/search.png) + +2. **Filtering by category: currently divided into six categories** + + > **📋Todo:** develop tag function, subdivided within the category, such as database monitoring template can be divided into MySQL, Oracle, etc. + + ![search-category.png](/img/template-marketplace/search-category.png) + +3. **Fuzzy search by Title** + + ![search-name.png](/img/template-marketplace/search-name.png) + +4. **Hover window function: download the latest version, view details, favorite/un-favorite** + + > Show if the user has favorites after logging in + + ![img.png](/img/template-marketplace/hover-window-guest.png)![img_1.png](/img/template-marketplace/hover-window-user.png) + +5. **Sort: Eight Sorting Methods** + + > **📋Todo:** Waiting for the actual installation + +### Template Detail + +💡 Guest availability + + > Display basic information about the template, such as name, author, update time, version information, etc. + +1. **Info: Summary information, detailed information and other information** + + > **📋Todo:** Upgrade to MarkDown format + + ![img.png](/img/template-marketplace/detail-info.png) + +2. **Version: Historical version download, sharing and basic information display** + + > **📋Todo:** Set up a view function for each historical version to display information such as the version description. + + ![img.png](/img/template-marketplace/detail-version.png) + +3. **FAQ** + + > **📋Todo:** Discussion or issue Q&A section + + ![img.png](/img/template-marketplace/detail-faq.png) + +4. **Download** + + > The latest version can be downloaded directly from the list hover window. + > The latest version can also be downloaded directly from the template detail page. + > The historical version can be downloaded from the version page. + + ![img.png](/img/template-marketplace/download.png) + +5. **Share** + + > Template details page to share the latest version. + > Version page to share historical versions. + > Sharing will automatically copy the sharing URL to the clipboard, and the person being shared can download the file via that URL + > + > **📋Todo:** Shared template detail page is accessed through the URL of the shared template, and the shared person is free to choose whether to download or not. + + ![img.png](/img/template-marketplace/share.png) + +### User Center + +💡 User availability + + > Provide asset management, collection management and upload function +> + > **📋Todo:** Overview page, notification page, user settings page + +1. **Asset: Manage all templates uploaded by user themselves** + + > Provides the ability to download the latest version and view details + > + > **📋Todo:** Function to update template information + + ![img_1.png](/img/template-marketplace/user-center-asset.png) + + ![img.png](/img/template-marketplace/asset-detail.png) + +2. **Version Upgrade** + + > The user defines the new version number under this template family, updates the version information, and uploads the latest version of the file + + ![img.png](/img/template-marketplace/asset-upgrade.png) + +3. **Star** + + ![img.png](/img/template-marketplace/user-center-star.png) + + ![img.png](/img/template-marketplace/user-center-star-detail.png) + +4. **Upload** + + > Create a new template series and upload the first version of the file + > + > Fill in the template name, select the template category, fill in the description information and version information, and upload files + + ![img.png](/img/template-marketplace/user-center-upload.png) + +### Sign Up & Login + +💡 Guest availability + +1. **Sign up** + + > Usernames can be duplicated, but email addresses are unique + > + > **📋Todo:** Captcha function, email verification function + + ![img.png](/img/template-marketplace/sign-up.png) + +2. **Login** + + > **📋Todo:** Captcha function and forgot password function + + ![img.png](/img/template-marketplace/email-login.png) + +## Development Steps + + > Download `template-marketplace/hertzbeat-template-hub` and `template-marketplace/hertzbeat-template-hub-web-app` projects respectively + + The front-end project in accordance with README.md directly start + + The back-end project steps: + + 1. Run the `sql` script in the `template-marketplace/hertzbeat-template-hub/sql` to create database tables + 2. Install MinIO + 3. Config `MySQL` and `MinIO` in the `application.yml` + 4. Start the back-end project + +Other issues can be fed back through the communication group ISSUE! diff --git a/home/versioned_docs/version-1.7.x/help/tidb.md b/home/versioned_docs/version-1.7.x/help/tidb.md new file mode 100644 index 00000000000..73d8195aab4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/tidb.md @@ -0,0 +1,54 @@ +--- +id: tidb +title: Monitoring:TiDB database monitoring +sidebar_label: TiDB database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring tidb database metrics] +--- + +> HertzBeat monitors general performance metrics of TiDB through HTTP and JDBC protocol. + +[Metrics Schema](https://docs.pingcap.com/tidb/stable/metrics-schema) + +[METRICS_SUMMARY](https://docs.pingcap.com/tidb/stable/information-schema-metrics-summary) + +[METRICS_TABLES](https://docs.pingcap.com/tidb/stable/information-schema-metrics-tables) + +**Protocol Use: HTTP and JDBC** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Target Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Task name | Identify the name of this monitoring. The name needs to be unique | +| Service Port | The port that the TiDB database provides externally for status reporting is 10080 by default | +| PD Port | The PD port for the TiDB database, which defaults to 2379 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 6000ms | +| JDBC Port | The TiDB database externally provides the port used for client requests, which defaults to 4000 | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| JDBC URL | Database using [JDBC](https://docs.pingcap.com/tidb/stable/dev-guide-connect-to-tidb#jdbc) connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +The monitoring template will retrieve the monitoring metrics from the TiDB System Variables table, and the user can retrieve the [TiDB System Variables Table](https://docs.pingcap.com/tidb/stable/system-variables) by himself to query the required information or other system variables. + +Besides, TiDB also provides default monitoring metrics table, see [Metrics Schema](https://docs.pingcap.com/tidb/stable/metrics-schema) and [METRICS_SUMMARY](https://docs.pingcap.com/tidb/stable/information-schema-metrics-summary), and users can add their own sql codes according to their needs. + +Due to the large number of metrics that can be monitored, only the metrics queried in the monitoring template are described below. + +#### Metric set: global variables + +| Metric Name | Metric Unit | Metric Help Description | +|-------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| version | none | The MySQL version, followed by the TiDB version. For example '8.0.11-TiDB-v7.5.1'. | +| version_comment | none | The TiDB version. For example, 'TiDB Server (Apache License 2.0) Community Edition, MySQL 8.0 compatible'. | +| version_compile_machine | none | The name of the CPU architecture on which TiDB is running. | +| version_compile_os | none | The name of the OS on which TiDB is running. | +| max_connections | none | The maximum number of concurrent connections permitted for a single TiDB instance. This variable can be used for resources control. The default value 0 means no limit. When the value of this variable is larger than 0, and the number of connections reaches the value, the TiDB server rejects new connections from clients. | +| datadir | none | The location where data is stored. This location can be a local path /tmp/tidb, or point to a PD server if the data is stored on TiKV. A value in the format of `${pd-ip}:${pd-port}` indicates the PD server that TiDB connects to on startup. | +| port | none | The port that the tidb-server is listening on when speaking the MySQL protocol. | diff --git a/home/versioned_docs/version-1.7.x/help/time_expression.md b/home/versioned_docs/version-1.7.x/help/time_expression.md new file mode 100644 index 00000000000..c38b8186c2d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/time_expression.md @@ -0,0 +1,65 @@ +--- +id: time_expression +title: Time Expression +sidebar_label: Time Expression +keywords: [ dynamic time, time expressions ] +--- + +### Introduction + +HertzBeat supports using expressions to calculate relative time during monitoring collection, allowing for more flexible time definitions in monitoring templates. + +### Syntax + +```shell +${FORMATTER [{ + | - }`` ``]} +``` + +- `FORMATTER`: Determines the format of the expression's result +- `DURATION`: Size of the time period, a positive integer +- `TIME_UNIT`: Unit of the time period + +### Supported Formatting Types + +> Example outputs are based on the current time being `2022-04-24 02:40:00.123` + +| Name | Description | Example | +|--------------|----------------------------------|---------------------| +| @now | Formats as `yyyy-MM-dd HH:mm:ss` | 2022-04-24 02:40:00 | +| @date | Formats as `yyyy-MM-dd` | 2022-04-24 | +| @timestamp10 | Returns 10-digit timestamp | 1650768000 | +| @timestamp | Returns 13-digit timestamp | 1650768000000 | +| @time | Formats as `HH:mm:ss` | 02:40:00 | +| @year | Formats as `yyyy` | 2022 | +| @month | Formats as `MM` | 04 | +| @day | Formats as `dd` | 24 | +| @hour | Formats as `HH` | 02 | +| @minute | Formats as `mm` | 40 | +| @millisecond | Formats as `SSS` | 123 | +| @second | Formats as `ss` | 00 | + +### Supported Time Units + +| Name | Description | +|------|-------------| +| y | Year | +| M | Month | +| d | Day | +| H | Hour | +| m | Minute | +| s | Second | +| w | Week | + +#### Where to Use + +- Request parameters for HTTP protocol monitoring types +- Request Body for HTTP protocol monitoring types + +#### Usage Examples + +1. Simple expression + - `${@now}` gets the current time and formats it as `yyyy-MM-dd HH:mm:ss` + - `${@time+1H}` calculates the time one hour from now and formats it as `HH:mm:ss` + - `${@time+1H+15m+30s}` calculates the time one hour, 15 minutes, and 30 seconds from now and formats it as `HH:mm:ss` +2. Complex expression template (if the built-in formatter does not meet your needs, you can combine multiple expressions) + - `${@year}年${@month}月${@day}日` returns the current date formatted as yyyy年MM月dd日 diff --git a/home/versioned_docs/version-1.7.x/help/tomcat.md b/home/versioned_docs/version-1.7.x/help/tomcat.md new file mode 100644 index 00000000000..9f103dfe5be --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/tomcat.md @@ -0,0 +1,73 @@ +--- +id: tomcat +title: Monitor:Apache Tomcat +sidebar_label: Apache Tomcat +keywords: [open source monitoring tool, open source tomcat monitoring tool, monitoring tomcat metrics] +--- + +> Collect and monitor the general performance Metrics of Apache Tomcat. + +**Protocol Use:JMX** + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by JMX | +| Username | JMX connection user name, optional | +| Password | JMX connection password, optional | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metrics + +#### Metrics Set:memory_pool + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| name | | metrics name | +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:code_cache + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|-------------------------| +| committed | kb | total size | +| init | kb | init size | +| max | kb | max size | +| used | kb | used size | + +#### Metrics Set:class_loading + +| Metric name | Metric unit | Metric help description | +|-----------------------|-------------|--------------------------| +| LoadedClassCount | | Loaded Class Count | +| TotalLoadedClassCount | | Total Loaded Class Count | +| UnloadedClassCount | | Unloaded Class Count | + +#### Metrics Set:thread + +| Metric name | Metric unit | Metric help description | +|-------------------------|-------------|----------------------------| +| TotalStartedThreadCount | | Total Started Thread Count | +| ThreadCount | | Thread Count | +| PeakThreadCount | | Peak Thread Count | +| DaemonThreadCount | | Daemon Thread Count | +| CurrentThreadUserTime | ms | Current Thread User Time | +| CurrentThreadCpuTime | ms | Current Thread Cpu Time | + +### Tomcat Enable JMX Protocol + +1. After building tomcat, enter the bin directory under tomcat and modify the catalina.sh file + +2. vim catalina.sh Attention⚠️ Replace Hostname And Port + +```aidl +CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.1.1.52 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" +``` diff --git a/home/versioned_docs/version-1.7.x/help/ubuntu.md b/home/versioned_docs/version-1.7.x/help/ubuntu.md new file mode 100644 index 00000000000..2a83e2ec090 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/ubuntu.md @@ -0,0 +1,165 @@ +--- +id: ubuntu +title: Monitoring:Ubuntu operating system monitoring +sidebar_label: Ubuntu operating system +keywords: [open source monitoring tool, open source linux ubuntu monitoring tool, monitoring ubuntu metrics] +--- + +> Collect and monitor the general performance Metrics of Ubuntu operating system. + +### Configuration parameter + +| Parameter Name | Parameter Help Description | +|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitored Host | The IPV4, IPV6, or domain name of the host being monitored. Note ⚠️ No protocol header (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring, which must be unique. | +| Port | The port provided by Linux SSH, default is 22. | +| Timeout | Sets the connection timeout in milliseconds, default is 6000 ms. | +| Connection Reuse | Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. | +| Use Proxy Connection | Sets Whether connect via proxy, default is false. | +| Username | SSH connection username, optional. | +| Password | SSH connection password, optional. | +| Collector | Configures which collector is used to schedule data collection for this monitoring. | +| Monitoring Period | The interval time for periodic data collection in seconds, with a minimum interval of 30 seconds. | +| Binding Tags | Used for categorized management of monitoring resources. | +| Description | Additional notes and descriptions for this monitoring, where users can make notes. | +| PrivateKey | The private key required to connect to the server. | +| PrivateKey PassPhrase | The password phrase used to encrypt the SSH private key. If the private key was generated with a passphrase, this field must be filled to decrypt and use the key for authentication. | +| Proxy Host | The address of the proxy server, supporting IPV4, IPV6, or domain name format. Required when using SSH jump host to access the target host. | +| Proxy Port | The port number of the proxy service, default is 22. | +| Proxy Username | The authentication username required to connect to the proxy server. | +| Proxy Username | The authentication password required to connect to the proxy server. | +| Proxy PrivateKey | The private key required to authenticate with the proxy server. | + +### Collected Metrics + +### Data Collection Metrics + +#### Metric Set: Basic System Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| hostname | None | Host name | +| version | None | System version | +| uptime | None | System Uptime | + +#### Metric Set: CPU Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-----------------------------------| +| info | None | CPU model | +| cores | None | Number of CPU cores | +| interrupt | None | Number of CPU interrupts | +| load | None | Average CPU load (1/5/15 minutes) | +| context_switch | None | Number of context switches | +| usage | % | CPU usage | + +#### Metric Set: Memory Information + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------------------| +| total | Mb | Total memory capacity | +| used | Mb | Memory used by user programs | +| free | Mb | Free memory capacity | +| buff_cache | Mb | Memory used for cache | +| available | Mb | Remaining available memory capacity | +| usage | % | Memory usage rate | + +#### Metric Set: Disk Information + +| Metric Name | Metric Unit | Metric Help Description | +|---------------|-------------|----------------------------------------| +| disk_num | None | Total number of disks | +| partition_num | None | Total number of partitions | +| block_write | None | Total number of blocks written to disk | +| block_read | None | Total number of blocks read from disk | +| write_rate | iops | Disk block write rate per second | + +#### Metric Set: Network Card Information + +| Metric Name | Metric Unit | Metric Help Description | +|----------------|-------------|-------------------------------| +| interface_name | None | Network card name | +| receive_bytes | Byte | Inbound data traffic (bytes) | +| transmit_bytes | Byte | Outbound data traffic (bytes) | + +#### Metric Set: File System + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| filesystem | None | Name of the file system | +| used | Mb | Used disk size | +| available | Mb | Available disk size | +| usage | % | Usage rate | +| mounted | None | Mount point directory | + +#### Metric Set: Top 10 CPU Processes + +Statistics for the top 10 processes using the CPU. Statistics include: process ID, CPU usage, memory usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| cpu_usage | % | CPU usage | +| mem_usage | % | Memory usage | +| command | None | Executed command | + +#### Metric Set: Top 10 Memory Processes + +Statistics for the top 10 processes using memory. Statistics include: process ID, memory usage, CPU usage, and executed command. + +| Metric Name | Metric Unit | Metric Help Description | +|-------------|-------------|-------------------------| +| pid | None | Process ID | +| mem_usage | % | Memory usage | +| cpu_usage | % | CPU usage | +| command | None | Executed command | + +#### Other Metric Set: Average CPU Temperature Across All Cores + +| Metric Name | Metric Unit | Metric help description | +|--------------|-------------|-------------------------| +| avg_cpu_temp | C | Average Temp All Cores | + +* Note: This indicator information relies on the hardware sensor monitoring tool (lm-sensors). Please confirm that the Ubuntu operating system can obtain monitoring information normally. You can add the following indicator collection configuration as needed. + +```yaml +metrics: + - name: avg_cpu_temp + i18n: + zh-CN: 所有核心的平均CPU温度 + en-US: Average CPU Temperature Across All Cores + priority: 4 + fields: + - field: avg_cpu_temp + type: 1 + label: true + unit: 'C' + i18n: + zh-CN: 所有核心的平均温度 + en-US: Average Temp All Cores + protocol: ssh + ssh: + host: ^_^host^_^ + port: ^_^port^_^ + username: ^_^username^_^ + password: ^_^password^_^ + privateKey: ^_^privateKey^_^ + privateKeyPassphrase: ^_^privateKeyPassphrase^_^ + timeout: ^_^timeout^_^ + reuseConnection: ^_^reuseConnection^_^ + script: sensors | grep "^Core\s[0-9\d+\:]" | awk '{print $3}' | sed "s/°C/\ /g" | awk '{ total += $1; count++ } END { print total/count }' + parseType: oneRow + # whether to use proxy server for ssh connection + useProxy: ^_^useProxy^_^ + # ssh proxy host: ipv4 domain + proxyHost: ^_^proxyHost^_^ + # ssh proxy port + proxyPort: ^_^proxyPort^_^ + # ssh proxy username + proxyUsername: ^_^proxyUsername^_^ + # ssh proxy password + proxyPassword: ^_^proxyPassword^_^ + # ssh proxy private key + proxyPrivateKey: ^_^proxyPrivateKey^_^ +``` diff --git a/home/versioned_docs/version-1.7.x/help/udp_port.md b/home/versioned_docs/version-1.7.x/help/udp_port.md new file mode 100644 index 00000000000..85d4fcb4383 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/udp_port.md @@ -0,0 +1,31 @@ +--- +id: udp_port +title: Monitoring UDP port availability +sidebar_label: UDP Port availability +keywords: [open source monitoring tool, open source port monitoring tool, monitoring UDP port metrics] +--- + +> UDP is a connectionless transport layer protocol. We determine the availability status of its ports by sending request packets at the application layer and receiving responses. The configuration information requires filling in the hexadecimal content of the application layer packets that prompt responses from the peer. We recommend using Wireshark for packet capture to obtain the transmitted packet content. +> You can click on `Create UDP Port Availability` to configure or select `More Actions` to import existing configurations. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️ Without protocol header (eg: https://, http://). | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Port | Ports provided by website. | +| Connection timeout | The waiting timeout for port connections, in milliseconds. Default is 6000 milliseconds. | +| Sent Packet Content | The hexadecimal content of the application layer packet that prompts a response from the peer. | +| Collector | Specifies which collector to use for scheduling collection for this monitoring. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Classification management tags for monitoring resources. | +| Description | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|---------------|-------------------|-------------------------| +| Response Time | Milliseconds (ms) | Website response time | diff --git a/home/versioned_docs/version-1.7.x/help/uniview.md b/home/versioned_docs/version-1.7.x/help/uniview.md new file mode 100644 index 00000000000..70a094db983 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/uniview.md @@ -0,0 +1,47 @@ +--- +id: uniview +title: Monitor Uniview Devices +sidebar_label: Uniview +keywords: [ monitor, uniview ] +--- + +> Monitor Uniview devices through HTTP interface. + +## Configuration + +| Parameter | Description | +| ----------- | ----------- | +| Host | Device IP/Domain | +| Name | Unique identifier | +| Port | Default 80 | +| Timeout | Milliseconds | +| Username | Auth username | +| Password | Auth password | +| SSL | HTTPS Enable | +| Interval | ≥30 seconds | + +## Metrics + +### System Info + +- Device Name +- Serial Number +- Firmware Version +- Device Model + +### NTP Info + +- NTP Server IP +- NTP Port +- Sync Interval +- NTP Status + +## Implementation + +Access device APIs: + +1. System: `/LAPI/V1.0/System/DeviceInfo` + +2. NTP: `/LAPI/V1.0/System/Time/NTP` + +Using Digest Authentication and parsing JSON responses. diff --git a/home/versioned_docs/version-1.7.x/help/valkey.md b/home/versioned_docs/version-1.7.x/help/valkey.md new file mode 100644 index 00000000000..5c573030869 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/valkey.md @@ -0,0 +1,234 @@ +--- +id: valkey +title: Monitorin Valkey database +sidebar_label: Valkey +keywords: [ open source monitoring tool, open source valkey monitoring tool, monitoring valkey metrics ] +--- + +> Collect and monitor the general performance Metrics of Valkey database. Support Valkey 7.0+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|--------|------------------------------------------------------| +| Target Host | The IP, IPV6, or domain name of the monitored endpoint. Note ⚠️: Do not include protocol headers (eg: https://, http://). | +| Port | The HTTP port provided by Valkey, default value is 6379, sentinel node`s default value is 26379 | +| Timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | + +### Collection Metric + +#### Metric set:server + +| Metric name | Metric unit | Metric help description | +|--------------------------|------|-----------------------------------------------| +| valkey_version | none | Version of the Valkey server | +| valkey_git_sha1 | none | Git SHA1 | +| valkey_git_dirty | none | Git dirty flag | +| valkey_build_id | none | The build id | +| valkey_mode | none | The server's mode ("standalone", "sentinel" or "cluster") | +| os | none | Operating system hosting the Valkey server | +| arch_bits | none | Architecture (32 or 64 bits) | +| multiplexing_api | none | Event loop mechanism used by Valkey | +| atomicvar_api | none | Atomicvar API used by Valkey | +| gcc_version | none | Version of the GCC compiler used to compile the Valkey server | +| process_id | none | PID of the server process | +| process_supervised | none | Supervised system ("upstart", "systemd", "unknown" or "no") | +| run_id | none | Random value identifying the Valkey server (to be used by Sentinel and Cluster) | +| tcp_port | none | TCP/IP listen port | +| server_time_usec | none | Epoch-based system time with microsecond precision | +| uptime_in_seconds | none | Number of seconds since Valkey server start | +| uptime_in_days | none | Same value expressed in days | +| hz | none | The server's current frequency setting | +| configured_hz | none | The server's configured frequency setting | +| lru_clock | none | Clock incrementing every minute, for LRU management | +| executable | none | The path to the server's executable | +| config_file | none | The path to the config file | +| io_threads_active | none | Flag indicating if I/O threads are active | +| shutdown_in_milliseconds | none | The maximum time remaining for replicas to catch up the replication before completing the shutdown sequence. This field is only present during shutdown. | + +#### Metric set:clients + +| Metric name | Metric unit | Metric help description | +|---------------------------------|------|--------------------------------------------------------------------------------| +| connected_clients | none | Number of client connections (excluding connections from replicas) | +| cluster_connections | none | An approximation of the number of sockets used by the cluster's bus | +| maxclients | none | The value of the maxclients configuration directive. This is the upper limit for the sum of connected_clients, connected_slaves and cluster_connections. | +| client_recent_max_input_buffer | byte | Biggest input buffer among current client connections | +| client_recent_max_output_buffer | byte | Biggest output buffer among current client connections | +| blocked_clients | none | Number of clients pending on a blocking call (BLPOP, BRPOP, BRPOPLPUSH, BLMOVE, BZPOPMIN, BZPOPMAX) | +| tracking_clients | none | Number of clients being tracked (CLIENT TRACKING) | +| clients_in_timeout_table | none | Number of clients in the clients timeout table | + +#### Metric set:memory + +| Metric name | Metric unit | Metric help description | +|---------------------------|----------|-----------------------------------------------------------------------------------------------| +| used_memory | byte | Total number of bytes allocated by Valkey using its allocator (either standard libc, jemalloc, or an alternative allocator such as tcmalloc) | +| used_memory_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_rss | byte | Number of bytes that Valkey allocated as seen by the operating system (a.k.a resident set size). This is the number reported by tools such as top(1) and ps(1) | +| used_memory_rss_human | GB/MB/KB | Human readable representation of previous value值 | +| used_memory_peak | byte | Peak memory consumed by Valkey (in bytes) | +| used_memory_peak_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_peak_perc | none | The percentage of used_memory_peak out of used_memory | +| used_memory_overhead | byte | The sum in bytes of all overheads that the server allocated for managing its internal data structures | +| used_memory_startup | byte | Initial amount of memory consumed by Valkey at startup in bytes | +| used_memory_dataset | byte | The size in bytes of the dataset (used_memory_overhead subtracted from used_memory) | +| used_memory_dataset_perc | none | The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup) | +| allocator_allocated | byte | Total bytes allocated form the allocator, including internal-fragmentation. Normally the same as used_memory. | +| allocator_active | byte | Total bytes in the allocator active pages, this includes external-fragmentation. | +| allocator_resident | byte | Total bytes resident (RSS) in the allocator, this includes pages that can be released to the OS (by MEMORY PURGE, or just waiting). | +| total_system_memory | byte | The total amount of memory that the Valkey host has | +| total_system_memory_human | GB/MB/KB | Human readable representation of previous value | +| used_memory_lua | byte | Number of bytes used by the Lua engine for EVAL scripts. Deprecated in Valkey 7.0, renamed to used_memory_vm_eval | +| used_memory_lua_human | KB | Human readable representation of previous value. Deprecated in Valkey 7.0 | +| used_memory_scripts | byte | used_memory_scripts_eval + used_memory_functions (part of used_memory). Added in Valkey 7.0 | +| used_memory_scripts_human | GB/MB/KB | Human readable representation of previous value | +| number_of_cached_scripts | none | The number of EVAL scripts cached by the server. Added in Valkey 7.0 | +| maxmemory | byte | The value of the maxmemory configuration directive | +| maxmemory_human | GB/MB/KB | Human readable representation of previous value | +| maxmemory_policy | none | The value of the maxmemory-policy configuration directive | +| allocator_frag_ratio | none | Ratio between allocator_active and allocator_allocated. This is the true (external) fragmentation metric (not mem_fragmentation_ratio). | +| allocator_frag_bytes | byte | Delta between allocator_active and allocator_allocated. See note about mem_fragmentation_bytes. | +| allocator_rss_ratio | | Ratio between allocator_resident and allocator_active. | +| allocator_rss_bytes | byte | Delta between allocator_resident and allocator_active | +| rss_overhead_ratio | none | Ratio between used_memory_rss (the process RSS) and allocator_resident. This includes RSS overheads that are not allocator or heap related. | +| rss_overhead_bytes | byte | Delta between used_memory_rss (the process RSS) and allocator_resident | +| mem_fragmentation_ratio | none | Ratio between used_memory_rss and used_memory. Note that this doesn't only includes fragmentation, but also other process overheads (see the allocator_* metrics), and also overheads like code, shared libraries, stack, etc. | +| mem_fragmentation_bytes | byte | Delta between used_memory_rss and used_memory. Note that when the total fragmentation bytes is low (few megabytes), a high ratio (e.g. 1.5 and above) is not an indication of an issue. | +| mem_not_counted_for_evict | byte | Used memory that's not counted for key eviction. This is basically transient replica and AOF buffers. | +| mem_replication_backlog | byte | Memory used by replication backlog | +| mem_clients_slaves | none | Memory used by replica clients - Starting Valkey 7.0, replica buffers share memory with the replication backlog, so this field can show 0 when replicas don't trigger an increase of memory usage. | +| mem_clients_normal | none | Memory used by normal clients | +| mem_aof_buffer | none | Transient memory used for AOF and AOF rewrite buffers | +| mem_allocator | none | Memory allocator, chosen at compile time. | +| active_defrag_running | none | When activedefrag is enabled, this indicates whether defragmentation is currently active, and the CPU percentage it intends to utilize. | +| lazyfree_pending_objects | none | The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option) | +| lazyfreed_objects | none | The number of objects that have been lazy freed. | + +#### Metric set:persistence + +| Metric name | Metric unit | Metric help description | +|------------------------------|--------|-----------------------------------------------------------------------------------------------------| +| loading | none | Flag indicating if the load of a dump file is on-going | +| current_cow_size | byte | The size in bytes of copy-on-write memory while a child fork is running | +| current_cow_size_age | second | The age, in seconds, of the current_cow_size value. | +| current_fork_perc | none | The percentage of progress of the current fork process. For AOF and RDB forks it is the percentage of current_save_keys_processed out of | +| current_save_keys_processed | none | Number of keys processed by the current save operation | +| current_save_keys_total | none | Number of keys at the beginning of the current save operation | +| rdb_changes_since_last_save | none | Number of changes since the last dump | +| rdb_bgsave_in_progress | none | Flag indicating a RDB save is on-going | +| rdb_last_save_time | second | Epoch-based timestamp of last successful RDB save | +| rdb_last_bgsave_status | none | Status of the last RDB save operation | +| rdb_last_bgsave_time_sec | second | Duration of the last RDB save operation in seconds | +| rdb_current_bgsave_time_sec | none | Duration of the on-going RDB save operation if any | +| rdb_last_cow_size | none | The size in bytes of copy-on-write memory during the last RDB save operation | +| aof_enabled | none | Flag indicating AOF logging is activated | +| aof_rewrite_in_progress | none | Flag indicating a AOF rewrite operation is on-going | +| aof_rewrite_scheduled | none | Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete. | +| aof_last_rewrite_time_sec | none | Duration of the last AOF rewrite operation in seconds | +| aof_current_rewrite_time_sec | second | Duration of the on-going AOF rewrite operation if any | +| aof_last_bgrewrite_status | none | Status of the last AOF rewrite operation | +| aof_last_write_status | none | Status of the last write operation to the AOF | +| aof_last_cow_size | none | The size in bytes of copy-on-write memory during the last AOF rewrite operation | +| module_fork_in_progress | none | Flag indicating a module fork is on-going | +| module_fork_last_cow_size | none | The size in bytes of copy-on-write memory during the last module fork operation | + +#### Metric set:stats + +| Metric name | Metric unit | Metric help description | +|--------------------------------|------|----------------------------------------------------| +| total_connections_received | none | Total number of connections accepted by the server | +| total_commands_processed | none | Total number of commands processed by the server | +| instantaneous_ops_per_sec | none | Number of commands processed per second | +| total_net_input_bytes | byte | The total number of bytes read from the network | +| total_net_output_bytes | byte | The total number of bytes written to the network | +| instantaneous_input_kbps | KB/S | The network's read rate per second in KB/sec | +| instantaneous_output_kbps | KB/S | The network's write rate per second in KB/sec | +| rejected_connections | none | Number of connections rejected because of maxclients limit | +| sync_full | none | The number of full resyncs with replicas | +| sync_partial_ok | none | The number of accepted partial resync requests | +| sync_partial_err | none | The number of denied partial resync requests | +| expired_keys | none | Total number of key expiration events | +| expired_stale_perc | none | The percentage of keys probably expired | +| expired_time_cap_reached_count | none | The count of times that active expiry cycles have stopped early | +| expire_cycle_cpu_milliseconds | none | The cumulative amount of time spent on active expiry cycles | +| evicted_keys | none | Number of evicted keys due to maxmemory limit | +| keyspace_hits | none | Number of successful lookup of keys in the main dictionary | +| keyspace_misses | none | Number of failed lookup of keys in the main dictionary | +| pubsub_channels | none | Global number of pub/sub channels with client subscriptions | +| pubsub_patterns | none | Global number of pub/sub pattern with client subscriptions | +| latest_fork_usec | none | Duration of the latest fork operation in microseconds | +| total_forks | none | Total number of fork operations since the server start | +| migrate_cached_sockets | none | The number of sockets open for MIGRATE purposes | +| slave_expires_tracked_keys | none | The number of keys tracked for expiry purposes (applicable only to writable replicas) | +| active_defrag_hits | none | Number of value reallocations performed by active the defragmentation process | +| active_defrag_misses | none | Number of aborted value reallocations started by the active defragmentation process | +| active_defrag_key_hits | none | Number of keys that were actively defragmented | +| active_defrag_key_misses | none | Number of keys that were skipped by the active defragmentation process | +| tracking_total_keys | none | Number of keys being tracked by the server | +| tracking_total_items | none | Number of items, that is the sum of clients number for each key, that are being tracked | +| tracking_total_prefixes | none | Number of tracked prefixes in server's prefix table (only applicable for broadcast mode) | +| unexpected_error_replies | none | Number of unexpected error replies, that are types of errors from an AOF load or replication | +| total_error_replies | none | Total number of issued error replies, that is the sum of rejected commands (errors prior command execution) and failed commands (errors within the command execution) | +| dump_payload_sanitizations | none | Total number of dump payload deep integrity validations (see sanitize-dump-payload config). | +| total_reads_processed | none | Total number of read events processed | +| total_writes_processed | none | Total number of write events processed | +| io_threaded_reads_processed | none | Number of read events processed by the main and I/O threads | +| io_threaded_writes_processed | none | Number of write events processed by the main and I/O threads | + +#### Metric set:replication + +| Metric name | Metric unit | Metric help description | +|--------------------------------|------|-------------------------------------------------------------------------------------| +| role | none | Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication). | +| connected_slaves | none | Number of connected replicas | +| master_failover_state | none | The state of an ongoing failover, if any. | +| master_replid | none | The replication ID of the Valkey server. | +| master_replid2 | none | The secondary replication ID, used for PSYNC after a failover. | +| master_repl_offset | none | The server's current replication offset | +| second_repl_offset | none | The offset up to which replication IDs are accepted | +| repl_backlog_active | none | Flag indicating replication backlog is active | +| repl_backlog_size | byte | Total size in bytes of the replication backlog buffer | +| repl_backlog_first_byte_offset | none | The master offset of the replication backlog buffer | +| repl_backlog_histlen | none | Size in bytes of the data in the replication backlog buffer | + +#### Metric set:cpu + +| Metric name | Metric unit | Metric help description | +|---------------------------|------|------------------------| +| used_cpu_sys | none | System CPU consumed by the Valkey server, which is the sum of system CPU consumed by all threads of the server process (main thread and background threads) | +| used_cpu_user | none | User CPU consumed by the Valkey server, which is the sum of user CPU consumed by all threads of the server process (main thread and background threads) | +| used_cpu_sys_children | none | System CPU consumed by the background processes | +| used_cpu_user_children | none | User CPU consumed by the background processes | +| used_cpu_sys_main_thread | none | System CPU consumed by the Valkey server main thread | +| used_cpu_user_main_thread | none | User CPU consumed by the Valkey server main thread | + +#### Metric set:errorstats + +| Metric name | Metric unit | Metric help description | +|-------------------|------|-----------| +| errorstat_ERR | none | ERR count | +| errorstat_MISCONF | none | MISCONF count | + +#### Metric set:cluster + +| Metric name | Metric unit | Metric help description | +|-----------------|------|--------------------| +| cluster_enabled | none | Indicate Valkey cluster is enabled | + +#### Metric set:commandstats + +| Metric name | Metric unit | Metric help description | +|---------------|------|---------------------------------------------------------------------------------------------------------------------------| +| cmdstat_set | none | set command stat | +| cmdstat_get | none | get command stat | +| cmdstat_setnx | none | setnx command stat | +| cmdstat_hset | none | hset command stat | +| cmdstat_hget | none | hget command stat | +| cmdstat_lpush | none | lpush command stat | +| cmdstat_rpush | none | rpush command stat | +| cmdstat_lpop | none | lpop command stat | +| cmdstat_rpop | none | rpop command stat | +| cmdstat_llen | none | llen command stat | diff --git a/home/versioned_docs/version-1.7.x/help/vastbase.md b/home/versioned_docs/version-1.7.x/help/vastbase.md new file mode 100644 index 00000000000..1d595b85201 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/vastbase.md @@ -0,0 +1,55 @@ +--- +id: vastbase +title: Monitoring:Vastbase database monitoring +sidebar_label: Vastbase database +keywords: [open source monitoring tool, open source database monitoring tool, monitoring vastbase database metrics] +--- + +> Collect and monitor the general performance Metrics of PostgreSQL database. Support PostgreSQL 10+. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored Host address. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by the database. The default is 5432 | +| Query timeout | Set the timeout time when SQL query does not respond to data, unit: ms, default: 3000ms | +| Database name | Database instance name, optional | +| Username | Database connection user name, optional | +| Password | Database connection password, optional | +| URL | Database connection URL,optional,If configured, the database name, user name, password and other parameters in the URL will overwrite the above configured parameters | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:basic + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|-------------------------------------------| +| server_version | none | Version number of the database server | +| port | none | Database server exposure service port | +| server_encoding | none | Character set encoding of database server | +| data_directory | none | Database storage data disk address | +| max_connections | connections | Database maximum connections | + +#### Metric set:state + +| Metric name | Metric unit | Metric help description | +|----------------|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | none | Database name, or share-object is a shared object | +| conflicts | times | The number of queries canceled in the database due to a conflict with recovery | +| deadlocks | number | Number of deadlocks detected in the database | +| blks_read | times | The number of disk blocks read in the database | +| blks_hit | times | Times the disk block has been found to be in the buffer, so there is no need to read it once (This only includes hits in the Vastbase buffer, not in the operating system file system buffer) | +| blk_read_time | ms | Time spent by the backend reading data file blocks in the database | +| blk_write_time | ms | Time spent by the backend writing data file blocks in the database | +| stats_reset | none | The last time these statistics were reset | + +#### Metric set:activity + +| Metric name | Metric unit | Metric help description | +|-------------|-------------|--------------------------------------| +| running | connections | Number of current client connections | diff --git a/home/versioned_docs/version-1.7.x/help/website.md b/home/versioned_docs/version-1.7.x/help/website.md new file mode 100644 index 00000000000..1041755f156 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/website.md @@ -0,0 +1,29 @@ +--- +id: website +title: Monitoring Website +sidebar_label: Website Monitor +keywords: [open source monitoring tool, open source website monitoring tool, monitoring website metrics] +--- + +> Monitor whether the website is available, response time and other Metrics. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Ports provided by website, http generally defaults to 80 and https generally defaults to 443 | +| Relative path | Suffix path of website address except IP port. For example, the relative path of `www.tancloud.io/console` website is `/console` | +| Enable HTTPS | Whether to access the website through HTTPS. Note⚠️When HTTPS is enabled, the default corresponding port needs to be changed to 443 | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:summary + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|-------------------------| +| responseTime | ms | Website response time | diff --git a/home/versioned_docs/version-1.7.x/help/websocket.md b/home/versioned_docs/version-1.7.x/help/websocket.md new file mode 100644 index 00000000000..1523a145bd6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/websocket.md @@ -0,0 +1,33 @@ +--- +id: websocket +title: Monitoring Websocket +sidebar_label: Websocket Monitor +keywords: [ open source monitoring tool, Websocket监控 ] +--- + +> Monitor metrics such as the response of the WebSocket service's first handshake. + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Host of WebSocket service | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://). | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique. | +| Port | Port of websocket service. | +| Path of WebSocket service | WebSocket endpoint path. | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Bind Tags | Used to classify and manage monitoring resources. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Collection Metric + +#### Metric set:Summary + +| Metric name | Metric unit | Metric help description | +|---------------|-------------|-------------------------| +| responseTime | ms | Response time | +| httpVersion | none | HTTP version | +| responseCode | none | Response status code | +| statusMessage | none | Status messages | +| connection | none | Connect type | +| upgrade | none | Upgraded protocols | diff --git a/home/versioned_docs/version-1.7.x/help/windows.md b/home/versioned_docs/version-1.7.x/help/windows.md new file mode 100644 index 00000000000..486b12f6774 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/windows.md @@ -0,0 +1,114 @@ +--- +id: windows +title: Monitoring:Windows operating system monitoring +sidebar_label: Windows operating system +keywords: [open source monitoring tool, open source windows monitoring tool, monitoring windows metrics] +--- + +> Collect and monitor the general performance Metrics of Windows operating system through SNMP protocol. +> Note⚠️ You need to start SNMP service for Windows server. + +References: +[What is SNMP protocol 1](https://www.cnblogs.com/xdp-gacl/p/3978825.html) +[What is SNMP protocol 2](https://www.auvik.com/franklyit/blog/network-basics-what-is-snmp/) +[Win configure SNMP in English](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/configure-snmp-service) +[Win configure SNMP in Chinese](https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/configure-snmp-service) + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Windows SNMP service. The default is 161 | +| SNMP version | SNMP protocol version V1 V2c V3 | +| SNMP community Word | SNMP agreement community name(Community Name). It is used to realize the authentication of SNMP network administrator when accessing SNMP management agent. Similar to password, the default value is public | +| Timeout | Protocol connection timeout | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:system + +| Metric name | Metric unit | Metric help description | +|--------------|-------------|------------------------------| +| name | none | Host name | +| descr | none | Operating system description | +| uptime | none | System running time | +| numUsers | number | Current number of users | +| services | number | Current number of services | +| processes | number | Current number of processes | +| responseTime | ms | Collection response time | +| location | none | Location | +| memory | GB | System memory | + +#### Metric set: process + +| Field name | Metric unit | Metric help description | +|-------------------|-------------|-------------------------| +| hrSWRunIndex | none | Index | +| hrSWRunName | none | Process name | +| hrSWRunID | none | Process ID | +| hrSWRunPath | none | Process path | +| hrSWRunParameters | none | Process parameters | +| hrSWRunType | none | Process type | +| hrSWRunStatus | none | Process status | +| hrSWRunPerfCPU | s | Process CPU usage | +| hrSWRunPerfMem | KB | Process memory usage | + +#### Metric set: service + +| Field name | Metric unit | Metric help description | +|-----------------------|-------------|-------------------------| +| svSvcName | none | Service name | +| svSvcInstalledState | none | Service installed state | +| svSvcOperatingState | none | Service operating state | +| svSvcCanBeUninstalled | none | Can be uninstalled | +| svSvcCanBePaused | none | Can be paused | + +#### Metric set: installation + +| Field name | Metric unit | Metric help description | +|--------------------|-------------|-------------------------| +| hrSWInstalledIndex | none | Index | +| hrSWInstalledName | none | Installed name | +| hrSWInstalledID | none | Installed ID | +| hrSWInstalledType | none | Installed type | + +#### Metric set: storage + +| Field name | Metric unit | Metric help description | +|------------|-------------|-------------------------| +| index | none | Index | +| descr | none | Storage description | +| size | Mb | Storage size | +| free | Mb | Free space | +| used | Mb | Used space | +| usage | % | Usage percentage | + +#### Metric set: interface details + +| Field name | Metric unit | Metric help description | +|--------------|-------------|----------------------------| +| index | none | Index | +| descr | none | Interface name | +| speed | Mbps | Interface speed | +| in_octets | Kbps | Inbound traffic | +| out_octets | Kbps | Outbound traffic | +| admin_status | none | Administrative status | +| oper_status | none | Operational status | +| mtu | B | MTU | +| in_discards | number | Inbound discarded packets | +| in_errors | number | Inbound error packets | +| out_discards | number | Outbound discarded packets | +| out_errors | number | Outbound error packets | + +#### Metric set: device + +| Field name | Metric unit | Metric help description | +|------------|-------------|-------------------------| +| index | none | Index | +| descr | none | Description | +| status | none | Status | diff --git a/home/versioned_docs/version-1.7.x/help/windows_script.md b/home/versioned_docs/version-1.7.x/help/windows_script.md new file mode 100644 index 00000000000..6abcf126ac6 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/windows_script.md @@ -0,0 +1,86 @@ +--- +id: windows_script +title: Monitoring:Using Scripts to Monitor Windows Operating System +sidebar_label: Using Scripts to Monitor Windows OS +keywords: [open source monitoring system, open source network monitoring, using scripts to monitor Windows OS] +--- + +### Preparation + +> To monitor the local machine, simply deploy Hertzbeat. To monitor other hosts, you need to deploy a collector on the target host. Refer to [this link](https://github.com/apache/hertzbeat?tab=readme-ov-file#2install-via-package) for step 5 of the installation process. +> If the collector is installed using Docker, it will cause the collector to be unable to monitor the process information on the host machine, because Docker containers run in an isolated environment, with each container having its own process space. +> When creating a monitoring task and selecting a collector, choose the corresponding collector deployed on the target host. + +### Configuration Parameters + +| Parameter Name | Parameter Description | +|:---------------|-----------------------------------------------------| +| Monitor Host | The IPv4, IPv6, or domain of the monitored endpoint. Note ⚠️ Do not include protocol headers (e.g., https://, http://). | +| Task Name | The name identifying this monitoring task, which needs to be unique. | +| Collector | Specifies which collector will be used for data collection in this monitoring task. | +| Monitoring Interval | The time interval for periodic data collection, in seconds. | +| Binding Tag | Classification management tags for monitoring resources. | +| Description Notes | Additional notes to describe this monitoring task. Users can add remarks here. | + +### Metrics Collection + +#### Metric Set: basic + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|--------------------------| +| hostname | None | Name of the host | +| version | None | Operating system version | + +#### Metric Set: cpu + +| Metric Name | Metric Unit | Metric Description | +|----------------|-------------|------------------------------------| +| info | None | CPU model | +| cores | Number | Number of CPU cores | +| interrupt | Count | Number of CPU interrupts | +| load | None | Average recent CPU load | +| context_switch | Count | Current number of context switches | +| usage | % | CPU usage percentage | + +#### Metric Set: memory + +| Metric Name | Metric Unit | Metric Description | +|---------------|-------------|--------------------------------| +| totalPhysical | Mb | Total physical memory capacity | +| freePhysical | Mb | Free physical memory capacity | +| totalVirtual | Mb | Total virtual memory capacity | +| freeVirtual | Mb | Free virtual memory capacity | + +#### Metric Set: disk + +| Metric Name | Metric Unit | Metric Description | +|----------------|-------------|----------------------------| +| Model | None | Disk model | +| Size | Mb | Disk size | +| BytesPerSector | Bytes | Number of bytes per sector | + +#### Metric Set: disk_free + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|----------------------| +| Caption | None | Disk label | +| FreeSpace | Mb | Available disk space | +| Size | Mb | Total disk space | + +#### Metric Set: Top 10 Programs by CPU Usage + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|---------------------| +| name | None | Process name | +| id | None | Process ID | +| cpu | Seconds | CPU usage time | +| ws | Mb | Memory usage | + +#### Metric Set: Top 10 Programs by Memory Usage + +| Metric Name | Metric Unit | Metric Description | +|-------------|-------------|---------------------| +| name | None | Process name | +| id | None | Process ID | +| cpu | Seconds | CPU usage time | +| ws | Mb | Memory usage | diff --git a/home/versioned_docs/version-1.7.x/help/xugu.md b/home/versioned_docs/version-1.7.x/help/xugu.md new file mode 100644 index 00000000000..679014df15b --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/xugu.md @@ -0,0 +1,62 @@ +--- +id: xugu +title: xuguDB Database Monitoring +sidebar_label: xugu Database +keywords: [ Open Source Monitoring System, Open Source Database Monitoring, xugu Database Monitoring ] +--- + +> Collect and monitor common performance metrics of the xugu database. Supports xuguDB.v12. + +### Configuration Parameters + +| Parameter Name | Description | +|----------------|------------------------------------------------------------------------------| +| Monitoring Host | The IPv4, IPv6, or domain name of the monitored target. ⚠️ Do not include protocol headers (e.g., https://, http://). | +| Task Name | The name that identifies this monitoring task. The name must be unique. | +| Port | The port exposed by the database, default is 5138. | +| Query Timeout | The timeout for SQL queries when no response is received, in milliseconds. Default is 3000 ms. | +| Database Name | The database instance name, optional. | +| Username | Database connection username. | +| Password | Database connection password. | +| URL | Database connection URL, optional. If configured, the database name, username, password and other parameters in the URL will override the above settings. | +| Collection Interval | The interval for periodically collecting monitoring data, in seconds. The minimum configurable interval is 30 seconds. | +| Enable Detection | Whether to probe and check availability before adding monitoring. The add/modify operation proceeds only if the probe succeeds. | +| Description | Additional notes and descriptions for this monitoring, where users can add remarks. | + +### Collected Metrics + +#### Metric Set: Session Information + +| Metric Name | Unit | Description | +|--------------------------------|------|-----------------------------| +| Idle_Connection | N/A | Idle connections | +| Active_Connections | N/A | Active connections | +| Connection_being_created | N/A | Connections being created | +| Null_Read_Connection | N/A | Empty read connections | +| Complete_data_input_connection | N/A | Connections with completed data input | +| Other | N/A | Others | + +#### Metric Set: Memory Information + +| Metric Name | Unit | Description | +|------------|------|-------------------------------------| +| G_MEM | MB | Global memory consumption | +| CATA_MEM | MB | CATALOG memory consumption | +| TRAN_MEM | MB | Transaction memory consumption | +| NET_MEM | MB | User connection memory consumption | +| TASK_MEM | MB | Task thread memory consumption | +| MSG_MEM | MB | Internal communication message memory consumption | +| LOCK_MEM | MB | Local lock memory consumption | +| GLOCK_MEM | MB | Global lock memory consumption | +| DLCHK_MEM | MB | Deadlock detection memory consumption| +| MODI_MEM | MB | Change log memory consumption | +| PROC_MEM | MB | Procedure execution engine memory consumption | + +#### Metric Set: Disk Information + +| Metric Name | Unit | Description | +|-------------------|-------|-------------------------------------| +| DISK_READ_NUM | Times | Number of disk block read operations | +| DISK_WRITE_NUM | Times | Number of disk block write operations | +| DISK_READ_BYTES | MB | Number of bytes read from disk | +| DISK_WRITE_BYTES | MB | Number of bytes written to disk | diff --git a/home/versioned_docs/version-1.7.x/help/yarn.md b/home/versioned_docs/version-1.7.x/help/yarn.md new file mode 100644 index 00000000000..cea4079abf7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/yarn.md @@ -0,0 +1,83 @@ +--- +id: yarn +title: Monitoring Apache Yarn Monitoring +sidebar_label: Apache Yarn +keywords: [Big Data Monitoring System, Apache Yarn Monitoring, ResourceManager Monitoring] +--- + +> Hertzbeat monitors Apache Yarn node monitoring metrics. + +**Protocol Used: HTTP** + +## Pre-monitoring Actions + +Retrieve the HTTP monitoring port of Apache Yarn. Value: `yarn.resourcemanager.webapp.address` + +## Configuration Parameters + +| Parameter Name | Parameter Description | +|------------------|-------------------------------------------------------------------------------------------| +| Target Host | IP address, IPV6, or domain name of the monitored endpoint. Without protocol header. | +| Port | Monitoring port number of Apache Yarn, default is 8088. | +| Query Timeout | Timeout for querying Apache Yarn, in milliseconds, default is 6000 milliseconds. | +| Metrics Interval | Time interval for monitoring data collection, in seconds, minimum interval is 30 seconds. | + +### Collected Metrics + +#### Metric Set: ClusterMetrics + +| Metric Name | Unit | Metric Description | +|-----------------------|------|-------------------------------------------------| +| NumActiveNMs | | Number of currently active NodeManagers | +| NumDecommissionedNMs | | Number of currently decommissioned NodeManagers | +| NumDecommissioningNMs | | Number of nodes currently decommissioning | +| NumLostNMs | | Number of lost nodes in the cluster | +| NumUnhealthyNMs | | Number of unhealthy nodes in the cluster | + +#### Metric Set: JvmMetrics + +| Metric Name | Unit | Metric Description | +|----------------------|------|--------------------------------------------------| +| MemNonHeapCommittedM | MB | Current committed size of non-heap memory in JVM | +| MemNonHeapMaxM | MB | Maximum available non-heap memory in JVM | +| MemNonHeapUsedM | MB | Current used size of non-heap memory in JVM | +| MemHeapCommittedM | MB | Current committed size of heap memory in JVM | +| MemHeapMaxM | MB | Maximum available heap memory in JVM | +| MemHeapUsedM | MB | Current used size of heap memory in JVM | +| GcTimeMillis | | JVM GC time | +| GcCount | | Number of JVM GC occurrences | + +#### Metric Set: QueueMetrics + +| Metric Name | Unit | Metric Description | +|------------------------------|------|-----------------------------------------------------| +| queue | | Queue name | +| AllocatedVCores | | Allocated virtual cores (allocated) | +| ReservedVCores | | Reserved cores | +| AvailableVCores | | Available cores (unallocated) | +| PendingVCores | | Blocked scheduling cores | +| AllocatedMB | MB | Allocated (used) memory size | +| AvailableMB | MB | Available memory (unallocated) | +| PendingMB | MB | Blocked scheduling memory | +| ReservedMB | MB | Reserved memory | +| AllocatedContainers | | Number of allocated (used) containers | +| PendingContainers | | Number of blocked scheduling containers | +| ReservedContainers | | Number of reserved containers | +| AggregateContainersAllocated | | Total aggregated containers allocated | +| AggregateContainersReleased | | Total aggregated containers released | +| AppsCompleted | | Number of completed applications | +| AppsKilled | | Number of killed applications | +| AppsFailed | | Number of failed applications | +| AppsPending | | Number of pending applications | +| AppsRunning | | Number of currently running applications | +| AppsSubmitted | | Number of submitted applications | +| running_0 | | Number of jobs running for less than 60 minutes | +| running_60 | | Number of jobs running between 60 and 300 minutes | +| running_300 | | Number of jobs running between 300 and 1440 minutes | +| running_1440 | | Number of jobs running for more than 1440 minutes | + +#### Metric Set: runtime + +| Metric Name | Unit | Metric Description | +|-------------|------|--------------------| +| StartTime | | Startup timestamp | diff --git a/home/versioned_docs/version-1.7.x/help/zookeeper.md b/home/versioned_docs/version-1.7.x/help/zookeeper.md new file mode 100644 index 00000000000..00ecb487107 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/zookeeper.md @@ -0,0 +1,122 @@ +--- +id: zookeeper +title: Monitoring Zookeeper +sidebar_label: Zookeeper Monitor +keywords: [open source monitoring tool, open source zookeeper monitoring tool, monitoring zookeeper metrics] +--- + +> Collect and monitor the general performance Metrics of Zookeeper. + +### PreRequisites + +#### Zookeeper four word command + +> The current implementation scheme uses the four word command provided by zookeeper to collect Metrics. +> Users need to add the four word command of zookeeper to the white list by themselves. + +Steps + +> 1.Find our zookeeper configuration file, which is usually zoo.cfg. +> +> 2.Add the following commands to the configuration file + +```shell +# Add the required command to the white list +4lw.commands.whitelist=stat, ruok, conf, isro + +# Add all commands to the white list +4lw.commands.whitelist=* +``` + +> 3.Restart service + +```shell +zkServer.sh restart +``` + +#### netcat protocol + +The current implementation scheme requires us to deploy the Linux server of zookeeper +Command environment for installing netcat + +> netcat installation steps +> +> ```shell +> yum install -y nc +> ``` + +If the terminal displays the following information, the installation is successful + +```shell +Complete! +``` + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Monitoring Host | Monitored IPV4, IPV6 or domain name. Note⚠️Without protocol header (eg: https://, http://) | +| Monitoring name | Identify the name of this monitoring. The name needs to be unique | +| Port | Port provided by Zookeeper. The default is 2181 | +| Query timeout | Set the timeout of Zookeeper connection, unit: ms, default: 3000ms | +| Username | User name of the Linux connection where Zookeeper is located | +| Password | Password of the Linux connection where Zookeeper is located | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds | +| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring. Adding and modifying operations will continue only after the detection is successful | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here | + +### Collection Metric + +#### Metric set:conf + +| Metric name | Metric unit | Metric help description | +|-------------------|-------------|--------------------------------------------------------------------------------------------------------------------| +| clientPort | none | Port | +| dataDir | none | Data snapshot file directory. By default, 100000 operations generate a snapshot | +| dataDirSize | kb | Data snapshot file size | +| dataLogDir | none | Transaction log file directory, production environment on a separate disk | +| dataLogSize | kb | Transaction log file size | +| tickTime | ms | Time interval between servers or between clients and servers to maintain heartbeat | +| minSessionTimeout | ms | Minimum session timeout. Heartbeat timex2. The specified time is less than this time, which is used by default | +| maxSessionTimeout | ms | Maximum session timeout. Heartbeat timex20. The specified time is greater than this time, which is used by default | +| serverId | none | Server id | + +#### Metric set:stats + +| Metric name | Metric unit | Metric help description | +|-------------------------------|-------------|------------------------------------| +| zk_version | none | Server version | +| zk_server_state | none | Server role | +| zk_num_alive_connections | number | Number of connections | +| zk_avg_latency | ms | Average latency | +| zk_outstanding_requests | number | Number of outstanding requests | +| zk_znode_count | number | Number of znode | +| zk_packets_sent | number | Number of packets sent | +| zk_packets_received | number | Number of packets received | +| zk_watch_count | number | Number of watch | +| zk_max_file_descriptor_count | number | Maximum number of file descriptors | +| zk_approximate_data_size | kb | data size | +| zk_open_file_descriptor_count | number | Number of open file descriptors | +| zk_max_latency | ms | Max latency | +| zk_ephemerals_count | number | Number of ephemeral nodes | +| zk_min_latency | ms | Min latency | + +#### Metric set:envi + +| Metric Name | Metric Unit | Metric help description | +|-------------------|-------------|-------------------------------| +| zk_version | none | ZooKeeper version | +| hostname | none | Hostname | +| java_version | none | Java version | +| java_vendor | none | Java vendor | +| java_home | none | Java home directory | +| java_class_path | none | Java class path | +| java_library_path | none | Java library path | +| java_io_tmpdir | none | Java temporary directory | +| java_compiler | none | Java compiler | +| os_name | none | Operating system name | +| os_arch | none | Operating system architecture | +| os_version | none | Operating system version | +| user_name | none | Username | +| user_home | none | User home directory | +| user_dir | none | User current directory | diff --git a/home/versioned_docs/version-1.7.x/help/zookeeper_sd.md b/home/versioned_docs/version-1.7.x/help/zookeeper_sd.md new file mode 100644 index 00000000000..bf7887fb7f4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/help/zookeeper_sd.md @@ -0,0 +1,122 @@ +--- +id: zookeeper_sd +title: Monitoring Zookeeper Service Discovery +sidebar_label: Zookeeper Service Discovery +keywords: [open source monitoring tool, open source service discovery monitoring tool, monitoring Zookeeper service discovery] +--- + +> HertzBeat integrates with Zookeeper to automatically discover service instances stored in Zookeeper nodes and create monitoring tasks for them. + +### Overview + +Zookeeper Service Discovery allows HertzBeat to connect to your Zookeeper server and automatically discover service instance information stored in specific path nodes. This is commonly used in Dubbo and other RPC frameworks that use Zookeeper as a registry center. When service instances change, HertzBeat will automatically create or delete corresponding monitoring tasks. + +### PreRequisites + +#### Deploy Zookeeper Server + +1. Deploy Zookeeper server according to [Zookeeper official documentation](https://zookeeper.apache.org/doc/current/zookeeperStarted.html). +2. Ensure Zookeeper server is accessible from HertzBeat. +3. Verify Zookeeper is running properly using Zookeeper client tools + +### Configuration parameter + +| Parameter name | Parameter help description | +|---------------------|--------------------------------------------------------------------------------------------------------------------------| +| Target Name | Identify the name of this monitoring. The name needs to be unique. | +| Service Discovery Url | Zookeeper server connection address. Example: `192.168.1.100:2181` or `zk1:2181,zk2:2181,zk3:2181` (cluster mode) | +| Service Discovery Path Prefix | The path prefix in Zookeeper for service discovery. Example: `/dubbo` or `/services` | +| Collection interval | Interval time of monitor periodic data collection, unit: second, and the minimum interval that can be set is 30 seconds. | +| Description remarks | For more information about identifying and describing this monitoring, users can note information here. | + +### Usage Steps + +1. **Create Service Discovery Monitoring** + - In HertzBeat web UI, navigate to **Monitoring** → **New Monitoring** + - Select monitoring type: **Zookeeper Service Discovery** + - Fill in the basic configuration parameters + +2. **Configure Monitoring Template** + - After creating the service discovery monitoring, you need to specify a monitoring template + - The template defines what type of monitoring to create for discovered service instances + - For example: If discovered instances are Dubbo services, you can select Port monitoring template + - Common template types: Port, HTTP, Ping, etc. + +3. **Automatic Discovery** + - HertzBeat will periodically query Zookeeper based on the collection interval + - Automatically create monitoring tasks for newly discovered service instances + - Automatically delete monitoring tasks for disappeared service instances + +4. **View Discovered Instances** + - In the monitoring list, you can see all automatically created sub-monitoring tasks + - Each sub-monitoring task corresponds to a discovered service instance + +### Example of usage + +#### Example 1: Dubbo Service Discovery + +Suppose you have a Dubbo service registry running in Zookeeper at `192.168.1.100:2181`, and service information is stored under the `/dubbo` path. + +Configuration example: + +- **Target Name**: `Zookeeper-Dubbo-Discovery` +- **Service Discovery Url**: `192.168.1.100:2181` +- **Service Discovery Path Prefix**: `/dubbo` +- **Collection interval**: `60` seconds +- **Monitoring Template**: Select `Port` monitoring + +After configuration: + +1. HertzBeat connects to Zookeeper +2. Retrieves all child nodes under the `/dubbo` path +3. Parses node information to extract service instance host and port +4. Automatically creates Port monitoring for each service instance + +#### Example 2: Custom Service Discovery + +If you have a custom service registration mechanism using Zookeeper, and service information is stored under the `/services` path: + +- **Service Discovery Url**: `zk1:2181,zk2:2181,zk3:2181` (Zookeeper cluster) +- **Service Discovery Path Prefix**: `/services` + +HertzBeat will discover all service instances under this path. + +### Notes + +- **Node Format**: Zookeeper service discovery expects child nodes to contain host:port information + - Example node name format: `192.168.1.101:8080` or similar formats +- **Network Connectivity**: Ensure HertzBeat can access the Zookeeper server address and port (default: 2181) +- **Monitoring Templates**: Service discovery only discovers service instance addresses, you need to configure appropriate monitoring templates to actually monitor the instances +- **Collection Interval**: Recommended minimum interval is 60 seconds to avoid excessive requests to Zookeeper +- **Path Prefix**: Ensure the path prefix is correct and HertzBeat has permission to read nodes under this path +- **Cluster Mode**: Supports Zookeeper cluster mode, multiple addresses can be separated by commas +- **Instance Naming**: Automatically created monitoring tasks are named based on node information + +### Collection Metric + +#### Metric set: Monitor Target + +| Metric name | Metric unit | Metric help description | +|-----------------|-------------|--------------------------------------------| +| target | none | Discovered service instance target | +| host | none | Service instance host address | +| port | none | Service instance port number | + +### Use Cases + +- **Dubbo Services**: Automatically monitor Dubbo service providers and consumers registered in Zookeeper +- **RPC Frameworks**: Monitor RPC services using Zookeeper as a registry +- **Custom Registration**: Monitor services using custom Zookeeper-based service registration +- **Distributed Systems**: Manage monitoring of distributed system components using Zookeeper for coordination +- **Service Governance**: Centrally manage monitoring of services in the Zookeeper service ecosystem + +### Common Dubbo Path Structure + +For Dubbo services, typical Zookeeper path structures include: + +- `/dubbo/{serviceName}/providers` - Service provider addresses +- `/dubbo/{serviceName}/consumers` - Service consumer addresses +- `/dubbo/{serviceName}/routers` - Routing rules +- `/dubbo/{serviceName}/configurators` - Configuration overrides + +When using Zookeeper service discovery with Dubbo, it's recommended to set the path prefix to `/dubbo` to discover all Dubbo services. diff --git a/home/versioned_docs/version-1.7.x/introduce.md b/home/versioned_docs/version-1.7.x/introduce.md new file mode 100644 index 00000000000..fdba2db0c45 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/introduce.md @@ -0,0 +1,327 @@ +--- +id: introduce +title: Apache HertzBeat™ +sidebar_label: Introduce +slug: / +--- + +**Home: [hertzbeat.apache.org](https://hertzbeat.apache.org)** + +## 🎡 Introduction + +[Apache HertzBeat™](https://github.com/apache/hertzbeat) is an AI-powered next-generation open source real-time observability system. Unified metrics and logs collection, centralized alerting distribution, intelligent management and analysis. No Agent required, high performance cluster, provides powerful custom monitoring and status page building capabilities. + +### Features + +- Integrates **collection + analysis + alerting + notification*- into one platform, with new AI-powered interactions and features under HertzBeat AI, and built-in MCP Server capabilities. +- Unified metrics platform, agentless, Prometheus-compatible, supports application services, programs, databases, caches, operating systems, big data, middleware, web servers, cloud-native, networks, custom monitoring and more. +- Unified logging platform, seamlessly integrates multiple log sources through OTLP protocol for reporting. +- Unified alerting platform, integrates internal alerts with various external alert sources, unified alert processing and analysis, flexible real-time and periodic threshold rules, grouping convergence, silence, suppression, etc. +- Unified message distribution, alerts processed by the alerting platform are distributed via `Email` `Discord` `Slack` `Telegram` `DingTalk` `WeChat` `FeiShu` `SMS` `Webhook` `ServerChan` and other methods. +- Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` configurable, allowing you to collect any metrics by simply configuring the template `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat. +- High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration. +- Provides powerful status page building capabilities, easily communicate the real-time status of your service to users. + +> HertzBeat's unified platform, AI intelligence, powerful customization, multi-type support, high performance, and easy expansion, aims to help users quickly and conveniently achieve observability requirements. + +--- + +### Powerful Monitoring Template + +> Before we discuss the customizable monitoring capabilities of HertzBeat, which we mentioned at the beginning, let's introduce the different monitoring templates of HertzBeat. And it is because of this monitoring template design that the advanced features come later. + +HertzBeat itself did not create a data collection protocol for the monitoring client to adapt to. Instead, HertzBeat makes full use of the existing ecosystem, `SNMP protocol` to collect information from network switches and routers, `JMX specification` to collect information from Java applications, `JDBC specification` to collect information from datasets, `SSH` to directly connect to scripts to get the display information, `HTTP+ (JsonPath | prometheus, etc.)` to parse the information from API interfaces, `IPMI protocol` to collect server information, and so on. +HertzBeat uses these existing standard protocols or specifications, makes them abstractly configurable, and finally makes them all available in the form of YML format monitoring templates that can be written to create templates that use these protocols to collect any desired metrics data. +![HertzBeat](/img/blog/multi-protocol.png) + +Do you believe that users can just write a monitoring template on the UI page, click save and immediately adapt a new monitoring type like `K8s` or `Docker`? + +![HertzBeat](/img/home/9.png) + +### Built-in Monitoring Types + +**There are a lot of built-in monitoring templates for users to add directly on the page, one monitoring type corresponds to one YML monitoring template**. + +- [Website](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml), + [Udp Port](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-udp_port.yml), [Dns](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dns.yml), + [Pop3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-pop3.yml), [Ntp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ntp.yml), + [Api Code](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api_code.yml), [Smtp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-smtp.yml), + [Nginx](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nginx.yml) +- [Mysql](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml), + [Doris BE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_be.yml), [Doris FE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_fe.yml), + [Memcached](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-memcached.yml), [NebulaGraph](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-nebula_graph.yml) +- [Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml), + [Spring Gateway](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spring_gateway.yml), [EMQX MQTT](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-emqx.yml), + [AirFlow](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-airflow.yml), [Hive](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hive.yml), + [Spark](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spark.yml), [Hadoop](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hadoop.yml) +- [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml) +- And More Your Custom Template. +- Notified Support `Discord` `Slack` `Telegram` `Email` `Dingtalk` `WeChat` `FeiShu` `Webhook` `SMS` `ServerChan`. + +### Customization + +> From the previous introduction of **Monitoring Templates**, it is clear that `HertzBeat` has powerful customization features. +> Each monitor type is considered as a monitor template, no matter it is built-in or user-defined. You can easily add, modify and delete indicators by modifying the monitoring template. +> The templates contain a series of functions such as protocol configuration, environment variables, metrics conversion, metrics calculation, units conversion, metrics collection, etc., which help users to collect the metrics they want. + +![HertzBeat](/img/docs/custom-arch.png) + +### No Agent Required + +> For users who have used various systems, the most troublesome thing is the installation, deployment, debugging and upgrading of various `agents`. +> You need to install one `agent` per host, and several corresponding `agents` to monitor different application middleware, and the number of monitoring can easily reach thousands, so writing a batch script may ease the burden. +> The problem of whether the version of `agent` is compatible with the main application, debugging the communication between `agent` and the main application, upgrading the `agent` synchronization and so on and so forth, are all big headaches. + +The principle of `HertzBeat` is to use different protocols to connect directly to the end system, and use the `PULL` form to pull the collected data, without the need for the user to deploy and install `Agent` | `Exporter` on the host of the end, etc. For example, monitoring the `linux operating system`. + +- For example, if you want to monitor `linux OS`, you can just input the IP port account password or key on `HertzBeat` side. +- For example, to monitor `linux OS`, just enter your ip/port account password or key in `HertzBeat`. + +**Password and other sensitive information is encrypted on all links**. + +### High Performance Clustering + +> When the number of monitors rises exponentially, the collection performance drops or the environment is unstable and prone to single point of failure of the collectors, then our collector clusters come into play. + +- HertzBeat supports the deployment of collector clusters and the horizontal expansion of multiple collector clusters to exponentially increase the number of monitorable tasks and collection performance. +- Monitoring tasks are self-scheduled in the collector cluster, single collector hangs without sensing the failure to migrate the collection tasks, and the newly added collector nodes are automatically scheduled to share the collection pressure. +- It is very easy to switch between stand-alone mode and cluster mode without additional component deployment. + +![HertzBeat](/img/docs/cluster-arch.png) + +### Cloud Edge Collaboration + +> Two locations, three centers, multi-cloud environments, multi-isolated networks, you may have heard of these scenarios. When there is a need for a unified monitoring system to monitor the IT resources of different isolated networks, this is where our Cloud Edge Collaboration comes in. + +In an isolated network where multiple networks are not connected, we need to deploy a monitoring system in each network in the previous solution, which leads to data non-interoperability and inconvenient management, deployment and maintenance. +`HertzBeat` provides the ability of cloud edge collaboration, can be deployed in multiple isolated networks edge collector, collector in the isolated network within the monitoring task collection, collection of data reported by the main service unified scheduling management display. + +![HertzBeat](/img/docs/cluster-arch.png) + +### Easy to Use + +- Set **Monitoring+Alarm+Notification*- All in one, no need to deploy multiple component services separately. +- Full UI interface operation, no matter adding new monitor, modifying monitor template, or alarm threshold notification, all can be done in WEB interface, no need to modify files or scripts or reboot. +- No Agent is needed, we only need to fill in the required IP, port, account, password and other parameters in the WEB interface. +- Customization friendly, only need a monitoring template YML, automatically generate monitoring management page, data chart page, threshold configuration for corresponding monitoring types. +- Threshold alarm notification friendly, based on the expression threshold configuration, a variety of alarm notification channels, support alarm silence, time label alarm level filtering and so on. + +### Completely Open Source + +- An open source collaboration product using the `Apache2` protocol, maintained by a free and open source community. +- No monitoring number `License`, monitoring type and other pseudo-open source restrictions . +- Built on `Java+SpringBoot+TypeScript+Angular` mainstream technology stack , convenient secondary development . +- Dev based on HertzBeat need retain copyright. + +**HertzBeat has been included in the [CNCF Observability And Analysis - Observability Landscape](https://landscape.cncf.io/?view-mode=card&classify=category&sort-by=name&sort-direction=asc#observability-and-analysis--observability)** + +![cncf](/img/home/cncf-landscape-left-logo.svg) + +--- + +**HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help users quickly build their own monitoring system.** + +--- + +## 🥐 Experience Now + +Just run a single command in a Docker environment: `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` +Browser access `http://localhost:1157` default account password `admin/hertzbeat` + +### Landing Page + +- HertzBeat's user management is unified by the configuration file `sureness.yml`, which allows users to add, delete, and modify user information, user role permissions, and so on. Default password admin/hertzbeat + +![HertzBeat](/img/home/0.png) + +### Overview Page + +- The global overview page shows the distribution of current monitoring categories, users can visualize the current monitoring types and quantities and click to jump to the corresponding monitoring types for maintenance and management. +- Show the status of currently registered collector clusters, including collector on-line status, monitoring tasks, startup time, IP address, name and so on. +- Show the list of recent alarm messages, alarm level distribution etc. + +![HertzBeat](/img/home/1.png) + +### Monitoring Center + +- The monitoring portal supports the management of monitoring of application services, database, operating system, middleware, network, customization, etc. It displays the currently added monitors in the form of a list. +- It displays the currently added monitors in the form of a list and supports adding, modifying, deleting, canceling, importing, exporting and batch management of monitors. +- Support tag grouping, query filtering, view monitoring details portal. + +Built-in support for monitoring types include: + +- [Website](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml), [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml), + [Http Api](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml), [Ping Connect](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml), + [Jvm](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml), [SiteMap](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml), + [Ssl Certificate](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml), [SpringBoot2](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml), + [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml), [SpringBoot3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml), + [Udp Port](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-udp_port.yml), [Dns](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dns.yml), + [Pop3](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-pop3.yml), [Ntp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ntp.yml), + [Api Code](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api_code.yml), [Smtp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-smtp.yml), + [Nginx](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nginx.yml) +- [Mysql](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml), [PostgreSQL](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml), + [MariaDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml), [Redis](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml), + [ElasticSearch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml), [SqlServer](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml), + [Oracle](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml), [MongoDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml), + [DM](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml), [OpenGauss](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml), + [ClickHouse](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml), [IoTDB](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml), + [Redis Cluster](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml), [Redis Sentinel](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml), + [Doris BE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_be.yml), [Doris FE](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-doris_fe.yml), + [Memcached](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-memcached.yml), [NebulaGraph](https://github.com/apache/hertzbeat/blob/master/hertzbeat-manager/src/main/resources/define/app-nebula_graph.yml) +- [Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml), [Ubuntu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml), + [CentOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml), [Windows](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml), + [EulerOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml), [Fedora CoreOS](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml), + [OpenSUSE](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml), [Rocky Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml), + [Red Hat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml), [FreeBSD](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml), + [AlmaLinux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml), [Debian Linux](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml) +- [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml), [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml), + [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml), [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml), + [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml), [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml), + [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml), [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml), + [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml), [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml), + [Spring Gateway](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spring_gateway.yml), [EMQX MQTT](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-emqx.yml), + [AirFlow](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-airflow.yml), [Hive](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hive.yml), + [Spark](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-spark.yml), [Hadoop](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hadoop.yml) +- [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml), [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml) +- [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml), [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml), + [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml), [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml), + [H3cSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml) + +![HertzBeat](/img/home/2.png) + +### New Monitor + +- You can add or modify monitoring instances of a specific monitoring type, configure the IP, port and other parameters of the monitoring on the other end, set the collection period, collection task scheduling method, support detecting availability in advance, etc. The monitoring instances on the page are defined by the corresponding monitoring templates. +- The monitoring parameters configured on the page are defined by the monitoring template of the corresponding monitoring type, and users can modify the configuration parameters on the page by modifying the monitoring template. +- Support associated tags to manage monitoring grouping, alarm matching, and so on. + +![HertzBeat](/img/home/10.png) + +### Monitor Details + +- The monitoring data detail page shows the basic parameter information of the current monitoring, and the monitoring indicator data information. +- Monitor Real-time Data Report displays the real-time values of all the currently monitored indicators in the form of a list of small cards, and users can configure alarm threshold rules based on the real-time values for reference. +- Monitor Historical Data Report displays the historical values of the currently monitored metrics in the form of trend charts, supports querying hourly, daily and monthly historical data, and supports configuring the page refresh time. +- ⚠️ Note that the monitoring history charts need to be configured with an external timing database in order to get the full functionality. + +![HertzBeat](/img/home/3.png) + +![HertzBeat](/img/home/4.png) + +### Alarm Center + +- The management display page of triggered alarm messages enables users to visualize the current alarm situation. +- Support alarm processing, alarm marking unprocessed, alarm deletion, clearing and other batch operations. + +![HertzBeat](/img/home/7.png) + +### Alarm Threshold + +- Alarm Threshold are the core function of `HertzBeat`, users can configure the trigger conditions of the alarm through the threshold rules. +- Support real-time threshold and scheduled threshold, real-time threshold can directly trigger the alarm when monitoring data is collected, scheduled threshold supports PromQL and other expressions to calculate the trigger alarm within a specified time period. +- Support visual page configuration or more flexible expression rule configuration, support configuring trigger times, alarm levels, notification templates, associated specified monitoring and so on. + +![HertzBeat](/img/home/6.png) + +![HertzBeat](/img/docs/start/ssl_5.png) + +### Alarm Integration + +- Integration with third-party monitoring systems such as `Prometheus`, `WebHook`, `Skywalking`, `AlertManager`, etc. to receive alarm messages from these systems and perform alarm processing. + +![HertzBeat](/img/home/11.png) + +### Alarm Grouping + +- Group convergence supports merging alarms for specified group labels by grouping. It deduplicates and converges the same repeated alarms in a time period. +- When the threshold rule triggers an alarm or an external alarm is reported, it will enter the grouping convergence for alarm grouping and alarm deduplication to avoid alarm storms caused by a large number of alarm messages. + +![HertzBeat](/img/home/12.png) + +### Alarm Inhibition + +- Alarm suppression is used to configure the suppression relationship between alarms. For example, high-level alarms suppress low-level alarms under the same instance. +- When an alarm occurs, it can suppress the occurrence of other alarms. For example, when a server crashes, it can suppress all alarms on that server. + +![HertzBeat](/img/home/13.png) + +### Alarm Silence + +- When the alarm is triggered by the threshold rule, it will enter into the alarm silence, the alarm silence will be based on the rules of a specific one-time time period or periodic time period of the alarm message blocking silence, this time period does not send alarm messages. +- This application scenario, such as users in the system maintenance, do not need to send known alarms. Users will only receive alarm messages on weekdays, and users need to avoid disturbances at night. +- Alarm silence rules support one-time time period or periodic time period, support label matching and alarm level matching. + +![HertzBeat](/img/home/15.png) + +### Message Notification + +- Message notification is a function to notify alarm messages to specified recipients through different media channels, so that the alarm messages can reach them in time. +- It includes recipient information management and notification policy management. Recipient management maintains the information of recipients and their notification methods, while notification policy management maintains the policy rules of which recipients will be notified of the alert messages. +- Notification methods support `Email` `Discord` `Slack` `Telegram` `Pinning` `WeChat` `Flybook` `SMS` `Webhook` and so on. +- The notification policy supports tag matching and alert level matching, which makes it convenient to assign alerts with different tags and alert levels to different receivers and handlers. +- Support notification templates, users can customize the content format of the templates to meet their own personalized notification display needs. + +![HertzBeat](/img/home/16.png) + +![HertzBeat](/img/home/17.png) + +![HertzBeat](/img/home/8.png) + +![HertzBeat](/img/home/14.png) + +### Monitoring Template + +- HertzBeat makes `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` and other protocols configurable so that you can customize the metrics you want to collect using these protocols by simply configuring the monitoring template `YML` in your browser. Would you believe that you can instantly adapt a new monitoring type such as `K8s` or `Docker` just by configuring it? +- All our built-in monitoring types (mysql, website, jvm, k8s) are also mapped to corresponding monitoring templates, so you can add and modify monitoring templates to customize your monitoring functions. + +![HertzBeat](/img/home/9.png) + +### Collector Cluster + +- Users can configure collector clusters to achieve distributed collection of large-scale monitoring tasks. +- The collector cluster supports multi-node deployment, automatic load balancing, automatic failover, etc. +- Supports unified management of multiple isolated networks, cloud-edge collaboration. + +![HertzBeat](/img/home/18.png) + +### Status Page + +- Based on HertzBeat, quickly build an external status page for your own product and easily convey the real-time status of your product service to users. For example, the service status page provided by Github [https://www.githubstatus.com](https://www.githubstatus.com). +- Support synchronization between the status of the status page component and the monitoring status, as well as the fault event maintenance management mechanism, etc. Improve your transparency, professionalism, and user trust, and reduce communication costs. + +![HertzBeat](/img/home/19.png) + +![HertzBeat](/img/home/status.png) + +--- + +**More functions are welcome to be explored. Have Fun!** + +--- + +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**Home: [https://hertzbeat.apache.org/](https://hertzbeat.apache.org/)** diff --git a/home/versioned_docs/version-1.7.x/others/design.md b/home/versioned_docs/version-1.7.x/others/design.md new file mode 100644 index 00000000000..da5ec8fffee --- /dev/null +++ b/home/versioned_docs/version-1.7.x/others/design.md @@ -0,0 +1,9 @@ +--- +id: design +title: 设计文档 +sidebar_label: 设计文档 +--- + +### HertzBeat Arch + +![architecture](/img/docs/hertzbeat-arch.svg) diff --git a/home/versioned_docs/version-1.7.x/others/resource.md b/home/versioned_docs/version-1.7.x/others/resource.md new file mode 100644 index 00000000000..83188bd1c8e --- /dev/null +++ b/home/versioned_docs/version-1.7.x/others/resource.md @@ -0,0 +1,19 @@ +--- +id: resource +title: Related resources +sidebar_label: Related resources +--- + +## Icon Resources + +### HertzBeat Logo + +![logo](/img/hertzbeat-logo.svg) + +Download: [SVG](/img/hertzbeat-logo.svg) [PNG](/img/hertzbeat-logo.png) + +### HertzBeat Brand Logo + +![logo](/img/hertzbeat-brand.svg) + +Download: [SVG](/img/hertzbeat-brand.svg) [PNG](/img/hertzbeat-brand.png) diff --git a/home/versioned_docs/version-1.7.x/start/account-modify.md b/home/versioned_docs/version-1.7.x/start/account-modify.md new file mode 100644 index 00000000000..ea72ca06a1f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/account-modify.md @@ -0,0 +1,158 @@ +--- +id: account-modify +title: Modify Account Username Password And Secret +sidebar_label: Update Account Secret +--- + +## Update Account + +Apache HertzBeat™ default built-in three user accounts, respectively admin/hertzbeat tom/hertzbeat guest/hertzbeat +If you need add, delete or modify account or password, configure `sureness.yml`. Ignore this step without this demand. +Modify the following **part parameters** in sureness.yml:**[Note⚠️Other default sureness configuration parameters should be retained]** + +```yaml + +resourceRole: + - /api/account/auth/refresh===post===[admin,user,guest] + - /api/apps/**===get===[admin,user,guest] + - /api/monitor/**===get===[admin,user,guest] + - /api/monitor/**===post===[admin,user] + - /api/monitor/**===put===[admin,user] + - /api/monitor/**===delete==[admin] + - /api/monitors/**===get===[admin,user,guest] + - /api/monitors/**===post===[admin,user] + - /api/monitors/**===put===[admin,user] + - /api/monitors/**===delete===[admin] + - /api/alert/**===get===[admin,user,guest] + - /api/alert/**===post===[admin,user] + - /api/alert/**===put===[admin,user] + - /api/alert/**===delete===[admin] + - /api/alerts/**===get===[admin,user,guest] + - /api/alerts/**===post===[admin,user] + - /api/alerts/**===put===[admin,user] + - /api/alerts/**===delete===[admin] + - /api/notice/**===get===[admin,user,guest] + - /api/notice/**===post===[admin,user] + - /api/notice/**===put===[admin,user] + - /api/notice/**===delete===[admin] + - /api/tag/**===get===[admin,user,guest] + - /api/tag/**===post===[admin,user] + - /api/tag/**===put===[admin,user] + - /api/tag/**===delete===[admin] + - /api/summary/**===get===[admin,user,guest] + - /api/summary/**===post===[admin,user] + - /api/summary/**===put===[admin,user] + - /api/summary/**===delete===[admin] + - /api/collector/**===get===[admin,user,guest] + - /api/collector/**===post===[admin,user] + - /api/collector/**===put===[admin,user] + - /api/collector/**===delete===[admin] + - /api/status/page/**===get===[admin,user,guest] + - /api/status/page/**===post===[admin,user] + - /api/status/page/**===put===[admin,user] + - /api/status/page/**===delete===[admin] + +# config the resource restful api that need bypass auth protection +# rule: api===method +# eg: /api/v1/source3===get means /api/v1/source3===get can be access by anyone, no need auth. +excludedResource: + - /api/account/auth/**===* + - /api/i18n/**===get + - /api/apps/hierarchy===get + - /api/push/**===* + - /api/status/page/public/**===* + # web ui resource + - /===get + - /dashboard/**===get + - /monitors/**===get + - /alert/**===get + - /account/**===get + - /setting/**===get + - /passport/**===get + - /status/**===get + - /**/*.html===get + - /**/*.js===get + - /**/*.css===get + - /**/*.ico===get + - /**/*.ttf===get + - /**/*.png===get + - /**/*.gif===get + - /**/*.jpg===get + - /**/*.svg===get + - /**/*.json===get + - /**/*.woff===get + - /**/*.eot===get + # swagger ui resource + - /swagger-resources/**===get + - /v2/api-docs===get + - /v3/api-docs===get + # h2 database + - /h2-console/**===* + +# account info config +# eg: admin has role [admin,user], password is hertzbeat +# eg: tom has role [user], password is hertzbeat +# eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] +``` + +Modify the following **part parameters** in sureness.yml **[Note⚠️Other default sureness configuration parameters should be retained]**: + +```yaml + +# user account information +# Here is admin tom lili three accounts +# eg: admin has role [admin,user], password is hertzbeat +# eg: tom has role [user], password is hertzbeat +# eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] +``` + +## Update Security Secret + +> This secret is the key for account security encryption management and needs to be updated to your custom key string of the same length. + +Update the `application.yml` file in the `config` directory, modify the `sureness.jwt.secret` parameter to your custom key string of the same length. + +```yaml +sureness: + jwt: + secret: 'CyaFv0bwq2Eik0jdrKUtsA6bx4sDJeFV643R + LnfKefTjsIfJLBa2YkhEqEGtcHDTNe4CU6+9 + 8tVt4bisXQ13rbN0oxhUZR73M6EByXIO+SV5 + dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp' +``` + +**Restart HertzBeat, access [http://ip:1157/](http://ip:1157/) to explore** diff --git a/home/versioned_docs/version-1.7.x/start/baota-deploy.md b/home/versioned_docs/version-1.7.x/start/baota-deploy.md new file mode 100644 index 00000000000..9d7257d80f2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/baota-deploy.md @@ -0,0 +1,43 @@ +--- +id: baota-deploy +title: Use aaPanel Deploy HertzBeat +sidebar_label: Install via aaPanel +--- + +Apache HertzBeat™ supports one-click deployment in the `Docker` application store of the aaPanel. + +## Prerequisites + +Install aaPanel, go to the [aaPanel](https://www.aapanel.com/new/download.html#install), switch the script and install. + +## Install + +1. Log in, click `Docker` menu and install the `Docker` `Docker Compose` according the prompts. + + > Install the Docker service, skip if it already exists. + + ![HertzBeat](/img/docs/start/install-to-aapanel-1.png) + +2. Find `HertzBeat` in `One-Click Install` and click `Install` + + ![HertzBeat](/img/docs/start/install-to-aapanel-2.png) + +3. Config the domain, name and others, click `OK` + + ![HertzBeat](/img/docs/start/install-to-aapanel-3.png) + - Name: App name, default the `HertzBeat-random` + - Version:Default `latest` + - Domain:Config if you need domain access, please configure the domain name here and resolve the domain name to the server + - Allow External Access:If you need to access directly through `IP+Port`, please check it. If you have already set the domain name, please do not check here + - Port:Default `1157` + +4. After submission, the panel will automatically initialize the application, which takes about `1-3` minutes. It can be accessed after the initialization is completed. + +## Access HertzBeat + +- If you have set a domain name, please enter the domain name directly in the browser address bar to access, such as `http://demo.hertzbeat.apache.org`, you can access the `HertzBeat` console. +- If you choose to access via `IP+Port`, please enter the domain name in the browser address bar to access `http://\:1157`, you can access the `HertzBeat` console. + +![HertzBeat](/img/home/0.png) + +> Default account username: `admin` password: `hertzbeat` diff --git a/home/versioned_docs/version-1.7.x/start/custom-config.md b/home/versioned_docs/version-1.7.x/start/custom-config.md new file mode 100644 index 00000000000..59df329d6aa --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/custom-config.md @@ -0,0 +1,42 @@ +--- +id: custom-config +title: Advanced Params Config +sidebar_label: Advanced Params Config +--- + +Here it describes how to configure custom parameters for alerts, etc. + +**Configuration file `application.yml` of `hertzbeat`** + +Configuring the HertzBeat configuration file: + +- Modify the configuration file located at `hertzbeat/config/application.yml` +- **Docker Deployment:** ⚠️ When using a Docker container, the `application.yml` file must be mounted to the host machine +- **Installation Package Deployment:** Extract the package and modify the configuration file located at `hertzbeat/config/application.yml` + +## 1. Configuring Custom Alert Parameters + +```yaml +alerter: + # Custom console URL + console-url: https://console.tancloud.io +``` + +## 2. Using an External Redis Instead of In-Memory Storage for Real-Time Metric Data + +> By default, real-time metric data is stored in memory. You can configure Redis as a replacement using the settings below. + +⚠️ Note: Set `memory.enabled: false, redis.enabled: true` + +```yaml +warehouse: + store: + memory: + enabled: false + init-size: 1024 + redis: + enabled: true + host: 127.0.0.1 + port: 6379 + password: 123456 +``` diff --git a/home/versioned_docs/version-1.7.x/start/docker-compose-deploy.md b/home/versioned_docs/version-1.7.x/start/docker-compose-deploy.md new file mode 100644 index 00000000000..34a85ea5c07 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/docker-compose-deploy.md @@ -0,0 +1,67 @@ +--- +id: docker-compose-deploy +title: Install HertzBeat via Docker Compose +sidebar_label: Install via Docker Compose +--- + +:::tip +Suggest to use Docker Compose to deploy HertzBeat and its dependent services. +::: + +:::note +This document assumes that you already have Docker and Docker Compose installed in your environment. If not, please refer to the [Docker official documentation](https://docs.docker.com/compose/install/). +Run the `docker compose version` command to check if you have a Docker Compose environment. +::: + +1. Download the startup script package + + Download the installation script package `apache-hertzbeat-xxx-docker-compose.tar.gz` from the [download](/docs/download) + +2. Choose to use the HertzBeat + PostgreSQL + VictoriaMetrics solution + + :::tip + + - `apache-hertzbeat-${version}-docker-compose.tar.gz` contains multiple deployment solutions after decompression. Here we recommend choosing the `hertzbeat-postgresql-victoria-metrics` solution. + - Other deployment methods, please read the README.md file of each deployment solution in detail. The MySQL solution requires you to prepare the MySQL driver package yourself. + + ::: + + - Unzip the script package + + ```shell + tar zxvf apache-hertzbeat-${version}-docker-compose.tar.gz + ``` + + - Enter the decompression directory and select `HertzBeat + PostgreSQL + VictoriaMetrics` for one-click deployment + + ```shell + cd apache-hertzbeat-${version}-docker-compose + cd hertzbeat-postgresql-victoria-metrics + ``` + + - One-click start + + > Run script in `hertzbeat-postgresql-victoria-metrics` directory + + ```shell + docker-compose up -d + ``` + + - View service status + + > View the running status of each container, up is the normal running status + + ```shell + docker-compose ps + ``` + +3. Start exploring HertzBeat + Access [http://ip:1157/](http://ip:1157/) in the browser to start exploring and using it. The default account password is admin/hertzbeat. + +**HAVE FUN** + +---- + +### FAQ + +**The most common problem is network problems, please check in advance** diff --git a/home/versioned_docs/version-1.7.x/start/docker-deploy.md b/home/versioned_docs/version-1.7.x/start/docker-deploy.md new file mode 100644 index 00000000000..69c2310c023 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/docker-deploy.md @@ -0,0 +1,157 @@ +--- +id: docker-deploy +title: Install HertzBeat via Docker +sidebar_label: Install via Docker +--- + +:::tip +Using Docker to start HertzBeat with the minimum available environment, no external service dependencies, easy to experience quickly. +But it is not recommended to use in production environment, it is recommended to use Docker Compose deployment, installation package deployment, Kubernetes deployment in production environment. +::: + +:::note +It is necessary to have Docker environment in your environment. If not installed, please refer to [Docker official document](https://docs.docker.com/get-docker/) +::: + +### Deploy HertzBeat Server + +1. Execute the following command + + ```shell + $ docker run -d -p 1157:1157 -p 1158:1158 \ + -v $(pwd)/data:/opt/hertzbeat/data \ + -v $(pwd)/logs:/opt/hertzbeat/logs \ + -v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml \ + -v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml \ + --restart=always \ + --name hertzbeat apache/hertzbeat + ``` + + > Command parameter explanation + + - `docker run -d` : Run a container in the background via Docker + - `-p 1157:1157 -p 1158:1158` : Mapping container ports to the host, 1157 is web-ui port, 1158 is cluster port. + - `-v $(pwd)/data:/opt/hertzbeat/data` : (optional, data persistence) Important, Mount the H2 database file to the local host, to ensure that the data is not lost due creating or deleting container. + - `-v $(pwd)/logs:/opt/hertzbeat/logs` : (optional) Mount the log file to the local host to facilitate viewing. + - `-v $(pwd)/application.yml:/opt/hertzbeat/config/application.yml` : (optional) Mount the configuration file to the container (please ensure that the file exists locally). [Download](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + - `-v $(pwd)/sureness.yml:/opt/hertzbeat/config/sureness.yml` : (optional) Mount the account configuration file to the container (please ensure that the file exists locally). [Download](https://github.com/apache/hertzbeat/raw/master/script/sureness.yml) + - `-v $(pwd)/ext-lib:/opt/hertzbeat/ext-lib` : (optional) Mount external third-party JAR package [mysql-jdbc](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) [oracle-jdbc](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) [oracle-i18n](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar) + - `--name hertzbeat` : (optional) Naming container name hertzbeat + - `--restart=always` : (optional) Configure the container to restart automatically. + - `apache/hertzbeat` : Use the [official application mirror](https://hub.docker.com/r/apache/hertzbeat) to start the container, if the network times out, use `quay.io/tancloud/hertzbeat` instead. + - `--network host` : (optional) Use the host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + + :::tip + + - Marked as optional parameters, non-mandatory items, if not needed, delete them. + - This maps the 1157,1158 ports of the container to the 1157,1158 ports of the host. If the port on the host is already occupied, you need to modify the host mapping port. + - When mounting files, the first parameter is your custom local file address, and the second parameter is the container file address. Make sure you have this file locally when mounting. + - You can execute `docker update --restart=always hertzbeat` to configure the container to restart automatically. + - If you want to use the host network mode to start Docker, you can use `docker run -d --network host .....` + + ::: + +2. Start to explore HertzBeat + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +### Deploy HertzBeat Collector Cluster(Optional) + +:::note +HertzBeat Collector is a lightweight data collector used to collect and send data to HertzBeat Server. +By deploying multiple HertzBeat Collectors, high availability, load balancing, and cloud-edge collaboration of data can be achieved. +::: + +![HertzBeat](/img/docs/cluster-arch.png) + +1. Execute the following command + + ```shell + $ docker run -d \ + -e IDENTITY=custom-collector-name \ + -e MODE=public \ + -e MANAGER_HOST=127.0.0.1 \ + -e MANAGER_PORT=1158 \ + --name hertzbeat-collector apache/hertzbeat-collector + ``` + + > Command parameter explanation + + - `docker run -d` : Run a container in the background via Docker + - `-e IDENTITY=custom-collector-name` : (optional) Set the collector unique identity name. Attention the clusters collector name must unique. + - `-e MODE=public` : set the running mode(public or private), public cluster or private + - `-e MANAGER_HOST=127.0.0.1` : Important, Set the main hertzbeat server ip host, must use the server host instead of 127.0.0.1. + - `-e MANAGER_PORT=1158` : (optional) Set the main hertzbeat server port, default 1158. + - `-v $(pwd)/logs:/opt/hertzbeat-collector/logs` : (optional) Mount the log file to the local host to facilitate viewing. + - `--name hertzbeat-collector` : Naming container name hertzbeat-collector + - `apache/hertzbeat-collector` : Use the [official application mirror](https://hub.docker.com/r/apache/hertzbeat-collector) to start the container, if the network times out, use `quay.io/tancloud/hertzbeat-collector` instead. + - `--network host` : (optional) Use the host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + + :::tip + + - Marked as optional parameters, non-mandatory items, if not needed, delete them. + - The `127.0.0.1` in `MANAGER_HOST` needs to be replaced with the external IP address of the HertzBeat Server. + - When mounting files, the first parameter is your custom local file address, and the second parameter is the container file address. Make sure you have this file locally when mounting. + - You can execute `docker update --restart=always hertzbeat-collector` to configure the container to restart automatically. + - If you want to use the host network mode to start Docker, you can use `docker run -d --network host .....` + + ::: + +2. Access `http://localhost:1157` and you will see the registered new collector in dashboard. + +**HAVE FUN** + +---- + +### FAQ + +**The most common problem is network problems, please check in advance** + +1. MYSQL, TDENGINE, IoTDB and HertzBeat are deployed on the same host by Docker,HertzBeat use localhost or 127.0.0.1 connect to the database but fail + The problems lies in Docker container failed to visit and connect localhost port. Because the docker default network mode is Bridge mode which can't access local machine through localhost. + + > Solution A:Configure application.yml. Change database connection address from localhost to external IP of the host machine. + > Solution B:Use the Host network mode to start Docker, namely making Docker container and hosting share network. `docker run -d --network host .....` + +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface + Please refer to the following points to troubleshoot issues: + + > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. + > 2:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. + > 3:`docker logs hertzbeat` Check whether the container log has errors. If you haven't solved the issue, report it to the communication group or community. + +3. Historical monitoring charts have been missing data for a long time + + > 1:Check whether you configure victoria-metrics or Tdengine or IoTDB. No configuration means no historical chart data. + > 2: Check whether IP account and password configuration is correct in HertzBeat's configuration file `application.yml`. + +4. If the history chart on the monitoring page is not displayed,popup [please configure time series database] + + > As shown in the popup window,the premise of history chart display is that you need install and configure hertzbeat's dependency service database. + > Installation and initialization this database, please refer to [Using victoria-metrics to store metrics data](victoria-metrics-init) + +5. The time series database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure dependent time series database] + + > Please check if the configuration parameters are correct + > Is time-series database enable set to true + > Note⚠️If both hertzbeat and time-series database are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed + > You can check the startup logs according to the logs directory + +6. What is the purpose of application.yml + + > This file is the configuration file of HertzBeat, used to configure various parameters of HertzBeat, such as database connection information, time series database configuration, etc. + > Download `application.yml` file to the host directory, for example: $(pwd)/application.yml + > Download source [github/script/application.yml](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + > You can modify the configuration yml file according to your needs. + > + > - If you need to use email to send alarms, you need to replace the email server parameters `spring.mail` in `application.yml` + > - **Recommended** If you need to use an external Mysql database to replace the built-in H2 database, you need to replace the `spring.datasource` parameter in `application.yml` For specific steps, see [Using Mysql to replace H2 database](mysql-change) + > - **Recommended** If you need to use the time series database victoria-metrics to store metric data, you need to replace the `warehouse.store.victoria-metrics` parameter in `application.yml` for specific steps, see [Using victoria-metrics to store metrics data](victoria-metrics-init) + +7. What is the purpose of sureness.yml + + > This file is the user configuration file of HertzBeat, used to configure user information of HertzBeat, such as account password, etc. + > HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` + > If you need update account or password, configure `sureness.yml`. Ignore this step without this demand. + > Download and config `sureness.yml` in the host directory,eg:`$(pwd)/sureness.yml` + > Download from [github/script/sureness.yml](https://github.com/apache/hertzbeat/raw/master/script/sureness.yml) + > For detail steps, please refer to [Configure Account Password](account-modify) diff --git a/home/versioned_docs/version-1.7.x/start/greptime-init.md b/home/versioned_docs/version-1.7.x/start/greptime-init.md new file mode 100644 index 00000000000..dc95c003b27 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/greptime-init.md @@ -0,0 +1,74 @@ +--- +id: greptime-init +title: Use Time Series Database Greptime to Store Metrics Data (Recommended) +sidebar_label: Metrics Store Greptime (Recommended) +--- + +Apache HertzBeat's historical data storage relies on the time series database, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +> It is recommended to use Greptime as metrics storage. + +[Greptime](https://github.com/GreptimeTeam/greptimedb) is an Open-source, cloud-native, unified observability database for metrics, logs and traces, supporting SQL/PromQL/Streaming. + +It's designed to work on infrastructure of the cloud era, and users benefit from its elasticity and commodity storage. + +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** + +### Install GreptimeDvia Docker + +1. Download and install Docker environment +Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). +After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install Greptime with Docker + + ```shell + $ docker run -d -p 127.0.0.1:4000-4003:4000-4003 \ + v "$(pwd)/greptimedb:/tmp/greptimedb" \ + --name greptime \ + greptime/greptimedb:latest standalone start \ + --http-addr 0.0.0.0:4000 \ + --rpc-addr 0.0.0.0:4001 \ + --mysql-addr 0.0.0.0:4002 \ + --postgres-addr 0.0.0.0:4003 + ``` + +`-v "$(pwd)/greptimedb:/tmp/greptimedb"` is local persistent mount of greptime data directory. `$(pwd)/greptimedb` should be replaced with the actual local directory, default is the `greptimedb` directory under the current directory. +use```$ docker ps``` to check if the database started successfully + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file [/script/application.yml](https://github.com/apache/hertzbeat/raw/master/script/application.yml) + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.greptime` data source parameters, URL account and password. + + ```yaml + warehouse: + store: + jpa: + enabled: false + greptime: + enabled: true + grpc-endpoints: localhost:4001 + http-endpoint: http://localhost:4000 + database: public + username: greptime + password: greptime + ``` + + The default database is `public`, if you specify another database name, you need to create it in `greptimeDB` in advance. + eg: Create a database named `hertzbeat` with a validity period of 90 days SQL: `CREATE DATABASE IF NOT EXISTS hertzbeat WITH(ttl='90d')` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases need to be configured? Can they both be used? + + > You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. diff --git a/home/versioned_docs/version-1.7.x/start/influxdb-init.md b/home/versioned_docs/version-1.7.x/start/influxdb-init.md new file mode 100644 index 00000000000..1216523e308 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/influxdb-init.md @@ -0,0 +1,74 @@ +--- +id: influxdb-init +title: Use Time Series Database InfluxDB to Store Metrics Data (Optional) +sidebar_label: Metrics Store InfluxDB +--- + +Apache HertzBeat's historical data storage relies on the time series database, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +> It is recommended to use VictoriaMetrics as metrics storage. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** +Note⚠️ Need InfluxDB 1.x Version. + +### 1. Use HuaweiCloud GaussDB For Influx + +> Use [HuaweiCloud GaussDB For Influx](https://www.huaweicloud.com/intl/en-us/product/gaussdb.html) +> +> Get the `GaussDB For Influx` service url, username and password config. + +⚠️Note `GaussDB For Influx` enable SSL default, the service url should use `https:` + +### 2. Install TDengine via Docker + +1. Download and install Docker environment +Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). +After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install InfluxDB with Docker + + ```shell + $ docker run -p 8086:8086 \ + -v /opt/influxdb:/var/lib/influxdb \ + influxdb:1.8 + ``` + + `-v /opt/influxdb:/var/lib/influxdb` is local persistent mount of InfluxDB data directory. `/opt/influxdb` should be replaced with the actual local directory. + use```$ docker ps``` to check if the database started successfully + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.influxdb` data source parameters, URL account and password. + + ```yaml + warehouse: + store: + # disable jpa + jpa: + enabled: false + # enable influxdb + influxdb: + enabled: true + server-url: http://localhost:8086 + username: root + password: root + expire-time: '30d' + replication: 1 + ``` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases InfluxDB, IoTDB and TDengine need to be configured? Can they both be used? + + > You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. diff --git a/home/versioned_docs/version-1.7.x/start/iotdb-init.md b/home/versioned_docs/version-1.7.x/start/iotdb-init.md new file mode 100644 index 00000000000..8100920570f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/iotdb-init.md @@ -0,0 +1,123 @@ +--- +id: iotdb-init +title: Use Time Series Database IoTDB to Store Metrics Data (Optional) +sidebar_label: Metrics Store IoTDB +--- + +Apache HertzBeat's historical data storage relies on the time series database, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +> It is recommended to use VictoriaMetrics as metrics storage. + +Apache IoTDB is a software system that integrates the collection, storage, management and analysis of time series data of the Internet of Things. We use it to store and analyze the historical data of monitoring metrics collected. Support V1.0.+ version. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** + +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** + +> If you already have an IoTDB environment, you can skip directly to the YML configuration step. + +### Install IoTDB via Docker + +> Refer to the official website [installation tutorial](https://iotdb.apache.org/UserGuide/V0.13.x/QuickStart/WayToGetIoTDB.html) + +1. Download and install Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). + After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install IoTDB via Docker + + ```shell + $ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \ + -v /opt/iotdb/data:/iotdb/data \ + --name iotdb \ + apache/iotdb:1.2.2-standalone + ``` + + `-v /opt/iotdb/data:/iotdb/data` is local persistent mount of IotDB data directory.`/iotdb/data` should be replaced with the actual local directory. + use```$ docker ps``` to check if the database started successfully + +3. Configure the database connection in hertzbeat `application.yml`configuration file + + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Config the `warehouse.store.jpa.enabled` `false`. Replace `warehouse.store.iot-db` data source parameters, HOST account and password. + + ```yml + warehouse: + store: + # disable JPA + jpa: + enabled: false + # enable iot-db + iot-db: + enabled: true + host: 127.0.0.1 + rpc-port: 6667 + username: root + password: root + query-timeout-in-ms: -1 + # default '7776000000'(90days,unit:ms,-1:no-expire) + expire-time: '7776000000' + ``` + + **IoTDB Cluster Configuration** + + If you are using IoTDB for clustering, please refer to the configuration below: + + ```yaml + warehouse: + store: + # Disable default JPA + jpa: + enabled: false + # Enable IoTDB + iot-db: + enabled: true + node-urls: ['127.0.0.1:6667','127.0.0.2:6667','127.0.0.3:6667'] + username: root + password: root + # if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0 + query-timeout-in-ms: -1 + # Data storage time: default '7776000000' (90 days, in milliseconds, -1 means never expire) + expire-time: '7776000000' + ``` + + Configuration parameters: + + | Parameter Name | Description | + |---------------------|-------------------------------------------------------------------------------------------| + | enabled | Whether to enable | + | host | IoTDB database address | + | rpc-port | IoTDB database port | + | node-urls | IoTDB cluster addresses | + | username | IoTDB database account | + | password | IoTDB database password | + | version | deprecated | + | query-timeout-in-ms | Query timeout | + | expire-time | Data storage time, default '7776000000' (90 days, in milliseconds, -1 means never expire) | + + > If both cluster configuration `node-urls` and standalone configuration are set simultaneously, the cluster `node-urls` configuration takes precedence. + +4. Restart HertzBeat + +### FAQ + +1. Do both the time series databases IoTDB and TDengine need to be configured? Can they both be used? + + > You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. + +2. The historical chart of the monitoring page is not displayed, and pops up [Unable to provide historical chart data, please configure to rely on the time series database] + + > As shown in the pop-up window, the premise of displaying the history chart is to install and configure the dependent services of hertzbeat - IotDB database or TDengine database + +3. The TDengine database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure the dependent time series database] + + > Please check if the configuration parameters are correct + > Is td-engine enable set to true + > Note⚠️If both hertzbeat and TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed + > You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-1.7.x/start/mysql-change.md b/home/versioned_docs/version-1.7.x/start/mysql-change.md new file mode 100644 index 00000000000..b817caca8a4 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/mysql-change.md @@ -0,0 +1,113 @@ +--- +id: mysql-change +title: Use MYSQL Replace H2 Database to Store Metadata(Optional) +sidebar_label: Meta Store MYSQL +--- + +MYSQL is a reliable relational database. In addition to default built-in H2 database, Apache HertzBeat™ allow you to use MYSQL to store structured relational data such as monitoring information, alarm information and configuration information. + +> If you already have a MySQL environment and the MySQL version meets the requirements, you can skip directly to the database creation step. + +### Supported MySQL Versions + +Please ensure you are using a supported MySQL version. HertzBeat only supports MySQL 5.7+ or 8 versions. You can check the MySQL version with the following command: + +```shell +$ mysql --version +mysql Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL) +``` + +### Install MYSQL via Docker + +1. Download and install the Docker environment + For Docker installation, please refer to the [Docker official documentation](https://docs.docker.com/get-docker/). + After the installation, please verify in the terminal that the Docker version can be printed normally. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install MYSQl with Docker + + ```shell + $ docker run -d --name mysql \ + -p 3306:3306 \ + -v /opt/data:/var/lib/mysql \ + -e MYSQL_ROOT_PASSWORD=123456 \ + --restart=always \ + mysql:5.7 + ``` + + `-v /opt/data:/var/lib/mysql` is local persistent mount of mysql data directory. `/opt/data` should be replaced with the actual local directory. + use ```$ docker ps``` to check if the database started successfully + +### Database creation + +1. Enter MYSQL or use the client to connect MYSQL service + `mysql -uroot -p123456` +2. Create database named hertzbeat + `create database hertzbeat default charset utf8mb4 collate utf8mb4_general_ci;` +3. Check if hertzbeat database has been successfully created + `show databases;` + +### Add MYSQL jdbc driver jar + +- Download the MYSQL jdbc driver jar package, such as mysql-connector-java-8.0.25.jar. [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) +- Copy the jar package to the `hertzbeat/ext-lib` directory. + +### Modify hertzbeat's configuration file application.yml and switch data source + +- Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `spring.database` data source parameters, URL account and password. + + For example: + +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE +``` + +Specific replacement parameters are as follows and you need to configure account according to the mysql environment: + +```yaml +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + url: jdbc:mysql://mysql:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false + hikari: + max-lifetime: 120000 + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: mysql + properties: + eclipselink: + logging: + level: SEVERE +``` + +- It is recommended to set the host field in the MySQL URL to the public IP address when using Hertzbeat in docker. + +> Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./mysql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. + +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-1.7.x/start/package-deploy.md b/home/versioned_docs/version-1.7.x/start/package-deploy.md new file mode 100644 index 00000000000..45f913886e1 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/package-deploy.md @@ -0,0 +1,137 @@ +--- +id: package-deploy +title: Install HertzBeat via Package +sidebar_label: Install via Package +--- + +:::tip +You can install and run Apache HertzBeat™ on Linux Windows Mac system, and CPU supports X86/ARM64. +Since version 1.6.0 uses `Java 17` and the installation package no longer provides a built-in JDK version, use the new Hertzbeat according to the following situations: + +- When the default environment variable on your server is `Java 17`, you do not need to take any action for this step. +- When the default environment variable on your server is not `Java 17`, such as `Java 8` or `Java 11`, and if there are no other applications on your server that require a lower version of Java, download the appropriate version from [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) according to your system, and search the engine for how to set a new environment variable pointing to the new `Java 17`. +- When the default environment variable on your server is not `Java 17`, such as `Java 8` or `Java 11`,and you don't want to change the environment variable because if there are other applications on your server that require a lower version of Java, download the appropriate version from [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) according to your system, and rename the extracted folder to `java`, then copy it to the Hertzbeat extraction directory. + +::: + +### Deploy HertzBeat Server + +1. Download installation package + + Download installation package `apache-hertzbeat-xxx-bin.tar.gz` corresponding to your system environment + - [Download Page](/docs/download) + +2. Configure HertzBeat's configuration file(optional) + + Unzip the installation package to the host eg: /opt/hertzbeat + + ```shell + tar zxvf apache-hertzbeat-xxx-bin.tar.gz + ``` + + :::tip + The configuration file is located in `config/application.yml`, you can modify the configuration file according to your needs to configure external dependent services, such as databases, time series databases, etc. + HertzBeat defaults to using internal services when started, but it is recommended to switch to external database services in production environments. + ::: + + It is recommended to use [PostgreSQL](postgresql-change) for metadata storage and [VictoriaMetrics](victoria-metrics-init) for metric data storage. Specific steps are as follows + + - [Switch built-in H2 database to PostgreSQL](postgresql-change) + - [Using VictoriaMetrics to store metric data](victoria-metrics-init) + +3. Configure the account file(optional) + + HertzBeat default built-in three user accounts, respectively `admin/hertzbeat tom/hertzbeat guest/hertzbeat` + If you need modify account or password, configure `config/sureness.yml`. + For detail steps, please refer to [Configure Account Password](account-modify) + +4. Start the service + + Execute the startup script in the installation directory `bin/`, or `startup.bat` in windows. + + ```shell + ./startup.sh + ``` + +5. Begin to explore HertzBeat + + Access [http://ip:1157/](http://ip:1157/) using browser. You can explore HertzBeat with default account `admin/hertzbeat` now! + +### Deploy HertzBeat Collector Cluster(Optional) + +:::note +HertzBeat Collector is a lightweight data collector used to collect and send data to HertzBeat Server. +Deploying multiple HertzBeat Collectors can achieve high availability, load balancing, and cloud-edge collaboration of data. +::: + +![HertzBeat](/img/docs/cluster-arch.png) + +1. Download installation package + + Download installation package `apache-hertzbeat-collector-xxx-bin.tar.gz` corresponding to your system environment + - [Download Page](/docs/download) + +2. Configure the collector configuration file + + Unzip the installation package to the host eg: /opt/hertzbeat-collector + + ```shell + tar zxvf apache-hertzbeat-collector-xxx-bin.tar.gz + ``` + + Configure the collector configuration yml file `config/application.yml`: unique `identity` name, running `mode` (public or private), hertzbeat `manager-host`, hertzbeat `manager-port` + + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY:} + mode: ${MODE:public} + manager-host: ${MANAGER_HOST:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + + > Parameters detailed explanation + + - `identity` : (optional) Set the unique identifier name of the collector. Note that the name of the collector must be unique when there are multiple collectors. + - `mode` : Configure the running mode (public or private), public cluster mode or private cloud-edge mode. + - `manager-host` : Important, configure the address of the connected HertzBeat Server, + - `manager-port` : (optional) Configure the port of the connected HertzBeat Server, default 1158. + +3. Start the service + + Run command `$ ./bin/startup.sh` or `bin/startup.bat` + +4. Begin to explore HertzBeat Collector + + Access `http://ip:1157` and you will see the registered new collector in dashboard + +**HAVE FUN** + +---- + +### FAQ + +1. you need to prepare the JAVA environment in advance + + Install JAVA runtime environment-refer to [official website](https://www.oracle.com/java/technologies/downloads/) + requirement:JDK17 ENV + download JAVA installation package: [mirror website](https://mirrors.huaweicloud.com/openjdk/) + After installation use command line to check whether you install it successfully. + + ```shell + $ java -version + java version "17.0.9" + Java(TM) SE Runtime Environment 17.0.9 (build 17.0.9+8-LTS-237) + Java HotSpot(TM) 64-Bit Server VM 17.0.9 (build 17.0.9+8-LTS-237, mixed mode) + + ``` + +2. According to the process deploy,visit [http://ip:1157/](http://ip:1157/) no interface + Please refer to the following points to troubleshoot issues: + + > 1:If you switch to dependency service MYSQL database,check whether the database is created and started successfully. + > 2:Check whether dependent services, IP account and password configuration is correct in HertzBeat's configuration file `hertzbeat/config/application.yml`. + > 3:Check whether the running log has errors in `hertzbeat/logs/` directory. If you haven't solved the issue, report it to the communication group or community. diff --git a/home/versioned_docs/version-1.7.x/start/postgresql-change.md b/home/versioned_docs/version-1.7.x/start/postgresql-change.md new file mode 100644 index 00000000000..4b25fbf3502 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/postgresql-change.md @@ -0,0 +1,101 @@ +--- +id: postgresql-change +title: Use PostgreSQL Replace H2 Database to Store Metadata(Recommended) +sidebar_label: Meta Store PostgreSQL (Recommended) +--- + +PostgreSQL is a RDBMS emphasizing extensibility and SQL compliance. In addition to default built-in H2 database, Apache HertzBeat™ allow you to use PostgreSQL to store structured relational data such as monitoring information, alarm information and configuration information. + +> If you have the PostgreSQL environment, can be directly to database creation step. + +### Install PostgreSQL via Docker + +1. Download and install the Docker environment + Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/)。 + After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install PostgreSQL with Docker + + ```shell + docker run -d --name postgresql -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgres:15 + ``` + + use```$ docker ps```to check if the database started successfully + +### Database creation + +1. Enter postgreSQL or use the client to connect postgreSQL service + + ```shell + su - postgres + psql + ``` + +2. Create database named hertzbeat + + ```sql + CREATE DATABASE hertzbeat; + ``` + +3. Check if hertzbeat database has been successfully created + + ```sql + SELECT * FROM pg_database where datname='hertzbeat'; + ``` + +### Modify hertzbeat's configuration file application.yml and switch data source + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `spring.database` data source parameters, URL account and password. + +```yaml +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE +``` + +Specific replacement parameters are as follows and you need to configure account, ip, port according to the postgresql environment: + +```yaml +spring: + datasource: + driver-class-name: org.postgresql.Driver + username: root + password: 123456 + url: jdbc:postgresql://postgresql:5432/hertzbeat + hikari: + max-lifetime: 120000 + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform + database: postgresql + properties: + eclipselink: + logging: + level: SEVERE +``` + +> Note: The above applies to the method of downloading and installing the package. For local data source switching, simply complete the [Database creation](./postgresql-change#database-creation) and modify the configuration in `hertzbeat-startup/src/main/resources/application.yml`. + +**Start HertzBeat visit [http://ip:1157/](http://ip:1157/) on the browser You can use HertzBeat monitoring alarm, default account and password are admin/hertzbeat** diff --git a/home/versioned_docs/version-1.7.x/start/questdb-init.md b/home/versioned_docs/version-1.7.x/start/questdb-init.md new file mode 100644 index 00000000000..3beb12bcced --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/questdb-init.md @@ -0,0 +1,137 @@ +--- + +id: questdb-init + +title: Installation and Initialization of Time-Series Database Service QuestDB (Optional) + +sidebar_label: Metric Data Storage - QuestDB + +--- + + + +The historical data storage of Apache HertzBeat™ relies on a time-series database. You can choose to install and initialize **one** of the supported databases, or skip the installation (⚠️ However, it is strongly recommended to configure one in the production environment). + +> We recommend using and providing long-term support for VictoriaMetrics as the storage solution. + +QuestDB is an open-source time-series database that stands out in the field of time-series data processing due to its high performance and low latency. We use it to store and analyze the collected historical monitoring metric data. + +**⚠️ Note: Configuring a time-series database is optional, but it is strongly recommended for production environments to ensure more comprehensive historical chart functions, high performance, and stability.** + +**⚠️ If no time-series database is configured, only the historical data of the last hour will be retained.** + +> If you already have an existing QuestDB environment, you can skip directly to the YML configuration step. + +### Install QuestDB + +1. Download the installation package + +​ Download the latest version for your operating system from the official GitHub repository: + +```shell +# For Linux/macOS (taking v7.3.9 as an example; replace with the latest version number) +wget https://github.com/questdb/questdb/releases/download/7.3.9/questdb-7.3.9-no-jre-bin.tar.gz + +# Extract the package +tar -zxvf questdb-7.3.9-no-jre-bin.tar.gz +mv questdb-7.3.9 /opt/questdb # Move to a common directory +``` + +​ For Windows users: + +​ Download the zip package and extract it to C:\questdb or a custom directory. + +2. Start QuestDB + +```shell +# For Linux/macOS: Navigate to the installation directory and start the service +cd /opt/questdb/bin +./questdb start + +# For Windows (Command Prompt): +cd C:\questdb\bin +questdb.exe start +``` + +3. Set up access password + +​ QuestDB enables authentication through a configuration file, which needs to be modified manually. + +​ Edit the configuration file: + +```shell +# For Linux/macOS +vi /opt/questdb/conf/server.conf + +# For Windows +notepad C:\questdb\conf\server.conf +``` + +​ Enable authentication and configure the password: + +```shell +# Enable authentication (disabled by default) +http.security.enabled=true +pg.security.enabled=true # PostgreSQL protocol authentication + +# Set admin account and password (customize as needed) +http.security.admin.username=admin +http.security.admin.password=YourStrongPassword123! + +# Optional: Restrict Web Console access to specific IPs (e.g., local access only) +http.bind.to=127.0.0.1:9000 +``` + +​ Restart QuestDB for the changes to take effect: + +```shell +# For Linux/macOS +./questdb stop +./questdb start + +# For Windows +questdb.exe stop +questdb.exe start +``` + +4. Configure QuestDB connection in HertzBeat's application.yml file + +​ Modify HertzBeat's configuration file + +​ Locate and edit the configuration file at hertzbeat/config/application.yml + +​ ⚠️ Note: For Docker container deployment, you need to mount the application.yml file to the host machine. For the installation package deployment, simply extract the package and modify the file at hertzbeat/config/application.yml. + +​ **Set the** **warehouse.store.jpa.enabled** **parameter to** **false****, configure the** **warehouse.store.questdb** **data source parameters (HOST, username, password, etc.), and set** **enabled** **to** **true** **to enable QuestDB.** + +```yaml +warehouse: + store: + # Disable the default JPA + jpa: + enabled: false + # Enable QuestDB + questdb: + enabled: true + url: localhost:9000 + username: admin + password: quest +``` + +Parameter Description: + +| Parameter Name | Description | +| -------------- | ------------------------------ | +| enabled | Whether to enable QuestDB | +| url | QuestDB server URL (host:port) | +| username | QuestDB database account | +| password | QuestDB database password | + +> **Note:** Due to QuestDB's architectural design, if you need to set an expiration time for data, you can configure it in QuestDB's configuration file server.conf: + +```shell +cairo.default.ttl=30d +``` + +5. Restart HertzBeat + diff --git a/home/versioned_docs/version-1.7.x/start/quickstart.md b/home/versioned_docs/version-1.7.x/start/quickstart.md new file mode 100644 index 00000000000..47d7cb94cef --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/quickstart.md @@ -0,0 +1,84 @@ +--- +id: quickstart +title: Quick Start +sidebar_label: Quick Start +--- + +### 🐕 Quick Start + +- If you wish to deploy Apache HertzBeat™ locally, please refer to the following Deployment Documentation for instructions. + +#### 🍞 Install HertzBeat + +> Apache HertzBeat™ supports installation through source code, docker or package, cpu support X86/ARM64. + +##### 1:Install quickly via docker + +1. Just one command to get started: + + ```docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat``` + +2. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` + +3. Deploy collector clusters(Optional) + + ```shell + docker run -d -e IDENTITY=custom-collector-name -e MANAGER_HOST=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector apache/hertzbeat-collector + ``` + + - `-e IDENTITY=custom-collector-name` : set the collector unique identity name. + - `-e MODE=public` : set the running mode(public or private), public cluster or private cloud-edge. + - `-e MANAGER_HOST=127.0.0.1` : set the main hertzbeat server ip. + - `-e MANAGER_PORT=1158` : set the main hertzbeat server port, default 1158. + +Detailed config refer to [Install HertzBeat via Docker](https://hertzbeat.apache.org/docs/start/docker-deploy) + +##### 2:Install via package + +1. Download the release package `hertzbeat-xx.tar.gz` [Download Page](https://hertzbeat.apache.org/docs/download) +2. Configure the HertzBeat configuration yml file `hertzbeat/config/application.yml` (optional) +3. Run command `$ ./bin/startup.sh` or `bin/startup.bat` +4. Access `http://localhost:1157` to start, default account: `admin/hertzbeat` +5. Deploy collector clusters(Optional) + - Download the release package `hertzbeat-collector-xx.tar.gz` to new machine [Download Page](https://hertzbeat.apache.org/docs/download) + - Configure the collector configuration yml file `hertzbeat-collector/config/application.yml`: unique `identity` name, running `mode` (public or private), hertzbeat `manager-host`, hertzbeat `manager-port` + + ```yaml + collector: + dispatch: + entrance: + netty: + enabled: true + identity: ${IDENTITY:} + mode: ${MODE:public} + manager-host: ${MANAGER_HOST:127.0.0.1} + manager-port: ${MANAGER_PORT:1158} + ``` + + - Run command `$ ./bin/startup.sh` or `bin/startup.bat` + - Access `http://localhost:1157` and you will see the registered new collector in dashboard + +Detailed config refer to [Install HertzBeat via Package](package-deploy) + +##### 3:Start via source code + +1. Local source code debugging needs to start the back-end project `manager` and the front-end project `web-app`. +2. Backend:need `maven3+`, `java17`, `lombok`, start the `hertzbeat-startup` service. +3. Web:need `nodejs npm angular-cli` environment, Run `ng serve --open` in `web-app` directory after backend startup. +4. Access `http://localhost:4200` to start, default account: `admin/hertzbeat` + +Detailed steps refer to [CONTRIBUTING](../community/contribution) + +##### 4:Install All(hertzbeat+postgresql+tsdb) via Docker-compose + +Install and deploy the postgresql/mysql database, victoria-metrics/iotdb/tdengine database and hertzbeat at one time through [docker-compose deployment script](https://github.com/apache/hertzbeat/tree/master/script/docker-compose). + +Detailed steps refer to [Install via Docker-Compose](https://github.com/apache/hertzbeat/tree/master/script/docker-compose) + +##### 5. Install All(hertzbeat+collector+postgresql+tsdb) via kubernetes helm charts + +Install HertzBeat cluster in a Kubernetes cluster by Helm chart. + +Detailed steps refer to [Artifact Hub](https://artifacthub.io/packages/helm/hertzbeat/hertzbeat) + +**HAVE FUN** diff --git a/home/versioned_docs/version-1.7.x/start/rainbond-deploy.md b/home/versioned_docs/version-1.7.x/start/rainbond-deploy.md new file mode 100644 index 00000000000..2183dd6b78f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/rainbond-deploy.md @@ -0,0 +1,50 @@ +--- +id: rainbond-deploy +title: Use Rainbond Deploy HertzBeat +sidebar_label: Install via Rainbond +--- + +If you are unfamiliar with Kubernetes, and want to install Apache HertzBeat™ in Kubernetes, you can use Rainbond to deploy. Rainbond is a cloud-native application management platform built on Kubernetes and simplifies the application deployment to Kubernetes. + +## Rainbond Cloud deployment + +If you want to deploy "HertzBeat" on "Rainbond Cloud" in one click, you can follow the steps below to do so. + +- Open the details of the [HertzBeat application](https://hub.grapps.cn/marketplace/apps/753) + +![HertzBeat app desc](/img/docs/start/hertzbeat-desc.png) + +- Log in to your Rainbond Cloud account. If you don't have an account, register one in advance! + +![Rainbond Cloud](/img/docs/start/rainbond-cloud.png) + +- Select the version for installation + +![hertzbeat versions](/img/docs/start/hertzbeat-versions.png) + +## Open-source Rainbond deployment + +### Prerequisites + +To install Rainbond, please refer to [Rainbond Quick Install](https://www.rainbond.com/docs/quick-start/quick-install)。 + +### Deploy HertzBeat + +After logging in Rainbond, click Market in the left menu, switch to open source app store, and search HertzBeat in the search box, and click the Install button. + +![HertzBeat](/img/docs/start/install-to-rainbond-en.png) + +Fill in the following information, and click Confirm button to install. + +- Team: select a team or create a new team +- Cluster: select a cluster +- Application: select an application or create a new application +- Version: select a version + +After installation, HertzBeat can be accessed via the Access button. + +![HertzBeat](/img/docs/start/hertzbeat-topology-en.png) + +:::tip +HertzBeat installed via Rainbond, External Mysql database and Redis and IoTDB are used by default, The HertzBeat configuration file is also mounted, which can be modified in `Components -> Environment Configuration -> Configuration File Settings`. +::: diff --git a/home/versioned_docs/version-1.7.x/start/tdengine-init.md b/home/versioned_docs/version-1.7.x/start/tdengine-init.md new file mode 100644 index 00000000000..f6a07525b08 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/tdengine-init.md @@ -0,0 +1,125 @@ +--- +id: tdengine-init +title: Use Time Series Database TDengine to Store Metrics Data (Optional) +sidebar_label: Metrics Store TDengine +--- + +Apache HertzBeat's historical data storage relies on the time series database, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +> It is recommended to use VictoriaMetrics as metrics storage. + +TDengine is an open-source IoT time-series database, which we use to store the collected historical data of monitoring metrics. Pay attention to support ⚠️ 3.x version. + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** +Note⚠️ Need TDengine 3.x Version. + +> If you have TDengine environment, can directly skip to create a database instance. + +### Install TDengine via Docker + +1. Download and install Docker environment +Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). +After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install TDengine with Docker + + ```shell + $ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \ + -v /opt/taosdata:/var/lib/taos \ + --name tdengine -e TZ=Asia/Shanghai \ + tdengine/tdengine:3.0.4.0 + ``` + + `-v /opt/taosdata:/var/lib/taos` is local persistent mount of TDengine data directory. `/opt/taosdata` should be replaced with the actual local directory. + `-e TZ="Asia/Shanghai"` can set time zone for TDengine.Set up the corresponding time zone you want. + use```$ docker ps``` to check if the database started successfully + +### Create database instance + +1. Enter database Docker container + + ```shell + docker exec -it tdengine /bin/bash + ``` + +2. Create database named hertzbeat + After entering the container,execute `taos` command as follows: + + ```shell + root@tdengine-server:~/TDengine-server# taos + Welcome to the TDengine shell from Linux, Client Version + Copyright (c) 2020 by TAOS Data, Inc. All rights reserved. + taos> + ``` + + execute commands to create database + + ```shell + taos> show databases; + taos> CREATE DATABASE hertzbeat KEEP 90 DURATION 10 BUFFER 16; + ``` + + The above statements will create a database named hertzbeat. The data will be saved for 90 days (more than 90 days data will be automatically deleted). + A data file every 10 days, memory blocks buffer is 16MB. + +3. Check if hertzbeat database has been created success + + ```shell + taos> show databases; + taos> use hertzbeat; + ``` + +**Note⚠️If you install TDengine using package** + +> In addition to start the server,you must execute `systemctl start taosadapter` to start adapter + +### Configure the database connection in hertzbeat `application.yml` configuration file + +1. Configure HertzBeat's configuration file + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally,while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Replace `warehouse.store.td-engine` data source parameters, URL account and password. + + ```yaml + warehouse: + store: + # disable jpa + jpa: + enabled: false + # enable td-engine + td-engine: + enabled: true + driver-class-name: com.taosdata.jdbc.rs.RestfulDriver + url: jdbc:TAOS-RS://localhost:6041/hertzbeat + username: root + password: taosdata + ``` + +2. Restart HertzBeat + +### FAQ + +1. Do both the time series databases IoTDB and TDengine need to be configured? Can they both be used? + + > You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which only affects the historical chart data. + +2. The historical chart of the monitoring page is not displayed, and pops up [Unable to provide historical chart data, please configure to rely on the time series database] + + > As shown in the pop-up window, the premise of displaying the history chart is to install and configure the dependent services of hertzbeat - IotDB database or TDengine database + +3. The historical picture of monitoring details is not displayed or has no data, and TDengine has been deployed + + > Please confirm whether the installed TDengine version is 3.x, version 2.x are not compatible. + +4. The TDengine database is installed and configured, but the page still displays a pop-up [Unable to provide historical chart data, please configure the dependent time series database] + + > Please check if the configuration parameters are correct + > Is td-engine enable set to true + > Note⚠️If both hertzbeat and TDengine are started under the same host for docker containers, 127.0.0.1 cannot be used for communication between containers by default, and the host IP is changed + > You can check the startup logs according to the logs directory diff --git a/home/versioned_docs/version-1.7.x/start/update-1.6.0.md b/home/versioned_docs/version-1.7.x/start/update-1.6.0.md new file mode 100644 index 00000000000..57755da297f --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/update-1.6.0.md @@ -0,0 +1,161 @@ +--- +id: 1.6.0-update +title: How to update to 1.6.0 +sidebar_label: Update to 1.6.0 guide +--- + +## HertzBeat 1.6.0 Upgrade Guide + +:::note +This guide is applicable for upgrading from 1.5.0 to 1.6.0 to version 1.6.0. +If you are using an older version, it is recommended to reinstall using the export function, or upgrade to 1.5.0 and then follow this guide to 1.6.0. +::: + +Follow the [HertzBeat New Version Upgrade](upgrade) + +## Binary Installation Package Upgrade + +### Upgrade Java Environment + +Since version 1.6.0 uses Java 17 and the installation package no longer provides a built-in JDK version, use the new Hertzbeat according to the following situations: + +- When the default environment variable on your server is Java 17, you do not need to take any action for this step. +- When the default environment variable on your server is not Java 17, such as Java 8 or Java 11, and if there are no other applications on your server that require a lower version of Java, download the appropriate version from [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) according to your system, and search the engine for how to set a new environment variable pointing to the new Java 17. +- When the default environment variable on your server is not Java 17, such as Java 8 or Java 11, and if there are other applications on your server that require a lower version of Java, download the appropriate version from [https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) according to your system, and rename the extracted folder to `java`, then copy it to the Hertzbeat extraction directory. + +### Upgrade Database + +Go to [https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration](https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration), choose the directory of your database and execute the corresponding `V160__update_column.sql` file for the upgrade SQL. + +### Upgrade Configuration Files + +Due to significant changes in `application.yml` and `sureness.yml`, it is recommended to directly use the new `yml` configuration files and then modify them based on your own needs. + +#### `application.yml` generally needs to modify the following parts + +Default is: + +```yaml + datasource: + driver-class-name: org.h2.Driver + username: sa + password: 123456 + url: jdbc:h2:./data/hertzbeat;MODE=MYSQL + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: h2 + properties: + eclipselink: + logging: + level: SEVERE +``` + +If you change to a MySQL database, here is an example: + +```yaml + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + url: jdbc:mysql://localhost:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai + hikari: + max-lifetime: 120000 + + jpa: + show-sql: false + database-platform: org.eclipse.persistence.platform.database.MySQLPlatform + database: mysql + properties: + eclipselink: + logging: + level: SEVERE +``` + +#### `sureness.yml` modification is optional, usually when you need to change account passwords + +```yaml +# account info config +# eg: admin has role [admin,user], password is hertzbeat +# eg: tom has role [user], password is hertzbeat +# eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289 +account: + - appId: admin + credential: hertzbeat + role: [admin] + - appId: tom + credential: hertzbeat + role: [user] + - appId: guest + credential: hertzbeat + role: [guest] + - appId: lili + # credential = MD5(password + salt) + # plain password: hertzbeat + # attention: digest authentication does not support salted encrypted password accounts + credential: 94C6B34E7A199A9F9D4E1F208093B489 + salt: 123 + role: [user] +``` + +### Add the corresponding database drivers + +Due to the Apache Foundation's requirements for license compliance, HertzBeat's installation package cannot include dependencies with GPL licenses such as MySQL, Oracle, etc. Users need to add them themselves. Users can download the drivers from the following links and copy them to the `ext-lib` directory of the installation: + +- MySQL: [https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip](https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.zip) +- Oracle (If you want to monitor Oracle, these two drivers are required): + - [https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar](https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc8/23.4.0.24.05/ojdbc8-23.4.0.24.05.jar) + - [https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar](https://repo.mavenlibs.com/maven/com/oracle/database/nls/orai18n/21.5.0.0/orai18n-21.5.0.0.jar) + +Next, run the start-up script as before to experience the latest HertzBeat 1.6.0! + +## Docker Upgrade - Mysql Database + +- Stop the HertzBeat container: + + ```shell + docker stop hertzbeat + ``` + +- Upgrade the database script: + - Go to [https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration](https://github.com/apache/hertzbeat/tree/master/hertzbeat-startup/src/main/resources/db/migration), choose the directory of your database and execute the corresponding `V160__update_column.sql` file in MySQL. +- Upgrade the configuration files: + - As mentioned, due to significant changes in `application.yml` and `sureness.yml`, it is recommended to directly mount and use the new `yml` configuration files, and then modify them based on your own needs. +- Add the corresponding database drivers: + - Due to the Apache Foundation's license compliance requirements, HertzBeat's installation package cannot include MySQL, Oracle, and other GPL-licensed dependencies. Users need to add them themselves by downloading the driver jars from the above links and placing them in the local `ext-lib` directory, then mounting `ext-lib` to the container's `/opt/hertzbeat/ext-lib` directory when starting. + +Next, run HertzBeat using Docker as before to experience the latest HertzBeat 1.6.0! + +## Docker Installation Upgrade - H2 Built-in Database (Not recommended for production use) + +- Stop the HertzBeat container: + + ```shell + docker stop hertzbeat + ``` + +- Edit the H2 database files: + - Assuming you have mounted the H2 database files in the `data` directory to the local system, or copied the `/opt/hertzbeat/data` directory from the old container manually. + - Download the H2 driver jar from [https://mvnrepository.com/artifact/com.h2database/h2/2.2.220](https://mvnrepository.com/artifact/com.h2database/h2/2.2.220). + - Start the database locally using the H2 driver jar: + + ```shell + java -jar h2-2.2.220.jar -url jdbc:h2:file:./hertzbeat -user sa -password 123456 + ``` + +- Upgrade the configuration files: + - As mentioned, due to significant changes in `application.yml` and `sureness.yml`, it is recommended to directly mount and use the new `yml` configuration files, and then modify them based on your own needs. +- Add the corresponding database drivers: + - As mentioned, due to the Apache Foundation's license compliance requirements, HertzBeat's installation package cannot include MySQL, Oracle, and other GPL-licensed dependencies. Users need to add them themselves by downloading the driver jars from the above links and placing them in the local `ext-lib` directory, then mounting `ext-lib` to the container's `/opt/hertzbeat/ext-lib` directory when starting. + +Next, run the Docker to start HertzBeat as before to experience the latest HertzBeat 1.6.0! + +## Upgrade via Export and Import + +If you do not want to go through the tedious script upgrade method mentioned above, you can directly export and import the monitoring tasks and threshold information from the old environment. + +- Deploy a new environment with the latest version. +- Export the monitoring tasks and threshold information from the old environment on the page diff --git a/home/versioned_docs/version-1.7.x/start/update-1.7.0.md b/home/versioned_docs/version-1.7.x/start/update-1.7.0.md new file mode 100644 index 00000000000..3d1ca2a78f2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/update-1.7.0.md @@ -0,0 +1,41 @@ +--- +id: 1.7.0-update +title: How to update to 1.7.0 +sidebar_label: Update to 1.7.0 guide +--- + +## HertzBeat 1.7.0 Upgrade Guide + +:::note +This guide is applicable for upgrading from 1.6.x to version 1.7.0. +If you are using an older version, it is recommended to reinstall using the export function, or upgrade to 1.6.0 and then follow this guide to 1.7.0. +::: + +Follow the [HertzBeat New Version Upgrade](upgrade) + +## Installation Upgrade + +### Upgrade Database + +In 1.7.0, we use the `label` instead of `tag`, in some environment, we need drop or delete the table `hzb_tag_monitor_bind` in database. + +```sql +DELETE FROM hzb_tag_monitor_bind; +``` + +### Upgrade Alarm Threshold + +In 1.7.0, we redesign the new alarm threshold, include the Real-Time Threshold and Scheduled Threshold. +We need reconfigure the alarm threshold, alarm group by manual. + +:::tip +There are no default built-in threshold rules, such as the previous availability threshold. +So if you find that there is no alarm after the monitoring is down, you need to configure the corresponding availability threshold yourself. +::: + +## Upgrade via Export and Import + +If you do not want to go through the tedious script upgrade method mentioned above, you can directly export and import the monitoring tasks and threshold information from the old environment. + +- Deploy a new environment with the latest version. +- Export the monitoring tasks and threshold information from the old environment on the page diff --git a/home/versioned_docs/version-1.7.x/start/upgrade.md b/home/versioned_docs/version-1.7.x/start/upgrade.md new file mode 100644 index 00000000000..8dc22808de0 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/upgrade.md @@ -0,0 +1,46 @@ +--- +id: upgrade +title: HertzBeat New Version Upgrade +sidebar_label: Version Upgrade Guide +--- + +**HertzBeat Release Version List** + +- [Download Page](https://hertzbeat.apache.org/docs/download) +- [Github Release](https://github.com/apache/hertzbeat/releases) +- [DockerHub Release](https://hub.docker.com/r/apache/hertzbeat/tags) + +Apache HertzBeat's metadata information is stored in H2 or Mysql, PostgreSQL relational databases, and the collected metric data is stored in time series databases such as TDengine and IotDB. + +**You need to save and back up the data files of the database and monitoring templates yml files before upgrading** + +### Upgrade For Docker Deploy + +1. If using custom monitoring templates + - Need to back up docker templates directory `docker cp hertzbeat:/opt/hertzbeat/define ./define` in the container `/opt/hertzbeat/define` + - `docker cp hertzbeat:/opt/hertzbeat/define ./define` + - And mount the template define directory when docker start `-v $(pwd)/define:/opt/hertzbeat/define` + - `-v $(pwd)/define:/opt/hertzbeat/define` +2. If using the built-in default H2 database + - Need to mount or back up `-v $(pwd)/data:/opt/hertzbeat/data` database file directory in the container `/opt/hertzbeat/data` + - Stop and delete the container, delete the local HertzBeat docker image, and pull the new version image + - Refer to [Docker installation of HertzBeat](./docker-deploy) to create a new container using a new image. Note that the database file directory needs to be mounted `-v $(pwd)/data:/opt/hertzbeat/data` +3. If using external relational database Mysql, PostgreSQL + - No need to mount the database file directory in the backup container + - Stop and delete the container, delete the local HertzBeat docker image, and pull the new version image + - Refer to [Docker installation HertzBeat](./docker-deploy) to create a new container using the new image, and configure the database connection in `application.yml` + +### Upgrade For Package Deploy + +1. If using the built-in default H2 database + - Back up the database file directory under the installation package `/opt/hertzbeat/data` + - If there is a custom monitoring template, you need to back up the template YML under `/opt/hertzbeat/define` + - `bin/shutdown.sh` stops the HertzBeat process and downloads the new installation package + - Refer to [Installation package to install HertzBeat](./package-deploy) to start using the new installation package +2. If using external relational database Mysql, PostgreSQL + - No need to back up the database file directory under the installation package + - If there is a custom monitoring template, you need to back up the template YML under `/opt/hertzbeat/define` + - `bin/shutdown.sh` stops the HertzBeat process and downloads the new installation package + - Refer to [Installation package to install HertzBeat](./package-deploy) to start with the new installation package and configure the database connection in `application.yml` + +**HAVE FUN** diff --git a/home/versioned_docs/version-1.7.x/start/usecase/linux-os-practice.md b/home/versioned_docs/version-1.7.x/start/usecase/linux-os-practice.md new file mode 100644 index 00000000000..f0c50b4e52d --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/usecase/linux-os-practice.md @@ -0,0 +1,94 @@ +--- +id: linux-os-practice +title: Linux Operating System Monitoring Practice +sidebar_label: Linux Operating System Monitoring Practice +--- + +This article describes how to use the Hertzbeat monitoring system to collect and monitor general performance metrics for Linux operating systems, and send us alert messages when file system usage is too high. + +## What's HertzBeat + +Apache HertzBeat (incubating) is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, port availability, database, operating system, threshold alarms, alarm notification (email, WeChat, DingTalk, Feishu). + +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) + +## Install + +1. The `docker` environment can be installed with just one command + + ```bash + docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat + ``` + +2. After the installation is successful, the browser can access `http://ip:1157` to start, the default account password is `admin/hertzbeat`. + +:::note +The production environment recommends a complete deployment method, refer [Install HertzBeat via Docker Compose](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## Monitoring Linux Operating System + +### 1. Click Add Linux Operating System Monitor + +> HertzBeat Page -> Monitors -> New Monitor -> OS Monitor -> Add OS Linux + +![HertzBeat](/img/docs/start/linux-os-practice-1.png) + +### 2. Configure the monitoring parameters + +- **Target Host**:The IPV4, IPV6, or domain name of the host being monitored. No protocol header (e.g., https://, http://). +- **Port**:The port provided by Linux SSH, default is 22. +- **Timeout**:Sets the connection timeout in milliseconds, default is 6000 ms. +- **Reuse Connection**: Sets whether SSH connections are reused, default is :false. If false, a new connection is created each time information is retrieved. +- **Username**: SSH connection username +- **Password**: SSH connection password, optional. + +> For more parameters and advanced settings, please refer to the help documentation: [Monitoring:Linux operating system monitoring](https://hertzbeat.apache.org/docs/help/linux) + +Tasks can be managed using label classification, such as adding bind labels like `OS=Linux`. + +![HertzBeat](/img/docs/start/linux-os-practice-2.png) + +### 3. View the detection index data + +In the monitoring list, you can view the monitoring status, and in the monitoring details, you can view the metric data chart, etc. + +![HertzBeat](/img/docs/start/linux-os-practice-3.png) + +![HertzBeat](/img/docs/start/linux-os-practice-4.png) + +### 4. Set the threshold + +Here, we set a threshold rule to trigger an alert when **the usage rate of a certain directory in the file system is too high**. + +> HertzBeat Page -> Alerting -> Threshold -> New Threshold -> RealTime Threshold Rule +> +> Configure the threshold, configure the alarm expression-triggered when the metric`Disk Usage` greater than or equal to `50%`,set the alarm level notification template information, etc. + +![HertzBeat](/img/docs/start/linux-os-practice-5.png) + +> Threshold rule has others function you can try e.g., associating thresholds with monitoring, trigger times so on. + +Finally, you can see the triggered alarm in the alarm center. + +![HertzBeat](/img/docs/start/linux-os-practice-6.png) + +### 5. Alarm notification + +> HertzBeat Page -> Notification -> Notice Receiver -> New Receiver -> Configure the Email Receiver + +![HertzBeat](/img/docs/start/linux-os-practice-7.png) + +> HertzBeat Page -> Notification -> Notice Policy -> New Notice Policy -> Enable Notification for the Recipient Just Configured + +![HertzBeat](/img/docs/start/linux-os-practice-8.png) + +When the threshold is triggered, we can receive the corresponding alarm message. If there is no notification, you can also view the alarm information in the alarm center. + +---- + +## Summary + +The practice of monitoring linux operating system is here. Of course, for Hertzbeat, this function is just the tip of the iceberg. If you think Hertzbeat is a good open source project, please give us a Star on GitHub, thanks for your support. + +**Github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/start/usecase/springboot-auto-practice.md b/home/versioned_docs/version-1.7.x/start/usecase/springboot-auto-practice.md new file mode 100644 index 00000000000..a91bb21abf7 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/usecase/springboot-auto-practice.md @@ -0,0 +1,245 @@ +--- +id: springboot-auto-practice +title: SpringBoot Web Application Monitoring Practice +sidebar_label: SpringBoot Web Application Monitoring Practice +--- + +:::tip + +In the cloud-native era, monitoring and visualization of SpringBoot applications have become core components of O&M (Operations & Maintenance) systems. Real-time monitoring of application performance is crucial for ensuring system stability. + +::: + +This article introduces an integrated solution using the HertzBeat monitoring system, covering metric collection, visualization, and alarm notifications. It demonstrates the complete operational procedure and monitoring practices. + +## What is HertzBeat + +Apache HertzBeat is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +## Install HertzBeat + +> For production environments, it is recommended to deploy HertzBeat using **PostgreSQL** + **VictoriaMetrics**. + +1. Deploy HertzBeat + + > Download the installation package + > + > Download the `apache-hertzbeat-xxx-incubating-bin.tar.gz` installation package corresponding to your system environment from the [Download Page](https://hertzbeat.apache.org/docs/download). Extract the package to a host directory, e.g., `/opt/hertzbeat`. + + ```sh + tar zxvf apache-hertzbeat-xxx-incubating-bin.tar.gz + ``` + +2. Quick Install PostgreSQL + VictoriaMetrics Services + + > Install PostgreSQL via Docker + + ```sh + docker run -d --name postgresql -p 5432:5432 -v "$PWD/postgresql:/var/lib/postgresql/data" -e POSTGRES_USER=root -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgres:15 + ``` + + > Install VictoriaMetrics via Docker + + ```sh + docker run -d -p 8428:8428 -v "$PWD/victoria-metrics-data:/victoria-metrics-data" --name victoria-metrics victoriametrics/victoria-metrics:v1.95.1 + ``` + +3. Modify HertzBeat's Configuration File + + > Switch the metadata storage data source + > + > Modify the `hertzbeat/config/application.yml` configuration file to use the PostgreSQL service. + + :::note + For PostgreSQL configuration details, please refer to the documentation: [Meta Store PostgreSQL (Recommended)](https://hertzbeat.apache.org/docs/start/postgresql-change) + ::: + + > Configure the time-series database for metric storage + > + > Modify the `hertzbeat/config/application.yml` configuration file to enable the VictoriaMetrics service for storing metrics. + + :::note + For VictoriaMetrics configuration details, please refer to the documentation: [Metrics Store VictoriaMetrics (Recommended)](https://hertzbeat.apache.org/docs/start/victoria-metrics-init) + ::: + +4. Start HertzBeat + + > Use the `startup.sh` script located in the `bin` directory of the extracted installation folder. For Windows environments, use `startup.bat`. + > + > After successful startup, access `http://localhost:1157` in your browser to begin. The default username and password are `admin/hertzbeat`. + + ```sh + ./startup.sh + ``` + +## SpringBoot Application Configuration + +1. Enable Actuator Configuration + + > Add the following dependencies to project's `pom.xml`: + + ```xml + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-registry-prometheus + + ``` + + > Configure `application.yml` to expose endpoints: + + ```yml + management: + endpoints: + web: + exposure: + include: '*' + enabled-by-default: true + metrics: + export: + prometheus: + enabled: true + ``` + + > *Note: If your project also introduces authentication related dependencies, such as springboot security, the interfaces exposed by SpringBoot Actor may be intercepted. In this case, you need to manually release these interfaces. Taking springboot security as an example, you should add the following code to the Security Configuration class:* + + ```java + public class SecurityConfig extends WebSecurityConfigurerAdapter{ + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception{ + httpSecurity + // Configure the interfaces to be opened + .antMatchers("/actuator/**").permitAll() + .antMatchers("/metrics/**").permitAll() + .antMatchers("/trace").permitAll() + .antMatchers("/heapdump").permitAll() + // ... + } + } + ``` + +2. Verify Endpoints + + > After starting SpringBoot application, request the following URL: + > + > * `http://:/actuator`: Verify the enabled endpoints. + > * `http://:/actuator/prometheus`: Should return metric data in Prometheus format. + +## Monitor SpringBoot Application + +1. Add AUTO Monitor + + > HertzBeat Page -> Monitors -> New Monitor -> AUTO -> Prometheus Task + + ![HertzBeat](/img/docs/start/springboot-auto-practice-1.png) + +2. Fill in Key Parameters + + > **Target Host**: The server address of the SpringBoot application (without the protocol prefix like `http://` or `https://`). + > + > **Port**: The application service port (e.g., `8080`). + > + > **Endpoint Path**: `/actuator/prometheus` + > + > Tasks can be managed using label classification, such as adding Bind Labels like `env=test`. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-2.png) + +3. View Detected Metric Data + + > Click on the newly created monitor to view detailed metric data, historical charts, etc. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-3.png) + + ![HertzBeat](/img/docs/start/springboot-auto-practice-4.png) + +## Grafana Visualization Integration (Optional) + +1. Grafana Dashboard Configuration + + > Enable Grafana's embedding feature and enable anonymous access. + + :::note + For complete configuration details, please refer to the documentation: [Grafana Historical Charts](https://hertzbeat.apache.org/docs/help/grafana_dashboard) + ::: + +2. Embed Grafana Dashboard in HertzBeat Monitor + + > After configuring and enabling Grafana, restart the HertzBeat service. Then, in the newly added AUTO monitor settings, enable Grafana Templates and upload a Grafana dashboard template. + > + > For example: In Grafana, select `hertzbeat-victoria-metrics` as the data source. Then click on the dashboard:「Share」→「Export」→「Save to file」to download the template and upload this file to the HertzBeat monitor. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-5.png) + +3. View Grafana Dashboard + + > Go to the AUTO monitor page, click the Grafana icon button, and view the integrated Grafana dashboard. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-6.png) + +## Alarm and Notification Interlinkage + +1. HertzBeat Alarm Configuration + + > HertzBeat Page -> Alerting -> Threshold -> New -> New Threshold Rule + + ![HertzBeat](/img/docs/start/springboot-auto-practice-7.png) + + > HertzBeat provides two types of threshold rule settings: **RealTime Calculation** and **Periodically execute**. Here, we use the **Periodically execute** threshold rule as an example. + > + > * **Rule Name**: Name of the threshold rule. + > * **Threshold Rule**: Enter the rule for monitoring the metric (supports `PromQL`). + > * **Execution Period**: The time interval for periodically executing the threshold calculation. + > * **Alarm Severity**: The alarm level that triggers the threshold, from low to high: Warning,Critical,Emergency. + > * **Trigger Times**: Set how many times the threshold is triggered before sending an alarm. + > * **Alarm Content**: Enter the content of the monitoring alarm(supports variables). + +2. Set Threshold Rule + + > For example, to monitor the CPU usage of the SpringBoot application, add a threshold rule like: `system_cpu_usage{job="Jolly_Vulture_43vT"} > 0.01` + > + >You can create many combinations of threshold rules. Users can set up richer alarm rules based on their specific needs. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-8.png) + + > Finally, you can see the triggered alarm in the alarm center. + + ![HertzBeat](/img/docs/start/springboot-auto-practice-9.png) + +3. Alarm Notification + + > HertzBeat Page -> Notification -> Notice Receiver -> New Receiver + + ![HertzBeat](/img/docs/start/springboot-auto-practice-10.png) + + > HertzBeat Page -> Notification -> Notice Policy -> New Notice Policy -> Select Recipient(s) and Enable Notification + + ![HertzBeat](/img/docs/start/springboot-auto-practice-11.png) + +4. OK! When the threshold is triggered, we will receive the corresponding alarm message. If no notification is configured, you can also view the alarm information in the alarm center. + +## Quick Summary + +This article demonstrates how users can build a complete monitoring system within minutes using simple configurations, highlighting several advantages of HertzBeat: + +* Monitors SpringBoot Actuator endpoints without needing to deploy Exporter or Agent, supporting custom metric collection and alert rules. +* Lightweight: Compared to the traditional Prometheus + AlertManager combination, HertzBeat simplifies the deployment and maintenance process. +* Seamless Integration with Grafana: HertzBeat pushes collected time-series data to Grafana in real-time for building visualization dashboards. +* Integrated Monitoring + Alerting + Notification: Combines full protocol coverage, real-time/periodic threshold detection, and multi-channel notifications (DingTalk/Feishu/Webhook, etc.). + +------ + +## Wrapping Up + +That concludes this practical guide on monitoring SpringBoot applications with HertzBeat. Of course, this functionality is just the tip of the iceberg for HertzBeat. If you think hertzbeat is a good open source project, please give it a **Star** on GitHub and Gitee! Your Star motivate our continuous improvement! Feel free to light up the little star ✨ + +**Making monitoring simpler, looking forward to building the ecosystem together!** 💝 + +**GitHub: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**Gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/start/usecase/sslcert-practice.md b/home/versioned_docs/version-1.7.x/start/usecase/sslcert-practice.md new file mode 100644 index 00000000000..8d912fce4b2 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/usecase/sslcert-practice.md @@ -0,0 +1,95 @@ +--- +id: ssl-cert-practice +title: SSL Certificate Monitoring Practice +sidebar_label: SSL Certificate Monitoring Practice +--- + +:::tip +Most websites now support HTTPS by default. The certificate we apply for is usually 3 months or 1 year. It is easy to expire the SSL certificate over time, but we did not find it the first time, or did not update the certificate in time before it expired. +::: + +This article introduces how to use the hertzbeat monitoring tool to detect the validity period of our website's SSL certificate, and send us a warning message when the certificate expires or a few days before the certificate expires. + +## What is HertzBeat + +Apache HertzBeat is a real-time monitoring tool with powerful custom monitoring capabilities without Agent. Website monitoring, PING connectivity, port availability, database, operating system, middleware, API monitoring, threshold alarms, alarm notification (email, WeChat, Ding Ding Feishu). + +github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat) + +## Install HertzBeat + +1. The `docker` environment can be installed with just one command + + `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` + +2. After the installation is successful, the browser can access `localhost:1157` to start, the default account password is `admin/hertzbeat` + +:::note +The production environment recommends a complete deployment method, refer [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## Monitoring SSL Certificates + +1. Click Add SSL Certificate Monitor + + > HertzBeat Page -> Monitors -> New Monitor -> Service Monitor -> Add SSL Certificate + + ![HertzBeat](/img/docs/start/ssl_1.png) + +2. Configure the monitoring website + + > Here we take the example of monitoring Baidu website, configure monitoring host domain name, name, collection interval, etc. + > Click OK Note + + ![HertzBeat](/img/docs/start/ssl_2.png) + +3. View the detection index data + + > In the monitoring list, you can view the monitoring status, and in the monitoring details, you can view the metric data chart, etc. + + ![HertzBeat](/img/docs/start/ssl_3.png) + + ![HertzBeat](/img/docs/start/ssl_4.png) + +4. Set the threshold (triggered when the certificate expires) + + > HertzBeat Page -> Alerting -> Threshold -> New Threshold -> ReadTime Threshold Rule + > Configure the threshold, select the SSL certificate metric object, configure the alarm expression-triggered when the metric `expired` is `true`, that is, `equals(expired,"true")`, set the alarm level notification template information, etc. + + ![HertzBeat](/img/docs/start/ssl_5.png) + + > Threshold rule has others function you can try eg: associating thresholds with monitoring, trigger times so on. + +5. Set the threshold (triggered one week before the certificate expires) + + > In the same way, switch coding threshold, add a new configuration threshold and configure an alarm expression - when the metric expires timestamp `end_timestamp`, the `now()` function is the current timestamp, if the configuration triggers an alarm one week in advance: `end_timestamp <= (now() + 604800000)` , where `604800000` is the 7-day total time difference in milliseconds. + + ![HertzBeat](/img/docs/start/ssl_6.png) + + > Finally, you can see the triggered alarm in the alarm center. + + ![HertzBeat](/img/docs/start/ssl_7.png) + +6. Alarm notification (in time notification via Dingding WeChat Feishu, etc.) + + > HertzBeat Page -> Notification -> Notice Receiver -> New Receiver -> Config the Feishu Receiver + + ![HertzBeat](/img/docs/start/notice_receiver_1.png) + + For token configuration such as Feishu, please refer to the help document + + [https://hertzbeat.apache.org/docs/help/alert_feishu](https://hertzbeat.apache.org/docs/help/alert_feishu) + + > Notification -> Notice Policy -> New Notice Policy -> Enable Notification for the Recipient Just Configured + + ![HertzBeat](/img/docs/start/notice_policy_1.png) + +7. OK When the threshold is triggered, we can receive the corresponding alarm message. If there is no notification, you can also view the alarm information in the alarm center. + +---- + +## The End + +The practice of monitoring SSL certificates is here. Of course, for hertzbeat, this function is just the tip of the iceberg. If you think hertzbeat is a good open source project, please give us a Gitee star on GitHub, thank you very much. Thank you for your support. Refill! + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/start/usecase/tdengine-practice.md b/home/versioned_docs/version-1.7.x/start/usecase/tdengine-practice.md new file mode 100644 index 00000000000..ffcbb166448 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/usecase/tdengine-practice.md @@ -0,0 +1,166 @@ +--- +id: tdengine-practice +title: TDengine Monitoring Practice +sidebar_label: TDengine Monitoring Practice +--- + +:::tip +TDengine TSDB is an open-source, high-performance, cloud-native time series database (TSDB) optimized for IoT, vehicle networking, industrial Internet, finance, IT operations, and other scenarios. It also comes with built-in caching, streaming computing, data subscription, and other system functions that greatly reduce system design complexity and lower R&D and operational costs, making it an extremely simple time series data processing platform. +::: + +This article introduces how to use the Hertzbeat monitoring system to collect and monitor TDengine general performance indicators. + +## What is HertzBeat? + +Apache HertzBeat is a real-time monitoring tool with powerful customization capabilities that does not require an agent. It monitors websites, PING connectivity, port availability, databases, operating systems, middleware, APIs, threshold alerts, and alert notifications (email, WeChat, DingTalk, Feishu). + +> **github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +## Install HertzBeat + +1. The `docker` environment can be installed with just one command. + + `docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat` + +2. Once installed, you can start by accessing `localhost:1157` in your browser. The default username and password are `admin/hertzbeat`. + +:::note +Recommended deployment method for production environments, reference: [https://hertzbeat.apache.org/docs/start/docker-compose-deploy](https://hertzbeat.apache.org/docs/start/docker-compose-deploy) +::: + +## Enable TDengine monitoring + +:::tip +TDengine TSDB integrates multiple monitoring metric collection mechanisms and aggregates them through taosKeeper. taosKeeper is a monitoring metric export tool for TDengine TSDB version 3.0. With just a few simple configurations, you can obtain the runtime status of TDengine TSDB. For reference: [https://docs.taosdata.com/reference/components/taoskeeper/](https://docs.taosdata.com/reference/components/taoskeeper/) +::: + +## Monitor TDengine(PromQL) + +1. Added TDengine-PromQL monitoring + + > System Page -> Monitoring Center -> Add Monitoring -> Custom Monitoring -> TDengine-PromQL Task + + ![HertzBeat](/img/docs/start/tdengine_1.png) + +2. Fill in key parameters + + > **Target Host**: Prometheus application server address (without protocol header, e.g., https://, http://) + > + > **Port**: Prometheus API port, default value: 9090 + > + > **Endpoint path**: The URL for Prometheus to query PromQL. Default value: `/api/v1/query` + > + > You can use tags to categorize tasks, such as adding business-related tags like `env=test`. + + ![HertzBeat](/img/docs/start/tdengine_2.png) + +3. View inspection indicator data + + > You can view task statuses in the monitoring list and view metric data charts and other information in the monitoring details. + + ![HertzBeat](/img/docs/start/tdengine_3.png) + + ![HertzBeat](/img/docs/start/tdengine_4.png) + +## Monitor TDengine(Prometheus) + +1. New AUTO monitoring + + > System Page -> Monitoring Center -> Add Monitoring -> AUTO -> Prometheus Task + + ![HertzBeat](/img/docs/start/tdengine_1_1.png) + +2. Fill in key parameters + + > **Target Host** taosKeeper service address (without protocol header, e.g., https://, http://) + > + > **Port**: taosKeeper service port (e.g., 6043) + > + > **Endpoint path**: `/metrics` + > + > You can use tags to categorize tasks, such as adding business-related tags like `env=test`. + + ![HertzBeat](/img/docs/start/tdengine_1_2.png) + +3. View inspection indicator data + + > You can view task statuses in the monitoring list and view metric data charts and other information in the monitoring details. + + ![HertzBeat](/img/docs/start/tdengine_1_3.png) + + ![HertzBeat](/img/docs/start/tdengine_1_4.png) + +### Grafana visualization integration (optional) + +1. Grafana chart configuration + + > You need to enable Grafana's embeddable feature and allow anonymous access. + + :::note + For complete configuration, please refer to the documentation: [Grafana Historical Charts](https://hertzbeat.apache.org/zh-cn/docs/help/grafana_dashboard) + ::: + +2. Embedding Grafana dashboards in HertzBeat monitoring + + > After enabling Grafana, restart the HertzBeat service, enable it in the newly added AUTO monitoring, and upload the Grafana template. + > + > For example: Select the Grafana data source `hertzbeat-victoria-metrics`, then click "Share" → "Export" → "Save to file" on the dashboard to download the template and upload it to HertzBeat monitoring. For reference, see: [taoskeeper-prometheus-dashboard](https://grafana.com/grafana/dashboards/15164-taoskeeper-prometheus-dashboard/) + + ![HertzBeat](/img/docs/start/tdengine_1_5.png) + +3. View Grafana charts + + > Go to the new AUTO monitoring page, click the Grafana icon button to view the Grafana chart. + + ![HertzBeat](/img/docs/start/tdengine_1_6.png) + +## Alarm and notification linkage + +1. HertzBeat Alert Configuration + + > System Page -> Alerts -> Threshold Rules -> Add -> Add Threshold + + ![HertzBeat](/img/docs/start/tdengine_5.png) + + > HertzBeat provides two types of threshold rule settings: **real-time calculation** and **scheduled cycle**. Here, we will use the **scheduled cycle** threshold rule as an example. + > + > * **Threshold Name**: Threshold rule name + > * **Threshold rules**: Fill in the rules for monitoring indicators (supports `PromQL`). + > * **Execution cycle**: The time interval for calculating the periodic execution threshold. + > * **Alarm Level**: The alarm level triggered by the threshold, from low to high: Warning, Critical, Emergency. + > * **Trigger count**: Set the threshold number of times the trigger must occur before an alert is sent. + > * **Alarm content**: Fill in the content of the monitoring alarm (supports filling in variables) + +2. Set threshold rules + + > For example, to monitor the CPU percentage used by the Dnode node system, add a threshold rule: `taos_dnodes_info_cpu_system_value > 20` + > + > There are many combinations of threshold rules that can be set, and users can set more detailed alert rules according to their needs. + + ![HertzBeat](/img/docs/start/tdengine_6.png) + + > Finally, you can see the triggered alerts in the Alert Center. + + ![HertzBeat](/img/docs/start/tdengine_7.png) + +3. Alert notification + + > System Page -> Message Notifications -> Notification Media -> Add New Recipient + + ![HertzBeat](/img/docs/start/tdengine_8.png) + + > System Page -> Message Notifications -> Notification Policies -> Add Notification Policy -> Select recipients and enable notifications + + ![HertzBeat](/img/docs/start/tdengine_9.png) + +4. OK! When the threshold rule is triggered, we will receive the corresponding alert message. If no notification is configured, you can also view the alert information in the alert center. + +## Summary + +That concludes our practical guide to monitoring TDengine applications. Of course, this feature is just the tip of the iceberg for HertzBeat. If you like this open-source project, please give it a star on GitHub or Gitee. Your stars are what motivate us to keep improving! Please light up the little stars ✨ + +**Making monitoring simpler, we look forward to building an ecosystem with you!** 💝 + +**github: [https://github.com/apache/hertzbeat](https://github.com/apache/hertzbeat)** + +**gitee: [https://gitee.com/hertzbeat/hertzbeat](https://gitee.com/hertzbeat/hertzbeat)** diff --git a/home/versioned_docs/version-1.7.x/start/victoria-metrics-init.md b/home/versioned_docs/version-1.7.x/start/victoria-metrics-init.md new file mode 100644 index 00000000000..0ec9ba1c697 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/start/victoria-metrics-init.md @@ -0,0 +1,155 @@ +--- +id: victoria-metrics-init +title: Use Time Series Database VictoriaMetrics to Store Metrics Data (Recommended) +sidebar_label: Metrics Store VictoriaMetrics (Recommended) +--- + +Apache HertzBeat's historical data storage relies on the time series database, you can choose one of them to install and initialize, or not to install (note ⚠️ but it is strongly recommended to configure in the production environment) + +> It is recommended to use VictoriaMetrics as metrics storage. + +VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and time series database.Recommend Version(VictoriaMetrics:v1.95.1+, HertzBeat:v1.4.3+) + +**Note⚠️ Time series database is optional, but production environment configuration is strongly recommended to provide more complete historical chart functions and high performance** +**⚠️ If you do not configure a time series database, only the last hour of historical data is retained.** + +> If you already have an VictoriaMetrics environment, you can skip directly to the YML configuration step. + +### Install VictoriaMetrics via Docker + +1. Download and install Docker environment +Docker tools download refer to [Docker official document](https://docs.docker.com/get-docker/). +After the installation you can check if the Docker version normally output at the terminal. + + ```shell + $ docker -v + Docker version 20.10.12, build e91ed57 + ``` + +2. Install VictoriaMetrics via Docker + + ```shell + $ docker run -d -p 8428:8428 \ + -v $(pwd)/victoria-metrics-data:/victoria-metrics-data \ + --name victoria-metrics \ + victoriametrics/victoria-metrics:v1.95.1 + ``` + + `-v $(pwd)/victoria-metrics-data:/victoria-metrics-data` is local persistent mount of VictoriaMetrics data directory + use```$ docker ps``` to check if the database started successfully + +3. Configure the database connection in hertzbeat `application.yml`configuration file + + Modify `hertzbeat/config/application.yml` configuration file + Note⚠️The docker container way need to mount application.yml file locally, while you can use installation package way to unzip and modify `hertzbeat/config/application.yml` + Config the `warehouse.store.jpa.enabled` `false`. Replace `warehouse.store.victoria-metrics` data source parameters, HOST account and password. + + ```yaml + warehouse: + store: + # disable JPA + jpa: + enabled: false + # enable victoria-metrics + victoria-metrics: + enabled: true + url: http://localhost:8428 + username: root + password: root + ``` + +4. Restart HertzBeat + +### Use VictoriaMetrics in Cluster Mode + +VictoriaMetrics provides a **cluster mode** with separate components for ingestion (`vminsert`), storage (`vmstorage`), and querying (`vmselect`). The following section explains how to deploy VictoriaMetrics in cluster mode and integrate it with HertzBeat. + +#### 1. Deploy VictoriaMetrics Cluster via Docker Compose + +Create a `docker-compose.yml` file with the following content: + +```yaml +version: "3" + +services: + vmstorage1: + image: victoriametrics/vmstorage + command: + - "-retentionPeriod=1" + - "-storageDataPath=/storage" + volumes: + - vmstorage-data:/storage + ports: + - "8400:8400" # vminsert connects here + - "8401:8401" # vmselect connects here + + vminsert: + image: victoriametrics/vminsert + command: + - "-storageNode=vmstorage1:8400" + - "-httpAuth.username=root" + - "-httpAuth.password=root" + ports: + - "8480:8480" # ingestion endpoint + + vmselect: + image: victoriametrics/vmselect + command: + - "-storageNode=vmstorage1:8401" + - "-httpAuth.username=root" + - "-httpAuth.password=root" + ports: + - "8481:8481" # query endpoint + +volumes: + vmstorage-data: +``` + +Start the cluster with: + +```shell +docker-compose up -d +``` + +Check all components are running via: + +```shell +docker ps +``` + +#### 2. Configure HertzBeat for Cluster Mode + +Edit the `hertzbeat/config/application.yml` configuration file as follows: + +```yaml +warehouse: + store: + jpa: + enabled: false + victoria-metrics: + cluster: + enabled: true + select: + url: http://127.0.0.1:8481 + username: root + password: root + insert: + url: http://127.0.0.1:8480 + username: root + password: root +``` + +**Note:** + +- Set `enabled: true` under `cluster` to enable cluster mode. +- Ensure the URLs match your Docker Compose network or deployment addresses. + +#### 3. Restart HertzBeat + +Once configured, restart HertzBeat to connect to the VictoriaMetrics cluster. + +### FAQ + +1. Do both the time series databases need to be configured? Can they both be used? + + > You don't need to configure all of them, you can choose one of them. Use the enable parameter to control whether it is used or not. You can also install and configure neither, which can affects the historical chart data. diff --git a/home/versioned_docs/version-1.7.x/template.md b/home/versioned_docs/version-1.7.x/template.md new file mode 100644 index 00000000000..ec15b93d467 --- /dev/null +++ b/home/versioned_docs/version-1.7.x/template.md @@ -0,0 +1,95 @@ +--- +id: template +title: Monitoring Template Here +sidebar_label: Monitoring Template +--- + +> Apache HertzBeat™ is an open source, real-time monitoring tool with custom-monitor and agentLess. +> +> We make protocols such as `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` configurable, and you only need to configure `YML` online to collect any metrics you want. +> Do you believe that you can immediately adapt a new monitoring type such as K8s or Docker just by configuring online? + +Here is the architecture. + +![HertzBeat](/img/docs/hertzbeat-arch.png) + +**We define all monitoring collection types (mysql, website, jvm, k8s) as yml templates, and users can import these templates into the hertzbeat system to support corresponding types of monitoring, which is very convenient!** + +![HertzBeat](/img/docs/advanced/extend-point-1.png) + +**Welcome everyone to contribute your customized general monitoring type YML template during use. The available templates are as follows:** + +### Application service monitoring + + 👉 [Website monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-website.yml)
+ 👉 [HTTP API](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-api.yml)
+ 👉 [PING Connectivity](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ping.yml)
+ 👉 [Port Telnet](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-port.yml)
+ 👉 [Full site monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-fullsite.yml)
+ 👉 [SSL Cert monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ssl_cert.yml)
+ 👉 [JVM monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jvm.yml)
+ 👉 [SpringBoot2.0](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot2.yml)
+ 👉 [SpringBoot3.0](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-springboot3.yml)
+ 👉 [FTP Server](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ftp.yml)
+ +### Database monitoring + + 👉 [MYSQL database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mysql.yml)
+ 👉 [MariaDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mariadb.yml)
+ 👉 [PostgreSQL database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-postgresql.yml)
+ 👉 [SqlServer database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-sqlserver.yml)
+ 👉 [Oracle database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-oracle.yml)
+ 👉 [DM database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dm.yml)
+ 👉 [OpenGauss database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opengauss.yml)
+ 👉 [IoTDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-iotdb.yml)
+ 👉 [ElasticSearch database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-elasticsearch.yml)
+ 👉 [MongoDB database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-mongodb.yml)
+ 👉 [ClickHouse database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-clickhouse.yml)
+ 👉 [Redis database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis.yml)
+ 👉 [Redis Sentinel database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_sentinel.yml)
+ 👉 [Redis Cluster database monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redis_cluster.yml)
+ +### Operating system monitoring + + 👉 [Linux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-linux.yml)
+ 👉 [Windows operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-windows.yml)
+ 👉 [Ubuntu operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-ubuntu.yml)
+ 👉 [Centos operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-centos.yml)
+ 👉 [EulerOS operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-euleros.yml)
+ 👉 [Fedora CoreOS operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-coreos.yml)
+ 👉 [OpenSUSE operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-opensuse.yml)
+ 👉 [Rocky Linux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rockylinux.yml)
+ 👉 [Red Hat operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-redhat.yml)
+ 👉 [FreeBSD operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-freebsd.yml)
+ 👉 [AlmaLinux operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-almalinux.yml)
+ 👉 [Debian operating system monitoring](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-debian.yml)
+ +### Middleware monitoring + + 👉 [Zookeeper](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-zookeeper.yml)
+ 👉 [Kafka](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kafka.yml)
+ 👉 [Tomcat](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tomcat.yml)
+ 👉 [ShenYu](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-shenyu.yml)
+ 👉 [DynamicTp](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-dynamic_tp.yml)
+ 👉 [RabbitMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-rabbitmq.yml)
+ 👉 [ActiveMQ](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-activemq.yml)
+ 👉 [Jetty](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-jetty.yml)
+ 👉 [Flink](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-flink.yml)
+ 👉 [Nacos](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-nacos.yml)
+ +### CloudNative monitoring + + 👉 [Docker](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-docker.yml)
+ 👉 [Kubernetes](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-kubernetes.yml)
+ +### Network monitoring + + 👉 [CiscoSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-cisco_switch.yml)
+ 👉 [HpeSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-hpe_switch.yml)
+ 👉 [HuaweiSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-huawei_switch.yml)
+ 👉 [TpLinkSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-tplink_switch.yml)
+ 👉 [H3CSwitch](https://raw.githubusercontent.com/apache/hertzbeat/master/hertzbeat-manager/src/main/resources/define/app-h3c_switch.yml)
+ +--- + +**Have Fun!** diff --git a/home/versioned_sidebars/version-v1.6.x-sidebars.json b/home/versioned_sidebars/version-1.6.x-sidebars.json similarity index 99% rename from home/versioned_sidebars/version-v1.6.x-sidebars.json rename to home/versioned_sidebars/version-1.6.x-sidebars.json index 75916e06045..51f4b5e4b95 100644 --- a/home/versioned_sidebars/version-v1.6.x-sidebars.json +++ b/home/versioned_sidebars/version-1.6.x-sidebars.json @@ -242,6 +242,7 @@ { "type": "category", "label": "custom", + "key": "help-custom", "items": [ "help/kafka_promql", "help/influxdb_promql" @@ -292,6 +293,7 @@ { "type": "category", "label": "custom", + "key": "advanced-custom", "items": [ "advanced/extend-point", "advanced/extend-tutorial", diff --git a/home/versioned_sidebars/version-1.7.x-sidebars.json b/home/versioned_sidebars/version-1.7.x-sidebars.json new file mode 100644 index 00000000000..27eba0e45d8 --- /dev/null +++ b/home/versioned_sidebars/version-1.7.x-sidebars.json @@ -0,0 +1,451 @@ +{ + "docs": [ + { + "type": "doc", + "id": "introduce" + }, + { + "type": "category", + "label": "quickstart", + "items": [ + { + "type": "category", + "label": "install", + "items": [ + "start/docker-deploy", + "start/docker-compose-deploy", + "start/package-deploy", + { + "type": "link", + "label": "Install via Helm", + "href": "https://artifacthub.io/packages/helm/hertzbeat/hertzbeat" + }, + { + "type": "category", + "label": "extern-deploy", + "items": [ + "start/baota-deploy", + "start/rainbond-deploy" + ] + } + ] + }, + { + "type": "category", + "label": "upgrade", + "items": [ + "start/1.7.0-update", + "start/1.6.0-update", + "start/upgrade" + ] + }, + { + "type": "category", + "label": "setting", + "items": [ + "start/account-modify", + "start/custom-config" + ] + }, + { + "type": "category", + "label": "change-db", + "items": [ + "start/greptime-init", + "start/victoria-metrics-init", + "start/iotdb-init", + "start/influxdb-init", + "start/postgresql-change", + "start/mysql-change" + ] + }, + { + "type": "category", + "label": "Use Case", + "key": "quickstart-use-case", + "items": [ + "start/usecase/ssl-cert-practice", + "start/usecase/springboot-auto-practice", + "start/usecase/linux-os-practice" + ] + } + ] + }, + { + "type": "category", + "label": "guides", + "items": [ + "help/guide", + "help/security_model", + "help/ai_agent", + { + "type": "category", + "label": "Use Case", + "key": "guides-use-case", + "items": [ + "start/usecase/ssl-cert-practice", + "start/usecase/springboot-auto-practice", + "start/usecase/linux-os-practice", + "start/usecase/tdengine-practice" + ] + }, + { + "type": "category", + "label": "alert", + "items": [ + "help/alarm_center", + "help/alert_threshold", + "help/alert_threshold_expr", + "help/alarm_group", + "help/alarm_inhibit", + "help/alarm_silence", + "help/alert_integration" + ] + }, + { + "type": "category", + "label": "notice", + "items": [ + "help/alert_email", + "help/alert_sms", + "help/alert_webhook", + "help/alert_discord", + "help/alert_slack", + "help/alert_telegram", + "help/alert_wework", + "help/alert_dingtalk", + "help/alert_feishu", + "help/alert_feishu_app", + "help/alert_console", + "help/alert_enterprise_wechat_app", + "help/alert_smn", + "help/alert_notification_template" + ] + }, + { + "type": "category", + "label": "service-discovery", + "items": [ + "help/eureka_sd", + "help/nacos_sd", + "help/consul_sd", + "help/zookeeper_sd", + "help/http_sd", + "help/dns_sd" + ] + }, + { + "type": "category", + "label": "service", + "items": [ + "help/prometheus", + "help/website", + "help/api", + "help/ping", + "help/port", + "help/udp_port", + "help/fullsite", + "help/ssl_cert", + "help/nginx", + "help/imap", + "help/pop3", + "help/smtp", + "help/ntp", + "help/dns", + "help/ftp", + "help/websocket", + "help/mqtt", + "help/modbus", + "help/jenkins" + ] + }, + { + "type": "category", + "label": "program", + "items": [ + "help/process", + "help/jvm", + "help/springboot2", + "help/springboot3", + "help/dynamic_tp" + ] + }, + { + "type": "category", + "label": "database", + "items": [ + "help/mysql", + "help/mariadb", + "help/postgresql", + "help/greenplum", + "help/vastbase", + "help/kingbase", + "help/sqlserver", + "help/oracle", + "help/dm", + "help/opengauss", + "help/nebulaGraph", + "help/nebulagraph_cluster", + "help/tidb", + "help/mongodb", + "help/mongodb_atlas", + "help/oceanbase", + "help/db2" + ] + }, + { + "type": "category", + "label": "cache", + "items": [ + "help/redis", + "help/memcached", + "help/valkey" + ] + }, + { + "type": "category", + "label": "os", + "items": [ + "help/linux", + "help/windows", + "help/ubuntu", + "help/debian", + "help/centos", + "help/almalinux", + "help/opensuse", + "help/freebsd", + "help/redhat", + "help/rockylinux", + "help/euleros", + "help/fedora", + "help/linux_script", + "help/windows_script", + "help/macos", + "help/darwin", + "help/nvidia" + ] + }, + { + "type": "category", + "label": "server", + "items": [ + "help/ipmi", + "help/hikvision_isapi", + "help/dahua", + "help/uniview", + "help/synology_nas", + "help/idrac" + ] + }, + { + "type": "category", + "label": "mid", + "items": [ + "help/activemq", + "help/kafka", + "help/kafka_client", + "help/pulsar", + "help/nacos", + "help/rabbitmq", + "help/rocketmq", + "help/shenyu", + "help/spring_gateway", + "help/zookeeper", + "help/apollo" + ] + }, + { + "type": "category", + "label": "bigdata", + "items": [ + "help/airflow", + "help/hbase_master", + "help/hbase_regionserver", + "help/hdfs_datanode", + "help/hdfs_namenode", + "help/hugegraph", + "help/hadoop", + "help/hive", + "help/iceberg", + "help/clickhouse", + "help/doris_be", + "help/doris_fe", + "help/starrocks_be", + "help/starrocks_fe", + "help/elasticsearch", + "help/flink", + "help/flink_on_yarn", + "help/influxdb", + "help/iotdb", + "help/presto", + "help/seatunnel", + "help/spark", + "help/yarn", + "help/dolphinscheduler" + ] + }, + { + "type": "category", + "label": "webserver", + "items": [ + "help/tomcat", + "help/jetty" + ] + }, + { + "type": "category", + "label": "cloud-native", + "items": [ + "help/docker", + "help/kubernetes" + ] + }, + { + "type": "category", + "label": "llm", + "items": [ + "help/openai", + "help/deepseek" + ] + }, + { + "type": "category", + "label": "network", + "items": [ + "help/huawei_switch" + ] + }, + { + "type": "category", + "label": "Custom", + "key": "help-custom", + "items": [ + "help/kafka_promql", + "help/influxdb_promql", + "help/tdengine_promql" + ] + }, + "help/status", + "help/bulletin", + "help/plugin", + "help/time_expression", + "help/grafana_dashboard", + "help/collector", + "help/risc-v", + "help/issue" + ] + }, + { + "type": "category", + "label": "Custom", + "key": "advanced-custom", + "items": [ + "advanced/extend-point", + "advanced/extend-tutorial", + { + "type": "category", + "label": "http", + "items": [ + "advanced/extend-http", + "advanced/extend-http-default", + "advanced/extend-http-jsonpath", + "advanced/extend-http-xmlpath", + "advanced/extend-http-example-hertzbeat", + "advanced/extend-http-example-token" + ] + }, + { + "type": "category", + "label": "jdbc", + "items": [ + "advanced/extend-jdbc" + ] + }, + { + "type": "category", + "label": "ssh", + "items": [ + "advanced/extend-ssh" + ] + }, + { + "type": "category", + "label": "telnet", + "items": [ + "advanced/extend-telnet" + ] + }, + { + "type": "category", + "label": "jmx", + "items": [ + "advanced/extend-jmx" + ] + }, + { + "type": "category", + "label": "snmp", + "items": [ + "advanced/extend-snmp" + ] + }, + { + "type": "category", + "label": "NGQL", + "items": [ + "advanced/extend-ngql" + ] + } + ] + }, + { + "type": "doc", + "id": "template" + }, + { + "type": "category", + "label": "Community", + "items": [ + "community/maturity", + "community/contact", + "community/development", + { + "type": "category", + "label": "contribution", + "items": [ + "community/contribution", + "community/mailing_lists", + "community/become_committer", + "community/become_pmc_member", + "community/new_committer_process", + "community/new_pmc_ember_process" + ] + }, + { + "type": "category", + "label": "submit", + "items": [ + "community/document", + "community/submit_code", + "community/code_style_and_quality_guide" + ] + }, + { + "type": "category", + "label": "release", + "items": [ + "community/how_to_release", + "community/how_to_verify_release" + ] + } + ] + }, + { + "type": "category", + "label": "Others", + "items": [ + "others/resource" + ] + } + ] +} diff --git a/home/versions.json b/home/versions.json index 9811d0b3c24..4660623773a 100644 --- a/home/versions.json +++ b/home/versions.json @@ -1,3 +1,4 @@ [ - "v1.6.x" + "1.7.x", + "1.6.x" ] diff --git a/template-marketplace/hertzbeat-template-hub-web-app/src/app/layout/market/market.component.html b/template-marketplace/hertzbeat-template-hub-web-app/src/app/layout/market/market.component.html index acc1e884d8b..cce214d0aaf 100644 --- a/template-marketplace/hertzbeat-template-hub-web-app/src/app/layout/market/market.component.html +++ b/template-marketplace/hertzbeat-template-hub-web-app/src/app/layout/market/market.component.html @@ -203,7 +203,7 @@ class="tp-copyright__wrapper d-flex align-items-center justify-content-sm-between justify-content-center">