最近更新时间:2024.04.15 11:37:02
首次发布时间:2023.12.28 21:21:53
阅读本文,您可以获取 Go SDK 统计分析的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的全部参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Go SDK 的安装及初始化操作
本节为您介绍统计分析相关接口的功能和调用示例。
您可以调用 DescribeLiveRegionData 接口查询区域标识符。详细的参数说明可参见 DescribeLiveRegionData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) resp, err := service.DescribeLiveRegionData(context.Background()) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveISPData 接口查询运营商标识符。详细的参数说明可参见 DescribeLiveISPData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) resp, err := service.DescribeLiveISPData(context.Background()) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLivePushStreamMetrics 接口查询单路推流监控数据。详细的参数说明可参见 DescribeLivePushStreamMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLivePushStreamMetricsBody{} //推流域名。 body.Domain = "example.com" //应用名称。 body.App = "example_app" //流名称。 body.Stream = "example_stream" //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:00:00+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 5:5 秒; </li> // <li> 30:(默认值)30 秒。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 5 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLivePushStreamMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveBatchPushStreamMetrics 接口查询多路推流监控数据。详细的参数说明可参见 DescribeLiveBatchPushStreamMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveBatchPushStreamMetricsBody{} //推流域名。 body.Domain = "example.com" //应用名称。 var bodyApp *string var bodyAppValue string = "example.com" bodyApp = &bodyAppValue body.App = bodyApp //流名称。 // note: // 使用 `Stream` 构造请求时,需同时定义 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 5:5 秒; </li> // <li> 30:30 秒; </li> // <li> 60:(默认值)1 分钟。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 5 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLiveBatchPushStreamMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveBatchPushStreamAvgMetrics 接口查询多路推流监控数据平均值。详细的参数说明可参见 DescribeLiveBatchPushStreamAvgMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveBatchPushStreamAvgMetricsBody{} //推流域名。 body.Domain = "example.com" //应用名称。 var bodyApp *string var bodyAppValue string = "example.com" bodyApp = &bodyAppValue body.App = bodyApp //流名称。 // note: // 使用 `Stream` 构造请求时,需同时定义 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 5:5 秒; </li> // <li> 30:30 秒; </li> // <li> 60:(默认值)1 分钟。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 5 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLiveBatchPushStreamAvgMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveSourceStreamMetrics 接口查询单路回源流监控数据。详细的参数说明可参见 DescribeLiveSourceStreamMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveSourceStreamMetricsBody{} //拉流域名。 body.Domain = "example.com" //应用名称。 body.App = "example_app" //流名称。 body.Stream = "example_stream" //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 30:(默认值)30 秒。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 30 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLiveSourceStreamMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveBatchSourceStreamMetrics 接口查询多路回源流监控数据。详细的参数说明可参见 DescribeLiveBatchSourceStreamMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveBatchSourceStreamMetricsBody{} //拉流域名。 body.Domain = "example.com" //应用名称。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //流名称。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 30:30 秒; </li> // <li> 60:(默认值)1 分钟。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 30 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLiveBatchSourceStreamMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveBatchSourceStreamAvgMetrics 接口查询多路回源流监控数据平均值。详细的参数说明可参见 DescribeLiveBatchSourceStreamAvgMetrics 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveBatchSourceStreamAvgMetricsBody{} //拉流域名。 body.Domain = "example.com" //应用名称。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //流名称。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 // note: // 单次查询最大时间跨度为 1 天,历史查询最大时间范围为 366 天。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 30:30 秒; </li> // <li> 60:(默认值)1 分钟。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 30 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation resp, err := service.DescribeLiveBatchSourceStreamAvgMetrics(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveStreamSessionData 接口查询直播流请求数和在线人数。详细的参数说明可参见 DescribeLiveStreamSessionData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveStreamSessionDataBody{} //域名列表,缺省情况表示该用户的所有推拉流域名。 // note: // `DomainList` 和 `Domain` 传且仅传一个。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) body.DomainList = bodyDomainList //查询流粒度数据时的域名参数。 // note: // 使用 `Domain` 构造请求时,需要同时定义 `App` 和 `Stream` 参数,不可缺省。 var bodyDomain *string var bodyDomainValue string = "example.com" bodyDomain = &bodyDomainValue body.Domain = bodyDomain //查询流粒度数据时的应用名。 // note: // 使用 `App` 构造请求时,需要同时定义 `Domain` 和 `Stream` 参数,不可缺省。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //查询流粒度数据时的流名称。 // note: // 使用 `Stream` 构造请求时,需要同时定义 `Domain` 和 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //请求的 Referer 信息。 bodyRefererList := []*string{} var bodyRefererList0 *string var bodyRefererList0Value string = "www.test.com" bodyRefererList0 = &bodyRefererList0Value bodyRefererList = append(bodyRefererList, bodyRefererList0) body.RefererList = bodyRefererList //推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。 // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li> // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li> // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li> // <li> RTM:Real Time Media,超低延时直播协议。 </li> // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li> // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li> // note: // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。 bodyProtocolList := []*string{} var bodyProtocolList0 *string var bodyProtocolList0Value string = "HTTP-FLV" bodyProtocolList0 = &bodyProtocolList0Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList0) var bodyProtocolList1 *string var bodyProtocolList1Value string = "RTMP" bodyProtocolList1 = &bodyProtocolList1Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList1) body.ProtocolList = bodyProtocolList //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。 describeLiveStreamSessionDataBodyRegionListItem := &live_v20230101.DescribeLiveStreamSessionDataBodyRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLiveStreamSessionDataBodyRegionListItemArea *string var describeLiveStreamSessionDataBodyRegionListItemAreaValue string = "CN" describeLiveStreamSessionDataBodyRegionListItemArea = &describeLiveStreamSessionDataBodyRegionListItemAreaValue describeLiveStreamSessionDataBodyRegionListItem.Area = describeLiveStreamSessionDataBodyRegionListItemArea //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLiveStreamSessionDataBodyRegionListItemCountry *string var describeLiveStreamSessionDataBodyRegionListItemCountryValue string = "CN" describeLiveStreamSessionDataBodyRegionListItemCountry = &describeLiveStreamSessionDataBodyRegionListItemCountryValue describeLiveStreamSessionDataBodyRegionListItem.Country = describeLiveStreamSessionDataBodyRegionListItemCountry //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLiveStreamSessionDataBodyRegionListItemProvince *string var describeLiveStreamSessionDataBodyRegionListItemProvinceValue string = "beijing" describeLiveStreamSessionDataBodyRegionListItemProvince = &describeLiveStreamSessionDataBodyRegionListItemProvinceValue describeLiveStreamSessionDataBodyRegionListItem.Province = describeLiveStreamSessionDataBodyRegionListItemProvince body.RegionList = append(body.RegionList,describeLiveStreamSessionDataBodyRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 003 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> ISP:运营商; </li> // <li> Protocol:推拉流协议; </li> // <li> Referer:请求的 Referer 信息。 </li> // note: // 配置数据拆分维度时,对应的维度参数需传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLiveStreamSessionData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveMetricTrafficData 接口查询直播流或域名的流量监控数据。详细的参数说明可参见 DescribeLiveMetricTrafficData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveMetricTrafficDataBody{} //域名列表,缺省情况表示当前用户的所有推拉流域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) body.DomainList = bodyDomainList //应用名称。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //流名称。 // note: // 使用 `Stream` 构造请求时,需同时定义 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。 // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li> // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li> // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li> // <li> RTM:Real Time Media,超低延时直播协议。 </li> // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li> // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li> // note: // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。 bodyProtocolList := []*string{} var bodyProtocolList0 *string var bodyProtocolList0Value string = "HTTP-FLV" bodyProtocolList0 = &bodyProtocolList0Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList0) var bodyProtocolList1 *string var bodyProtocolList1Value string = "RTMP" bodyProtocolList1 = &bodyProtocolList1Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList1) body.ProtocolList = bodyProtocolList //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLiveMetricTrafficDataBodyRegionListItem := &live_v20230101.DescribeLiveMetricTrafficDataBodyRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLiveMetricTrafficDataBodyRegionListItemArea *string var describeLiveMetricTrafficDataBodyRegionListItemAreaValue string = "CN" describeLiveMetricTrafficDataBodyRegionListItemArea = &describeLiveMetricTrafficDataBodyRegionListItemAreaValue describeLiveMetricTrafficDataBodyRegionListItem.Area = describeLiveMetricTrafficDataBodyRegionListItemArea //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLiveMetricTrafficDataBodyRegionListItemCountry *string var describeLiveMetricTrafficDataBodyRegionListItemCountryValue string = "CN" describeLiveMetricTrafficDataBodyRegionListItemCountry = &describeLiveMetricTrafficDataBodyRegionListItemCountryValue describeLiveMetricTrafficDataBodyRegionListItem.Country = describeLiveMetricTrafficDataBodyRegionListItemCountry //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLiveMetricTrafficDataBodyRegionListItemProvince *string var describeLiveMetricTrafficDataBodyRegionListItemProvinceValue string = "beijing" describeLiveMetricTrafficDataBodyRegionListItemProvince = &describeLiveMetricTrafficDataBodyRegionListItemProvinceValue describeLiveMetricTrafficDataBodyRegionListItem.Province = describeLiveMetricTrafficDataBodyRegionListItemProvince body.RegionList = append(body.RegionList,describeLiveMetricTrafficDataBodyRegionListItem) //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLiveMetricTrafficDataBodyUserRegionListItem := &live_v20230101.DescribeLiveMetricTrafficDataBodyUserRegionListItem{} //大区,映射关系请参见区域映射 var describeLiveMetricTrafficDataBodyUserRegionListItemArea *string var describeLiveMetricTrafficDataBodyUserRegionListItemAreaValue string = "CN" describeLiveMetricTrafficDataBodyUserRegionListItemArea = &describeLiveMetricTrafficDataBodyUserRegionListItemAreaValue describeLiveMetricTrafficDataBodyUserRegionListItem.Area = describeLiveMetricTrafficDataBodyUserRegionListItemArea //国家,映射关系请参见区域映射。如果按国家筛选,需要同时传入 Area 和 Country。 var describeLiveMetricTrafficDataBodyUserRegionListItemCountry *string var describeLiveMetricTrafficDataBodyUserRegionListItemCountryValue string = "CN" describeLiveMetricTrafficDataBodyUserRegionListItemCountry = &describeLiveMetricTrafficDataBodyUserRegionListItemCountryValue describeLiveMetricTrafficDataBodyUserRegionListItem.Country = describeLiveMetricTrafficDataBodyUserRegionListItemCountry //国内为省,国外暂不支持该参数,映射关系请参见区域映射。如果按省筛选,需要同时传入 Area、Country 和 Province。 var describeLiveMetricTrafficDataBodyUserRegionListItemProvince *string var describeLiveMetricTrafficDataBodyUserRegionListItemProvinceValue string = "beijing" describeLiveMetricTrafficDataBodyUserRegionListItemProvince = &describeLiveMetricTrafficDataBodyUserRegionListItemProvinceValue describeLiveMetricTrafficDataBodyUserRegionListItem.Province = describeLiveMetricTrafficDataBodyUserRegionListItemProvince body.UserRegionList = append(body.UserRegionList,describeLiveMetricTrafficDataBodyUserRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 300 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> Protocol:推拉流协议; </li> // <li> ISP:运营商。 </li> // note: // 配置数据拆分维度时,对应的维度参数需传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLiveMetricTrafficData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveMetricBandwidthData 接口查询直播流或域名的带宽监控数据。详细的参数说明可参见 DescribeLiveMetricBandwidthData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveMetricBandwidthDataBody{} //域名列表,缺省情况表示当前用户的所有推拉流域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) body.DomainList = bodyDomainList //查询流粒度数据时的应用名称。 // note: // 使用 `App` 构造请求时,需同时定义 `Stream` 参数,不可缺省。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //查询流粒度数据时的流名称参数。 // note: // 使用 `Stream` 构造请求时,需同时定义 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //推拉流协议,缺省情况下表示所有协议类型,支持的协议如下所示。 // <li> HTTP-FLV:基于 HTTP 协议的推拉流协议,使用 FLV 格式传输视频格式。 </li> // <li> HTTP-HLS:基于 HTTP 协议的推拉流协议,使用 TS 格式传输视频格式。 </li> // <li> RTMP:Real Time Message Protocol,实时信息传输协议。 </li> // <li> RTM:Real Time Media,超低延时直播协议。 </li> // <li> SRT:Secure Reliable Transport,安全可靠传输协议。 </li> // <li> QUIC:Quick UDP Internet Connections,一种基于 UDP 的全新的低延时互联网传输协议。 </li> // note: // 如果查询推拉流协议为 QUIC,不能同时查询其他协议。 bodyProtocolList := []*string{} var bodyProtocolList0 *string var bodyProtocolList0Value string = "HTTP-FLV" bodyProtocolList0 = &bodyProtocolList0Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList0) var bodyProtocolList1 *string var bodyProtocolList1Value string = "RTMP" bodyProtocolList1 = &bodyProtocolList1Value bodyProtocolList = append(bodyProtocolList, bodyProtocolList1) body.ProtocolList = bodyProtocolList //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLiveMetricBandwidthDataBodyRegionListItem := &live_v20230101.DescribeLiveMetricBandwidthDataBodyRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLiveMetricBandwidthDataBodyRegionListItemArea *string var describeLiveMetricBandwidthDataBodyRegionListItemAreaValue string = "CN" describeLiveMetricBandwidthDataBodyRegionListItemArea = &describeLiveMetricBandwidthDataBodyRegionListItemAreaValue describeLiveMetricBandwidthDataBodyRegionListItem.Area = describeLiveMetricBandwidthDataBodyRegionListItemArea //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLiveMetricBandwidthDataBodyRegionListItemCountry *string var describeLiveMetricBandwidthDataBodyRegionListItemCountryValue string = "CN" describeLiveMetricBandwidthDataBodyRegionListItemCountry = &describeLiveMetricBandwidthDataBodyRegionListItemCountryValue describeLiveMetricBandwidthDataBodyRegionListItem.Country = describeLiveMetricBandwidthDataBodyRegionListItemCountry //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLiveMetricBandwidthDataBodyRegionListItemProvince *string var describeLiveMetricBandwidthDataBodyRegionListItemProvinceValue string = "beijing" describeLiveMetricBandwidthDataBodyRegionListItemProvince = &describeLiveMetricBandwidthDataBodyRegionListItemProvinceValue describeLiveMetricBandwidthDataBodyRegionListItem.Province = describeLiveMetricBandwidthDataBodyRegionListItemProvince body.RegionList = append(body.RegionList,describeLiveMetricBandwidthDataBodyRegionListItem) //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLiveMetricBandwidthDataBodyUserRegionListItem := &live_v20230101.DescribeLiveMetricBandwidthDataBodyUserRegionListItem{} //大区,映射关系请参见区域映射 var describeLiveMetricBandwidthDataBodyUserRegionListItemArea *string var describeLiveMetricBandwidthDataBodyUserRegionListItemAreaValue string = "CN" describeLiveMetricBandwidthDataBodyUserRegionListItemArea = &describeLiveMetricBandwidthDataBodyUserRegionListItemAreaValue describeLiveMetricBandwidthDataBodyUserRegionListItem.Area = describeLiveMetricBandwidthDataBodyUserRegionListItemArea //国家,映射关系请参见区域映射。如果按国家筛选,需要同时传入 Area 和 Country。 var describeLiveMetricBandwidthDataBodyUserRegionListItemCountry *string var describeLiveMetricBandwidthDataBodyUserRegionListItemCountryValue string = "CN" describeLiveMetricBandwidthDataBodyUserRegionListItemCountry = &describeLiveMetricBandwidthDataBodyUserRegionListItemCountryValue describeLiveMetricBandwidthDataBodyUserRegionListItem.Country = describeLiveMetricBandwidthDataBodyUserRegionListItemCountry //国内为省,国外暂不支持该参数,映射关系请参见区域映射。如果按省筛选,需要同时传入 Area、Country 和 Province。 var describeLiveMetricBandwidthDataBodyUserRegionListItemProvince *string var describeLiveMetricBandwidthDataBodyUserRegionListItemProvinceValue string = "beijing" describeLiveMetricBandwidthDataBodyUserRegionListItemProvince = &describeLiveMetricBandwidthDataBodyUserRegionListItemProvinceValue describeLiveMetricBandwidthDataBodyUserRegionListItem.Province = describeLiveMetricBandwidthDataBodyUserRegionListItemProvince body.UserRegionList = append(body.UserRegionList,describeLiveMetricBandwidthDataBodyUserRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 300 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> Protocol:推拉流协议; </li> // <li> ISP:运营商。 </li> // note: // 配置数据拆分维度时,对应的维度参数需传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLiveMetricBandwidthData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveSourceTrafficData 接口查询直播流或域名的回源流量监控数据。详细的参数说明可参见 DescribeLiveSourceTrafficData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveSourceTrafficDataBody{} //拉流域名列表,缺省情况表示当前用户的所有推拉流域名。 // note: // `DomainList` 和 `Domain` 传且仅传一个。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) var bodyDomainList1 *string var bodyDomainList1Value string = "example2.com" bodyDomainList1 = &bodyDomainList1Value bodyDomainList = append(bodyDomainList, bodyDomainList1) body.DomainList = bodyDomainList //查询流粒度数据时的域名,支持拉流域名。 // note: // 使用 `Domain` 构造请求时,需要同时定义 `App` 和 `Stream` 参数,不可缺省。 var bodyDomain *string var bodyDomainValue string = "example.com" bodyDomain = &bodyDomainValue body.Domain = bodyDomain //查询流粒度数据时的应用名称。 // note: // 使用 `App` 构造请求时,需要同时定义 `Domain` 和 `Stream` 参数,不可缺省。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //查询流粒度数据时的流名称。 // note: // 使用 `Stream` 构造请求时,需要同时定义 `Domain` 和 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 describeLiveSourceTrafficDataBodyUserRegionListItem := &live_v20230101.DescribeLiveSourceTrafficDataBodyUserRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLiveSourceTrafficDataBodyUserRegionListItemArea *string var describeLiveSourceTrafficDataBodyUserRegionListItemAreaValue string = "CN" describeLiveSourceTrafficDataBodyUserRegionListItemArea = &describeLiveSourceTrafficDataBodyUserRegionListItemAreaValue describeLiveSourceTrafficDataBodyUserRegionListItem.Area = describeLiveSourceTrafficDataBodyUserRegionListItemArea //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLiveSourceTrafficDataBodyUserRegionListItemCountry *string var describeLiveSourceTrafficDataBodyUserRegionListItemCountryValue string = "CN" describeLiveSourceTrafficDataBodyUserRegionListItemCountry = &describeLiveSourceTrafficDataBodyUserRegionListItemCountryValue describeLiveSourceTrafficDataBodyUserRegionListItem.Country = describeLiveSourceTrafficDataBodyUserRegionListItemCountry //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLiveSourceTrafficDataBodyUserRegionListItemProvince *string var describeLiveSourceTrafficDataBodyUserRegionListItemProvinceValue string = "beijing" describeLiveSourceTrafficDataBodyUserRegionListItemProvince = &describeLiveSourceTrafficDataBodyUserRegionListItemProvinceValue describeLiveSourceTrafficDataBodyUserRegionListItem.Province = describeLiveSourceTrafficDataBodyUserRegionListItemProvince body.UserRegionList = append(body.UserRegionList,describeLiveSourceTrafficDataBodyUserRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 300 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> ISP:运营商。 </li> // note: // 配置数据拆分维度时,对应的维度参数传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLiveSourceTrafficData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveSourceBandwidthData 接口查询直播流或域名的回源带宽监控数据。详细的参数说明可参见 DescribeLiveSourceBandwidthData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveSourceBandwidthDataBody{} //拉流域名列表,缺省情况表示当前用户的所有推拉流域名。 // note: // `DomainList` 和 `Domain` 传且仅传一个。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) var bodyDomainList1 *string var bodyDomainList1Value string = "example2.com" bodyDomainList1 = &bodyDomainList1Value bodyDomainList = append(bodyDomainList, bodyDomainList1) body.DomainList = bodyDomainList //查询流粒度数据时的域名,支持填写拉流域名。 // note: // 使用 `Domain` 构造请求时,需要同时定义 `App` 和 `Stream` 参数,不可缺省。 var bodyDomain *string var bodyDomainValue string = "example.com" bodyDomain = &bodyDomainValue body.Domain = bodyDomain //查询流粒度数据时的应用名称。 // note: // 使用 `App` 构造请求时,需要同时定义 `Domain` 和 `Stream` 参数,不可缺省。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //查询流粒度数据时的流名称。 // note: // 使用 `Stream` 构造请求时,需要同时定义 `Domain` 和 `App` 参数,不可缺省。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 describeLiveSourceBandwidthDataBodyUserRegionListItem := &live_v20230101.DescribeLiveSourceBandwidthDataBodyUserRegionListItem{} //区域信息的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLiveSourceBandwidthDataBodyUserRegionListItemArea *string var describeLiveSourceBandwidthDataBodyUserRegionListItemAreaValue string = "CN" describeLiveSourceBandwidthDataBodyUserRegionListItemArea = &describeLiveSourceBandwidthDataBodyUserRegionListItemAreaValue describeLiveSourceBandwidthDataBodyUserRegionListItem.Area = describeLiveSourceBandwidthDataBodyUserRegionListItemArea //区域信息的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLiveSourceBandwidthDataBodyUserRegionListItemCountry *string var describeLiveSourceBandwidthDataBodyUserRegionListItemCountryValue string = "CN" describeLiveSourceBandwidthDataBodyUserRegionListItemCountry = &describeLiveSourceBandwidthDataBodyUserRegionListItemCountryValue describeLiveSourceBandwidthDataBodyUserRegionListItem.Country = describeLiveSourceBandwidthDataBodyUserRegionListItemCountry //区域信息的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLiveSourceBandwidthDataBodyUserRegionListItemProvince *string var describeLiveSourceBandwidthDataBodyUserRegionListItemProvinceValue string = "beijing" describeLiveSourceBandwidthDataBodyUserRegionListItemProvince = &describeLiveSourceBandwidthDataBodyUserRegionListItemProvinceValue describeLiveSourceBandwidthDataBodyUserRegionListItem.Province = describeLiveSourceBandwidthDataBodyUserRegionListItemProvince body.UserRegionList = append(body.UserRegionList,describeLiveSourceBandwidthDataBodyUserRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 300 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> ISP:运营商。 </li> // note: // 配置数据拆分维度时,对应的维度参数传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "20" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLiveSourceBandwidthData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLivePlayStatusCodeData 接口查询域名状态码占比。详细的参数说明可参见 DescribeLivePlayStatusCodeData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLivePlayStatusCodeDataBody{} //域名列表,缺省情况下表示当前用户的所有推拉流域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) var bodyDomainList1 *string var bodyDomainList1Value string = "example2.com" bodyDomainList1 = &bodyDomainList1Value bodyDomainList = append(bodyDomainList, bodyDomainList1) body.DomainList = bodyDomainList //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //CDN 节点 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLivePlayStatusCodeDataBodyRegionListItem := &live_v20230101.DescribeLivePlayStatusCodeDataBodyRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLivePlayStatusCodeDataBodyRegionListItemArea *string var describeLivePlayStatusCodeDataBodyRegionListItemAreaValue string = "CN" describeLivePlayStatusCodeDataBodyRegionListItemArea = &describeLivePlayStatusCodeDataBodyRegionListItemAreaValue describeLivePlayStatusCodeDataBodyRegionListItem.Area = describeLivePlayStatusCodeDataBodyRegionListItemArea //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLivePlayStatusCodeDataBodyRegionListItemCountry *string var describeLivePlayStatusCodeDataBodyRegionListItemCountryValue string = "CN" describeLivePlayStatusCodeDataBodyRegionListItemCountry = &describeLivePlayStatusCodeDataBodyRegionListItemCountryValue describeLivePlayStatusCodeDataBodyRegionListItem.Country = describeLivePlayStatusCodeDataBodyRegionListItemCountry //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLivePlayStatusCodeDataBodyRegionListItemProvince *string var describeLivePlayStatusCodeDataBodyRegionListItemProvinceValue string = "beijing" describeLivePlayStatusCodeDataBodyRegionListItemProvince = &describeLivePlayStatusCodeDataBodyRegionListItemProvinceValue describeLivePlayStatusCodeDataBodyRegionListItem.Province = describeLivePlayStatusCodeDataBodyRegionListItemProvince body.RegionList = append(body.RegionList,describeLivePlayStatusCodeDataBodyRegionListItem) //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 // note: // 参数 `RegionList`和`UserRegionList` 不支持同时传入。 describeLivePlayStatusCodeDataBodyUserRegionListItem := &live_v20230101.DescribeLivePlayStatusCodeDataBodyUserRegionListItem{} //大区,映射关系请参见区域映射 var describeLivePlayStatusCodeDataBodyUserRegionListItemArea *string var describeLivePlayStatusCodeDataBodyUserRegionListItemAreaValue string = "CN" describeLivePlayStatusCodeDataBodyUserRegionListItemArea = &describeLivePlayStatusCodeDataBodyUserRegionListItemAreaValue describeLivePlayStatusCodeDataBodyUserRegionListItem.Area = describeLivePlayStatusCodeDataBodyUserRegionListItemArea //国家,映射关系请参见区域映射。如果按国家筛选,需要同时传入 Area 和 Country。 var describeLivePlayStatusCodeDataBodyUserRegionListItemCountry *string var describeLivePlayStatusCodeDataBodyUserRegionListItemCountryValue string = "CN" describeLivePlayStatusCodeDataBodyUserRegionListItemCountry = &describeLivePlayStatusCodeDataBodyUserRegionListItemCountryValue describeLivePlayStatusCodeDataBodyUserRegionListItem.Country = describeLivePlayStatusCodeDataBodyUserRegionListItemCountry //国内为省,国外暂不支持该参数,映射关系请参见区域映射。如果按省筛选,需要同时传入 Area、Country 和 Province。 var describeLivePlayStatusCodeDataBodyUserRegionListItemProvince *string var describeLivePlayStatusCodeDataBodyUserRegionListItemProvinceValue string = "beijing" describeLivePlayStatusCodeDataBodyUserRegionListItemProvince = &describeLivePlayStatusCodeDataBodyUserRegionListItemProvinceValue describeLivePlayStatusCodeDataBodyUserRegionListItem.Province = describeLivePlayStatusCodeDataBodyUserRegionListItemProvince body.UserRegionList = append(body.UserRegionList,describeLivePlayStatusCodeDataBodyUserRegionListItem) //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-04-14T00:00:00+08:00" //聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:(默认值)1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 300 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名; </li> // <li> ISP:运营商。 </li> // note: // 配置数据拆分维度时,对应的维度参数需传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField resp, err := service.DescribeLivePlayStatusCodeData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeIpInfo 接口查询 IP 地址归属的 CDN 节点。详细的参数说明可参见 DescribeIpInfo 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeIpInfoBody{} //待查询的 IP 地址列表。支持 IPv4 和 IPv6 地址,一次最多查询 50 个 IP 地址。 bodyIPs := []string{} var bodyIPs0 string var bodyIPs0Value string = "186.199.***.1" bodyIPs0 = bodyIPs0Value bodyIPs = append(bodyIPs, bodyIPs0) body.IPs = bodyIPs resp, err := service.DescribeIpInfo(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLiveStreamCountData 接口查询峰值流数。详细的参数说明可参见 DescribeLiveStreamCountData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLiveStreamCountDataBody{} //域名列表,缺省情况表示当前用户的所有推拉流域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "exmaple.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) var bodyDomainList1 *string var bodyDomainList1Value string = "example2.com" bodyDomainList1 = &bodyDomainList1Value bodyDomainList = append(bodyDomainList, bodyDomainList1) body.DomainList = bodyDomainList //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天; </li> // <li> 86400:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 60 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名。 </li> // note: // 配置数据拆分维度时,对应的维度参数传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField //流类型,缺省情况下表示全部类型,支持的流类型取值如下。 // <li> push:推流; </li> // <li> relay-source:回源流; </li> // <li> transcode:转码流。 </li> bodyStreamType := []*string{} var bodyStreamType0 *string var bodyStreamType0Value string = "push" bodyStreamType0 = &bodyStreamType0Value bodyStreamType = append(bodyStreamType, bodyStreamType0) body.StreamType = bodyStreamType resp, err := service.DescribeLiveStreamCountData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLivePushStreamCountData 接口查询推流峰值流数。详细的参数说明可参见 DescribeLivePushStreamCountData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLivePushStreamCountDataBody{} //域名列表,缺省情况表示当前用户的所有推流域名和拉流域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "example1.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) var bodyDomainList1 *string var bodyDomainList1Value string = "example2.com" bodyDomainList1 = &bodyDomainList1Value bodyDomainList = append(bodyDomainList, bodyDomainList1) body.DomainList = bodyDomainList //查询的开始时间,RFC3339 格式的 UTC 时间,精度为秒。 body.StartTime = "2021-08-16T00:00:00+08:00" //查询的结束时间,RFC3339 格式的 UTC 时间,精度为秒。 body.EndTime = "2021-08-16T00:01:59+08:00" //数据聚合的时间粒度,单位为秒,支持的时间粒度如下所示。 // <li> 60:1 分钟。时间粒度为 1 分钟时,单次查询最大时间跨度为 24 小时,历史查询时间范围为 366 天; </li> // <li> 300:(默认值)5 分钟。时间粒度为 5 分钟时,单次查询最大时间跨度为 31 天,历史查询时间范围为 366 天; </li> // <li> 3600:1 小时。时间粒度为 1 小时时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天; </li> // <li> 86400:1 天。时间粒度为 1 天时,单次查询最大时间跨度为 93 天,历史查询时间范围为 366 天。 </li> var bodyAggregation *int32 var bodyAggregationValue int32 = 60 bodyAggregation = &bodyAggregationValue body.Aggregation = bodyAggregation //数据拆分的维度,缺省情况下不进行数据拆分,支持的维度如下所示。 // <li> Domain:域名。 </li> // note: // 配置数据拆分维度时,对应的维度参数传入多个值时会返回按维度进行拆分的数据;对应的维度只传入一个值时不返回按维度进行拆分的数据。 bodyDetailField := []*string{} var bodyDetailField0 *string var bodyDetailField0Value string = "Domain" bodyDetailField0 = &bodyDetailField0Value bodyDetailField = append(bodyDetailField, bodyDetailField0) body.DetailField = bodyDetailField //提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 // <li> unicom:联通; </li> // <li> railcom:铁通; </li> // <li> telecom:电信; </li> // <li> mobile:移动; </li> // <li> cernet:教育网; </li> // <li> tianwei:天威; </li> // <li> alibaba:阿里巴巴; </li> // <li> tencent:腾讯; </li> // <li> drpeng:鹏博士; </li> // <li> btvn:广电; </li> // <li> huashu:华数; </li> // <li> other:其他。 </li> // 您也可以通过 [DescribeLiveISPData](https://www.volcengine.com/docs/6469/1133974) 接口获取运营商对应的标识符。 bodyISPList := []*string{} var bodyISPList0 *string var bodyISPList0Value string = "telecom" bodyISPList0 = &bodyISPList0Value bodyISPList = append(bodyISPList, bodyISPList0) body.ISPList = bodyISPList //客户端 IP 所属区域的列表,缺省情况下表示所有区域。 describeLivePushStreamCountDataBodyUserRegionListItem := &live_v20230101.DescribeLivePushStreamCountDataBodyUserRegionListItem{} //区域信息中的大区标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。 var describeLivePushStreamCountDataBodyUserRegionListItemArea *string var describeLivePushStreamCountDataBodyUserRegionListItemAreaValue string = "CN" describeLivePushStreamCountDataBodyUserRegionListItemArea = &describeLivePushStreamCountDataBodyUserRegionListItemAreaValue describeLivePushStreamCountDataBodyUserRegionListItem.Area = describeLivePushStreamCountDataBodyUserRegionListItemArea //区域信息中的省份标识符,国外暂不支持该参数,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按省筛选,需要同时传入 `Area`、`Country` 和 `Province`。 var describeLivePushStreamCountDataBodyUserRegionListItemProvince *string var describeLivePushStreamCountDataBodyUserRegionListItemProvinceValue string = "beijing" describeLivePushStreamCountDataBodyUserRegionListItemProvince = &describeLivePushStreamCountDataBodyUserRegionListItemProvinceValue describeLivePushStreamCountDataBodyUserRegionListItem.Province = describeLivePushStreamCountDataBodyUserRegionListItemProvince //区域信息中的国家标识符,如何获取请参见[查询区域标识符](https://www.volcengine.com/docs/6469/1133973)。如果按国家筛选,需要同时传入 `Area` 和 `Country`。 var describeLivePushStreamCountDataBodyUserRegionListItemCountry *string var describeLivePushStreamCountDataBodyUserRegionListItemCountryValue string = "CN" describeLivePushStreamCountDataBodyUserRegionListItemCountry = &describeLivePushStreamCountDataBodyUserRegionListItemCountryValue describeLivePushStreamCountDataBodyUserRegionListItem.Country = describeLivePushStreamCountDataBodyUserRegionListItemCountry body.UserRegionList = append(body.UserRegionList,describeLivePushStreamCountDataBodyUserRegionListItem) resp, err := service.DescribeLivePushStreamCountData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }
您可以调用 DescribeLivePushStreamInfoData 接口查询推流流信息。详细的参数说明可参见 DescribeLivePushStreamInfoData 接口文档。
接口调用示例如下所示。
package main import ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101" ) func main () { // 强烈建议不要把 AccessKey ID 和 AccessKey Secret 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 AccessKey ID 和 AccessKey Secret,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ACCESS_KEY_ID 和 ACCESS KEY_SECRET service := live_v20230101.NewInstance() service.SetCredential(base.Credentials{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) body := &live_v20230101.DescribeLivePushStreamInfoDataBody{} //直播推流使用的域名列表,缺省为空,表示当前账号下所有域名。您可以调用 [ListDomainDetail](https://www.volcengine.com/docs/6469/1126815) 接口或在视频直播控制台的[域名管理](https://console-stable.volcanicengine.com/live/main/domain/list)页面,查看直播推流使用的域名。 bodyDomainList := []*string{} var bodyDomainList0 *string var bodyDomainList0Value string = "push.example.com" bodyDomainList0 = &bodyDomainList0Value bodyDomainList = append(bodyDomainList, bodyDomainList0) body.DomainList = bodyDomainList //应用名称,取值与直播流地址中 AppName 字段取值相同,默认为空,表示查询所有应用名称。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。 var bodyApp *string var bodyAppValue string = "example_app" bodyApp = &bodyAppValue body.App = bodyApp //流名称,取值与直播流地址中 StreamName 字段取值相同,默认为空表示查询所有流名称。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。 var bodyStream *string var bodyStreamValue string = "example_stream" bodyStream = &bodyStreamValue body.Stream = bodyStream //查询的开始时间,RFC3339 格式的时间字符串,精度为秒。 // note: // 支持查询最近 93 天以内的推流数据。 body.StartTime = "2021-04-13T00:00:00+08:00" //查询的结束时间,RFC3339 格式的时间字符串,精度为秒。 // note: // 支持查询最近 93 天以内的推流数据。 body.EndTime = "2021-04-14T00:00:00+08:00" //查询数据的页码,默认为 `1`,表示查询第一页的数据,取值范围为正整数。 var bodyPageNum *int32 var bodyPageNumValue int32 = 1 bodyPageNum = &bodyPageNumValue body.PageNum = bodyPageNum //每页显示的数据条数,默认为 `20`,取值范围为 [1,1000]。 var bodyPageSize *int32 var bodyPageSizeValue int32 = 20 bodyPageSize = &bodyPageSizeValue body.PageSize = bodyPageSize resp, err := service.DescribeLivePushStreamInfoData(context.Background(), body) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) } }