mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-01-18 03:22:12 +02:00
Remove resource.WithBuiltinDetectors() which has not been maintained (#2097)
* remove resource.WithBuiltinDetectors() which has not been maintained * add changelog file * Update CHANGELOG.md Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com> * resolved a repeated conflict * fix unittest error * fix unittest error * fix the PR according to suggestion * fix unittest fail and del repeated testcase in CI system * Update CHANGELOG.md Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com> Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com> Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This commit is contained in:
parent
d57c5a5604
commit
25d739b0a0
@ -23,6 +23,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||
|
||||
- Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/jaeger`. (#2020)
|
||||
- Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/zipkin`. (#2020)
|
||||
- Removed the `"go.opentelemetry.io/otel/sdk/resource".WithBuiltinDetectors` function.
|
||||
The explicit `With*` options for every built-in detector should be used instead. (#2026 #2097)
|
||||
- Removed metrics test package `go.opentelemetry.io/otel/sdk/export/metric/metrictest`. (#2105)
|
||||
|
||||
### Fixed
|
||||
|
@ -78,7 +78,8 @@ func StringDetector(schemaURL string, k attribute.Key, f func() (string, error))
|
||||
return stringDetector{schemaURL: schemaURL, K: k, F: f}
|
||||
}
|
||||
|
||||
// Detect implements Detector.
|
||||
// Detect returns a *Resource that describes the string as a value
|
||||
// corresponding to attribute.Key as well as the specific schemaURL.
|
||||
func (sd stringDetector) Detect(ctx context.Context) (*Resource, error) {
|
||||
value, err := sd.F()
|
||||
if err != nil {
|
||||
|
@ -60,13 +60,6 @@ func (o detectorsOption) apply(cfg *config) {
|
||||
cfg.detectors = append(cfg.detectors, o.detectors...)
|
||||
}
|
||||
|
||||
// WithBuiltinDetectors adds the built detectors to the configured resource.
|
||||
func WithBuiltinDetectors() Option {
|
||||
return WithDetectors(telemetrySDK{},
|
||||
host{},
|
||||
fromEnv{})
|
||||
}
|
||||
|
||||
// WithFromEnv adds attributes from environment variables to the configured resource.
|
||||
func WithFromEnv() Option {
|
||||
return WithDetectors(fromEnv{})
|
||||
@ -92,3 +85,87 @@ type schemaURLOption string
|
||||
func (o schemaURLOption) apply(cfg *config) {
|
||||
cfg.schemaURL = string(o)
|
||||
}
|
||||
|
||||
// WithOS adds all the OS attributes to the configured Resource.
|
||||
// See individual WithOS* functions to configure specific attributes.
|
||||
func WithOS() Option {
|
||||
return WithDetectors(
|
||||
osTypeDetector{},
|
||||
osDescriptionDetector{},
|
||||
)
|
||||
}
|
||||
|
||||
// WithOSType adds an attribute with the operating system type to the configured Resource.
|
||||
func WithOSType() Option {
|
||||
return WithDetectors(osTypeDetector{})
|
||||
}
|
||||
|
||||
// WithOSDescription adds an attribute with the operating system description to the
|
||||
// configured Resource. The formatted string is equivalent to the output of the
|
||||
// `uname -snrvm` command.
|
||||
func WithOSDescription() Option {
|
||||
return WithDetectors(osDescriptionDetector{})
|
||||
}
|
||||
|
||||
// WithProcess adds all the Process attributes to the configured Resource.
|
||||
// See individual WithProcess* functions to configure specific attributes.
|
||||
func WithProcess() Option {
|
||||
return WithDetectors(
|
||||
processPIDDetector{},
|
||||
processExecutableNameDetector{},
|
||||
processExecutablePathDetector{},
|
||||
processCommandArgsDetector{},
|
||||
processOwnerDetector{},
|
||||
processRuntimeNameDetector{},
|
||||
processRuntimeVersionDetector{},
|
||||
processRuntimeDescriptionDetector{},
|
||||
)
|
||||
}
|
||||
|
||||
// WithProcessPID adds an attribute with the process identifier (PID) to the
|
||||
// configured Resource.
|
||||
func WithProcessPID() Option {
|
||||
return WithDetectors(processPIDDetector{})
|
||||
}
|
||||
|
||||
// WithProcessExecutableName adds an attribute with the name of the process
|
||||
// executable to the configured Resource.
|
||||
func WithProcessExecutableName() Option {
|
||||
return WithDetectors(processExecutableNameDetector{})
|
||||
}
|
||||
|
||||
// WithProcessExecutablePath adds an attribute with the full path to the process
|
||||
// executable to the configured Resource.
|
||||
func WithProcessExecutablePath() Option {
|
||||
return WithDetectors(processExecutablePathDetector{})
|
||||
}
|
||||
|
||||
// WithProcessCommandArgs adds an attribute with all the command arguments (including
|
||||
// the command/executable itself) as received by the process the configured Resource.
|
||||
func WithProcessCommandArgs() Option {
|
||||
return WithDetectors(processCommandArgsDetector{})
|
||||
}
|
||||
|
||||
// WithProcessOwner adds an attribute with the username of the user that owns the process
|
||||
// to the configured Resource.
|
||||
func WithProcessOwner() Option {
|
||||
return WithDetectors(processOwnerDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeName adds an attribute with the name of the runtime of this
|
||||
// process to the configured Resource.
|
||||
func WithProcessRuntimeName() Option {
|
||||
return WithDetectors(processRuntimeNameDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeVersion adds an attribute with the version of the runtime of
|
||||
// this process to the configured Resource.
|
||||
func WithProcessRuntimeVersion() Option {
|
||||
return WithDetectors(processRuntimeVersionDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeDescription adds an attribute with an additional description
|
||||
// about the runtime of the process to the configured Resource.
|
||||
func WithProcessRuntimeDescription() Option {
|
||||
return WithDetectors(processRuntimeDescriptionDetector{})
|
||||
}
|
||||
|
@ -67,27 +67,6 @@ func (osDescriptionDetector) Detect(ctx context.Context) (*Resource, error) {
|
||||
), nil
|
||||
}
|
||||
|
||||
// WithOSType adds an attribute with the operating system type to the configured Resource.
|
||||
func WithOSType() Option {
|
||||
return WithDetectors(osTypeDetector{})
|
||||
}
|
||||
|
||||
// WithOSDescription adds an attribute with the operating system description to the
|
||||
// configured Resource. The formatted string is equivalent to the output of the
|
||||
// `uname -snrvm` command.
|
||||
func WithOSDescription() Option {
|
||||
return WithDetectors(osDescriptionDetector{})
|
||||
}
|
||||
|
||||
// WithOS adds all the OS attributes to the configured Resource.
|
||||
// See individual WithOS* functions to configure specific attributes.
|
||||
func WithOS() Option {
|
||||
return WithDetectors(
|
||||
osTypeDetector{},
|
||||
osDescriptionDetector{},
|
||||
)
|
||||
}
|
||||
|
||||
// mapRuntimeOSToSemconvOSType translates the OS name as provided by the Go runtime
|
||||
// into an OS type attribute with the corresponding value defined by the semantic
|
||||
// conventions. In case the provided OS name isn't mapped, it's transformed to lowercase
|
||||
|
@ -15,7 +15,6 @@
|
||||
package resource_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
@ -38,55 +37,6 @@ func mockRuntimeProviders() {
|
||||
)
|
||||
}
|
||||
|
||||
func TestWithOSType(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOSType(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.type": "linux",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithOSDescription(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOSDescription(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.description": "Test",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithOS(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOS(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.type": "linux",
|
||||
"os.description": "Test",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestMapRuntimeOSToSemconvOSType(t *testing.T) {
|
||||
tt := []struct {
|
||||
Name string
|
||||
|
@ -173,66 +173,3 @@ func (processRuntimeDescriptionDetector) Detect(ctx context.Context) (*Resource,
|
||||
semconv.ProcessRuntimeDescriptionKey.String(runtimeDescription),
|
||||
), nil
|
||||
}
|
||||
|
||||
// WithProcessPID adds an attribute with the process identifier (PID) to the
|
||||
// configured Resource.
|
||||
func WithProcessPID() Option {
|
||||
return WithDetectors(processPIDDetector{})
|
||||
}
|
||||
|
||||
// WithProcessExecutableName adds an attribute with the name of the process
|
||||
// executable to the configured Resource.
|
||||
func WithProcessExecutableName() Option {
|
||||
return WithDetectors(processExecutableNameDetector{})
|
||||
}
|
||||
|
||||
// WithProcessExecutablePath adds an attribute with the full path to the process
|
||||
// executable to the configured Resource.
|
||||
func WithProcessExecutablePath() Option {
|
||||
return WithDetectors(processExecutablePathDetector{})
|
||||
}
|
||||
|
||||
// WithProcessCommandArgs adds an attribute with all the command arguments (including
|
||||
// the command/executable itself) as received by the process the configured Resource.
|
||||
func WithProcessCommandArgs() Option {
|
||||
return WithDetectors(processCommandArgsDetector{})
|
||||
}
|
||||
|
||||
// WithProcessOwner adds an attribute with the username of the user that owns the process
|
||||
// to the configured Resource.
|
||||
func WithProcessOwner() Option {
|
||||
return WithDetectors(processOwnerDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeName adds an attribute with the name of the runtime of this
|
||||
// process to the configured Resource.
|
||||
func WithProcessRuntimeName() Option {
|
||||
return WithDetectors(processRuntimeNameDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeVersion adds an attribute with the version of the runtime of
|
||||
// this process to the configured Resource.
|
||||
func WithProcessRuntimeVersion() Option {
|
||||
return WithDetectors(processRuntimeVersionDetector{})
|
||||
}
|
||||
|
||||
// WithProcessRuntimeDescription adds an attribute with an additional description
|
||||
// about the runtime of the process to the configured Resource.
|
||||
func WithProcessRuntimeDescription() Option {
|
||||
return WithDetectors(processRuntimeDescriptionDetector{})
|
||||
}
|
||||
|
||||
// WithProcess adds all the Process attributes to the configured Resource.
|
||||
// See individual WithProcess* functions to configure specific attributes.
|
||||
func WithProcess() Option {
|
||||
return WithDetectors(
|
||||
processPIDDetector{},
|
||||
processExecutableNameDetector{},
|
||||
processExecutablePathDetector{},
|
||||
processCommandArgsDetector{},
|
||||
processOwnerDetector{},
|
||||
processRuntimeNameDetector{},
|
||||
processRuntimeVersionDetector{},
|
||||
processRuntimeDescriptionDetector{},
|
||||
)
|
||||
}
|
||||
|
@ -104,22 +104,6 @@ func restoreAttributesProviders() {
|
||||
resource.SetDefaultOSDescriptionProvider()
|
||||
}
|
||||
|
||||
func TestWithProcessFuncs(t *testing.T) {
|
||||
mockProcessAttributesProviders()
|
||||
|
||||
t.Run("WithPID", testWithProcessPID)
|
||||
t.Run("WithExecutableName", testWithProcessExecutableName)
|
||||
t.Run("WithExecutablePath", testWithProcessExecutablePath)
|
||||
t.Run("WithCommandArgs", testWithProcessCommandArgs)
|
||||
t.Run("WithOwner", testWithProcessOwner)
|
||||
t.Run("WithRuntimeName", testWithProcessRuntimeName)
|
||||
t.Run("WithRuntimeVersion", testWithProcessRuntimeVersion)
|
||||
t.Run("WithRuntimeDescription", testWithProcessRuntimeDescription)
|
||||
t.Run("WithProcess", testWithProcess)
|
||||
|
||||
restoreAttributesProviders()
|
||||
}
|
||||
|
||||
func TestWithProcessFuncsErrors(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
|
||||
@ -145,130 +129,6 @@ func TestRuntimeArch(t *testing.T) {
|
||||
require.EqualValues(t, runtime.GOARCH, resource.RuntimeArch())
|
||||
}
|
||||
|
||||
func testWithProcessPID(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessPID(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.pid": fmt.Sprint(fakePID),
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessExecutableName(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessExecutableName(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.executable.name": fakeExecutableName,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessExecutablePath(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessExecutablePath(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.executable.path": fakeExecutablePath,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessCommandArgs(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessCommandArgs(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.command_args": fmt.Sprint(fakeCommandArgs),
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessOwner(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessOwner(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.owner": fakeOwner,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessRuntimeName(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeName(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.name": fakeRuntimeName,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessRuntimeVersion(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeVersion(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.version": fakeRuntimeVersion,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessRuntimeDescription(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeDescription(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.description": fakeRuntimeDescription,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcess(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcess(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.pid": fmt.Sprint(fakePID),
|
||||
"process.executable.name": fakeExecutableName,
|
||||
"process.executable.path": fakeExecutablePath,
|
||||
"process.command_args": fmt.Sprint(fakeCommandArgs),
|
||||
"process.owner": fakeOwner,
|
||||
"process.runtime.name": fakeRuntimeName,
|
||||
"process.runtime.version": fakeRuntimeVersion,
|
||||
"process.runtime.description": fakeRuntimeDescription,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func testWithProcessExecutablePathError(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
|
@ -43,7 +43,14 @@ var (
|
||||
otel.Handle(err)
|
||||
}
|
||||
return r
|
||||
}(Detect(context.Background(), defaultServiceNameDetector{}, fromEnv{}, telemetrySDK{}))
|
||||
}(
|
||||
Detect(
|
||||
context.Background(),
|
||||
defaultServiceNameDetector{},
|
||||
fromEnv{},
|
||||
telemetrySDK{},
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -373,22 +373,6 @@ func TestNew(t *testing.T) {
|
||||
"A": "B",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Builtins",
|
||||
envars: "key=value,other=attr",
|
||||
options: []resource.Option{
|
||||
resource.WithBuiltinDetectors(),
|
||||
},
|
||||
resourceValues: map[string]string{
|
||||
"host.name": hostname(),
|
||||
"telemetry.sdk.name": "opentelemetry",
|
||||
"telemetry.sdk.language": "go",
|
||||
"telemetry.sdk.version": otel.Version(),
|
||||
"key": "value",
|
||||
"other": "attr",
|
||||
},
|
||||
schemaURL: semconv.SchemaURL,
|
||||
},
|
||||
{
|
||||
name: "With schema url",
|
||||
envars: "",
|
||||
@ -457,61 +441,186 @@ func TestNew(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewWithBuiltinDetectors(t *testing.T) {
|
||||
tc := []struct {
|
||||
name string
|
||||
envars string
|
||||
detectors []resource.Detector
|
||||
options []resource.Option
|
||||
func TestWithOSType(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
resourceValues map[string]string
|
||||
}{
|
||||
{
|
||||
name: "No Options returns builtin",
|
||||
envars: "key=value,other=attr",
|
||||
options: nil,
|
||||
resourceValues: map[string]string{
|
||||
"host.name": hostname(),
|
||||
"telemetry.sdk.name": "opentelemetry",
|
||||
"telemetry.sdk.language": "go",
|
||||
"telemetry.sdk.version": otel.Version(),
|
||||
"key": "value",
|
||||
"other": "attr",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "WithAttributes",
|
||||
envars: "key=value,other=attr",
|
||||
options: []resource.Option{
|
||||
resource.WithAttributes(attribute.String("A", "B")),
|
||||
},
|
||||
resourceValues: map[string]string{
|
||||
"host.name": hostname(),
|
||||
"telemetry.sdk.name": "opentelemetry",
|
||||
"telemetry.sdk.language": "go",
|
||||
"telemetry.sdk.version": otel.Version(),
|
||||
"key": "value",
|
||||
"other": "attr",
|
||||
"A": "B",
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tc {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
store, err := ottest.SetEnvVariables(map[string]string{
|
||||
envVar: tt.envars,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
defer func() { require.NoError(t, store.Restore()) }()
|
||||
ctx := context.Background()
|
||||
|
||||
ctx := context.Background()
|
||||
options := append([]resource.Option{resource.WithBuiltinDetectors()}, tt.options...)
|
||||
res, err := resource.New(ctx, options...)
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOSType(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, tt.resourceValues, toMap(res))
|
||||
})
|
||||
}
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.type": "linux",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithOSDescription(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOSDescription(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.description": "Test",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithOS(t *testing.T) {
|
||||
mockRuntimeProviders()
|
||||
t.Cleanup(restoreAttributesProviders)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithOS(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"os.type": "linux",
|
||||
"os.description": "Test",
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessPID(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessPID(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.pid": fmt.Sprint(fakePID),
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessExecutableName(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessExecutableName(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.executable.name": fakeExecutableName,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessExecutablePath(t *testing.T) {
|
||||
mockProcessAttributesProviders()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessExecutablePath(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.executable.path": fakeExecutablePath,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessCommandArgs(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessCommandArgs(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.command_args": fmt.Sprint(fakeCommandArgs),
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessOwner(t *testing.T) {
|
||||
mockProcessAttributesProviders()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessOwner(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.owner": fakeOwner,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessRuntimeName(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeName(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.name": fakeRuntimeName,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessRuntimeVersion(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeVersion(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.version": fakeRuntimeVersion,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcessRuntimeDescription(t *testing.T) {
|
||||
mockProcessAttributesProvidersWithErrors()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcessRuntimeDescription(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.runtime.description": fakeRuntimeDescription,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func TestWithProcess(t *testing.T) {
|
||||
mockProcessAttributesProviders()
|
||||
ctx := context.Background()
|
||||
|
||||
res, err := resource.New(ctx,
|
||||
resource.WithProcess(),
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, map[string]string{
|
||||
"process.pid": fmt.Sprint(fakePID),
|
||||
"process.executable.name": fakeExecutableName,
|
||||
"process.executable.path": fakeExecutablePath,
|
||||
"process.command_args": fmt.Sprint(fakeCommandArgs),
|
||||
"process.owner": fakeOwner,
|
||||
"process.runtime.name": fakeRuntimeName,
|
||||
"process.runtime.version": fakeRuntimeVersion,
|
||||
"process.runtime.description": fakeRuntimeDescription,
|
||||
}, toMap(res))
|
||||
}
|
||||
|
||||
func toMap(res *resource.Resource) map[string]string {
|
||||
|
Loading…
x
Reference in New Issue
Block a user