帮助手册 管理 添加监视器 自定义 Windows 插件

使用 DLL 编写 Windows 插件

使用动态链接库 (DLL) 编写插件并根据您的需要监控数据。您还可以使用Batch、PowerShell 和 VB 脚本编写插件。

先决条件

  • 我们的 Windows 服务器监控代理的最新版本
  • 插件必须用 C# 编写(.NET framework 3.0 及以上)

编写插件

  1. 在您的服务器中下载并安装 最新版本的 Windows 代理
  2. 打开Visual Studio编辑器 >创建项目> 选择语言Visual C#>用于创建 C#类库的类库 > 确定 
  3. 添加对创建项目的引用。转到项目菜单 >添加参考。 从代理安装文件夹C:\Program files (x86)\Site24x7\WinAgent\monitoring\Plugins\PluginsReference中选择Site24x7Plugin.Monitor.dll
    Site24x7Plugin.Monitor.dll' 包含接口 IPlugin,其中包含必须在创建项目的 c# 类文件中实现的变量和方法。 
  4. 在项目的 C# 类文件中,使用 Site24x7Plugin.Monitor 添加命名空间并使用 IPlugin 接口实现该类。
  5. 必须存在于类中的 变量 :
    • 版本:插件脚本文件中的任何更改都需要更新插件版本。默认值为 1。对现有插件进行任何更改后,用户必须将版本号增加 1。版本只能是整数。例如 1,2,3
  6. 实现方法 DataCollect() 并编写逻辑以获取实际数据。此方法应返回Dictionary<string, object>应包含键值对。键应该是指标的名称。
  7.  类中存在的 可选变量:
    • Heartbeat:当 Site24x7 数据中心没有从插件接收到数据时,提醒插件关闭。heartbeat 的值应该是 true 或 false。默认情况下,heartbeat 的值为 true
    • DisplayName:Web 客户端中显示的监视器的名称。例如:如果您创建一个名为“Site24x7Plugin”的插件,您的插件类应该有一个显示名称,其返回值必须是“Site24x7Plugin”
    • msg:将 DataCollect() 方法期间抛出任何错误时捕获的错误消息分配给此变量 
    • 属性 Version、Displayname 和 Heartbeat 将返回一个字符串对象
  8.  类中存在的可选方法:
    • Units() 方法应该返回一个 Directory<string, object> ,它应该包含一个键值对。键应该具有要监视的属性的名称,值应该是它们各自的单位。 
  9. 通过转到Visual StudioBuildmenu > Build Solution来构建项目。将创建一个 .dll 文件。 
  10. 在Agent 安装目录/Monitoring/Plugins下创建一个文件夹,并将 .dll 文件复制到该文件夹​​中。
    确保文件名和文件夹名相同。例如,如果您正在为 Apache 编写插件,则文件夹名称应为 Apache  ,插件脚本文件应命名为 apache.dll
  11. 我们的代理将开始收集数据,并在五分钟内,用户将能够在我们的网络客户端中看到统计数据。成功添加插件后,下一个可能的步骤是什么?
所有插件日志都将被捕获在 [安装目录]\monitoring\logs\Details 下的 PluginLog.log 和 PluginRegisterLog.log 文件中

示例插件文件

using System;
using System.Collections.Generic;
using System.Text;
using Site24x7Plugin.Monitor;

namespace Plugin
{
public class test : IPlugins
{
public string DisplayName
{
get{ return "File system performance"; }
}
public string Version
{
get { return "1"; }
}
public string Heartbeat
{
get { return "True"; }
}
public object Units()
{
IDictionary<String, object> sample = new Dictionary<String, object>();
sample.Add("File Control Bytes Per Second", "Bytes/sec");
sample.Add("File Control Operations Per Second", "operations/sec");
sample.Add("File Data Operations Per Second", "Bytes/sec");
sample.Add("File Read Bytes Per Second", "Bytes/sec");
return sample;
}
public object DataCollect()
{
Random r = new Random();
IDictionary<String, object> sample = new Dictionary<String, object>();
sample.Add("File Control Bytes Per Second", 10);
sample.Add("File Control Operations Per Second", 4);
sample.Add("File Data Operations Per Second", 1.2);
sample.Add("File Read Bytes Per Second", 87);
return sample;
}
}
}

JSON输出:

 {

"data":{"File Control Operations Per Second":4,"File Data Operations Per Second":1.2,"File Read Bytes Per Second":87,"File Control Bytes Per Second":10},

"units":{"File Control Operations Per Second":"operations/sec","File Data Operations Per Second":"Bytes/sec","File Read Bytes Per Second":"Bytes/sec","File Control Bytes Per Second":"Bytes/sec"},

"type":"Plugin.dll",

"version":"1",

"availability":"1"

}

Site24x7 Web 客户端中表示的数据:

故障排除提示

相关文章

帮助手册 管理 添加监视器 自定义Windows Plugins