Best K6 code snippet using influxdb.TestOutput
statsd_test.go
Source:statsd_test.go  
1package statsd2import (3	"bytes"4	"errors"5	"io"6	"io/ioutil"7	"net"8	"sync"9	"testing"10	"time"11)12const (13	testAddr = ":0"14	testKey  = "test_key"15)16var testDate = time.Date(2015, 10, 22, 16, 53, 0, 0, time.UTC)17func TestCount(t *testing.T) {18	testOutput(t, "test_key:5|c", func(c *Client) {19		c.Count(testKey, 5)20	})21}22func TestIncrement(t *testing.T) {23	testOutput(t, "test_key:1|c", func(c *Client) {24		c.Increment(testKey)25	})26}27func TestGauge(t *testing.T) {28	testOutput(t, "test_key:5|g\ntest_key:0|g\ntest_key:-10|g", func(c *Client) {29		c.Gauge(testKey, 5)30		c.Gauge(testKey, -10)31	})32}33func TestTiming(t *testing.T) {34	testOutput(t, "test_key:6|ms", func(c *Client) {35		c.Timing(testKey, 6)36	})37}38func TestHistogram(t *testing.T) {39	testOutput(t, "test_key:17|h", func(c *Client) {40		c.Histogram(testKey, 17)41	})42}43func TestNumbers(t *testing.T) {44	testOutput(t,45		"test_key:1|g\n"+46			"test_key:1|g\n"+47			"test_key:2|g\n"+48			"test_key:2|g\n"+49			"test_key:15|g\n"+50			"test_key:15|g\n"+51			"test_key:137|g\n"+52			"test_key:137|g\n"+53			"test_key:1|g\n"+54			"test_key:1|g\n"+55			"test_key:17.6|g\n"+56			"test_key:0|g\n"+57			"test_key:-42.5|g\n"+58			"test_key:|g",59		func(c *Client) {60			c.Gauge(testKey, 1)61			c.Gauge(testKey, uint(1))62			c.Gauge(testKey, int64(2))63			c.Gauge(testKey, uint64(2))64			c.Gauge(testKey, int32(15))65			c.Gauge(testKey, uint32(15))66			c.Gauge(testKey, int16(137))67			c.Gauge(testKey, uint16(137))68			c.Gauge(testKey, int8(1))69			c.Gauge(testKey, uint8(1))70			c.Gauge(testKey, float64(17.6))71			c.Gauge(testKey, float32(-42.5))72			c.Gauge(testKey, "invalid")73		})74}75func TestNewTiming(t *testing.T) {76	i := 077	now = func() time.Time {78		i++79		switch i {80		default:81			return testDate82		case 2:83			return testDate.Add(10 * time.Millisecond)84		case 3:85			return testDate.Add(100 * time.Millisecond)86		case 4:87			return testDate.Add(time.Second)88		}89	}90	defer func() { now = time.Now }()91	testOutput(t, "test_key:10|ms\ntest_key:1000|ms", func(c *Client) {92		timing := c.NewTiming()93		timing.Send(testKey)94		got := timing.Duration().Nanoseconds()95		want := int64(100 * time.Millisecond)96		if got != want {97			t.Errorf("Duration() = %v, want %v", got, want)98		}99		timing.Send(testKey)100	})101}102func TestUnique(t *testing.T) {103	testOutput(t, "test_key:foo|s", func(c *Client) {104		c.Unique(testKey, "foo")105	})106}107func TestMute(t *testing.T) {108	dialTimeout = func(string, string, time.Duration) (net.Conn, error) {109		t.Fatal("net.Dial should not be called")110		return nil, nil111	}112	defer func() { dialTimeout = net.DialTimeout }()113	c, err := New(Mute(true))114	if err != nil {115		t.Errorf("New() = %v", err)116	}117	c.Increment(testKey)118	c.Gauge(testKey, 1)119	c.Timing(testKey, 1)120	c.Histogram(testKey, 1)121	c.Unique(testKey, "1")122	c.Flush()123	c.Close()124}125func TestSamplingRateOK(t *testing.T) {126	testOutput(t, "test_key:3|c|@0.6\ntest_key:4|ms|@0.6", func(c *Client) {127		randFloat = func() float32 { return 0.5 }128		c.Count(testKey, 3)129		c.Timing(testKey, 4)130	}, SampleRate(0.6))131}132func TestSamplingRateKO(t *testing.T) {133	testOutput(t, "", func(c *Client) {134		randFloat = func() float32 { return 0.5 }135		c.Count(testKey, 1)136		c.Timing(testKey, 2)137	}, SampleRate(0.3))138}139func TestPrefix(t *testing.T) {140	testOutput(t, "foo.test_key:1|c", func(c *Client) {141		c.Increment(testKey)142	}, Prefix("foo"))143}144func TestNilTags(t *testing.T) {145	testOutput(t, "test_key:1|c", func(c *Client) {146		c.Increment(testKey)147	}, TagsFormat(InfluxDB), Tags())148}149func TestInfluxDBTags(t *testing.T) {150	testOutput(t, "test_key,tag1=value1,tag2=value2:1|c", func(c *Client) {151		c.Increment(testKey)152	}, TagsFormat(InfluxDB), Tags("tag1", "value1", "tag2", "value2"))153}154func TestDatadogTags(t *testing.T) {155	testOutput(t, "test_key:1|c|#tag1:value1,tag2:value2", func(c *Client) {156		c.Increment(testKey)157	}, TagsFormat(Datadog), Tags("tag1", "value1", "tag2", "value2"))158}159func TestNoTagFormat(t *testing.T) {160	testOutput(t, "test_key:1|c", func(c *Client) {161		c.Increment(testKey)162	}, Tags("tag1", "value1", "tag2", "value2"))163}164func TestOddTagsArgs(t *testing.T) {165	dialTimeout = mockDial166	defer func() { dialTimeout = net.DialTimeout }()167	defer func() {168		r := recover()169		if r == nil {170			t.Fatal("Tags should panic when only one argument is provided")171		}172	}()173	_, _ = New(TagsFormat(InfluxDB), Tags("tag1"))174	t.Fatal("A panic should occur")175}176func TestErrorHandler(t *testing.T) {177	errorCount := 0178	testClient(t, func(c *Client) {179		getBuffer(c).err = errors.New("test error")180		c.Increment(testKey)181		c.Close()182		if errorCount != 2 {183			t.Errorf("Wrong error count, got %d, want 2", errorCount)184		}185	}, ErrorHandler(func(err error) {186		if err == nil {187			t.Error("Error should not be nil")188		}189		errorCount++190	}))191}192func TestFlush(t *testing.T) {193	testClient(t, func(c *Client) {194		c.Increment(testKey)195		c.Flush()196		got := getOutput(c)197		want := "test_key:1|c"198		if got != want {199			t.Errorf("Invalid output, got %q, want %q", got, want)200		}201		c.Close()202	})203}204func TestFlushPeriod(t *testing.T) {205	testClient(t, func(c *Client) {206		c.Increment(testKey)207		time.Sleep(time.Millisecond)208		c.conn.mu.Lock()209		got := getOutput(c)210		want := "test_key:1|c"211		if got != want {212			t.Errorf("Invalid output, got %q, want %q", got, want)213		}214		c.conn.mu.Unlock()215		c.Close()216	}, FlushPeriod(time.Nanosecond))217}218func TestMaxPacketSize(t *testing.T) {219	testClient(t, func(c *Client) {220		c.Increment(testKey)221		conn := getBuffer(c)222		got := conn.buf.String()223		if got != "" {224			t.Errorf("Output should be empty, got %q", got)225		}226		c.Increment(testKey)227		got = conn.buf.String()228		want := "test_key:1|c"229		if got != want {230			t.Errorf("Invalid output, got %q, want %q", got, want)231		}232		conn.buf.Reset()233		c.Close()234		got = conn.buf.String()235		if got != want {236			t.Errorf("Invalid output, got %q, want %q", got, want)237		}238	}, MaxPacketSize(15))239}240func TestClone(t *testing.T) {241	testOutput(t, "test_key:5|c", func(c *Client) {242		c.Clone().Count(testKey, 5)243	})244}245func TestCloneInherits(t *testing.T) {246	testOutput(t, "app.test_key:5|c|@0.5|#tag1:value1", func(c *Client) {247		clone := c.Clone()248		randFloat = func() float32 { return 0.3 }249		clone.Count(testKey, 5)250		randFloat = func() float32 { return 0.8 }251		clone.Count(testKey, 5)252	},253		TagsFormat(Datadog),254		Prefix("app"),255		SampleRate(0.5),256		Tags("tag1", "value1"),257	)258}259func TestCloneFromMuted(t *testing.T) {260	testOutput(t, "", func(c *Client) {261		c.Clone().Count(testKey, 5)262	}, Mute(true))263}264func TestMuteClone(t *testing.T) {265	testOutput(t, "", func(c *Client) {266		c.Clone(Mute(true)).Count(testKey, 5)267	})268}269func TestClonePrefix(t *testing.T) {270	testOutput(t, "app.http.test_key:5|c", func(c *Client) {271		c.Clone(Prefix("http")).Count(testKey, 5)272	}, Prefix("app"))273}274func TestCloneRate(t *testing.T) {275	testOutput(t, "", func(c *Client) {276		randFloat = func() float32 { return 0.8 }277		c.Clone(SampleRate(0.5)).Count(testKey, 5)278	})279}280func TestCloneInfluxDBTags(t *testing.T) {281	testOutput(t, "test_key,tag1=value1,tag2=value2:5|c", func(c *Client) {282		clone := c.Clone(Tags("tag1", "value3", "tag2", "value2"))283		clone.Count(testKey, 5)284	}, TagsFormat(InfluxDB), Tags("tag1", "value1"))285}286func TestCloneDatadogTags(t *testing.T) {287	testOutput(t, "test_key:5|c|#tag1:value1,tag2:value2", func(c *Client) {288		clone := c.Clone(Tags("tag1", "value3", "tag2", "value2"))289		clone.Count(testKey, 5)290	}, TagsFormat(Datadog), Tags("tag1", "value1"))291}292func TestDialError(t *testing.T) {293	dialTimeout = func(string, string, time.Duration) (net.Conn, error) {294		return nil, errors.New("")295	}296	defer func() { dialTimeout = net.DialTimeout }()297	c, err := New()298	if c == nil || !c.muted {299		t.Error("New() did not return a muted client")300	}301	if err == nil {302		t.Error("New() did not return an error")303	}304}305func TestConcurrency(t *testing.T) {306	testOutput(t, "test_key:1|c\ntest_key:1|c\ntest_key:1|c", func(c *Client) {307		var wg sync.WaitGroup308		wg.Add(1)309		c.Increment(testKey)310		go func() {311			c.Increment(testKey)312			wg.Done()313		}()314		c.Increment(testKey)315		wg.Wait()316	})317}318func TestUDPNotListening(t *testing.T) {319	dialTimeout = mockUDPClosed320	defer func() { dialTimeout = net.DialTimeout }()321	c, err := New()322	if c == nil || !c.muted {323		t.Error("New() did not return a muted client")324	}325	if err == nil {326		t.Error("New should return an error")327	}328}329type mockClosedUDPConn struct {330	i int331	net.Conn332}333func (c *mockClosedUDPConn) Write(p []byte) (int, error) {334	c.i++335	if c.i == 2 {336		return 0, errors.New("test error")337	}338	return 0, nil339}340func (c *mockClosedUDPConn) Close() error {341	return nil342}343func mockUDPClosed(string, string, time.Duration) (net.Conn, error) {344	return &mockClosedUDPConn{}, nil345}346func testClient(t *testing.T, f func(*Client), options ...Option) {347	dialTimeout = mockDial348	defer func() { dialTimeout = net.DialTimeout }()349	options = append([]Option{350		FlushPeriod(0),351		ErrorHandler(expectNoError(t)),352	}, options...)353	c, err := New(options...)354	if err != nil {355		t.Fatalf("New: %v", err)356	}357	f(c)358}359func testOutput(t *testing.T, want string, f func(*Client), options ...Option) {360	testClient(t, func(c *Client) {361		f(c)362		c.Close()363		got := getOutput(c)364		if got != want {365			t.Errorf("Invalid output, got:\n%q\nwant:\n%q", got, want)366		}367	}, options...)368}369func expectNoError(t *testing.T) func(error) {370	return func(err error) {371		t.Errorf("ErrorHandler should not receive an error: %v", err)372	}373}374type testBuffer struct {375	buf bytes.Buffer376	err error377	net.Conn378}379func (c *testBuffer) Write(p []byte) (int, error) {380	if c.err != nil {381		return 0, c.err382	}383	return c.buf.Write(p)384}385func (c *testBuffer) Close() error {386	return c.err387}388func getBuffer(c *Client) *testBuffer {389	if mock, ok := c.conn.w.(*testBuffer); ok {390		return mock391	}392	return nil393}394func getOutput(c *Client) string {395	if c.conn.w == nil {396		return ""397	}398	return getBuffer(c).buf.String()399}400func mockDial(string, string, time.Duration) (net.Conn, error) {401	return &testBuffer{}, nil402}403func TestUDP(t *testing.T) {404	testNetwork(t, "udp")405}406func TestTCP(t *testing.T) {407	testNetwork(t, "tcp")408}409func testNetwork(t *testing.T, network string) {410	received := make(chan bool)411	server := newServer(t, network, testAddr, func(p []byte) {412		s := string(p)413		if s != "test_key:1|c" {414			t.Errorf("invalid output: %q", s)415		}416		received <- true417	})418	defer server.Close()419	c, err := New(420		Address(server.addr),421		Network(network),422		ErrorHandler(expectNoError(t)),423	)424	if err != nil {425		t.Fatalf("New: %v", err)426	}427	c.Increment(testKey)428	c.Close()429	select {430	case <-time.After(100 * time.Millisecond):431		t.Error("server received nothing after 100ms")432	case <-received:433	}434}435type server struct {436	t      testing.TB437	addr   string438	closer io.Closer439	closed chan bool440}441func newServer(t testing.TB, network, addr string, f func([]byte)) *server {442	s := &server{t: t, closed: make(chan bool)}443	switch network {444	case "udp":445		laddr, err := net.ResolveUDPAddr("udp", addr)446		if err != nil {447			t.Fatal(err)448		}449		conn, err := net.ListenUDP("udp", laddr)450		if err != nil {451			t.Fatal(err)452		}453		s.closer = conn454		s.addr = conn.LocalAddr().String()455		go func() {456			buf := make([]byte, 1024)457			for {458				n, err := conn.Read(buf)459				if err != nil {460					s.closed <- true461					return462				}463				if n > 0 {464					f(buf[:n])465				}466			}467		}()468	case "tcp":469		ln, err := net.Listen("tcp", addr)470		if err != nil {471			t.Fatal(err)472		}473		s.closer = ln474		s.addr = ln.Addr().String()475		go func() {476			for {477				conn, err := ln.Accept()478				if err != nil {479					s.closed <- true480					return481				}482				p, err := ioutil.ReadAll(conn)483				if err != nil {484					t.Fatal(err)485				}486				if err := conn.Close(); err != nil {487					t.Fatal(err)488				}489				f(p)490			}491		}()492	default:493		t.Fatalf("Invalid network: %q", network)494	}495	return s496}497func (s *server) Close() {498	if err := s.closer.Close(); err != nil {499		s.t.Error(err)500	}501	<-s.closed502}503func Benchmark(b *testing.B) {504	serv := newServer(b, "udp", testAddr, func([]byte) {})505	c, err := New(Address(serv.addr), FlushPeriod(0))506	if err != nil {507		b.Fatal(err)508	}509	for i := 0; i < b.N; i++ {510		c.Increment(testKey)511		c.Count(testKey, i)512		c.Gauge(testKey, i)513		c.Timing(testKey, i)514		c.NewTiming().Send(testKey)515	}516	c.Close()517	serv.Close()518}...mqtt2influxdb.go
Source:mqtt2influxdb.go  
1// mqtt2influxdb is a small and simple program that connects to an MQTT server,2// subscribes to MQTT topics, and publishes messages received to an InfluxDB3// database.4// Copyright (c) 2016 Maarten Everts. See LICENSE.5package main6import (7	"bytes"8	"flag"9	"fmt"10	"github.com/BurntSushi/toml"11	"github.com/ugorji/go/codec"12	"github.com/yosssi/gmq/mqtt"13	"github.com/yosssi/gmq/mqtt/client"14	"log"15	"net/http"16	"os"17	"os/signal"18	"strings"19	"text/template"20)21var (22	configfile       = flag.String("config", "mqtt2influxdb.toml", "Configuration file containing the descriptions how to map MQTT messages to InfluxDB points.")23	mqtthost         = flag.String("mqtt", "localhost:1883", "MQTT host (including port number).")24	mqttClientID     = flag.String("clientid", "mqtt2influxdb", "ClientID to use when connecting to MQTT broker.")25	influxdbHost     = flag.String("influxdb", "http://localhost:8086", "InfluxDB host address. Should include both protocol (http or https) and port number.")26	influxdbDatabase = flag.String("database", "mqtt", "Name of the InfluxDB database to use.")27	testoutput       = flag.Bool("test", false, "Print InfluxDB insert lines to stdout instead of actually submitting data. This option also adds \"-test\" to the ClientID.")28)29// Config hold the configuration of the mappings from mqtt to InfluxDB.30type Config struct {31	DefaultEncoding string32	Mappings []*struct {33		Topic    string34		Template string35		Encoding string36	}37}38func getConfig(filename string) Config {39	var conf Config40	if _, err := toml.DecodeFile(filename, &conf); err != nil {41		log.Fatal(err)42	}43	// Set some defaults44	for _, mapping := range conf.Mappings {45		if mapping.Encoding == "" {46			mapping.Encoding = conf.DefaultEncoding47		}48	}49	return conf50}51func main() {52	fmt.Println("mqtt2influxdb")53	flag.Parse()54	conf := getConfig(*configfile)55	// Set up channel on which to send signal notifications.56	sigc := make(chan os.Signal, 1)57	signal.Notify(sigc, os.Interrupt, os.Kill)58	// Create an MQTT Client.59	cli := client.New(&client.Options{60		ErrorHandler: func(err error) {61			fmt.Println(err)62		},63	})64	// Terminate the Client eventually.65	defer cli.Terminate()66	// To make sure running clients are not disconnected when testing the67	// configuration, append "-test" to the clientID.68	if *testoutput {69		*mqttClientID += "-test"70	}71	// Connect to the MQTT Server.72	err := cli.Connect(&client.ConnectOptions{73		Network:  "tcp",74		Address:  *mqtthost,75		ClientID: []byte(*mqttClientID),76	})77	if err != nil {78		panic(err)79	}80	// Make sure the new msgpack spec is used81	customMsgPackHandle := new(codec.MsgpackHandle)82	customMsgPackHandle.RawToString = true83	encodingMap := map[string]codec.Handle{84		"json":    new(codec.JsonHandle),85		"msgpack": customMsgPackHandle,86		"binc":    new(codec.BincHandle),87		"cbor":    new(codec.CborHandle),88	}89	influxDBWriteURL := *influxdbHost + "/write?db=" + *influxdbDatabase90	// Create topic subscriptions91	subscriptions := make([]*client.SubReq, len(conf.Mappings))92	for i, mapping := range conf.Mappings {93		// Setup the template94		topicTemplate := template.Must(template.New(mapping.Topic).Parse(mapping.Template))95		// Create a buffer to send the output of the template to the http post body96		h := encodingMap[mapping.Encoding]97		subscriptions[i] = &client.SubReq{98			TopicFilter: []byte(mapping.Topic),99			QoS:         mqtt.QoS1,100			Handler: func(topicName, message []byte) {101				// Unmarshal the data into a interface{} object. Probably not the102				// fastest approach, but works for now.103				buffer := new(bytes.Buffer)104				var f map[string]interface{}105				dec := codec.NewDecoderBytes(message, h)106				err := dec.Decode(&f)107				f["topiclevels"] = strings.Split(string(topicName), "/")108				// Execute the template109				err = topicTemplate.Execute(buffer, f)110				if err != nil {111					log.Fatal(err)112				}113				// And send the result off114				if *testoutput {115					fmt.Println(string(topicName))116					buffer.WriteTo(os.Stdout)117				} else {118					resp, err := http.Post(influxDBWriteURL, "text/plain", buffer)119					if err != nil {120						log.Println("Error submitting data to InfluxDB database: ", err)121					}122					// Cleanup the response123					resp.Body.Close()124				}125			},126		}127	}128	// Actually subscribe to topics.129	err = cli.Subscribe(&client.SubscribeOptions{SubReqs: subscriptions})130	if err != nil {131		panic(err)132	}133	// Now simply wait until we get a signal to stop134	<-sigc135	// Disconnect the Network Connection.136	if err := cli.Disconnect(); err != nil {137		panic(err)138	}139}...TestOutput
Using AI Code Generation
1import (2func main() {3	c, err := client.NewHTTPClient(client.HTTPConfig{4	})5	if err != nil {6		fmt.Println("Error creating InfluxDB Client: ", err.Error())7	}8	bp, err := client.NewBatchPoints(client.BatchPointsConfig{9	})10	if err != nil {11		fmt.Println("Error: ", err.Error())12	}13	tags := map[string]string{"cpu": "cpu-total"}14	fields := map[string]interface{}{15	}16	pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17	if err != nil {18		fmt.Println("Error: ", err.Error())19	}20	bp.AddPoint(pt)21	c.Write(bp)22	q := client.Query{23	}24	if response, err := c.Query(q); err == nil && response.Error() == nil {25		fmt.Println(response.Results)26	}27}28import (29func main() {30	c, err := client.NewHTTPClient(client.HTTPConfig{31	})32	if err != nil {33		fmt.Println("Error creating InfluxDB Client: ", err.Error())34	}35	bp, err := client.NewBatchPoints(client.BatchPointsConfig{36	})37	if err != nil {38		fmt.Println("Error: ", err.Error())39	}40	tags := map[string]string{"cpu": "cpu-total"}TestOutput
Using AI Code Generation
1import (2func main() {3    c, err := client.NewHTTPClient(client.HTTPConfig{4    })5    if err != nil {6        fmt.Println("Error: ", err)7    }8    bp, err := client.NewBatchPoints(client.BatchPointsConfig{9    })10    if err != nil {11        fmt.Println("Error: ", err)12    }13    tags := map[string]string{"cpu": "cpu-total"}14    fields := map[string]interface{}{15    }16    pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17    if err != nil {18        fmt.Println("Error: ", err)19    }20    bp.AddPoint(pt)21    c.Write(bp)22}TestOutput
Using AI Code Generation
1import (2func main() {3    c, err := client.NewHTTPClient(client.HTTPConfig{4    })5    if err != nil {6        fmt.Println("Error: ", err)7    }8    bp, err := client.NewBatchPoints(client.BatchPointsConfig{9    })10    if err != nil {11        fmt.Println("Error: ", err)12    }13    tags := map[string]string{"cpu": "cpu-total"}14    fields := map[string]interface{}{15    }16    pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17    if err != nil {18        fmt.Println("Error: ", err)19    }20    bp.AddPoint(pt)21    c.Write(bp)22    q := client.Query{23    }24    if response, err := c.Query(q); err == nil && response.Error() == nil {25        fmt.Println(response.Results)26    }27}28import (29func main() {30    c, err := client.NewHTTPClient(client.HTTPConfig{31    })32    if err != nil {33        fmt.Println("Error: ", err)34    }35    bp, err := client.NewBatchPoints(client.BatchPointsConfig{36    })37    if err != nil {38        fmt.Println("Error: ", err)39    }40    tags := map[string]string{"cpu": "cpu-total"}41    fields := map[string]interface{}{TestOutput
Using AI Code Generation
1import (2func main() {3    c, err := client.NewHTTPClient(client.HTTPConfig{4    })5    if err != nil {6        fmt.Println("Error: ", err.Error())7    }8    bp, err := client.NewBatchPoints(client.BatchPointsConfig{9    })10    if err != nil {11        fmt.Println("Error: ", err.Error())12    }13    tags := map[string]string{"cpu": "cpu-total"}14    fields := map[string]interface{}{15    }16    pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17    if err != nil {18        fmt.Println("Error: ", err.Error())19    }20    bp.AddPoint(pt)21    c.Write(bp)22    q := client.Query{23    }24    response, err := c.Query(q)25    if err == nil && response.Error() == nil {26        fmt.Println(response.Results)27    }28}TestOutput
Using AI Code Generation
1import (2func main() {3	c, err := client.NewHTTPClient(client.HTTPConfig{4	})5	if err != nil {6		log.Fatal(err)7	}8	bp, err := client.NewBatchPoints(client.BatchPointsConfig{9	})10	if err != nil {11		log.Fatal(err)12	}13	tags := map[string]string{"cpu": "cpu-total"}14	fields := map[string]interface{}{15	}16	pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17	if err != nil {18		log.Fatal(err)19	}20	bp.AddPoint(pt)21	c.Write(bp)22	q := client.Query{23	}24	if response, err := c.Query(q); err == nil && response.Error() == nil {25		fmt.Println(response.Results)26	}27}28import (29func main() {30	c, err := client.NewHTTPClient(client.HTTPConfig{31	})32	if err != nil {33		log.Fatal(err)34	}35	bp, err := client.NewBatchPoints(client.BatchPointsConfig{36	})37	if err != nil {TestOutput
Using AI Code Generation
1import (2func main() {3  c, err := client.NewHTTPClient(client.HTTPConfig{4  })5  if err != nil {6    fmt.Println("Error: ", err)7  }8  bp, err := client.NewBatchPoints(client.BatchPointsConfig{9  })10  if err != nil {11    fmt.Println("Error: ", err)12  }13  tags := map[string]string{"cpu": "cpu-total"}14  fields := map[string]interface{}{15  }16  pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())17  if err != nil {18    fmt.Println("Error: ", err)19  }20  bp.AddPoint(pt)21  c.Write(bp)22}Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
