otlpreceiver

package module
v0.104.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2024 License: Apache-2.0 Imports: 36 Imported by: 73

README

OTLP Receiver

Status
Stability beta: logs
stable: traces, metrics
Distributions core, contrib, k8s
Issues Open issues Closed issues

Receives data via gRPC or HTTP using OTLP format.

Getting Started

All that is required to enable the OTLP receiver is to include it in the receiver definitions. A protocol can be disabled by simply not specifying it in the list of protocols.

receivers:
  otlp:
    protocols:
      grpc:
      http:

The following settings are configurable:

  • endpoint (default = 0.0.0.0:4317 for grpc protocol, 0.0.0.0:4318 http protocol): host:port to which the receiver is going to receive data. The valid syntax is described at https://github.com/grpc/grpc/blob/master/doc/naming.md. The component.UseLocalHostAsDefaultHost feature gate changes these to localhost:4317 and localhost:4318 respectively. This will become the default in a future release.

Advanced Configuration

Several helper files are leveraged to provide additional capabilities automatically:

Writing with HTTP/JSON

The OTLP receiver can receive trace export calls via HTTP/JSON in addition to gRPC. The HTTP/JSON address is the same as gRPC as the protocol is recognized and processed accordingly. Note the serialization format needs to be OTLP JSON.

The HTTP/JSON configuration also provides traces_url_path, metrics_url_path, and logs_url_path configuration to allow the URL paths that signal data needs to be sent to be modified per signal type. These default to /v1/traces, /v1/metrics, and /v1/logs respectively.

To write traces with HTTP/JSON, POST to [address]/[traces_url_path] for traces, to [address]/[metrics_url_path] for metrics, to [address]/[logs_url_path] for logs. The default port is 4318. When using the otlphttpexporter peer to communicate with this component, use the traces_endpoint, metrics_endpoint, and logs_endpoint settings in the otlphttpexporter to set the proper URL to match the address and URL signal path on the otlpreceiver.

CORS (Cross-origin resource sharing)

The HTTP/JSON endpoint can also optionally configure CORS under cors:. Specify what origins (or wildcard patterns) to allow requests from as allowed_origins. To allow additional request headers outside of the default safelist, set allowed_headers. Browsers can be instructed to cache responses to preflight requests by setting max_age.

receivers:
  otlp:
    protocols:
      http:
        endpoint: "localhost:4318"
        cors:
          allowed_origins:
            - http://test.com
            # Origins can have wildcards with *, use * by itself to match any origin.
            - https://*.example.com
          allowed_headers:
            - Example-Header
          max_age: 7200

Documentation

Overview

Package otlpreceiver receives data in OTLP format.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFactory

func NewFactory() receiver.Factory

NewFactory creates a new OTLP receiver factory.

Types

type Config

type Config struct {
	// Protocols is the configuration for the supported protocols, currently gRPC and HTTP (Proto and JSON).
	Protocols `mapstructure:"protocols"`
}

Config defines configuration for OTLP receiver.

func (*Config) Unmarshal

func (cfg *Config) Unmarshal(conf *confmap.Conf) error

Unmarshal a confmap.Conf into the config struct.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate checks the receiver configuration is valid

type HTTPConfig added in v0.84.0

type HTTPConfig struct {
	*confighttp.ServerConfig `mapstructure:",squash"`

	// The URL path to receive traces on. If omitted "/v1/traces" will be used.
	TracesURLPath string `mapstructure:"traces_url_path,omitempty"`

	// The URL path to receive metrics on. If omitted "/v1/metrics" will be used.
	MetricsURLPath string `mapstructure:"metrics_url_path,omitempty"`

	// The URL path to receive logs on. If omitted "/v1/logs" will be used.
	LogsURLPath string `mapstructure:"logs_url_path,omitempty"`
}

type Protocols

type Protocols struct {
	GRPC *configgrpc.ServerConfig `mapstructure:"grpc"`
	HTTP *HTTPConfig              `mapstructure:"http"`
}

Protocols is the configuration for the supported protocols.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL