本库是一个用于日志收集的 Go 语言组件库,支持异步和同步发送日志数据到指定的OpenObserve。该库提供了灵活的配置选项,包括基本认证、授权、请求超时、索引名称等。
go get -u github.com/iamxvbaba/openobserve以下是一个简单的使用示例:
package main
import (
    "context"
    "github.com/iamxvbaba/openobserve"
    "time"
)
func main() {
    // 创建一个上下文
    ctx, cancel := context.WithCancel(context.Background())
    defer func() {
        cancel()
        // 确保缓存区数据能发送完成
        time.Sleep(3 * time.Second)
    }
    // 创建 OpenObLog 实例
    log := openobserve.New(ctx, "http://localhost:5080", 
        openobserve.WithFullSize(100),
        openobserve.WithRequestTimeout(time.Second * 5),
        openobserve.WithIndexName("logs", true),
        openobserve.WithAuthorization("token"))
    // 异步发送日志数据
    log.Send(map[string]any{
			"_timestamp": time.Now().UnixMicro(),
			"name":       "xuhui",
			"message":    "你好",
			"log":        "ip-10-2-56-221.us-east-2.compute.internal",
			"i":          i,
		})
}提供了以下配置选项:
WithBasicAuth: 使用用户名和密码进行基本认证。WithAuthorization: 使用 token 进行授权。WithFullSize: 指定达到的数量时马上请求。WithWaitTime: 每过指定时间发起请求。WithRequestTimeout: 设置 HTTP 请求超时时间。WithIndexName: 设置索引名称,并指定是否按天切割索引。WithCompress: 对请求报文进行 gzip 压缩。
提供了以下方法:
SendSync: 同步发送日志数据。Send: 异步发送日志数据。
- 使用前请确保你的日志服务地址和认证信息已正确配置。
 - 请根据实际需求设置合适的配置选项和参数。