Index | Files

package collect

import ""

Package collect provides functions for sending data to OpenTSDB.

The "collect" namespace is used (i.e., <root>.collect) to collect program and queue metrics.


Package Files

collect.go eventListener.go queue.go


const RedisCountersKey = "scollectorCounters"


var (
    // Freq is how often metrics are sent to OpenTSDB.
    Freq = time.Second * 15

    // MaxQueueLen is the maximum size of the queue, above which incoming data will
    // be discarded. Defaults to about 150MB.
    MaxQueueLen = 200000

    // BatchSize is the maximum length of data points sent at once to OpenTSDB.
    BatchSize = 500

    // Debug enables debug logging.
    Debug = false

    // Print prints all datapoints to stdout instead of sending them.
    Print = false

    // DisableDefaultCollectors prevents the scollector self metrics from being
    // generated.
    DisableDefaultCollectors = false

    // Tags is an opentsdb.TagSet used when sending self metrics.
    Tags opentsdb.TagSet

    // Whether or not to use NTLM authentication
    UseNtlm bool = false

    // DefaultClient can be used to override the HTTP client that will be used to make requests.
    DefaultClient *http.Client = http.DefaultClient

    // Authtoken is the token to use to communicate with bosun
    AuthToken string

    //DirectHandler is an http handler to invoke instead of actually making a network request
    DirectHandler http.Handler

func Add Uses

func Add(metric string, ts opentsdb.TagSet, inc int64) error

Add takes a metric and increments a counter for that metric. The metric name is appended to the basename specified in the Init function.

func AggregateMeta Uses

func AggregateMeta(metric string, unit metadata.Unit, desc string)

func Flush Uses

func Flush()

Locks the queue and sends all datapoints. Intended to be used as scollector exits.

func Get Uses

func Get(metric string, ts opentsdb.TagSet) int64

func HandleCounterPut Uses

func HandleCounterPut(server string, database int) http.HandlerFunc

func Init Uses

func Init(tsdbhost *url.URL, root string) error

Init sets up the channels and the queue for sending data to OpenTSDB. It also sets up the basename for all metrics.

func InitChan Uses

func InitChan(tsdbhost *url.URL, root string, ch chan *opentsdb.DataPoint) error

InitChan is similar to Init, but uses the given channel instead of creating a new one.

func Put Uses

func Put(metric string, ts opentsdb.TagSet, v interface{}) error

Put is useful for capturing "events" that have a gauge value. Subsequent calls between the sending interval will overwrite previous calls.

func Sample Uses

func Sample(metric string, ts opentsdb.TagSet, v float64) error

func SendDataPoints Uses

func SendDataPoints(dps []*opentsdb.DataPoint, tsdb string) (*http.Response, error)

func Set Uses

func Set(metric string, ts opentsdb.TagSet, f func() interface{}) error

Set registers a callback for the given metric and tags, calling f immediately before queueing data for send.

func SetHostname Uses

func SetHostname(host string) error

func StartTimer Uses

func StartTimer(metric string, ts opentsdb.TagSet) func()

StartTimer records the current time, and returns a function you can call to record the end of your action.

Typical usage would be:

done := collect.StartTimer("myMetric", opentsdb.TagSet{})

Package collect imports 22 packages (graph) and is imported by 24 packages. Updated 2018-02-25. Refresh now. Tools for package owners.