Help us shape the future of Go! Take the 2026 Go Developer Survey

opentsdb

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2015 License: MIT Imports: 8 Imported by: 0

README

OpenTSDB Output Plugin

This plugin writes to a OpenTSDB instance using the "telnet" mode

Transfer "Protocol" in the telnet mode

The expected input from OpenTSDB is specified in the following way:

put <metric> <timestamp> <value> <tagk1=tagv1[ tagk2=tagv2 ...tagkN=tagvN]>

The telegraf output plugin adds an optional prefix to the metric keys so that a subamount can be selected.

put <[prefix.]metric> <timestamp> <value> <tagk1=tagv1[ tagk2=tagv2 ...tagkN=tagvN]>
Example
put nine.telegraf.system_load1 1441910356 0.430000 dc=homeoffice host=irimame scope=green
put nine.telegraf.system_load5 1441910356 0.580000 dc=homeoffice host=irimame scope=green
put nine.telegraf.system_load15 1441910356 0.730000 dc=homeoffice host=irimame scope=green
put nine.telegraf.system_uptime 1441910356 3655970.000000 dc=homeoffice host=irimame scope=green
put nine.telegraf.system_uptime_format 1441910356  dc=homeoffice host=irimame scope=green
put nine.telegraf.mem_total 1441910356 4145426432 dc=homeoffice host=irimame scope=green
...
put nine.telegraf.io_write_bytes 1441910366 0 dc=homeoffice host=irimame name=vda2 scope=green
put nine.telegraf.io_read_time 1441910366 0 dc=homeoffice host=irimame name=vda2 scope=green
put nine.telegraf.io_write_time 1441910366 0 dc=homeoffice host=irimame name=vda2 scope=green
put nine.telegraf.io_io_time 1441910366 0 dc=homeoffice host=irimame name=vda2 scope=green
put nine.telegraf.ping_packets_transmitted 1441910366  dc=homeoffice host=irimame scope=green url=www.google.com
put nine.telegraf.ping_packets_received 1441910366  dc=homeoffice host=irimame scope=green url=www.google.com
put nine.telegraf.ping_percent_packet_loss 1441910366 0.000000 dc=homeoffice host=irimame scope=green url=www.google.com
put nine.telegraf.ping_average_response_ms 1441910366 24.006000 dc=homeoffice host=irimame scope=green url=www.google.com
...

The OpenTSDB interface can be simulated with this reader:

// opentsdb_telnet_mode_mock.go 
package main

import (
	"io"
	"log"
	"net"
	"os"
)

func main() {
	l, err := net.Listen("tcp", "localhost:4242")
	if err != nil {
		log.Fatal(err)
	}
	defer l.Close()
	for {
		conn, err := l.Accept()
		if err != nil {
			log.Fatal(err)
		}
		go func(c net.Conn) {
			defer c.Close()
			io.Copy(os.Stdout, c)
		}(conn)
	}
}

Allowed values for metrics

OpenTSDB allows integers and floats as input values

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FloatToString

func FloatToString(input_num float64) string

func IntToString

func IntToString(input_num int64) string

func UIntToString

func UIntToString(input_num uint64) string

Types

type MetricLine

type MetricLine struct {
	Metric    string
	Timestamp int64
	Value     string
	Tags      string
}

type OpenTSDB

type OpenTSDB struct {
	Prefix string

	Host string
	Port int

	Debug bool
}

func (*OpenTSDB) Close

func (o *OpenTSDB) Close() error

func (*OpenTSDB) Connect

func (o *OpenTSDB) Connect() error

func (*OpenTSDB) Description

func (o *OpenTSDB) Description() string

func (*OpenTSDB) SampleConfig

func (o *OpenTSDB) SampleConfig() string

func (*OpenTSDB) Write

func (o *OpenTSDB) Write(points []*client.Point) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL