forked from open-telemetry/opentelemetry-collector-contrib
/
version_info.go
42 lines (34 loc) · 923 Bytes
/
version_info.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package azuremonitorexporter // import "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter"
import (
"runtime"
"runtime/debug"
"strings"
"sync"
)
var (
once sync.Once
cachedVersion string
)
func getCollectorVersion() string {
once.Do(func() {
osInformation := runtime.GOOS[:3] + "-" + runtime.GOARCH
unknownVersion := "otelc-unknown-" + osInformation
info, ok := debug.ReadBuildInfo()
if !ok {
cachedVersion = unknownVersion
return
}
for _, mod := range info.Deps {
if mod.Path == "go.opentelemetry.io/collector" {
// Extract the semantic version without metadata.
semVer := strings.SplitN(mod.Version, "-", 2)[0]
cachedVersion = "otelc-" + semVer + "-" + osInformation
return
}
}
cachedVersion = unknownVersion
})
return cachedVersion
}