步骤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)
    // 添加业务逻辑代码。
    ...
}