diff --git a/.chloggen/mx-psi_send-aggregations-deprecation.yaml b/.chloggen/mx-psi_send-aggregations-deprecation.yaml new file mode 100755 index 000000000000..c0bbed80802f --- /dev/null +++ b/.chloggen/mx-psi_send-aggregations-deprecation.yaml @@ -0,0 +1,14 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: deprecation + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: datadogexporter + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Deprecate `metrics::histograms::send_count_sum_metrics` in favor of `metrics::histograms::send_aggregation_metrics`. + +# One or more tracking issues related to the change +issues: [20285] + +subtext: | + Toggling `metrics::histograms::send_count_sum_metrics` will now send .min and .max metrics when available. diff --git a/.chloggen/mx-psi_send-aggregations.yaml b/.chloggen/mx-psi_send-aggregations.yaml new file mode 100755 index 000000000000..f2c1467b6931 --- /dev/null +++ b/.chloggen/mx-psi_send-aggregations.yaml @@ -0,0 +1,11 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver) +component: datadogexporter + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Send .min and .max metrics for delta OTLP Histograms and Exponential Histograms when `metrics::histograms::send_aggregation_metrics` is enabled. + +# One or more tracking issues related to the change +issues: [20285] diff --git a/cmd/configschema/go.mod b/cmd/configschema/go.mod index 18db7c5d0272..2346f16cbe80 100644 --- a/cmd/configschema/go.mod +++ b/cmd/configschema/go.mod @@ -19,8 +19,8 @@ require ( require ( github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.2.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.74.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.74.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.74.0 // indirect @@ -252,7 +252,7 @@ require ( github.com/DataDog/datadog-go/v5 v5.1.1 // indirect github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork // indirect github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 // indirect github.com/DataDog/sketches-go v1.4.1 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect diff --git a/cmd/configschema/go.sum b/cmd/configschema/go.sum index cae8758346af..0411a3fb32be 100644 --- a/cmd/configschema/go.sum +++ b/cmd/configschema/go.sum @@ -521,13 +521,13 @@ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork h1:yBq5PrAtrM4yVeSzQ+bn050+ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork/go.mod h1:yA5JwkZsHTLuqq3zaRgUQf35DfDkpOZqgtBqHKpwrBs= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc h1:gtlKB6B50/UEuFm1LeMn0R5a+tubx69OecPqxfXJDmU= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc/go.mod h1:oyPC4jWHHjVVNjslDAKp8EqfQBaSmODjHt4HCX+C+9Q= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.3 h1:CjM9M1OgQWLyWgK6jVd7rEeQxBJBDYkCzXSuHgutwvU= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 h1:BdnHb1sKibeL1GzzWcKBpTp2jpsMPlDQnI/HIsbCvlA= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 h1:u1KZ7YB83oh05sMLM99YECIOnH3jpHL8kVlKGDEGIOg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2/go.mod h1:9/XcaUAEsrkoiCR57Gk3wSmad7tYa4EvMVTs2fFn+Hg= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 h1:GMUVjuNfxMUPxOAM4wODLn5J9OO86ptsMCZruZgnf2o= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3/go.mod h1:yNmzqKwk/RyZNReNcX3o0QNSyNJcCAcaJLDLbczs7DE= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.4 h1:5gC2zb2xTNyDGuWwHWbje/sJiyaBcSo4rBERCnG42ds= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 h1:tl35Ud2sh1P8mFo2bWWM3yqtDnLeDouWE//NvtDUb4M= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 h1:oTzK1ODPO+Y15uMfH14Kq28G+IYJW7N6/7YcMnPbJzU= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4/go.mod h1:PXGHb9BTwC7hTFtwoK6UAPChFLHVwVJ4/FzzRo7StO4= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 h1:mWD1HhyYzADExrGxZyW0X5inEg+TiqlaMZQJyb/w2yk= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4/go.mod h1:EYYLy9L1QU36r1mLoR5NRopkJtVRDMBOFiwtWzi3jPg= github.com/DataDog/sketches-go v1.4.1 h1:j5G6as+9FASM2qC36lvpvQAj9qsv/jUs3FtO8CwZNAY= github.com/DataDog/sketches-go v1.4.1/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= diff --git a/cmd/otelcontribcol/go.mod b/cmd/otelcontribcol/go.mod index 00c5bc9e6c48..3e2ed2b10397 100644 --- a/cmd/otelcontribcol/go.mod +++ b/cmd/otelcontribcol/go.mod @@ -229,9 +229,9 @@ require ( github.com/DataDog/datadog-go/v5 v5.1.1 // indirect github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork // indirect github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 // indirect github.com/DataDog/sketches-go v1.4.1 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect diff --git a/cmd/otelcontribcol/go.sum b/cmd/otelcontribcol/go.sum index f6ca15ec427a..e56e90b9ecde 100644 --- a/cmd/otelcontribcol/go.sum +++ b/cmd/otelcontribcol/go.sum @@ -520,13 +520,13 @@ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork h1:yBq5PrAtrM4yVeSzQ+bn050+ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork/go.mod h1:yA5JwkZsHTLuqq3zaRgUQf35DfDkpOZqgtBqHKpwrBs= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc h1:gtlKB6B50/UEuFm1LeMn0R5a+tubx69OecPqxfXJDmU= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc/go.mod h1:oyPC4jWHHjVVNjslDAKp8EqfQBaSmODjHt4HCX+C+9Q= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.3 h1:CjM9M1OgQWLyWgK6jVd7rEeQxBJBDYkCzXSuHgutwvU= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 h1:BdnHb1sKibeL1GzzWcKBpTp2jpsMPlDQnI/HIsbCvlA= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 h1:u1KZ7YB83oh05sMLM99YECIOnH3jpHL8kVlKGDEGIOg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2/go.mod h1:9/XcaUAEsrkoiCR57Gk3wSmad7tYa4EvMVTs2fFn+Hg= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 h1:GMUVjuNfxMUPxOAM4wODLn5J9OO86ptsMCZruZgnf2o= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3/go.mod h1:yNmzqKwk/RyZNReNcX3o0QNSyNJcCAcaJLDLbczs7DE= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.4 h1:5gC2zb2xTNyDGuWwHWbje/sJiyaBcSo4rBERCnG42ds= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 h1:tl35Ud2sh1P8mFo2bWWM3yqtDnLeDouWE//NvtDUb4M= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 h1:oTzK1ODPO+Y15uMfH14Kq28G+IYJW7N6/7YcMnPbJzU= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4/go.mod h1:PXGHb9BTwC7hTFtwoK6UAPChFLHVwVJ4/FzzRo7StO4= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 h1:mWD1HhyYzADExrGxZyW0X5inEg+TiqlaMZQJyb/w2yk= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4/go.mod h1:EYYLy9L1QU36r1mLoR5NRopkJtVRDMBOFiwtWzi3jPg= github.com/DataDog/sketches-go v1.4.1 h1:j5G6as+9FASM2qC36lvpvQAj9qsv/jUs3FtO8CwZNAY= github.com/DataDog/sketches-go v1.4.1/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= diff --git a/exporter/datadogexporter/config.go b/exporter/datadogexporter/config.go index 937df8ba5809..716f1d4354ee 100644 --- a/exporter/datadogexporter/config.go +++ b/exporter/datadogexporter/config.go @@ -27,6 +27,7 @@ import ( "go.opentelemetry.io/collector/confmap" "go.opentelemetry.io/collector/exporter/exporterhelper" "go.uber.org/multierr" + "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter/internal/hostmetadata/valid" ) @@ -108,20 +109,25 @@ type HistogramConfig struct { // Mode for exporting histograms. Valid values are 'distributions', 'counters' or 'nobuckets'. // - 'distributions' sends histograms as Datadog distributions (recommended). // - 'counters' sends histograms as Datadog counts, one metric per bucket. - // - 'nobuckets' sends no bucket histogram metrics. .sum and .count metrics will still be sent - // if `send_count_sum_metrics` is enabled. + // - 'nobuckets' sends no bucket histogram metrics. Aggregation metrics will still be sent + // if `send_aggregation_metrics` is enabled. // // The current default is 'distributions'. Mode HistogramMode `mapstructure:"mode"` // SendCountSum states if the export should send .sum and .count metrics for histograms. - // The current default is false. + // The default is false. + // Deprecated: [v0.75.0] Use `send_aggregations` (HistogramConfig.SendAggregations) instead. SendCountSum bool `mapstructure:"send_count_sum_metrics"` + + // SendAggregations states if the exporter should send .sum, .count, .min and .max metrics for histograms. + // The default is false. + SendAggregations bool `mapstructure:"send_aggregation_metrics"` } func (c *HistogramConfig) validate() error { - if c.Mode == HistogramModeNoBuckets && !c.SendCountSum { - return fmt.Errorf("'nobuckets' mode and `send_count_sum_metrics` set to false will send no histogram metrics") + if c.Mode == HistogramModeNoBuckets && !c.SendAggregations { + return fmt.Errorf("'nobuckets' mode and `send_aggregation_metrics` set to false will send no histogram metrics") } return nil } @@ -364,6 +370,16 @@ type Config struct { // This flag is incompatible with disabling host metadata, // `use_resource_metadata`, or `host_metadata::hostname_source != first_resource` OnlyMetadata bool `mapstructure:"only_metadata"` + + // Non-fatal warnings found during configuration loading. + warnings []error +} + +// logWarnings logs warning messages that were generated on unmarshaling. +func (c *Config) logWarnings(logger *zap.Logger) { + for _, err := range c.warnings { + logger.Warn(fmt.Sprintf("%v", err)) + } } var _ component.Config = (*Config)(nil) @@ -488,6 +504,13 @@ func (c *Config) Unmarshal(configMap *confmap.Conf) error { return err } + // Add deprecation warnings for deprecated settings. + renamingWarnings, err := handleRenamedSettings(configMap, c) + if err != nil { + return err + } + c.warnings = append(c.warnings, renamingWarnings...) + c.API.Key = configopaque.String(strings.TrimSpace(string(c.API.Key))) // If an endpoint is not explicitly set, override it based on the site. diff --git a/exporter/datadogexporter/config_test.go b/exporter/datadogexporter/config_test.go index 95c1c260a5ce..f5d0e5385ddd 100644 --- a/exporter/datadogexporter/config_test.go +++ b/exporter/datadogexporter/config_test.go @@ -94,12 +94,12 @@ func TestValidate(t *testing.T) { API: APIConfig{Key: "notnull"}, Metrics: MetricsConfig{ HistConfig: HistogramConfig{ - Mode: HistogramModeNoBuckets, - SendCountSum: false, + Mode: HistogramModeNoBuckets, + SendAggregations: false, }, }, }, - err: "'nobuckets' mode and `send_count_sum_metrics` set to false will send no histogram metrics", + err: "'nobuckets' mode and `send_aggregation_metrics` set to false will send no histogram metrics", }, { name: "TLS settings are valid", diff --git a/exporter/datadogexporter/config_warnings.go b/exporter/datadogexporter/config_warnings.go new file mode 100644 index 000000000000..3f19cd44aa92 --- /dev/null +++ b/exporter/datadogexporter/config_warnings.go @@ -0,0 +1,85 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package datadogexporter // import "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter" + +import ( + "fmt" + + "go.opentelemetry.io/collector/confmap" + "go.uber.org/multierr" +) + +var _ error = (*deprecatedError)(nil) + +// deprecatedError is an error related to a renamed setting. +type deprecatedError struct { + // oldName of the configuration option. + oldName string + // newName of the configuration option. + newName string + // updateFn updates the configuration to map the old value into the new one. + // It must only be called when the old value is set and is not the default. + updateFn func(*Config) +} + +// List of settings that are deprecated but not yet removed. +var renamedSettings = []deprecatedError{ + { + oldName: "metrics::histograms::send_count_sum_metrics", + newName: "metrics::histograms::send_aggregation_metrics", + updateFn: func(c *Config) { + c.Metrics.HistConfig.SendAggregations = c.Metrics.HistConfig.SendCountSum + }, + }, +} + +// Error implements the error interface. +func (e deprecatedError) Error() string { + return fmt.Sprintf( + "%q has been deprecated in favor of %q", + e.oldName, + e.newName, + ) +} + +// Check if the deprecated option is being used. +// Error out if both the old and new options are being used. +func (e deprecatedError) Check(configMap *confmap.Conf) (bool, error) { + if configMap.IsSet(e.oldName) && configMap.IsSet(e.newName) { + return false, fmt.Errorf("%q and %q can't be both set at the same time: use %q only instead", e.oldName, e.newName, e.newName) + } + return configMap.IsSet(e.oldName), nil +} + +// UpdateCfg to move the old configuration value into the new one. +func (e deprecatedError) UpdateCfg(cfg *Config) { + e.updateFn(cfg) +} + +// handleRenamedSettings for a given configuration map. +// Error out if any pair of old-new options are set at the same time. +func handleRenamedSettings(configMap *confmap.Conf, cfg *Config) (warnings []error, err error) { + for _, renaming := range renamedSettings { + isOldNameUsed, errCheck := renaming.Check(configMap) + err = multierr.Append(err, errCheck) + + if errCheck == nil && isOldNameUsed { + warnings = append(warnings, renaming) + // only update config if old name is in use + renaming.UpdateCfg(cfg) + } + } + return +} diff --git a/exporter/datadogexporter/config_warnings_test.go b/exporter/datadogexporter/config_warnings_test.go new file mode 100644 index 000000000000..dab63cdf7801 --- /dev/null +++ b/exporter/datadogexporter/config_warnings_test.go @@ -0,0 +1,107 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package datadogexporter + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "go.opentelemetry.io/collector/confmap" +) + +func TestSendAggregations(t *testing.T) { + tests := []struct { + name string + cfgMap *confmap.Conf + expectedAggrValue bool + warnings []string + err string + }{ + { + name: "both metrics::histograms::send_count_sum_metrics and metrics::histograms::send_aggregation_metrics", + cfgMap: confmap.NewFromStringMap(map[string]any{ + "metrics": map[string]any{ + "histograms": map[string]any{ + "send_count_sum_metrics": true, + "send_aggregation_metrics": true, + }, + }, + }), + err: "\"metrics::histograms::send_count_sum_metrics\" and \"metrics::histograms::send_aggregation_metrics\" can't be both set at the same time: use \"metrics::histograms::send_aggregation_metrics\" only instead", + }, + { + name: "metrics::histograms::send_count_sum_metrics set to true", + cfgMap: confmap.NewFromStringMap(map[string]any{ + "metrics": map[string]any{ + "histograms": map[string]any{ + "send_count_sum_metrics": true, + }, + }, + }), + expectedAggrValue: true, + warnings: []string{ + "\"metrics::histograms::send_count_sum_metrics\" has been deprecated in favor of \"metrics::histograms::send_aggregation_metrics\"", + }, + }, + { + name: "metrics::histograms::send_count_sum_metrics set to false", + cfgMap: confmap.NewFromStringMap(map[string]any{ + "metrics": map[string]any{ + "histograms": map[string]any{ + "send_count_sum_metrics": false, + }, + }, + }), + warnings: []string{ + "\"metrics::histograms::send_count_sum_metrics\" has been deprecated in favor of \"metrics::histograms::send_aggregation_metrics\"", + }, + }, + { + name: "metrics::histograms::send_count_sum_metrics and metrics::histograms::send_aggregation_metrics unset", + cfgMap: confmap.New(), + expectedAggrValue: false, + }, + { + name: "metrics::histograms::send_aggregation_metrics set", + cfgMap: confmap.NewFromStringMap(map[string]any{ + "metrics": map[string]any{ + "histograms": map[string]any{ + "send_aggregation_metrics": true, + }, + }, + }), + expectedAggrValue: true, + }, + } + + for _, testInstance := range tests { + t.Run(testInstance.name, func(t *testing.T) { + f := NewFactory() + cfg := f.CreateDefaultConfig().(*Config) + err := cfg.Unmarshal(testInstance.cfgMap) + if err != nil || testInstance.err != "" { + assert.EqualError(t, err, testInstance.err) + } else { + assert.Equal(t, testInstance.expectedAggrValue, cfg.Metrics.HistConfig.SendAggregations) + var warningStr []string + for _, warning := range cfg.warnings { + warningStr = append(warningStr, warning.Error()) + } + assert.ElementsMatch(t, testInstance.warnings, warningStr) + } + }) + } + +} diff --git a/exporter/datadogexporter/examples/collector.yaml b/exporter/datadogexporter/examples/collector.yaml index 0e4888c7bfd2..ed3c4d058be2 100644 --- a/exporter/datadogexporter/examples/collector.yaml +++ b/exporter/datadogexporter/examples/collector.yaml @@ -178,11 +178,18 @@ exporters: # # mode: distributions + ## Deprecated [v0.75.0]: use `send_aggreggations` instead. ## @param send_count_sum_metrics - boolean - optional - default: false - ## Whether to report sum and count as separate histogram metrics. + ## Whether to report sum, count, min and max as separate histogram metrics. # # send_count_sum_metrics: false + ## @param send_aggreggations - boolean - optional - default: false + ## Whether to report sum, count, min and max as separate histogram metrics. + # + # send_aggreggations: false + + ## @param sums - custom object - optional ## Sums specific configuration. ## @param cumulative_monotonic_mode - string - optional - default: to_delta diff --git a/exporter/datadogexporter/factory.go b/exporter/datadogexporter/factory.go index d2859682ed47..3161f6b40e3f 100644 --- a/exporter/datadogexporter/factory.go +++ b/exporter/datadogexporter/factory.go @@ -32,6 +32,7 @@ import ( "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" + "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter/internal/hostmetadata" "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry" @@ -138,8 +139,8 @@ func (f *factory) createDefaultConfig() component.Config { InstrumentationScopeMetadataAsTags: false, }, HistConfig: HistogramConfig{ - Mode: "distributions", - SendCountSum: false, + Mode: "distributions", + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, @@ -171,11 +172,12 @@ func (f *factory) createDefaultConfig() component.Config { // checkAndCastConfig checks the configuration type and its warnings, and casts it to // the Datadog Config struct. -func checkAndCastConfig(c component.Config) *Config { +func checkAndCastConfig(c component.Config, logger *zap.Logger) *Config { cfg, ok := c.(*Config) if !ok { panic("programming error: config structure is not of type *datadogexporter.Config") } + cfg.logWarnings(logger) return cfg } @@ -185,7 +187,7 @@ func (f *factory) createMetricsExporter( set exporter.CreateSettings, c component.Config, ) (exporter.Metrics, error) { - cfg := checkAndCastConfig(c) + cfg := checkAndCastConfig(c, set.TelemetrySettings.Logger) hostProvider, err := f.SourceProvider(set.TelemetrySettings, cfg.Hostname) if err != nil { @@ -251,7 +253,7 @@ func (f *factory) createTracesExporter( set exporter.CreateSettings, c component.Config, ) (exporter.Traces, error) { - cfg := checkAndCastConfig(c) + cfg := checkAndCastConfig(c, set.TelemetrySettings.Logger) var ( pusher consumer.ConsumeTracesFunc @@ -319,7 +321,7 @@ func (f *factory) createLogsExporter( set exporter.CreateSettings, c component.Config, ) (exporter.Logs, error) { - cfg := checkAndCastConfig(c) + cfg := checkAndCastConfig(c, set.TelemetrySettings.Logger) var pusher consumer.ConsumeLogsFunc hostProvider, err := f.SourceProvider(set.TelemetrySettings, cfg.Hostname) diff --git a/exporter/datadogexporter/factory_test.go b/exporter/datadogexporter/factory_test.go index 5724669e5f59..04f1f8bd3313 100644 --- a/exporter/datadogexporter/factory_test.go +++ b/exporter/datadogexporter/factory_test.go @@ -54,8 +54,8 @@ func TestCreateDefaultConfig(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: "distributions", - SendCountSum: false, + Mode: "distributions", + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, @@ -115,8 +115,8 @@ func TestLoadConfig(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: "distributions", - SendCountSum: false, + Mode: "distributions", + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, @@ -164,8 +164,8 @@ func TestLoadConfig(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: "distributions", - SendCountSum: false, + Mode: "distributions", + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, @@ -217,8 +217,8 @@ func TestLoadConfig(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: "distributions", - SendCountSum: false, + Mode: "distributions", + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, diff --git a/exporter/datadogexporter/go.mod b/exporter/datadogexporter/go.mod index 1ba29f3fe5f3..678f50d9c836 100644 --- a/exporter/datadogexporter/go.mod +++ b/exporter/datadogexporter/go.mod @@ -7,9 +7,9 @@ require ( github.com/DataDog/datadog-agent/pkg/trace v0.44.0-rc.4.0.20230322085447-8b27e87df01c github.com/DataDog/datadog-api-client-go/v2 v2.10.0 github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 github.com/DataDog/sketches-go v1.4.1 github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.12.0 github.com/aws/aws-sdk-go v1.44.226 diff --git a/exporter/datadogexporter/go.sum b/exporter/datadogexporter/go.sum index d303185a382a..b62de20c4474 100644 --- a/exporter/datadogexporter/go.sum +++ b/exporter/datadogexporter/go.sum @@ -72,13 +72,13 @@ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork h1:yBq5PrAtrM4yVeSzQ+bn050+ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork/go.mod h1:yA5JwkZsHTLuqq3zaRgUQf35DfDkpOZqgtBqHKpwrBs= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc h1:gtlKB6B50/UEuFm1LeMn0R5a+tubx69OecPqxfXJDmU= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc/go.mod h1:oyPC4jWHHjVVNjslDAKp8EqfQBaSmODjHt4HCX+C+9Q= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.3 h1:CjM9M1OgQWLyWgK6jVd7rEeQxBJBDYkCzXSuHgutwvU= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 h1:BdnHb1sKibeL1GzzWcKBpTp2jpsMPlDQnI/HIsbCvlA= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 h1:u1KZ7YB83oh05sMLM99YECIOnH3jpHL8kVlKGDEGIOg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2/go.mod h1:9/XcaUAEsrkoiCR57Gk3wSmad7tYa4EvMVTs2fFn+Hg= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 h1:GMUVjuNfxMUPxOAM4wODLn5J9OO86ptsMCZruZgnf2o= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3/go.mod h1:yNmzqKwk/RyZNReNcX3o0QNSyNJcCAcaJLDLbczs7DE= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.4 h1:5gC2zb2xTNyDGuWwHWbje/sJiyaBcSo4rBERCnG42ds= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 h1:tl35Ud2sh1P8mFo2bWWM3yqtDnLeDouWE//NvtDUb4M= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 h1:oTzK1ODPO+Y15uMfH14Kq28G+IYJW7N6/7YcMnPbJzU= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4/go.mod h1:PXGHb9BTwC7hTFtwoK6UAPChFLHVwVJ4/FzzRo7StO4= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 h1:mWD1HhyYzADExrGxZyW0X5inEg+TiqlaMZQJyb/w2yk= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4/go.mod h1:EYYLy9L1QU36r1mLoR5NRopkJtVRDMBOFiwtWzi3jPg= github.com/DataDog/sketches-go v1.4.1 h1:j5G6as+9FASM2qC36lvpvQAj9qsv/jUs3FtO8CwZNAY= github.com/DataDog/sketches-go v1.4.1/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= @@ -451,6 +451,7 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leoluk/perflib_exporter v0.2.0 h1:WJU7N3AIHxfc3CjoEJcBgG3i2ltF5Yz1ADVY9T6f1BY= github.com/leoluk/perflib_exporter v0.2.0/go.mod h1:MinSWm88jguXFFrGsP56PtleUb4Qtm4tNRH/wXNXRTI= +github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220517141722-cf486979b281 h1:aczX6NMOtt6L4YT0fQvKkDK6LZEtdOso9sUH89V1+P0= github.com/lufia/plan9stats v0.0.0-20220517141722-cf486979b281/go.mod h1:lc+czkgO/8F7puNki5jk8QyujbfK1LOT7Wl0ON2hxyk= diff --git a/exporter/datadogexporter/metrics_exporter.go b/exporter/datadogexporter/metrics_exporter.go index 96575b144ec6..2cc1062685b4 100644 --- a/exporter/datadogexporter/metrics_exporter.go +++ b/exporter/datadogexporter/metrics_exporter.go @@ -65,8 +65,8 @@ func translatorFromConfig(logger *zap.Logger, cfg *Config, sourceProvider source otlpmetrics.WithFallbackSourceProvider(sourceProvider), } - if cfg.Metrics.HistConfig.SendCountSum { - options = append(options, otlpmetrics.WithCountSumMetrics()) + if cfg.Metrics.HistConfig.SendAggregations { + options = append(options, otlpmetrics.WithHistogramAggregations()) } if cfg.Metrics.SummaryConfig.Mode == SummaryModeGauges { diff --git a/exporter/datadogexporter/metrics_exporter_test.go b/exporter/datadogexporter/metrics_exporter_test.go index cc72af377301..1c41b6b513cc 100644 --- a/exporter/datadogexporter/metrics_exporter_test.go +++ b/exporter/datadogexporter/metrics_exporter_test.go @@ -61,8 +61,8 @@ func TestNewExporter(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: HistogramModeDistributions, - SendCountSum: false, + Mode: HistogramModeDistributions, + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, @@ -383,8 +383,8 @@ func TestNewExporter_Zorkian(t *testing.T) { }, DeltaTTL: 3600, HistConfig: HistogramConfig{ - Mode: HistogramModeDistributions, - SendCountSum: false, + Mode: HistogramModeDistributions, + SendAggregations: false, }, SumConfig: SumConfig{ CumulativeMonotonicMode: CumulativeMonotonicSumModeToDelta, diff --git a/go.mod b/go.mod index 80b14a971a65..2e956846a38e 100644 --- a/go.mod +++ b/go.mod @@ -237,9 +237,9 @@ require ( github.com/DataDog/datadog-go/v5 v5.1.1 // indirect github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork // indirect github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 // indirect github.com/DataDog/sketches-go v1.4.1 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect diff --git a/go.sum b/go.sum index 392b7b557af0..cc306a8fead6 100644 --- a/go.sum +++ b/go.sum @@ -524,13 +524,13 @@ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork h1:yBq5PrAtrM4yVeSzQ+bn050+ github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork/go.mod h1:yA5JwkZsHTLuqq3zaRgUQf35DfDkpOZqgtBqHKpwrBs= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc h1:gtlKB6B50/UEuFm1LeMn0R5a+tubx69OecPqxfXJDmU= github.com/DataDog/gohai v0.0.0-20220718130825-1776f9beb9cc/go.mod h1:oyPC4jWHHjVVNjslDAKp8EqfQBaSmODjHt4HCX+C+9Q= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.3 h1:CjM9M1OgQWLyWgK6jVd7rEeQxBJBDYkCzXSuHgutwvU= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3 h1:BdnHb1sKibeL1GzzWcKBpTp2jpsMPlDQnI/HIsbCvlA= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.3/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2 h1:u1KZ7YB83oh05sMLM99YECIOnH3jpHL8kVlKGDEGIOg= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.2/go.mod h1:9/XcaUAEsrkoiCR57Gk3wSmad7tYa4EvMVTs2fFn+Hg= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 h1:GMUVjuNfxMUPxOAM4wODLn5J9OO86ptsMCZruZgnf2o= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3/go.mod h1:yNmzqKwk/RyZNReNcX3o0QNSyNJcCAcaJLDLbczs7DE= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.4 h1:5gC2zb2xTNyDGuWwHWbje/sJiyaBcSo4rBERCnG42ds= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 h1:tl35Ud2sh1P8mFo2bWWM3yqtDnLeDouWE//NvtDUb4M= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 h1:oTzK1ODPO+Y15uMfH14Kq28G+IYJW7N6/7YcMnPbJzU= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4/go.mod h1:PXGHb9BTwC7hTFtwoK6UAPChFLHVwVJ4/FzzRo7StO4= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 h1:mWD1HhyYzADExrGxZyW0X5inEg+TiqlaMZQJyb/w2yk= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4/go.mod h1:EYYLy9L1QU36r1mLoR5NRopkJtVRDMBOFiwtWzi3jPg= github.com/DataDog/sketches-go v1.4.1 h1:j5G6as+9FASM2qC36lvpvQAj9qsv/jUs3FtO8CwZNAY= github.com/DataDog/sketches-go v1.4.1/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= diff --git a/processor/datadogprocessor/go.mod b/processor/datadogprocessor/go.mod index c7844a00e72d..b75ea120e539 100644 --- a/processor/datadogprocessor/go.mod +++ b/processor/datadogprocessor/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/DataDog/datadog-agent/pkg/trace v0.44.0-rc.3 - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.1 + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 github.com/DataDog/sketches-go v1.4.1 github.com/stretchr/testify v1.8.2 go.opentelemetry.io/collector v0.74.0 @@ -25,8 +25,8 @@ require ( github.com/DataDog/datadog-agent/pkg/util/scrubber v0.44.0-rc.3 // indirect github.com/DataDog/datadog-go/v5 v5.1.1 // indirect github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.2 // indirect - github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 // indirect + github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/processor/datadogprocessor/go.sum b/processor/datadogprocessor/go.sum index aef352fa7c66..52dc3bd76bc7 100644 --- a/processor/datadogprocessor/go.sum +++ b/processor/datadogprocessor/go.sum @@ -19,13 +19,13 @@ github.com/DataDog/datadog-go/v5 v5.1.1 h1:JLZ6s2K1pG2h9GkvEvMdEGqMDyVLEAccdX5Tl github.com/DataDog/datadog-go/v5 v5.1.1/go.mod h1:KhiYb2Badlv9/rofz+OznKoEF5XKTonWyhx5K83AP8E= github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork h1:yBq5PrAtrM4yVeSzQ+bn050+Ysp++RKF1QmtkL4VqvU= github.com/DataDog/go-tuf v0.3.0--fix-localmeta-fork/go.mod h1:yA5JwkZsHTLuqq3zaRgUQf35DfDkpOZqgtBqHKpwrBs= -github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.3 h1:CjM9M1OgQWLyWgK6jVd7rEeQxBJBDYkCzXSuHgutwvU= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.2 h1:gpPr6YYilZMlr+GDNIHiCGcrgQuzBD5sk9YDI7yQDUA= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.2/go.mod h1:rlVyj1Bu2+fPIZOGAL37ucLrYa5BO9ADWgcwBZYQ9sw= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.1 h1:xX7lmiJKFAy3q3sUxO7rEj+zGGOft2sdURZrNLSyOQs= -github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.1/go.mod h1:bzWkV8SRH/a1hlQKun8Bp84T+nhKcpdCfvts05zJxgk= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3 h1:GMUVjuNfxMUPxOAM4wODLn5J9OO86ptsMCZruZgnf2o= -github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.3/go.mod h1:yNmzqKwk/RyZNReNcX3o0QNSyNJcCAcaJLDLbczs7DE= +github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.1.4 h1:5gC2zb2xTNyDGuWwHWbje/sJiyaBcSo4rBERCnG42ds= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4 h1:tl35Ud2sh1P8mFo2bWWM3yqtDnLeDouWE//NvtDUb4M= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.4/go.mod h1:LMY0LJIbNndS+68ouip+w1G7dieGkoA1TjLZyvVzbyg= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4 h1:oTzK1ODPO+Y15uMfH14Kq28G+IYJW7N6/7YcMnPbJzU= +github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.4/go.mod h1:PXGHb9BTwC7hTFtwoK6UAPChFLHVwVJ4/FzzRo7StO4= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4 h1:mWD1HhyYzADExrGxZyW0X5inEg+TiqlaMZQJyb/w2yk= +github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.1.4/go.mod h1:EYYLy9L1QU36r1mLoR5NRopkJtVRDMBOFiwtWzi3jPg= github.com/DataDog/sketches-go v1.4.1 h1:j5G6as+9FASM2qC36lvpvQAj9qsv/jUs3FtO8CwZNAY= github.com/DataDog/sketches-go v1.4.1/go.mod h1:xJIXldczJyyjnbDop7ZZcLxJdV3+7Kra7H1KMgpgkLk= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= @@ -227,6 +227,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20220517141722-cf486979b281 h1:aczX6NMOtt6L4YT0fQvKkDK6LZEtdOso9sUH89V1+P0= github.com/lufia/plan9stats v0.0.0-20220517141722-cf486979b281/go.mod h1:lc+czkgO/8F7puNki5jk8QyujbfK1LOT7Wl0ON2hxyk=