summaryrefslogtreecommitdiff
path: root/vendor/go.opentelemetry.io/otel/sdk/resource/container.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/go.opentelemetry.io/otel/sdk/resource/container.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/go.opentelemetry.io/otel/sdk/resource/container.go')
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/resource/container.go89
1 files changed, 0 insertions, 89 deletions
diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/container.go b/vendor/go.opentelemetry.io/otel/sdk/resource/container.go
deleted file mode 100644
index 5ecd859a5..000000000
--- a/vendor/go.opentelemetry.io/otel/sdk/resource/container.go
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package resource // import "go.opentelemetry.io/otel/sdk/resource"
-
-import (
- "bufio"
- "context"
- "errors"
- "io"
- "os"
- "regexp"
-
- semconv "go.opentelemetry.io/otel/semconv/v1.26.0"
-)
-
-type containerIDProvider func() (string, error)
-
-var (
- containerID containerIDProvider = getContainerIDFromCGroup
- cgroupContainerIDRe = regexp.MustCompile(`^.*/(?:.*[-:])?([0-9a-f]+)(?:\.|\s*$)`)
-)
-
-type cgroupContainerIDDetector struct{}
-
-const cgroupPath = "/proc/self/cgroup"
-
-// Detect returns a *Resource that describes the id of the container.
-// If no container id found, an empty resource will be returned.
-func (cgroupContainerIDDetector) Detect(ctx context.Context) (*Resource, error) {
- containerID, err := containerID()
- if err != nil {
- return nil, err
- }
-
- if containerID == "" {
- return Empty(), nil
- }
- return NewWithAttributes(semconv.SchemaURL, semconv.ContainerID(containerID)), nil
-}
-
-var (
- defaultOSStat = os.Stat
- osStat = defaultOSStat
-
- defaultOSOpen = func(name string) (io.ReadCloser, error) {
- return os.Open(name)
- }
- osOpen = defaultOSOpen
-)
-
-// getContainerIDFromCGroup returns the id of the container from the cgroup file.
-// If no container id found, an empty string will be returned.
-func getContainerIDFromCGroup() (string, error) {
- if _, err := osStat(cgroupPath); errors.Is(err, os.ErrNotExist) {
- // File does not exist, skip
- return "", nil
- }
-
- file, err := osOpen(cgroupPath)
- if err != nil {
- return "", err
- }
- defer file.Close()
-
- return getContainerIDFromReader(file), nil
-}
-
-// getContainerIDFromReader returns the id of the container from reader.
-func getContainerIDFromReader(reader io.Reader) string {
- scanner := bufio.NewScanner(reader)
- for scanner.Scan() {
- line := scanner.Text()
-
- if id := getContainerIDFromLine(line); id != "" {
- return id
- }
- }
- return ""
-}
-
-// getContainerIDFromLine returns the id of the container from one string line.
-func getContainerIDFromLine(line string) string {
- matches := cgroupContainerIDRe.FindStringSubmatch(line)
- if len(matches) <= 1 {
- return ""
- }
- return matches[1]
-}