orbreceiver

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2022 License: MPL-2.0 Imports: 23 Imported by: 0

README

OTLP Receiver

Status
Stability traces stable
metrics stable
logs beta
Supported pipeline types traces, metrics, logs
Distributions core, contrib

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:

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 protobuf JSON.

To write traces with HTTP/JSON, POST to [address]/v1/traces for traces, to [address]/v1/metrics for metrics, to [address]/v1/logs for logs. The default port is 4318.

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

Index

Constants

View Source
const OtelMetricsTopic = "otlp.*.m.>"

Variables

This section is empty.

Functions

func NewFactory

func NewFactory() component.ReceiverFactory

NewFactory creates a new OTLP receiver factory.

Types

type Config

type Config struct {
	config.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).
	Logger *zap.Logger

	// Entry from Metrics
	PubSub mfnats.PubSub
	// Entry for Accessing DataSets, AgentGroup and Sinks
	SinkerService *bridgeservice.SinkerOtelBridgeService
}

Config defines configuration for OTLP receiver.

func (*Config) Unmarshal

func (cfg *Config) Unmarshal(componentParser *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 OrbReceiver

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

OrbReceiver is the type that exposes Trace and Metrics reception.

func NewOrbReceiver

func NewOrbReceiver(ctx context.Context, cfg *Config, settings component.ReceiverCreateSettings) *OrbReceiver

NewOrbReceiver 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 (*OrbReceiver) MessageInbound

func (r *OrbReceiver) MessageInbound(msg messaging.Message) error

func (*OrbReceiver) Shutdown

func (r *OrbReceiver) Shutdown(ctx context.Context) error

Shutdown is a method to turn off receiving.

func (*OrbReceiver) Start

func (r *OrbReceiver) Start(ctx context.Context, _ component.Host) error

Start appends the message channel that Orb-Sinker will deliver the message

Directories

Path Synopsis
internal
sharedcomponent
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.

Jump to

Keyboard shortcuts

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