步骤1:初始化OpenTelemetry Provider
为简化OpenTelemetry Provider的使用,日志服务提供SLS Provider用于快速构建并上传至日志服务的相关依赖项。
您可以通过运行代码或配置环境变量完成OpenTelemetry Provider的初始化,详细说明如下:
module opentelemetry-golang-sample
go 1.13
require (
github.com/aliyun-sls/opentelemetry-go-provider-sls v0.8.0
go.opentelemetry.io/otel v1.11.2
go.opentelemetry.io/otel/metric v0.34.0
go.opentelemetry.io/otel/trace v1.11.2
)
package main
import (
"github.com/aliyun-sls/opentelemetry-go-provider-sls/provider"
)
func main() {
slsConfig, err := provider.NewConfig(provider.WithServiceName("${service}"),
provider.WithServiceNamespace("${service.namespace}"),
provider.WithServiceVersion("${version}"),
provider.WithTraceExporterEndpoint("${endpoint}"),
provider.WithMetricExporterEndpoint("${endpoint}"),
provider.WithSLSConfig("${project}", "${instance}", "${access-key-id}", "${access-key-secret}"))
// 使用panic(),表示如果初始化失败则程序直接异常退出,您也可以使用其他错误处理方式。
if err != nil {
panic(err)
}
if err := provider.Start(slsConfig); err != nil {
panic(err)
}
defer provider.Shutdown(slsConfig)
// 添加业务逻辑代码。
...
}