You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: instrument Orchestrion with Datadog tracing (#577)
In order to facilitate investigation of build performance, instrument
Orchestrion (manually, because who does not love some irony) with the
`dd-trace-go` V2 library, so that we can obtain traces from Orchestrion
executions.
This is enabled by setting `ORCHESTRION_TRACE` to any non-blank value,
and requires a Datadog Agent to be available and appropriately
configured in order for traces to be sent to the backend.
Child process distributed tracing is achieved by using environment
variables as a propagation medium, using a custom-made carrier that
works off of `os.Environ()`-style slices.
The NATS client/server is also instrumented for distributed tracing,
using `nats.Msg.Header` as a carrier (this is akin to using HTTP or gRPC
headers for the same purpose).
------------------------------------------------------------------------
Initial investigations of traces (building orchestrion with orchestrion)
showed that a far-from-trivial overhead was induced by an abundance of
sub-process creation to `go tool pack` (involved in storing & accessing
the `link.deps` files). Replacing these with a simple library
(`github.com/blakesmith/ar`) allowed reducing the overhead of the
`Weaver.OnLink` call by a significant amount (shaving 6 seconds off of
this particular build).
---
Jira: APPSEC-57051
---------
Co-authored-by: Eliott Bouhana <[email protected]>
orchestrion,github.com/gogo/protobuf,BSD-3-Clause,"Copyright (c) 2013, The GoGo Authors. All rights reserved. | Copyright 2010 The Go Authors. All rights reserved."
38
+
orchestrion,github.com/golang/protobuf/proto,BSD-3-Clause,Copyright 2010 The Go Authors. All rights reserved.
orchestrion,github.com/klauspost/compress,MIT,Copyright (c) 2012 The Go Authors. All rights reserved. | Copyright (c) 2019 Klaus Post. All rights reserved. | Copyright 2016-2017 The New York Times Company | Copyright (c) 2015 Klaus Post | Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. | Copyright 2016 The filepathx Authors
18
46
orchestrion,github.com/klauspost/compress/s2,BSD-3-Clause,Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. | Copyright (c) 2019 Klaus Post. All rights reserved.
19
47
orchestrion,github.com/lucasb-eyer/go-colorful,MIT,Copyright (c) 2013 Lucas Beyer
orchestrion,github.com/philhofer/fwd,MIT,"Copyright (c) 2014-2015, Philip Hofer"
65
+
orchestrion,github.com/pkg/errors,BSD-2-Clause,"Copyright (c) 2015, Dave Cheney <[email protected]>"
66
+
orchestrion,github.com/planetscale/vtprotobuf/protohelpers,BSD-3-Clause,"Copyright (c) 2021, PlanetScale Inc. All rights reserved. | Copyright (c) 2013, The GoGo Authors. All rights reserved. | Copyright (c) 2018 The Go Authors. All rights reserved."
0 commit comments