This commit is contained in:
cantoblanco committed 2023-02-02 16:14:59 +00:00
1 parent 430885af5c
commit 7f92d72207
167 files changed
+244 -274

No files matched your search

+3 -19
View File
@@ -8,30 +8,14 @@
<link rel="stylesheet" href="/assets/style.0b9f658b.css">
<link rel="modulepreload" href="/assets/chunks/AlgoliaSearchBox.98396bc7.js">
<link rel="modulepreload" href="/assets/app.3817bf4e.js">
<link rel="modulepreload" href="/assets/guide_notifications.md.3ba84b10.lean.js">
<link rel="modulepreload" href="/assets/guide_notifications.md.21cf55c4.lean.js">
<meta name="twitter:title" content="灵活的通知方式 | 哪吒监控">
<meta property="og:title" content="灵活的通知方式 | 哪吒监控">
</head>
<body>
<div id="app"><!--[--><div class="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/" aria-label="哪吒监控, back to home" data-v-675d8756 data-v-cc01ef16><!----> 哪吒监控</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav></div><!--[--><!--[--><div class="algolia-search-box" id="docsearch"></div><!--]--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item Line truncated
&quot;message&quot;: {
&quot;subject&quot;: &quot;服务器状态警报&quot;,
&quot;body&quot;: {
&quot;contentType&quot;: &quot;Text&quot;,
&quot;content&quot;: &quot;#NEZHA#&quot;
},
&quot;toRecipients&quot;: [
{
&quot;emailAddress&quot;: {
&quot;address&quot;: &quot;接收邮件地址&quot;
}
}
]
}
}
</code></pre></div><ul><li>URL 参数获取说明:此方式调用 Microsoft Graph V1.0,需要前往 Microsoft Graph 自行创建应用程序,授予 <code>Mail.Send</code> 权限并获取 Token;或者你可以使用<a href="https://developer.microsoft.com/zh-cn/graph/graph-explorer" target="_blank" rel="noopener noreferrer">Microsoft Graph Explorer</a>直接授予权限并获取 Token。将 Header 中的 Token 字段替换为实际字符段即可。</li></ul><br><br><h2 id="报警规则说明" tabindex="-1">报警规则说明 <a class="header-anchor" href="#报警规则说明" aria-hidden="true">#</a></h2><h3 id="基本规则" tabindex="-1">基本规则 <a class="header-anchor" href="#基本规则" aria-hidden="true">#</a></h3><ul><li>type:可选取一个或多个类型,如在一个规则中选择了多个类型,需要<strong>同时满足</strong>所有选择的类型才会触发通知(可参考后面的示例) <ul><li><code>cpu</code>、<code>memory</code>、<code>swap</code>、<code>disk</code></li><li><code>net_in_speed</code> 入站网速、<code>net_out_speed</code> 出站网速、<code>net_all_speed</code> 双向网速、<code>transfer_in</code> 入站流量、<code>transfer_out</code> 出站流量、<code>transfer_all</code> 双向流量</li><li><code>offline</code> 离线监控</li><li><code>load1</code>、<code>load5</code>、<code>load15</code> 负载</li><li><code>process_count</code> 进程数 <em>目前取线程数占用资源太多,暂时不支持</em></li><li><code>tcp_conn_count</code>、<code>udp_conn_count</code> 连接数</li></ul></li><li>duration:持续数秒,数秒内采样记录 30% 以上触发阈值才会报警(防数据插针)</li><li>min 或 max: <ul><li>流量、网速类数值 为字节(1KB=1024B,1MB = 1024*1024B)</li><li>内存、硬盘、CPU 以占用百分比计数</li><li>离线监控无需设置此项</li></ul></li><li>cover: <ul><li><code>0</code> 监控所有,通过 <code>ignore</code> 忽略特定服务器</li><li><code>1</code> 忽略所有,通过 <code>ignore</code> 监控特定服务器<br> 例如:<code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:10, &quot;cover&quot;:0, &quot;ignore&quot;:{&quot;5&quot;: true}}]</code></li></ul></li><li>ignore: 选择忽略特定服务器,搭配 <code>cover</code> 使用,内容为服务器 id 和布尔值,例如:<code>{&quot;1&quot;: true, &quot;2&quot;:false}</code></li></ul><p><strong>完整示例:</strong></p><blockquote><blockquote><p>添加一个离线报警</p></blockquote><ul><li>名称:离线通知</li><li>规则:<code>[{&quot;Type&quot;:&quot;offline&quot;,&quot;Duration&quot;:10}]</code></li><li>启用:√</li></ul></blockquote><blockquote><blockquote><p>添加一个监控 CPU 持续 10s 超过 50% <strong>且</strong> 内存持续 20s 占用低于 20% 的报警</p></blockquote><ul><li>名称:CPU+内存</li><li>规则:<code>[{&quot;Type&quot;:&quot;cpu&quot;,&quot;Min&quot;:0,&quot;Max&quot;:50,&quot;Duration&quot;:10},{&quot;Type&quot;:&quot;memory&quot;,&quot;Min&quot;:20,&quot;Max&quot;:0,&quot;Duration&quot;:20}]</code></li><li>启用:√</li></ul></blockquote><blockquote><blockquote><p>将特定的服务器通知发送到特定的通知分组</p></blockquote><p>示例场景:<br> 你有 1、2、3、4 四台服务器和 A、B 两个不同的通知组<br> 1、2 这两台服务器掉线十分钟后给通知组 A 发送通知<br> 3、4 这两台服务器掉线十分钟后给通知组 B 发送通知</p><p>首先你需要先设置好 A、B 两个通知组,然后添加两条报警规则:</p><p><strong>规则一:</strong></p><ul><li>名称:1、2 离线,发送给通知组 A</li><li>规则:<code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;1&quot;:true,&quot;2&quot;:true}}]</code></li><li>通知方式组: A</li><li>启用:√</li></ul><p><strong>规则二:</strong></p><ul><li>名称:3、4 离线,发送给通知组 B</li><li>规则:<code>[{&quot;type&quot;:&quot;offline&quot;,&quot;duration&quot;:600,&quot;cover&quot;:1,&quot;ignore&quot;:{&quot;3&quot;:true,&quot;4&quot;:true}}]</code></li><li>通知方式组: B</li><li>启用:√</li></ul></blockquote><p><strong>灵活使用参数可以让你的通知功能被充分使用</strong></p><br><h3 id="特殊:任意周期流量报警" tabindex="-1">特殊:任意周期流量报警 <a class="header-anchor" href="#特殊:任意周期流量报警" aria-hidden="true">#</a></h3><p>可以用作月流量报警</p><ul><li>type: <ul><li><code>transfer_in_cycle</code> 周期内的入站流量</li><li><code>transfer_out_cycle</code> 周期内的出站流量</li><li><code>transfer_all_cycle</code> 周期内双向流量和</li></ul></li><li>cycle_start: 统计周期开始日期(可以是你机器计费周期的开始日期),时间格式为RFC3339,例如北京时间为<code>2022-01-11T08:00:00.00+08:00</code></li><liLine truncated
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"663a4f57\",\"case_case2.md\":\"e1d29db3\",\"case_case3.md\":\"1c787d1f\",\"case_case4.md\":\"9c9034f4\",\"case_index.md\":\"b0c33278\",\"developer_index.md\":\"f836932c\",\"developer_l10n.md\":\"9a74eb04\",\"developer_theme.md\":\"c264daa1\",\"en_us_case_case1.md\":\"30b2a832\",\"en_us_case_case2.md\":\"1927af1d\",\"en_us_case_case3.md\":\"d18b94fe\",\"en_us_case_case4.md\":\"e60d80a6\",\"en_us_case_index.md\":\"93d49376\",\"en_us_developer_index.md\":\"d22c31b9\",\"en_us_developer_l10n.md\":\"e812fb68\",\"en_us_developer_theme.md\":\"950a5519\",\"en_us_guide_agent.md\":\"a33da99e\",\"en_us_guide_agentq.md\":\"583d3347\",\"en_us_guide_api.md\":\"c5b27fe3\",\"en_us_guide_dashboard.md\":\"79a8132f\",\"en_us_guide_dashboardq.md\":\"ea7e7f3a\",\"en_us_guide_loginq.md\":\"9c0057aa\",\"en_us_guide_notifications.md\":\"0737eaae\",\"en_us_guide_q2.md\":\"fa7b853e\",\"en_us_guide_q3.md\":\"c17bd27b\",\"en_us_guide_q4.md\":\"d4b519f9\",\"en_us_guide_q5.md\":\"9573139f\",\"en_us_guide_q6.md\":\"0797b947\",\"en_us_guide_q7.md\":\"e8ca7675\",\"en_us_guide_servers.md\":\"9d0715b3\",\"en_us_guide_services.md\":\"423a1e11\",\"en_us_guide_settings.md\":\"fdcfed52\",\"en_us_guide_tasks.md\":\"f0679d8e\",\"en_us_index.md\":\"fd6dbaf2\",\"guide_agent.md\":\"87a433c8\",\"guide_agentq.md\":\"3970029d\",\"guide_api.md\":\"d0f5fbee\",\"guide_dashboard.md\":\"e1506424\",\"guide_dashboardq.md\":\"936ec4ab\",\"guide_loginq.md\":\"7b9e96c6\",\"guide_notifications.md\":\"3ba84b10\",\"guide_q1.md\":\"f02c6c65\",\"guide_q2.md\":\"3683fa87\",\"guide_q3.md\":\"8691160c\",\"guide_q4.md\":\"548689a5\",\"guide_q5.md\":\"2da5f3f6\",\"guide_q6.md\":\"146c704a\",\"guide_q7.md\":\"785f1610\",\"guide_servers.md\":\"acfe36f9\",\"guide_services.md\":\"31ca051d\",\"guide_settings.md\":\"51e29ff4\",\"guide_tasks.md\":\"1a7be3bb\",\"index.md\":\"928c21e7\"}")</script>
<div id="app"><!--[--><div class="theme"><header class="nav-bar" data-v-675d8756><div class="sidebar-button" data-v-675d8756><svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class></path></svg></div><a class="nav-bar-title" href="/" aria-label="哪吒监控, back to home" data-v-675d8756 data-v-cc01ef16><!----> 哪吒监控</a><div class="flex-grow" data-v-675d8756></div><div class="nav" data-v-675d8756><nav class="nav-links" data-v-675d8756 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item isExternal" href="https://github.com/nezhahq/nezhahq.github.io" target="_blank" rel="noopener noreferrer" data-v-b8818f8c>GitHub <svg class="icon outbound" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" data-v-b8818f8c><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div></div></nav></div><!--[--><!--[--><div class="algolia-search-box" id="docsearch"></div><!--]--><!--]--></header><aside class="sidebar" data-v-83e92a68><nav class="nav-links nav" data-v-83e92a68 data-v-eab3edfe><!--[--><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item active" href="/" data-v-b8818f8c>使用指南 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/case/index" data-v-b8818f8c>社区项目 <!----></a></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item" href="/developer/index" data-v-b8818f8c>开发手册 <!----></a></div></div><!--]--><div class="item" data-v-eab3edfe><div class="nav-dropdown-link" data-v-eab3edfe data-v-56bf3a3f><button class="button" data-v-56bf3a3f><span class="button-text" data-v-56bf3a3f>Languages</span><span class="right button-arrow" data-v-56bf3a3f></span></button><ul class="dialog" data-v-56bf3a3f><!--[--><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item active" href="/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>简体中文</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><li class="dialog-item" data-v-56bf3a3f><div class="nav-dropdown-link-item" data-v-56bf3a3f data-v-bbc27490><a class="item" href="/en_US/guide/notifications.html" data-v-bbc27490><span class="arrow" data-v-bbc27490></span><span class="text" data-v-bbc27490>English</span><span class="icon" data-v-bbc27490><!----></span></a></div></li><!--]--></ul></div></div><div class="item" data-v-eab3edfe><div class="nav-link" data-v-eab3edfe data-v-b8818f8c><a class="item Line truncated
<script>__VP_HASH_MAP__ = JSON.parse("{\"case_case1.md\":\"156bad5a\",\"case_case2.md\":\"88e2e545\",\"case_case3.md\":\"497dd618\",\"case_case4.md\":\"5ceebb0d\",\"case_index.md\":\"e0c2cd67\",\"developer_index.md\":\"37f13804\",\"developer_l10n.md\":\"692efc62\",\"developer_theme.md\":\"f90d74ee\",\"en_us_case_case1.md\":\"76f273be\",\"en_us_case_case2.md\":\"32d5407a\",\"en_us_case_case3.md\":\"855223ed\",\"en_us_case_case4.md\":\"84211ada\",\"en_us_case_index.md\":\"f4f0f6ef\",\"en_us_developer_index.md\":\"4ded2e5b\",\"en_us_developer_l10n.md\":\"536e6be2\",\"en_us_developer_theme.md\":\"b6a238cb\",\"en_us_guide_agent.md\":\"fd1f023d\",\"en_us_guide_agentq.md\":\"3ffdef17\",\"en_us_guide_api.md\":\"9f1b4074\",\"en_us_guide_dashboard.md\":\"a9345138\",\"en_us_guide_dashboardq.md\":\"e5e14184\",\"en_us_guide_loginq.md\":\"114cfe40\",\"en_us_guide_notifications.md\":\"53b16ea3\",\"en_us_guide_q2.md\":\"f292ae4e\",\"en_us_guide_q3.md\":\"92830e43\",\"en_us_guide_q4.md\":\"f56c9f7c\",\"en_us_guide_q5.md\":\"7a1a386a\",\"en_us_guide_q6.md\":\"a4fe1065\",\"en_us_guide_q7.md\":\"3ddd9ccd\",\"en_us_guide_servers.md\":\"df734b7e\",\"en_us_guide_services.md\":\"841b59b4\",\"en_us_guide_settings.md\":\"31b8cbed\",\"en_us_guide_tasks.md\":\"26d636e7\",\"en_us_index.md\":\"d8ef25a5\",\"guide_agent.md\":\"aac48439\",\"guide_agentq.md\":\"8b79bd4e\",\"guide_api.md\":\"2062e1db\",\"guide_dashboard.md\":\"722d226d\",\"guide_dashboardq.md\":\"d812986f\",\"guide_loginq.md\":\"d83fa158\",\"guide_notifications.md\":\"21cf55c4\",\"guide_q1.md\":\"8872dad9\",\"guide_q2.md\":\"fac9e2f3\",\"guide_q3.md\":\"f513f12f\",\"guide_q4.md\":\"7cda8f10\",\"guide_q5.md\":\"21145dbb\",\"guide_q6.md\":\"3511ee10\",\"guide_q7.md\":\"fee5ef05\",\"guide_servers.md\":\"1d30e9c4\",\"guide_services.md\":\"27ab8350\",\"guide_settings.md\":\"9b6da8c6\",\"guide_tasks.md\":\"247774a8\",\"index.md\":\"c8d4663d\"}")</script>
<script type="module" async src="/assets/app.3817bf4e.js"></script>
</body>