Telegraf 自定义插件“无效参数”

如何解决Telegraf 自定义插件“无效参数”

我正在从 Powertop 以 CSV 格式生成文件为 Telegraf 创建一个自定义插件,我解析它并将其分配给一个变量。在 main.go 中一切正常,但是当我将其全部放入我的 powertop.go 文件时,将其添加all.go 并使用 [ [inputs.powertop]],我收到“无效参数”错误

求求你,帮帮我吧!我厌倦了这种阻塞:(

Shell

配置文件

[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  debug = true
  quiet = false
  logfile = ""
  hostname = ""
  omit_hostname = false
[[outputs.influxdb_v2]] 
  urls = ["http://localhost:8086"]
  token = "$INFLUX_TOKEN"
  organization = "mycompany"
  bucket = "mycompany"
[[inputs.powertop]]

转到文件

package powertop

import (
    "encoding/csv"
    "io"
    "log"
    "os"

    "github.com/influxdata/telegraf"
    "github.com/influxdata/telegraf/plugins/inputs"
)

type Powertop struct {
    Usage    string `csv:"Usage"`
    Events   string `csv:"Events"`
    Category string `csv:"Category"`
    Desc     string `csv:"Description"`
    PW       string `csv:"PW_Estimate"`
}

func (s *Powertop) Description() string {
    return "Gather Powertop infos"
}

func (s *Powertop) SampleConfig() string {
    return "Sample Config"
}

func (s *Powertop) Gather(acc telegraf.Accumulator) error {

    tags := map[string]string{}
    fields := map[string]interface{}{}

    csvFile,_ := os.Open("powertop.csv")
    reader := csv.NewReader(csvFile)
    defer csvFile.Close()

    for {

        itt,error := reader.Read()
        if error == io.EOF {
            break
        } else if error != nil {
            log.Fatal(error)
        }

        tags["Usage"] = itt[0]
        tags["Events"] = itt[1]
        tags["Category"] = itt[2]
        tags["Desc"] = itt[3]
        tags["PW"] = itt[4]

        acc.AddFields("powertop",fields,tags)
    }

    return nil
}

func init() {
    inputs.Add("powertop",func() telegraf.Input {
        return &Powertop{}
    })
}

CSV 文件

  0.5%,179.5,Timer,tick_sched_timer,705 mW  
 35.5%,11.3,Process,[PID 3791] PK-Backend,399 mW  
  6.2%,84.3,[PID 1270] /usr/libexec/packagekitd,390 mW  
  0.2%,70.7,[PID 0] swapper/3,278 mW  
  3.6%,45.8,[PID 2049] /usr/bin/gnome-software --gapplication-service,214 mW  
  0.2%,43.3,Interrupt,[63] amdgpu,171 mW  
  0.3%,38.9,[PID 0] swapper/4,154 mW  
  0.2%,31.5,[7] sched(softirq),124 mW  
  0.0%,28.7,[PID 14] [rcu_sched],112 mW  
  0.4%,22.6,[PID 614] [irq/67-rtw88_pc],92.2 mW  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?