为 collectd 实现一个简单的 Java writer 插件

Implementing a simple Java writer plugin for collectd

我正在尝试为 collectd 开发一个非常简单的 Java 编写器插件,但没有成功。也没有找到任何关于 Java 插件开发的文档。

我一遍又一遍地遇到同样的错误,在代理启动时找不到 LoadPlugin 元素 (collectd.config) 中提供的 class。

这是我所做的:

  1. 使用以下命令安装了 collectd:sudo apt-get install collectd。
  2. 已下载 collectd 源。
  3. 在 /bindings/java/org/collectd/java 下添加了一个新的(非常简单的)编写器插件。
  4. 修改了/bindings/java/Makefile.am:
    • 将作者添加到 EXTRA_DIST 列表
    • 将以下行添加到 java-build-stamp 任务(为新编写器创建 jar):jar cf .lib/simple.jar “com.microsoft.java”/ *.class
    • 在 install-exec-local 任务中添加了以下行:$(INSTALL) –m 644 .libs/simple.jar \ “$(DESTDIR)$(pkgdatadir)/java”
  5. 从源代码根目录执行 ./configure。
  6. 执行 sudo make all install 从 bindings/java 目录。
  7. 已修改 collectd.config:
    • 启用 Java 插件
    • 通过添加启用新插件:“LoadPlugin“com.microsoft.java.SimpleWriter”到Java插件部分
    • 更新 JVM class 路径参数以包含包含新插件的 jar。
  8. 通过执行开始收集:sudo /etc/init.d/collectd start

当我启用 GenericJMX 插件时,它已成功加载。 有谁知道我做错了什么?

将 jar 内容解压到 classpath 文件夹中解决了问题。似乎如果您的 class 名称是 com.company.foo.FooClass,CollectD 会在目录 (class_path_dir)/com/company/foo/FooClass.class

下搜索它