123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- <style>
- .row .input-group{
- float: none;
- padding-left: 15px;
- padding-right: 15px;
- margin-right: 15px;
- }
- </style>
- <div class="panel panel-default panel-intro">
- <div class="panel-heading">
- <div class="panel-lead"><em>API预警配置</em>可在此对API的运行情况进行监控并发送通知</div>
- <ul class="nav nav-tabs">
- <li class="active"><a href="#tab-base" data-toggle="tab">基础配置</a></li>
- <li><a href="#tab-time" data-toggle="tab">响应超时监控</a></li>
- <li><a href="#tab-error" data-toggle="tab">请求错误监控</a></li>
- <li><a href="#tab-ip" data-toggle="tab">IP异常监控</a></li>
- <li><a href="#tab-count" data-toggle="tab">请求量监控</a></li>
- </ul>
- </div>
- <div class="panel-body">
- <form id="config-form" class="edit-form form-horizontal" role="form" data-toggle="validator" method="POST"
- action="">
- <div id="myTabContent" class="tab-content">
- <!--基础配置-->
- <div class="tab-pane fade active in" id="tab-base">
- <div class="widget-body no-padding">
- <table class="table table-striped">
- <thead>
- <tr>
- <th width="15%">配置项</th>
- <th width="85%">配置值</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>预警邮箱</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="text" name="row[base][email]" placeholder="请输入接收预警的邮箱,多个使用英文逗号分隔"
- value='{$addon.config[0]["value"]["email"]}' class="form-control"
- data-tip="">
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
-
-
- </tbody>
- </table>
- </div>
- <div class="alert alert-info-light" style="margin-bottom:10px;">
- <b>基础配置:</b><br>
- 1、预警邮箱:接收预警监控通知的邮箱;<br>
- 请务必先在 [常规管理-系统配置-邮件配置] 中配置并测试邮件发送是否正常<br>
- 2、相同预警通知在30分钟内仅会发送一次,请及时关注API运行情况<br>
- 3、建议使用Redis作为系统缓存
- </div>
- </div>
- <!--响应超时-->
- <div class="tab-pane fade" id="tab-time">
- <div class="widget-body no-padding">
- <div class="widget-body no-padding">
- <table class="table table-striped">
- <thead>
- <tr>
- <th width="15%">配置项</th>
- <th width="85%">配置值</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>监控频率</td>
- <td>
- <div class="row">
- <div class="col-sm-12 col-xs-12">
- <select name="row[time][pl]" class="selectpicker">
- <option value ="60" {if $addon.config[1]["value"]["pl"]==60} selected {/if}>1分钟</option>
- <option value ="180" {if $addon.config[1]["value"]["pl"]==180} selected {/if}>3分钟</option>
- <option value ="300" {if $addon.config[1]["value"]["pl"]==300} selected {/if}>5分钟</option>
- <option value ="600" {if $addon.config[1]["value"]["pl"]==600} selected {/if}>10分钟</option>
- <option value ="1800" {if $addon.config[1]["value"]["pl"]==1800} selected {/if}>30分钟</option>
- <option value="3600" {if $addon.config[1]["value"]["pl"]==3600} selected {/if}>1小时</option>
- <option value="7200" {if $addon.config[1]["value"]["pl"]==7200} selected {/if}>2小时</option>
- <option value="14400" {if $addon.config[1]["value"]["pl"]==14400} selected {/if}>4小时</option>
- <option value="21600" {if $addon.config[1]["value"]["pl"]==21600} selected {/if}>6小时</option>
- <option value="28800" {if $addon.config[1]["value"]["pl"]==28800} selected {/if}>8小时</option>
- <option value="43200" {if $addon.config[1]["value"]["pl"]==43200} selected {/if}>12小时</option>
- <option value="86400" {if $addon.config[1]["value"]["pl"]==86400} selected {/if}>1天</option>
- </select>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>超时时间</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12 input-group">
- <input type="text" name="row[time][sj]"
- value='{$addon.config[1]["value"]["sj"]}'
- class="form-control" data-tip="" aria-describedby="time_t">
- <span class="input-group-addon" id="time_t">毫秒</span>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>百分比</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12 input-group">
- <input type="text" name="row[time][zb]"
- value='{$addon.config[1]["value"]["zb"]}'
- class="form-control" data-tip="" aria-describedby="time_zb">
- <span class="input-group-addon" id="time_zb">%</span>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>是否开启预警</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="radio" name="row[time][open]" value="0" {if
- $addon.config[1]["value"]["open"]==0} checked {/if}> 关闭
- <input type="radio" name="row[time][open]" value="1" {if
- $addon.config[1]["value"]["open"]==1} checked {/if}> 开启
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="alert alert-info-light" style="margin-bottom:10px;">
- <b>响应超时监控:</b><br>主要针对一段时间内接口调用超时率过高<br>
- 1、设定接口超时时间(毫秒)<br>
- 2、设置接口超时百分比。支持两位小数,超时率达到或者大于设定值时会触发预警。
- </div>
- </div>
- </div>
- <!--请求错误-->
- <div class="tab-pane fade" id="tab-error">
- <div class="widget-body no-padding">
- <div class="widget-body no-padding">
- <table class="table table-striped">
- <thead>
- <tr>
- <th width="15%">配置项</th>
- <th width="85%">配置值</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>监控频率</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <select name="row[error][pl]" class="selectpicker">
- <option value ="60" {if $addon.config[2]["value"]["pl"]==60} selected {/if}>1分钟</option>
- <option value ="180" {if $addon.config[2]["value"]["pl"]==180} selected {/if}>3分钟</option>
- <option value ="300" {if $addon.config[2]["value"]["pl"]==300} selected {/if}>5分钟</option>
- <option value ="600" {if $addon.config[2]["value"]["pl"]==600} selected {/if}>10分钟</option>
- <option value ="1800" {if $addon.config[2]["value"]["pl"]==1800} selected {/if}>30分钟</option>
- <option value="3600" {if $addon.config[2]["value"]["pl"]==3600} selected {/if}>1小时</option>
- <option value="7200" {if $addon.config[2]["value"]["pl"]==7200} selected {/if}>2小时</option>
- <option value="14400" {if $addon.config[2]["value"]["pl"]==14400} selected {/if}>4小时</option>
- <option value="21600" {if $addon.config[2]["value"]["pl"]==21600} selected {/if}>6小时</option>
- <option value="28800" {if $addon.config[2]["value"]["pl"]==28800} selected {/if}>8小时</option>
- <option value="43200" {if $addon.config[2]["value"]["pl"]==43200} selected {/if}>12小时</option>
- <option value="86400" {if $addon.config[2]["value"]["pl"]==86400} selected {/if}>1天</option>
- </select>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>HTTP状态码</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="text" name="row[error][sj]"
- value='{$addon.config[2]["value"]["sj"]}'
- class="form-control" placeholder="请输入需要监控的状态码,多个使用英文逗号分隔" data-tip="多个状态码用英文逗号隔开">
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>百分比</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12 input-group">
- <input type="text" name="row[error][zb]"
- value='{$addon.config[2]["value"]["zb"]}'
- class="form-control" data-tip="" aria-describedby="erro_zb">
- <span class="input-group-addon" id="erro_zb">%</span>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>是否开启预警</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="radio" name="row[error][open]" value="0" {if
- $addon.config[2]["value"]["open"]==0} checked {/if}> 关闭
- <input type="radio" name="row[error][open]" value="1" {if
- $addon.config[2]["value"]["open"]==1} checked {/if}> 开启
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="alert alert-info-light" style="margin-bottom:10px;">
- <b>请求错误监控:</b><br>主要针对一段时间内接口调用错误率过高<br>
- 1、设定Http状态码,500,503,404,多个状态码用英文逗号隔开<br>
- 2、设置命中率,支持 两位小数点,命中率达到或大于设定值时会触发预警。
- </div>
- </div>
- </div>
- <!--IP异常-->
- <div class="tab-pane fade" id="tab-ip">
- <div class="widget-body no-padding">
- <div class="widget-body no-padding">
- <table class="table table-striped">
- <thead>
- <tr>
- <th width="15%">配置项</th>
- <th width="85%">配置值</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>监控频率</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <select name="row[ip][pl]" class="selectpicker">
- <option value ="60" {if $addon.config[3]["value"]["pl"]==60} selected {/if}>1分钟</option>
- <option value ="180" {if $addon.config[3]["value"]["pl"]==180} selected {/if}>3分钟</option>
- <option value ="300" {if $addon.config[3]["value"]["pl"]==300} selected {/if}>5分钟</option>
- <option value ="600" {if $addon.config[3]["value"]["pl"]==600} selected {/if}>10分钟</option>
- <option value ="1800" {if $addon.config[3]["value"]["pl"]==1800} selected {/if}>30分钟</option>
- <option value="3600" {if $addon.config[3]["value"]["pl"]==3600} selected {/if}>1小时</option>
- <option value="7200" {if $addon.config[3]["value"]["pl"]==7200} selected {/if}>2小时</option>
- <option value="14400" {if $addon.config[3]["value"]["pl"]==14400} selected {/if}>4小时</option>
- <option value="21600" {if $addon.config[3]["value"]["pl"]==21600} selected {/if}>6小时</option>
- <option value="28800" {if $addon.config[3]["value"]["pl"]==28800} selected {/if}>8小时</option>
- <option value="43200" {if $addon.config[3]["value"]["pl"]==43200} selected {/if}>12小时</option>
- <option value="86400" {if $addon.config[3]["value"]["pl"]==86400} selected {/if}>1天</option>
- </select>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>IP白名单</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="text" name="row[ip][white]"
- value='{$addon.config[3]["value"]["white"]}' placeholder="请输入IP白名单"
- class="form-control" data-tip="多个IP地址中间用英文逗号分开">
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>百分比</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12 input-group">
- <input type="text" name="row[ip][zb]"
- value='{$addon.config[3]["value"]["zb"]}'
- class="form-control" data-tip="" aria-describedby="ip_zb">
- <span class="input-group-addon" id="ip_zb">%</span>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>是否开启预警</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="radio" name="row[ip][open]" value="0" {if
- $addon.config[3]["value"]["open"]==0} checked {/if}> 关闭
- <input type="radio" name="row[ip][open]" value="1" {if
- $addon.config[3]["value"]["open"]==1} checked {/if}> 开启
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="alert alert-info-light" style="margin-bottom:10px;">
- <b>IP异常监控:</b><br>主要针对一段时间内大量固定IP请求,类似机器人请求;<br>
- 1、设置IP白名单(可不填),多个IP地址中间用英文逗号分开<br>
- 2、设置重复率,支持两位小数点,当IP重复率达到或大于设定值时,触发预警。
- </div>
- </div>
- </div>
- <!--请求量-->
- <div class="tab-pane fade" id="tab-count">
- <div class="widget-body no-padding">
- <div class="widget-body no-padding">
- <table class="table table-striped">
- <thead>
- <tr>
- <th width="15%">配置项</th>
- <th width="85%">配置值</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>监控频率</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <select name="row[count][pl]" class="selectpicker">
- <option value ="60" {if $addon.config[4]["value"]["pl"]==60} selected {/if}>1分钟</option>
- <option value ="180" {if $addon.config[4]["value"]["pl"]==180} selected {/if}>3分钟</option>
- <option value ="300" {if $addon.config[4]["value"]["pl"]==300} selected {/if}>5分钟</option>
- <option value ="600" {if $addon.config[4]["value"]["pl"]==600} selected {/if}>10分钟</option>
- <option value ="1800" {if $addon.config[4]["value"]["pl"]==1800} selected {/if}>30分钟</option>
- <option value="3600" {if $addon.config[4]["value"]["pl"]==3600} selected {/if}>1小时</option>
- <option value="7200" {if $addon.config[4]["value"]["pl"]==7200} selected {/if}>2小时</option>
- <option value="14400" {if $addon.config[4]["value"]["pl"]==14400} selected {/if}>4小时</option>
- <option value="21600" {if $addon.config[4]["value"]["pl"]==21600} selected {/if}>6小时</option>
- <option value="28800" {if $addon.config[4]["value"]["pl"]==28800} selected {/if}>8小时</option>
- <option value="43200" {if $addon.config[4]["value"]["pl"]==43200} selected {/if}>12小时</option>
- <option value="86400" {if $addon.config[4]["value"]["pl"]==86400} selected {/if}>1天</option>
- </select>
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>最大请求数量</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="text" name="row[count][max]"
- value='{$addon.config[4]["value"]["max"]}'
- class="form-control" data-tip="">
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
-
- <tr>
- <td>是否开启预警</td>
- <td>
- <div class="row">
- <div class="col-sm-8 col-xs-12">
- <input type="radio" name="row[count][open]" value="0" {if
- $addon.config[4]["value"]["open"]==0} checked {/if}> 关闭
- <input type="radio" name="row[count][open]" value="1" {if
- $addon.config[4]["value"]["open"]==1} checked {/if}> 开启
- </div>
- <div class="col-sm-4"></div>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="alert alert-info-light" style="margin-bottom:10px;">
- 请求量监控:</b><br>主要针对一段时间内接口大量请求<br>
- 1、设置单位时间内接口最大请求量,当请求量达到或者大于设定时触发预警
- </div>
- </div>
- </div>
- <!--footer-->
- <div class="form-group layer-footer">
- <label class="control-label col-xs-12 col-sm-2"></label>
- <div class="col-xs-12 col-sm-8">
- <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
- <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
- </div>
- </div>
- </div>
- </form>
- </div>
- </div>
|