theist / statsd-logger

StatsD logging server for development - standalone or embedded

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

StatsD Logger for Go

Build Status GoDoc Go Report Card GitHub tag Docker Automated build

Simple logger for StatsD metrics, adapted from http://lee.hambley.name/2013/01/26/dirt-simple-statsd-server-for-local-development.html to make it easier to debug metrics in development. Beyond converting it from Ruby to Go, also add colour output and rendering of DogStatsd tags.

Usage

CLI

go get -u github.com/catkins/statsd-logger/cmd/statsd-logger
statsd-logger

# send it some metrics using a library or (low-tech) netcat
echo -n "my.awesome_counter:1|c#cool:tags,another_tag:with_value" | nc -u -w0 localhost 8125

Library

go get -u github.com/catkins/statsd-logger

Embed it into an existing application

package main

import (
	"os"
	"os/signal"
	"syscall"

	"github.com/catkins/statsd-logger"
)

func main() {
	shutdownChan := make(chan os.Signal)
	signal.Notify(shutdownChan, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)

	server, err := statsdLogger.New("0.0.0.0:8125")
	if err != nil {
		panic(err)
	}

	go func() {
		server.Listen()
	}()

	<-shutdownChan
	server.Close()
}

Docker

statsd-logger can also log StatsD metrics being being sent to udp:8125 on running docker containers without modification.

# log metrics for container named "myapp"
docker run --rm -it --net="container:myapp" catkins/statsd-logger

Licence

The MIT License

Copyright 2017 Chris Atkins

About

StatsD logging server for development - standalone or embedded

License:MIT License


Languages

Language:Go 96.5%Language:Shell 3.5%