【问题标题】:How to push lineprotocol data into influxdb in golang?golang中如何将lineprotocol数据推送到influxdb?
【发布时间】:2018-09-27 16:50:48
【问题描述】:

我有来自 Prometheus 指标的 JSON 数据,我已将其转换为线路协议。

如何使用 golang 将转换后的数据推送到 influx db?

【问题讨论】:

  • 到目前为止你尝试过什么?你遇到了什么问题?
  • 我已经使用 http.NewRequest("GET",prometheous-metric url) 来获取 json 数据。然后使用“github.com/gernest/blue”包转换成lineprotocol。抱歉,我是 influxdb 的新手,我很惊讶将这些数据发送给 influx

标签: go influxdb


【解决方案1】:

我在其他任何地方都没有找到答案。我正在使用 influxdb 1.7.10,为此我使用 HttpRequest 发布数据

var ServerAddress = "http://localhost:8086/write?db=mydb&u=username&p=password"
func PostData(data string) {
    d := bytes.NewReader([]byte(data))
    req, err := http.NewRequest("POST", ServerAddress, d)
    if err != nil {
        print(err)
    }

    client := &http.Client{}
    resp, err := client.Do(req)

    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        print(err)
    }

    fmt.Print(string(body))
}

【讨论】:

    【解决方案2】:

    您可以使用InfluxDB golang Client

    我假设结构类似于

     inputMeas := "meas1,tag1=va1,tag2=va2 value=342"
     client.Write(inputMeas)
     // check for response status
    

    上面提到的客户端实际上有一个详细的README,以便更好地了解如何将信息写入 InfluxDB。如果您有很多信息,您也可以尝试使用批量上传。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多