Grohl(格罗尔)
Grohl 是一个有思想的库,用于收集有关应用程序在生产环境中的运行方式的指标和数据。 它通过在 key=value 结构中写入日志来实现。 它还提供用于将异常或指标发送到外部服务的接口。
这是 asenchi/scrolls 的 Go 版本。 该库的名称来自将单词“go”和“scrolls”混在一起。 此外,Dave Grohl(Foo Fighters 的主唱)也热衷于事件驱动指标。
有关该库背后的原理,请参见此博客文章。
安装
$ go get github.com/technoweenie/grohl
然后导入它
import "github.com/technoweenie/grohl"
用法
Grohl 几乎不需要任何准备。默认情况下,所有内容都写入到 STDOUT。下面是一个快速的 http 服务器示例。
package main import ( "github.com/technoweenie/grohl" "log" "net/http" ) func main() { grohl.AddContext("app", "example") http.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { grohl.Log(grohl.Data{"path": r.URL.Path}) fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) }) log.Fatal(http.ListenAndServe(":8080", nil)) }
这会在每个HTTP请求上写一条日志,例如:
now=2013-10-14T15:04:05-0700 app=example path=/foo
有关指标、statsd 集成和自定义错误报告器的详细信息,请参见 godocs。
关于补丁/请求请求的注释
- 在 GitHub 上分叉该项目。
- 进行功能补充或错误修复。
- 为此添加测试。 这很重要,因此我不会在以后的版本中无意间破坏它。
- 提交,不要弄乱 rakefile、版本或历史记录。 (如果你想有自己的版本,这很好但是在提交的时候我可以忽略 bump版本)
- 给我发送拉请求。主题分支的额外加分。
(The first version translated by vz on 2020.08.01)