From edbd49ba5f9ee03292ae5107ac48da22c0a08edc Mon Sep 17 00:00:00 2001 From: Andrew Wilkins Date: Mon, 26 Nov 2018 16:58:43 +0800 Subject: [PATCH] apm: populate System.Container in metadata --- tracer_test.go | 19 +++++++++++++++++++ utils.go | 6 ++++++ 2 files changed, 25 insertions(+) diff --git a/tracer_test.go b/tracer_test.go index 54ba71cc6..dad29cb30 100644 --- a/tracer_test.go +++ b/tracer_test.go @@ -20,6 +20,7 @@ import ( "github.com/stretchr/testify/require" "go.elastic.co/apm" + "go.elastic.co/apm/internal/apmhostutil" "go.elastic.co/apm/transport" "go.elastic.co/apm/transport/transporttest" ) @@ -352,6 +353,24 @@ func TestTracerBodyUnread(t *testing.T) { tracer.Flush(nil) } +func TestTracerMetadata(t *testing.T) { + tracer, recorder := transporttest.NewRecorderTracer() + defer tracer.Close() + + tracer.StartTransaction("name", "type").End() + tracer.Flush(nil) + + // TODO(axw) check other metadata + system, _, _ := recorder.Metadata() + containerID, err := apmhostutil.ContainerID() + if err != nil { + assert.Nil(t, system.Container) + } else { + require.NotNil(t, system.Container) + assert.Equal(t, containerID, system.Container.ID) + } +} + type blockedTransport struct { transport.Transport unblocked chan struct{} diff --git a/utils.go b/utils.go index 3eb60c117..c2af663b0 100644 --- a/utils.go +++ b/utils.go @@ -11,6 +11,7 @@ import ( "github.com/pkg/errors" + "go.elastic.co/apm/internal/apmhostutil" "go.elastic.co/apm/internal/apmstrings" "go.elastic.co/apm/model" ) @@ -74,6 +75,11 @@ func getLocalSystem() model.System { } } system.Hostname = truncateString(system.Hostname) + if containerID, err := apmhostutil.ContainerID(); err == nil { + system.Container = &model.Container{ + ID: containerID, + } + } return system }