https://github.com/bsm/rucksack
https://github.com/bsm/rucksack
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/bsm/rucksack
- Owner: bsm
- License: apache-2.0
- Created: 2016-04-14T08:04:17.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2022-06-06T10:06:10.000Z (about 4 years ago)
- Last Synced: 2025-04-13T05:54:46.530Z (about 1 year ago)
- Language: Go
- Size: 90.8 KB
- Stars: 0
- Watchers: 5
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rucksack
[](https://travis-ci.org/bsm/rucksack)
A collection of logging/instrumenting tools for building Go apps
## Basics
Package aims to simplify logging and instrumenting, so:
- package exposes functions, that work with default logger/instrumenter (which is usually not exposed)
- package is configured with ENV vars, like `LOG_TAGS=app:program go run program.go`
Recommended way to use:
- import and use `"github.com/bsm/rucksack/log"` or `"github.com/bsm/rucksack/met"` in non-main packages
- import extension packages like `_ "github.com/bsm/rucksack/met/datadog"` only in main package
## Logging
[](https://godoc.org/github.com/bsm/rucksack/log)
```go
import "github.com/bsm/rucksack/log"
```
ENV:
- `LOG_NAME=projectname` (aliased as `APP_NAME`)
- `LOG_TAGS=foo:bar,baz:qux` (aliased as `APP_TAGS`)
- `LOG_LEVEL=INFO`
- `LOG_STACK=true` (any non-empty value will enable stack logging; this is an [expensive option](https://godoc.org/go.uber.org/zap#Stack))
Recommended way to use:
```go
package main
import "github.com/bsm/rucksack/log"
func main() {
defer log.Sync()
defer log.ErrorOnPanic()
// do stuff
}
```
## Metrics
[](https://godoc.org/github.com/bsm/rucksack/met)
```go
import (
"github.com/bsm/rucksack/met"
_ "github.com/bsm/rucksack/met/datadog"
_ "github.com/bsm/rucksack/met/runtime"
)
```
ENV:
- `MET_NAME=projectname` (required; aliased as `APP_NAME`)
- `MET_TAGS=foo:bar,baz:qux` (aliased as `APP_TAGS`)
With `_ "github.com/bsm/rucksack/met/datadog"` imported:
- `MET_DATADOG=datadog-token` (required)
- `MET_DATADOG_DISABLE_COMPRESSION=true` (optional, disables compression when sending data to DataDog API)
With `_ "github.com/bsm/rucksack/met/runtime"` imported:
- `MET_RUNTIME=mem,heap,gc` (used set is equivalent to `all`)
Optional ENV:
- `HOST=hostname` (auto-detected)
- `PORT=8080` (optional)