|
- package testutil
-
- import (
- "net"
- "net/url"
- "os"
- "time"
-
- "github.com/influxdata/telegraf"
- "github.com/influxdata/telegraf/metric"
- )
-
- var localhost = "localhost"
-
- // GetLocalHost returns the DOCKER_HOST environment variable, parsing
- // out any scheme or ports so that only the IP address is returned.
- func GetLocalHost() string {
- if dockerHostVar := os.Getenv("DOCKER_HOST"); dockerHostVar != "" {
- u, err := url.Parse(dockerHostVar)
- if err != nil {
- return dockerHostVar
- }
-
- // split out the ip addr from the port
- host, _, err := net.SplitHostPort(u.Host)
- if err != nil {
- return dockerHostVar
- }
-
- return host
- }
- return localhost
- }
-
- // MockMetrics returns a mock []telegraf.Metric object for using in unit tests
- // of telegraf output sinks.
- func MockMetrics() []telegraf.Metric {
- metrics := make([]telegraf.Metric, 0)
- // Create a new point batch
- metrics = append(metrics, TestMetric(1.0))
- return metrics
- }
-
- // TestMetric Returns a simple test point:
- // measurement -> "test1" or name
- // tags -> "tag1":"value1"
- // value -> value
- // time -> time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
- func TestMetric(value interface{}, name ...string) telegraf.Metric {
- if value == nil {
- panic("Cannot use a nil value")
- }
- measurement := "test1"
- if len(name) > 0 {
- measurement = name[0]
- }
- tags := map[string]string{"tag1": "value1"}
- pt, _ := metric.New(
- measurement,
- tags,
- map[string]interface{}{"value": value},
- time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
- )
- return pt
- }
|