Menu

Anno LogoAnno LogoAnno文档博客

QQ群:478399354在线体验Viper面板 仓库

GitHub

🌜

🌞

Anno LogoAnno LogoAnno

# 5.1 服务资源监控 ## 5.1.1 服务资源总览# 5.1 服务资源监控 - 图5     在 ViperService 微服务中安装获取服务 CPU内存硬盘占用的插件 Anno.Plugs.MonitorService ##### 监控插件式可选的,也可以不用内置的资源获取方法自己重新实现    监控插件Anno.Plugs.MonitorService的实现也是非常简单的,开发者也可以自定义自己的资源获取插件。 但是插件的名称必须为 Anno.Plugs.MonitorService ,模块名称为 ResourceModule,方法名称为GetServerStatus。 下面讲解下如何自定义插件 ## 5.1.2 Anno.Plugs.MonitorService 插件解析#    新建一个类库名称为 Anno.Plugs.XXXService,此处的XXX代表Monitor。 我们推荐插件插件的命名规范为Anno.Plugs.XXXService,这样Viper在启动的时候可以自动发现插件 ,不需要额外的做手工配置。否则需要手动修改配置文件,例如插件名称为Viper.LogService,则修改修改配置文件的 FuncName节点。

配置文件:Viper\ViperService\Anno.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!—0,0 第一位是 工作站,第二位数据中心
(所有的 AnnoService 的 两位数不能重复例如不能存在【1,2】【1,2】)
可以存在【1,2】【2,1】
—>
<IdWorker>0,0</IdWorker>
<!—App名称—>
<AppName>ViperService-01</AppName>
<!—监听端口—>
<Port>7011</Port>
<!—权重—>
<Weight>1</Weight>
<!—功能 非Anno.Plugs 加入方式,多个用逗号,隔开—>
<FuncName>Viper.LogService,xxx.LogService</FuncName>
<!—忽略的功能 Trace,Logic—>
<IgnoreFuncName></IgnoreFuncName>
<!—超时时间毫秒—>
<TimeOut>20000</TimeOut>
<!—注册到的目标—>
<Ts Ip="127.0.0.1" Port="7010"/>
<IocDll>
……..省略………..
</IocDll>
<appSettings>
……..省略………..
</appSettings>
</configuration>
##### 插件命名规范 特别注意 1、插件名称程序集名称和里面的模块命名空间名称必须一致,统一为Anno.Plugs.XXXService,不同插件可以不一样。 2、不管插件名称是否是以Anno.Plugs.开始结尾都必须是Service。例如:XXX.XXXService 3、模块名称必须是以Module结尾,且集成BaseModule 4、方法名称不做特殊限制,但是范围类型推荐为 ActionResult ## 5.1.3 Anno.Plugs.MonitorService 插件代码# Bootstrap.cs 这个是插件的初始化加载器 using Anno.EngineData; using System; namespace Anno.Plugs.MonitorService { public class Bootstrap : IPlugsConfigurationBootstrap { //插件加载前 public void ConfigurationBootstrap() { } //插件加载后 public void PreConfigurationBootstrap() { } } } ResourceModule.cs 监控模块 /** Writer:Du YanMing Mail:dym880@163.com Create Date:2020/10/12 9:19:12 Functional description: Resource **/ using Anno.Const.Attribute; using Anno.EngineData; using System; using System.Collections.Generic; using System.Text; namespace Anno.Plugs.MonitorService { public class ResourceModule : BaseModule { //获取服务资源方法 private static readonly EngineData.SysInfo.UseSysInfoWatch Usi = new EngineData.SysInfo.UseSysInfoWatch(); /// <summary> /// 服务资源信息 /// </summary> /// <returns></returns> [AnnoInfo(Desc = "服务资源信息CPU、Memory")] public ActionResult GetServerStatus() { return new ActionResult(true, Usi.GetServerStatus()); } } } Edit this page Previous « 4.1 网关&监控 Next 6.1 集群接口文档 » - 5.1.1 服务资源总览 - 5.1.2 Anno.Plugs.MonitorService 插件解析 - 5.1.3 Anno.Plugs.MonitorService 插件代码

文档

社区

更多

Copyright © 2022 Anno.