Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit87ec4c7

Browse files
committed
feat(cli): add DataDog Go tracer
1 parentfc4683d commit87ec4c7

File tree

11 files changed

+118
-2
lines changed

11 files changed

+118
-2
lines changed

‎cli/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2105,6 +2105,7 @@ func ConfigureTraceProvider(
21052105
sdkTracerProvider,_closeTracing,err:=tracing.TracerProvider(ctx,"coderd", tracing.TracerOpts{
21062106
Default:cfg.Trace.Enable.Value(),
21072107
Coder:shouldCoderTrace,
2108+
DataDog:cfg.Trace.DataDog.Value(),
21082109
Honeycomb:cfg.Trace.HoneycombAPIKey.String(),
21092110
})
21102111
iferr!=nil {

‎cli/testdata/server-config.yaml.golden

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,9 @@ introspection:
201201
# which may incur significant costs.
202202
# (default: <unset>, type: bool)
203203
captureLogs: false
204+
# Enables sending Go runtime traces to the local DataDog agent.
205+
# (default: false, type: bool)
206+
dataDog: false
204207
logging:
205208
# Output debug-level logs.
206209
# (default: <unset>, type: bool)

‎coderd/apidoc/docs.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/apidoc/swagger.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/tracing/exporter.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
"go.opentelemetry.io/otel/sdk/resource"
1414
sdktrace"go.opentelemetry.io/otel/sdk/trace"
1515
semconv"go.opentelemetry.io/otel/semconv/v1.14.0"
16+
ddotel"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/opentelemetry"
17+
1618
"golang.org/x/xerrors"
1719
"google.golang.org/grpc/credentials"
1820
)
@@ -24,7 +26,8 @@ type TracerOpts struct {
2426
Defaultbool
2527
// Coder exports traces to Coder's public tracing ingest service and is used
2628
// to improve the product. It is disabled when opting out of telemetry.
27-
Coderbool
29+
Coderbool
30+
DataDogbool
2831
// Exports traces to Honeycomb.io with the provided API key.
2932
Honeycombstring
3033
}
@@ -45,6 +48,17 @@ func TracerProvider(ctx context.Context, service string, opts TracerOpts) (*sdkt
4548
closers= []func(context.Context)error{}
4649
)
4750

51+
ifopts.DataDog {
52+
// See more:
53+
// https://docs.datadoghq.com/tracing/metrics/runtime_metrics/go/
54+
dd:=ddotel.NewTracerProvider()
55+
closers=append(closers,func(_ context.Context)error {
56+
// For some reason, this doesn't appear to actually wind down
57+
// the goroutines.
58+
returndd.Shutdown()
59+
})
60+
}
61+
4862
ifopts.Default {
4963
exporter,err:=DefaultExporter(ctx)
5064
iferr!=nil {

‎codersdk/deployment.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ type TraceConfig struct {
310310
Enable clibase.Bool`json:"enable" typescript:",notnull"`
311311
HoneycombAPIKey clibase.String`json:"honeycomb_api_key" typescript:",notnull"`
312312
CaptureLogs clibase.Bool`json:"capture_logs" typescript:",notnull"`
313+
DataDog clibase.Bool`json:"data_dog" typescript:",notnull"`
313314
}
314315

315316
typeGitAuthConfigstruct {
@@ -1237,6 +1238,22 @@ when required by your organization's security policy.`,
12371238
YAML:"captureLogs",
12381239
Annotations: clibase.Annotations{}.Mark(annotationExternalProxies,"true"),
12391240
},
1241+
{
1242+
Name:"Send Go runtime traces to DataDog",
1243+
Description:"Enables sending Go runtime traces to the local DataDog agent.",
1244+
Flag:"trace-datadog",
1245+
Env:"CODER_TRACE_DATADOG",
1246+
Value:&c.Trace.DataDog,
1247+
Group:&deploymentGroupIntrospectionTracing,
1248+
YAML:"dataDog",
1249+
// Hidden until an external user asks for it. For the time being,
1250+
// it's used to detect leaks in dogfood.
1251+
Hidden:true,
1252+
// Default is false because datadog creates a bunch of goroutines that
1253+
// don't get cleaned up and trip the leak detector.
1254+
Default:"false",
1255+
Annotations: clibase.Annotations{}.Mark(annotationExternalProxies,"true"),
1256+
},
12401257
// Provisioner settings
12411258
{
12421259
Name:"Provisioner Daemons",

‎docs/api/general.md

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎docs/api/schemas.md

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎go.mod

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ require (
202202
cloud.google.com/go/longrunningv0.5.1// indirect
203203
filippo.io/edwards25519v1.0.0// indirect
204204
github.com/Azure/go-ansitermv0.0.0-20230124172434-306776ec8161// indirect
205+
github.com/DataDog/appsec-internal-gov1.0.0// indirect
206+
github.com/DataDog/datadog-agent/pkg/obfuscatev0.45.0-rc.1// indirect
207+
github.com/DataDog/datadog-agent/pkg/remoteconfig/statev0.48.0-devel.0.20230725154044-2549ba9058df// indirect
208+
github.com/DataDog/datadog-go/v5v5.1.1// indirect
209+
github.com/DataDog/go-libddwafv1.4.2// indirect
210+
github.com/DataDog/go-tufv1.0.1-0.5.2// indirect
211+
github.com/DataDog/sketches-gov1.2.1// indirect
205212
github.com/KyleBanks/depthv1.2.1// indirect
206213
github.com/Microsoft/go-winiov0.6.1// indirect
207214
github.com/Nvveen/Gottyv0.0.0-20120604004816-cd527374f1e5// indirect
@@ -247,6 +254,8 @@ require (
247254
github.com/docker/dockerv23.0.5+incompatible// indirect
248255
github.com/docker/go-connectionsv0.4.0// indirect
249256
github.com/docker/go-unitsv0.5.0// indirect
257+
github.com/dustin/go-humanizev1.0.1// indirect
258+
github.com/ebitengine/puregov0.5.0-alpha// indirect
250259
github.com/elastic/go-windowsv1.0.0// indirect
251260
github.com/fxamacker/cbor/v2v2.4.0// indirect
252261
github.com/gabriel-vasile/mimetypev1.4.2// indirect
@@ -335,7 +344,9 @@ require (
335344
github.com/opencontainers/go-digestv1.0.0// indirect
336345
github.com/opencontainers/image-specv1.1.0-rc4// indirect
337346
github.com/opencontainers/runcv1.1.5// indirect
347+
github.com/outcaste-io/ristrettov0.2.1// indirect
338348
github.com/pelletier/go-toml/v2v2.0.9// indirect
349+
github.com/philhofer/fwdv1.1.2// indirect
339350
github.com/pierrec/lz4/v4v4.1.17// indirect
340351
github.com/pion/transportv0.14.1// indirect
341352
github.com/pkg/errorsv0.9.1// indirect
@@ -344,6 +355,7 @@ require (
344355
github.com/rcrowley/go-metricsv0.0.0-20200313005456-10cdbea86bc0// indirect
345356
github.com/rivo/unisegv0.4.4// indirect
346357
github.com/satori/go.uuidv1.2.1-0.20181028125025-b2ce2384e17b// indirect
358+
github.com/secure-systems-lab/go-securesystemslibv0.7.0// indirect
347359
github.com/sirupsen/logrusv1.9.3// indirect
348360
github.com/spf13/castv1.5.1// indirect
349361
github.com/swaggo/files/v2v2.0.0// indirect
@@ -357,13 +369,14 @@ require (
357369
github.com/tcnksm/go-httpstatv0.2.0// indirect
358370
github.com/tdewolff/parse/v2v2.6.6// indirect
359371
github.com/tdewolff/testv1.0.9// indirect
372+
github.com/tinylib/msgpv1.1.8// indirect
360373
github.com/u-root/uiov0.0.0-20230305220412-3e8cd9d6bf63// indirect
361374
github.com/ulikunitz/xzv0.5.11// indirect
362375
github.com/vishvananda/netlinkv1.2.1-beta.2// indirect
363376
github.com/vishvananda/netnsv0.0.4// indirect
364377
github.com/vmihailenco/msgpackv4.0.4+incompatible// indirect
365378
github.com/vmihailenco/msgpack/v4v4.3.12// indirect
366-
github.com/vmihailenco/tagparserv0.1.1// indirect
379+
github.com/vmihailenco/tagparserv0.1.2// indirect
367380
github.com/x448/float16v0.8.4// indirect
368381
github.com/xeipuuv/gojsonpointerv0.0.0-20190905194746-02993c407bfb// indirect
369382
github.com/xeipuuv/gojsonreferencev0.0.0-20180127040603-bd5ef7bd5415// indirect
@@ -378,15 +391,19 @@ require (
378391
go.opentelemetry.io/otel/exporters/otlp/internal/retryv1.16.0// indirect
379392
go.opentelemetry.io/otel/metricv1.16.0// indirect
380393
go.opentelemetry.io/proto/otlpv0.19.0// indirect
394+
go4.org/internv0.0.0-20211027215823-ae77deb06f29// indirect
381395
go4.org/memv0.0.0-20220726221520-4f986261bf13// indirect
396+
go4.org/unsafe/assume-no-moving-gcv0.0.0-20220617031537-928513b29760// indirect
382397
golang.zx2c4.com/wintunv0.0.0-20230126152724-0fa3db229ce2// indirect
383398
golang.zx2c4.com/wireguard/wgctrlv0.0.0-20230215201556-9c5414ab4bde// indirect
384399
golang.zx2c4.com/wireguard/windowsv0.5.3// indirect
385400
google.golang.org/appenginev1.6.7// indirect
386401
google.golang.org/genprotov0.0.0-20230803162519-f966b187b2e5// indirect
387402
google.golang.org/genproto/googleapis/apiv0.0.0-20230803162519-f966b187b2e5// indirect
388403
google.golang.org/genproto/googleapis/rpcv0.0.0-20230807174057-1744710a1577// indirect
404+
gopkg.in/DataDog/dd-trace-go.v1v1.54.0// indirect
389405
gopkg.in/yaml.v2v2.4.0// indirect
390406
howett.net/plistv1.0.0// indirect
407+
inet.af/netaddrv0.0.0-20220811202034-502d2d690317// indirect
391408
inet.af/peercredv0.0.0-20210906144145-0893ea02156a// indirect
392409
)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp