otlpreceiver

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2020 License: Apache-2.0 Imports: 20 Imported by: 60

README

OpenTelemetry Receiver

This is the default receiver for the OpenTelemetry project.

To get started, all that is required to enable the OpenTelemetry receiver is to include it in the receiver definitions and defined the enabled protocols. This will enable the default values as specified here. The following is an example:

receivers:
  otlp:
    protocols:
      grpc:
      http:

The full list of settings exposed for this receiver are documented here with detailed sample configurations here.

A protocol can be disabled by simply not specifying it in the list of protocols:

receivers:
  otlp/only_grpc:
    protocols:
      grpc:

Communicating over TLS

This receiver supports communication using Transport Layer Security (TLS). TLS can be configured by specifying a tls_settings object in the receiver configuration for receivers that support it.

receivers:
  otlp:
    protocols:
      grpc:
        tls_settings:
          key_file: /key.pem # path to private key
          cert_file: /cert.pem # path to certificate

Writing with HTTP/JSON

The OpenTelemetry 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 format needs to be protobuf JSON serialization.

IMPORTANT: bytes fields are encoded as base64 strings.

To write traces with HTTP/JSON, POST to [address]/v1/trace.

The HTTP/JSON endpoint can also optionally configure CORS, which is enabled by specifying a list of allowed CORS origins in the cors_allowed_origins field:

receivers:
  otlp:
    protocols:
      http:
        endpoint: "localhost:55681"
        cors_allowed_origins:
        - http://test.com
        # Origins can have wildcards with *, use * by itself to match any origin.
        - https://*.example.com

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	configmodels.ReceiverSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded 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.

type Factory

type Factory struct {
}

Factory is the Factory for receiver.

func (*Factory) CreateDefaultConfig

func (f *Factory) CreateDefaultConfig() configmodels.Receiver

CreateDefaultConfig creates the default configuration for receiver.

func (*Factory) CreateMetricsReceiver

CreateMetricsReceiver creates a metrics receiver based on provided config.

func (*Factory) CreateTraceReceiver

CreateTraceReceiver creates a trace receiver based on provided config.

func (*Factory) CustomUnmarshaler

func (f *Factory) CustomUnmarshaler() component.CustomUnmarshaler

CustomUnmarshaler is used to add defaults for named but empty protocols

func (*Factory) Type

func (f *Factory) Type() configmodels.Type

Type gets the type of the Receiver config created by this Factory.

type Protocols added in v0.5.0

type Protocols struct {
	GRPC *configgrpc.GRPCServerSettings `mapstructure:"grpc"`
	HTTP *confighttp.HTTPServerSettings `mapstructure:"http"`
}

type Receiver

type Receiver struct {
	// contains filtered or unexported fields
}

Receiver is the type that exposes Trace and Metrics reception.

func New

func New(cfg *Config) (*Receiver, error)

New just creates the OpenTelemetry receiver services. It is the caller's responsibility to invoke the respective Start*Reception methods as well as the various Stop*Reception methods to end it.

func (*Receiver) Shutdown

func (r *Receiver) Shutdown(context.Context) error

Shutdown is a method to turn off receiving.

func (*Receiver) Start

func (r *Receiver) Start(ctx context.Context, host component.Host) error

Start runs the trace receiver on the gRPC server. Currently it also enables the metrics receiver too.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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