日志服务支持通过 SDK 检索采集到服务端的日志数据。本文档通过示例代码演示如何通过 Go SDK 检索分析日志。
已安装日志服务 Go SDK。更多信息,请参见安装 Go SDK。
已执行以下命令安装 proto 依赖包。
go get -u github.com/gogo/protobuf/proto
已添加 VOLCENGINE_ACCESS_KEY_ID 等环境变量。环境变量的配置方式请参考配置身份认证信息。
注意
推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。
已采集到日志数据并设置了索引。您可以通过控制台方式设置索引,操作步骤请参考配置索引,也可以通过 CreateIndex API 设置索引,示例代码请参考通过 Go SDK 创建基础资源。
日志服务支持通过 SDK 调用 SearchLogs API 检索分析日志数据。检索分析功能的使用限制可参考查询分析限制,检索分析语句的语法可参考检索语法和分析语法。本文档以返回所有日志数据为例,演示如何通过 SDK 检索分析日志数据的操作步骤。
package tls import ( "fmt" "github.com/volcengine/volc-sdk-golang/service/tls" ) func main() { // 初始化客户端,推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免 AccessKey 硬编码引发数据安全风险。详细说明请参考https://www.volcengine.com/docs/6470/1166455 // 使用 STS 时,ak 和 sk 均使用临时密钥,且设置 VOLCENGINE_TOKEN;不使用 STS 时,VOLCENGINE_TOKEN 部分传空 client := tls.NewClient(os.Getenv("VOLCENGINE_ENDPOINT"), os.Getenv("VOLCENGINE_ACCESS_KEY_ID"), os.Getenv("VOLCENGINE_ACCESS_KEY_SECRET"), os.Getenv("VOLCENGINE_TOKEN"), os.Getenv("VOLCENGINE_REGION")) // 查询分析日志数据 // 请根据您的需要,填写TopicId、Query、StartTime、EndTime、Limit等参数值 // SearchLogs API的请求参数规范和限制请参阅https://www.volcengine.com/docs/6470/112195 resp, err := client.SearchLogsV2(&tls.SearchLogsRequest{ TopicID: "TopicId", Query: "*", StartTime: 1346457600000, EndTime: 1630454400000, Limit: 20, }) if err != nil { // 处理错误 fmt.Println(err.Error()) } // 打印SearchLogs接口返回值中的部分基本信息 // 请根据您的需要,自行处理返回值中的其他信息 fmt.Println(resp.Status) fmt.Println(resp.HitCount) fmt.Println(resp.Count) fmt.Println(resp.Analysis) }
通过 SDK 发送调用 API 的请求以后,您会收到服务端的响应,如果响应中包含 200 以外的状态码,表示接口调用失败。您可以参考各个 API 的文档查看对应的错误码信息。
本示例中涉及到的 API 接口如下。您可以参考 API 文档查看对应接口的详细信息。
API | 说明 |
---|---|
调用 SearchLogs 接口检索日志。 |
关于日志服务检索分析的完整示例代码,请参考 TLS Go SDK Demo on GitHub。