Files
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
903b77efbd Bump the opentelemetry-collector group with 4 updates (#5530)
Bumps the opentelemetry-collector group with 4 updates: [go.opentelemetry.io/collector/exporter/otlpexporter](https://github.com/open-telemetry/opentelemetry-collector), [go.opentelemetry.io/collector/exporter/otlphttpexporter](https://github.com/open-telemetry/opentelemetry-collector), [go.opentelemetry.io/collector/otelcol](https://github.com/open-telemetry/opentelemetry-collector) and [go.opentelemetry.io/collector/receiver/otlpreceiver](https://github.com/open-telemetry/opentelemetry-collector).


Updates `go.opentelemetry.io/collector/exporter/otlpexporter` from 0.131.0 to 0.132.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.131.0...v0.132.0)

Updates `go.opentelemetry.io/collector/exporter/otlphttpexporter` from 0.131.0 to 0.132.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.131.0...v0.132.0)

Updates `go.opentelemetry.io/collector/otelcol` from 0.131.0 to 0.132.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.131.0...v0.132.0)

Updates `go.opentelemetry.io/collector/receiver/otlpreceiver` from 0.131.0 to 0.132.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-collector/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CHANGELOG-API.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-collector/compare/v0.131.0...v0.132.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/collector/exporter/otlpexporter
  dependency-version: 0.132.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry-collector
- dependency-name: go.opentelemetry.io/collector/exporter/otlphttpexporter
  dependency-version: 0.132.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry-collector
- dependency-name: go.opentelemetry.io/collector/otelcol
  dependency-version: 0.132.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry-collector
- dependency-name: go.opentelemetry.io/collector/receiver/otlpreceiver
  dependency-version: 0.132.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry-collector
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 14:52:28 +02:00

78 lines
2.2 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package otlpreceiver // import "go.opentelemetry.io/collector/receiver/otlpreceiver"
import (
"encoding"
"errors"
"fmt"
"net/url"
"path"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configgrpc"
"go.opentelemetry.io/collector/config/confighttp"
"go.opentelemetry.io/collector/config/configoptional"
)
type SanitizedURLPath string
var _ encoding.TextUnmarshaler = (*SanitizedURLPath)(nil)
func (s *SanitizedURLPath) UnmarshalText(text []byte) error {
u, err := url.Parse(string(text))
if err != nil {
return fmt.Errorf("invalid HTTP URL path set for signal: %w", err)
}
if !path.IsAbs(u.Path) {
u.Path = "/" + u.Path
}
*s = SanitizedURLPath(u.Path)
return nil
}
type HTTPConfig struct {
ServerConfig confighttp.ServerConfig `mapstructure:",squash"`
// The URL path to receive traces on. If omitted "/v1/traces" will be used.
TracesURLPath SanitizedURLPath `mapstructure:"traces_url_path,omitempty"`
// The URL path to receive metrics on. If omitted "/v1/metrics" will be used.
MetricsURLPath SanitizedURLPath `mapstructure:"metrics_url_path,omitempty"`
// The URL path to receive logs on. If omitted "/v1/logs" will be used.
LogsURLPath SanitizedURLPath `mapstructure:"logs_url_path,omitempty"`
// prevent unkeyed literal initialization
_ struct{}
}
// Protocols is the configuration for the supported protocols.
type Protocols struct {
GRPC configoptional.Optional[configgrpc.ServerConfig] `mapstructure:"grpc"`
HTTP configoptional.Optional[HTTPConfig] `mapstructure:"http"`
// prevent unkeyed literal initialization
_ struct{}
}
// Config defines configuration for OTLP receiver.
type Config struct {
// Protocols is the configuration for the supported protocols, currently gRPC and HTTP (Proto and JSON).
Protocols `mapstructure:"protocols"`
// prevent unkeyed literal initialization
_ struct{}
}
var _ component.Config = (*Config)(nil)
// Validate checks the receiver configuration is valid
func (cfg *Config) Validate() error {
if !cfg.GRPC.HasValue() && !cfg.HTTP.HasValue() {
return errors.New("must specify at least one protocol when using the OTLP receiver")
}
return nil
}