Skip to content

Commit 9a34aea

Browse files
authored
[*/datadog] Update to opentelemetry-mapping-go v0.11.0 (#30158)
**Description:** - [*/datadog] Bump to opentelemetry-mapping-go v0.11.0. This includes: - Refactor related to upcoming metric: - DataDog/opentelemetry-mapping-go/pull/230 - DataDog/opentelemetry-mapping-go/pull/231 - DataDog/opentelemetry-mapping-go/pull/229 - Host metadata updates: - DataDog/opentelemetry-mapping-go/pull/184 - DataDog/opentelemetry-mapping-go/pull/225 - Use `logs.Translator` for logs implementation - Set `MeterProvider` to noop to prevent sending metrics for now until we agree on the design. Note that I reverted one of the changelog items added in #29785, since it's no longer true that we add this metric.
1 parent 43932b2 commit 9a34aea

File tree

24 files changed

+208
-159
lines changed

24 files changed

+208
-159
lines changed

.chloggen/dd-exporter-metric.yaml renamed to .chloggen/mx-psi_update-tov0.11.0.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,22 @@ change_type: enhancement
77
component: datadogexporter
88

99
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10-
note: Add `datadog.otlp_translator.metrics.missing_source` counter, which counts the number of metrics that are missing a source (e.g. hostname).
10+
note: Add support for more semantic conventions related to host metadata
1111

1212
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
13-
issues: [29785]
13+
issues: [30158]
1414

1515
# (Optional) One or more lines of additional information to render under the primary note.
1616
# These lines will be padded with 2 spaces and then inserted directly into the document.
1717
# Use pipe (|) for multiline entries.
18-
subtext:
18+
subtext: |
19+
The following semantic conventions are now detected for host metadata:
20+
- `host.ip`
21+
- `host.mac`
22+
- `system.cpu.physical.count`
23+
- `system.cpu.logical.count`
24+
- `system.cpu.frequency`
25+
- `system.memory.limit`
1926
2027
# If your change doesn't affect end users or the exported elements of any package,
2128
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.

cmd/configschema/go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ require (
2222
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/monitor/armmonitor v0.11.0 // indirect
2323
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 // indirect
2424
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect
25-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.10.0 // indirect
26-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.10.0 // indirect
25+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.11.0 // indirect
26+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.11.0 // indirect
2727
github.com/gocql/gocql v1.6.0 // indirect
2828
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
2929
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.91.0 // indirect
@@ -229,9 +229,9 @@ require (
229229
github.com/DataDog/go-sqllexer v0.0.8 // indirect
230230
github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect
231231
github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee // indirect
232-
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.10.0 // indirect
233-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.10.0 // indirect
234-
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.10.0 // indirect
232+
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.11.0 // indirect
233+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.11.0 // indirect
234+
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.11.0 // indirect
235235
github.com/DataDog/sketches-go v1.4.3 // indirect
236236
github.com/DataDog/zstd v1.5.2 // indirect
237237
github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect

cmd/configschema/go.sum

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/otelcontribcol/go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,11 @@ require (
274274
github.com/DataDog/go-sqllexer v0.0.8 // indirect
275275
github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect
276276
github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee // indirect
277-
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.10.0 // indirect
278-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.10.0 // indirect
279-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.10.0 // indirect
280-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.10.0 // indirect
281-
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.10.0 // indirect
277+
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.11.0 // indirect
278+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.11.0 // indirect
279+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.11.0 // indirect
280+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.11.0 // indirect
281+
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.11.0 // indirect
282282
github.com/DataDog/sketches-go v1.4.3 // indirect
283283
github.com/DataDog/zstd v1.5.2 // indirect
284284
github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect

cmd/otelcontribcol/go.sum

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

connector/datadogconnector/connector.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ package datadogconnector // import "github.com/open-telemetry/opentelemetry-coll
55

66
import (
77
"context"
8+
"fmt"
89

910
pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace"
11+
"github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes"
1012
"github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics"
1113
"go.opentelemetry.io/collector/component"
1214
"go.opentelemetry.io/collector/consumer"
1315
"go.opentelemetry.io/collector/pdata/ptrace"
16+
"go.opentelemetry.io/otel/metric/noop"
1417
"go.uber.org/zap"
1518

1619
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog"
@@ -45,12 +48,17 @@ func newConnector(set component.TelemetrySettings, _ component.Config, metricsCo
4548
set.Logger.Info("Building datadog connector")
4649

4750
in := make(chan *pb.StatsPayload, 100)
48-
trans, err := metrics.NewTranslator(set)
49-
50-
ctx := context.Background()
51+
set.MeterProvider = noop.NewMeterProvider() // disable metrics for the connector
52+
attributesTranslator, err := attributes.NewTranslator(set)
53+
if err != nil {
54+
return nil, fmt.Errorf("failed to create attributes translator: %w", err)
55+
}
56+
trans, err := metrics.NewTranslator(set, attributesTranslator)
5157
if err != nil {
52-
return nil, err
58+
return nil, fmt.Errorf("failed to create metrics translator: %w", err)
5359
}
60+
61+
ctx := context.Background()
5462
return &connectorImp{
5563
logger: set.Logger,
5664
agent: datadog.NewAgent(ctx, in),

connector/datadogconnector/go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ go 1.20
44

55
require (
66
github.com/DataDog/datadog-agent/pkg/proto v0.50.0
7-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.10.0
7+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.11.0
8+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.11.0
89
github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.91.0
910
github.com/stretchr/testify v1.8.4
1011
go.opentelemetry.io/collector/component v0.91.0
@@ -27,8 +28,7 @@ require (
2728
github.com/DataDog/datadog-go/v5 v5.1.1 // indirect
2829
github.com/DataDog/go-sqllexer v0.0.8 // indirect
2930
github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect
30-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.10.0 // indirect
31-
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.10.0 // indirect
31+
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.11.0 // indirect
3232
github.com/DataDog/sketches-go v1.4.3 // indirect
3333
github.com/Microsoft/go-winio v0.6.1 // indirect
3434
github.com/cespare/xxhash/v2 v2.2.0 // indirect

connector/datadogconnector/go.sum

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/datadogexporter/factory.go

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
"github.com/DataDog/datadog-agent/pkg/trace/agent"
1313
"github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata"
14+
"github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes"
1415
"github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes/source"
1516
"go.opentelemetry.io/collector/component"
1617
"go.opentelemetry.io/collector/config/confignet"
@@ -22,6 +23,7 @@ import (
2223
"go.opentelemetry.io/collector/pdata/plog"
2324
"go.opentelemetry.io/collector/pdata/pmetric"
2425
"go.opentelemetry.io/collector/pdata/ptrace"
26+
"go.opentelemetry.io/otel/metric/noop"
2527
"go.uber.org/zap"
2628

2729
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter/internal/hostmetadata"
@@ -77,6 +79,10 @@ type factory struct {
7779
reporter *inframetadata.Reporter
7880
reporterErr error
7981

82+
onceAttributesTranslator sync.Once
83+
attributesTranslator *attributes.Translator
84+
attributesErr error
85+
8086
wg sync.WaitGroup // waits for agent to exit
8187

8288
registry *featuregate.Registry
@@ -89,6 +95,16 @@ func (f *factory) SourceProvider(set component.TelemetrySettings, configHostname
8995
return f.sourceProvider, f.providerErr
9096
}
9197

98+
func (f *factory) AttributesTranslator(set component.TelemetrySettings) (*attributes.Translator, error) {
99+
f.onceAttributesTranslator.Do(func() {
100+
// disable metrics for the translator
101+
// Metrics are disabled until we figure out the details on how do we want to report the metric.
102+
set.MeterProvider = noop.NewMeterProvider()
103+
f.attributesTranslator, f.attributesErr = attributes.NewTranslator(set)
104+
})
105+
return f.attributesTranslator, f.attributesErr
106+
}
107+
92108
// Reporter builds and returns an *inframetadata.Reporter.
93109
func (f *factory) Reporter(params exporter.CreateSettings, pcfg hostmetadata.PusherConfig) (*inframetadata.Reporter, error) {
94110
f.onceReporter.Do(func() {
@@ -245,6 +261,12 @@ func (f *factory) createMetricsExporter(
245261
return nil, fmt.Errorf("failed to build host metadata reporter: %w", err)
246262
}
247263

264+
attrsTranslator, err := f.AttributesTranslator(set.TelemetrySettings)
265+
if err != nil {
266+
cancel()
267+
return nil, fmt.Errorf("failed to build attributes translator: %w", err)
268+
}
269+
248270
if cfg.OnlyMetadata {
249271
pushMetricsFn = func(_ context.Context, md pmetric.Metrics) error {
250272
// only sending metadata use only metrics
@@ -264,7 +286,7 @@ func (f *factory) createMetricsExporter(
264286
return nil
265287
}
266288
} else {
267-
exp, metricsErr := newMetricsExporter(ctx, set, cfg, &f.onceMetadata, hostProvider, traceagent, metadataReporter)
289+
exp, metricsErr := newMetricsExporter(ctx, set, cfg, &f.onceMetadata, attrsTranslator, hostProvider, traceagent, metadataReporter)
268290
if metricsErr != nil {
269291
cancel() // first cancel context
270292
f.wg.Wait() // then wait for shutdown
@@ -404,6 +426,12 @@ func (f *factory) createLogsExporter(
404426
return nil, fmt.Errorf("failed to build host metadata reporter: %w", err)
405427
}
406428

429+
attributesTranslator, err := f.AttributesTranslator(set.TelemetrySettings)
430+
if err != nil {
431+
cancel()
432+
return nil, fmt.Errorf("failed to build attributes translator: %w", err)
433+
}
434+
407435
if cfg.OnlyMetadata {
408436
// only host metadata needs to be sent, once.
409437
pusher = func(_ context.Context, td plog.Logs) error {
@@ -418,7 +446,7 @@ func (f *factory) createLogsExporter(
418446
return nil
419447
}
420448
} else {
421-
exp, err := newLogsExporter(ctx, set, cfg, &f.onceMetadata, hostProvider, metadataReporter)
449+
exp, err := newLogsExporter(ctx, set, cfg, &f.onceMetadata, attributesTranslator, hostProvider, metadataReporter)
422450
if err != nil {
423451
cancel()
424452
f.wg.Wait() // then wait for shutdown

exporter/datadogexporter/go.mod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ require (
88
github.com/DataDog/datadog-agent/pkg/trace v0.50.0
99
github.com/DataDog/datadog-api-client-go/v2 v2.20.0
1010
github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee
11-
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.10.0
12-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.10.0
13-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.10.0
14-
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.10.0
15-
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.10.0
11+
github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.11.0
12+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.11.0
13+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.11.0
14+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.11.0
15+
github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.11.0
1616
github.com/DataDog/sketches-go v1.4.3
1717
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.21.0
1818
github.com/aws/aws-sdk-go v1.49.6

0 commit comments

Comments
 (0)