func TestWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } o := &OpenTSDB{ Host: testutil.GetLocalHost(), Port: 4242, Prefix: "prefix.test.", } // Verify that we can connect to the OpenTSDB instance err := o.Connect() require.NoError(t, err) // Verify that we can successfully write data to OpenTSDB err = o.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) // Verify postive and negative test cases of writing data bp := testutil.MockBatchPoints() bp.AddPoint(testutil.TestPoint(float64(1.0), "justametric.float")) bp.AddPoint(testutil.TestPoint(int64(123456789), "justametric.int")) bp.AddPoint(testutil.TestPoint(uint64(123456789012345), "justametric.uint")) bp.AddPoint(testutil.TestPoint("Lorem Ipsum", "justametric.string")) bp.AddPoint(testutil.TestPoint(float64(42.0), "justametric.anotherfloat")) err = o.Write(bp.Points()) require.NoError(t, err) }
func TestBadStatusCode(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusServiceUnavailable) json.NewEncoder(w).Encode(`{ "errors": { "system": [ "The API is currently down for maintenance. It'll be back shortly." ] } }`) })) defer ts.Close() l := NewLibrato(ts.URL) l.ApiUser = "******" l.ApiToken = "123456" err := l.Connect() require.NoError(t, err) err = l.Write(testutil.MockBatchPoints().Points()) if err == nil { t.Errorf("error expected but none returned") } else { require.EqualError(t, fmt.Errorf("received bad status code, 503\n"), err.Error()) } }
func TestFormatMetric(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } k := &KinesisOutput{ Format: "string", } p := testutil.MockBatchPoints().Points()[0] valid_string := "test1,tag1=value1 value=1 1257894000000000000" func_string, err := FormatMetric(k, p) if func_string != valid_string { t.Error("Expected ", valid_string) } require.NoError(t, err) k = &KinesisOutput{ Format: "custom", } valid_custom := "test1,map[tag1:value1],test1,tag1=value1 value=1 1257894000000000000" func_custom, err := FormatMetric(k, p) if func_custom != valid_custom { t.Error("Expected ", valid_custom) } require.NoError(t, err) }
func TestUDPInflux(t *testing.T) { i := InfluxDB{ URLs: []string{"udp://localhost:8089"}, } err := i.Connect() require.NoError(t, err) err = i.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestUriOverride(t *testing.T) { a := &Amon{ ServerKey: fakeServerKey, AmonInstance: fakeAmonInstance, } err := a.Connect() require.NoError(t, err) err = a.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestUriOverride(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) })) defer ts.Close() l := NewLibrato(ts.URL) l.ApiUser = "******" l.ApiToken = "123456" err := l.Connect() require.NoError(t, err) err = l.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestUriOverride(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(`{"status":"ok"}`) })) defer ts.Close() d := NewDatadog(ts.URL) d.Apikey = "123456" err := d.Connect() require.NoError(t, err) err = d.Write(testutil.MockBatchPoints()) require.NoError(t, err) }
func TestWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } o := &OpenTSDB{ Host: testutil.GetLocalHost(), Port: 24242, Prefix: "prefix.test.", } // Verify that we can connect to the OpenTSDB instance err := o.Connect() require.NoError(t, err) // Verify that we can successfully write data to OpenTSDB err = o.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) // Verify postive and negative test cases of writing data bp := testutil.MockBatchPoints() tags := make(map[string]string) bp.AddPoint(client.NewPoint("justametric.float", tags, map[string]interface{}{"value": float64(1.0)})) bp.AddPoint(client.NewPoint("justametric.int", tags, map[string]interface{}{"value": int64(123456789)})) bp.AddPoint(client.NewPoint("justametric.uint", tags, map[string]interface{}{"value": uint64(123456789012345)})) bp.AddPoint(client.NewPoint("justametric.string", tags, map[string]interface{}{"value": "Lorem Ipsum"})) bp.AddPoint(client.NewPoint("justametric.anotherfloat", tags, map[string]interface{}{"value": float64(42.0)})) err = o.Write(bp.Points()) require.NoError(t, err) }
func TestWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } o := &OpenTSDB{ Host: testutil.GetLocalHost(), Port: 24242, Prefix: "prefix.test.", } // Verify that we can connect to the OpenTSDB instance err := o.Connect() require.NoError(t, err) // Verify that we can successfully write data to OpenTSDB err = o.Write(testutil.MockBatchPoints()) require.NoError(t, err) // Verify postive and negative test cases of writing data var bp client.BatchPoints bp.Time = time.Now() bp.Tags = map[string]string{"testkey": "testvalue"} bp.Points = []client.Point{ { Measurement: "justametric.float", Fields: map[string]interface{}{"value": float64(1.0)}, }, { Measurement: "justametric.int", Fields: map[string]interface{}{"value": int64(123456789)}, }, { Measurement: "justametric.uint", Fields: map[string]interface{}{"value": uint64(123456789012345)}, }, { Measurement: "justametric.string", Fields: map[string]interface{}{"value": "Lorem Ipsum"}, }, { Measurement: "justametric.anotherfloat", Fields: map[string]interface{}{"value": float64(42.0)}, }, } err = o.Write(bp) require.NoError(t, err) }
func TestUriOverride(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(`{"status":"ok"}`) })) defer ts.Close() a := &Amon{ ServerKey: fakeServerKey, AmonInstance: fakeAmonInstance, } err := a.Connect() require.NoError(t, err) err = a.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestHTTPInflux(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) w.Header().Set("Content-Type", "application/json") fmt.Fprintln(w, `{"results":[{}]}`) })) defer ts.Close() i := InfluxDB{ URLs: []string{ts.URL}, } err := i.Connect() require.NoError(t, err) err = i.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestConnectAndWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } url := testutil.GetLocalHost() + ":5555" r := &Riemann{ URL: url, Transport: "tcp", } err := r.Connect() require.NoError(t, err) err = r.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestConnectAndWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } var url = testutil.GetLocalHost() + ":1883" m := &MQTT{ Servers: []string{url}, } // Verify that we can connect to the MQTT broker err := m.Connect() require.NoError(t, err) // Verify that we can successfully write data to the mqtt broker err = m.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestConnectAndWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } var url = "amqp://" + testutil.GetLocalHost() + ":5672/" q := &AMQP{ URL: url, Exchange: "telegraf_test", } // Verify that we can connect to the AMQP broker err := q.Connect() require.NoError(t, err) // Verify that we can successfully write data to the amqp broker err = q.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestConnectAndWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } server := []string{testutil.GetLocalHost() + ":4150"} n := &NSQ{ Server: server[0], Topic: "telegraf", } // Verify that we can connect to the NSQ daemon err := n.Connect() require.NoError(t, err) // Verify that we can successfully write data to the NSQ daemon err = n.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestConnectAndWrite(t *testing.T) { if testing.Short() { t.Skip("Skipping integration test in short mode") } brokers := []string{testutil.GetLocalHost() + ":9092"} k := &Kafka{ Brokers: brokers, Topic: "Test", } // Verify that we can connect to the Kafka broker err := k.Connect() require.NoError(t, err) // Verify that we can successfully write data to the kafka broker err = k.Write(testutil.MockBatchPoints().Points()) require.NoError(t, err) }
func TestBadStatusCode(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusInternalServerError) json.NewEncoder(w).Encode(`{ 'errors': [ 'Something bad happened to the server.', 'Your query made the server very sad.' ] }`) })) defer ts.Close() d := NewDatadog(ts.URL) d.Apikey = "123456" err := d.Connect() require.NoError(t, err) err = d.Write(testutil.MockBatchPoints()) if err == nil { t.Errorf("error expected but none returned") } else { require.EqualError(t, fmt.Errorf("received bad status code, 500\n"), err.Error()) } }