46 lines
		
	
	
		
			932 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			932 B
		
	
	
	
		
			Go
		
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"encoding/json"
 | |
| 	"fmt"
 | |
| 	"net/http"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| type Tags struct {
 | |
| 	Location string `json:"location"`
 | |
| 	Groupid  int32  `json:"groupid"`
 | |
| }
 | |
| 
 | |
| type Metric struct {
 | |
| 	Metric    string `json:"metric"`
 | |
| 	Timestamp int64  `json:"timestamp"`
 | |
| 	Value     int32  `json:"value"`
 | |
| 	Tags      Tags   `json:"tags"`
 | |
| }
 | |
| 
 | |
| func main() {
 | |
| 	client := http.Client{}
 | |
| 	for i := 0; i < 10; i++ {
 | |
| 		metric := Metric{"voltage", time.Now().UnixMilli(), 1, Tags{"A", 1}}
 | |
| 		json, err := json.Marshal(metric)
 | |
| 		if err != nil {
 | |
| 			panic(err)
 | |
| 		}
 | |
| 		req, err := http.NewRequest("POST", "http://localhost:6041/opentsdb/v1/put/json/rest_go", bytes.NewBuffer(json))
 | |
| 		if err != nil {
 | |
| 			panic(err)
 | |
| 		}
 | |
| 		req.Header.Set("Content-Type", "application/json")
 | |
| 		req.Header.Set("Authorization", "Basic cm9vdDp0YW9zZGF0YQ==")
 | |
| 		resp, err := client.Do(req)
 | |
| 		if err != nil {
 | |
| 			panic(err)
 | |
| 		}
 | |
| 		fmt.Printf("%v\n", resp)
 | |
| 		time.Sleep(time.Second)
 | |
| 
 | |
| 	}
 | |
| }
 |