solacereceiver

package module
v0.99.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 27 Imported by: 6

README

Solace Receiver

Status
Stability beta: traces
Distributions contrib
Issues Open issues Closed issues
Code Owners @djaglowski, @mcardy

The Solace receiver receives trace data from a Solace PubSub+ Event Broker.

Getting Started

To get started with the Solace receiver, a telemetry queue and authentication details must be configured. If connecting to a broker other than localhost, the broker field should be configured.

receivers:
  solace:
    broker: [localhost:5671]
    auth:
      sasl_plain:
        username: otel
        password: otel01$
    queue: queue://#telemetry-profile123

service:
  pipelines:
    traces:
      receivers: [solace]

Configuration

The configuration parameters are:

  • broker (Solace broker using amqp over tls; optional; default: localhost:5671; format: ip(host):port)
  • queue (The name of the Solace queue to get span trace messages from; required; format: queue://#telemetry-myTelemetryProfile)
  • max_unacknowledged (The maximum number of unacknowledged messages the Solace broker can transmit; optional; default: 10)
  • tls (Advanced tls configuration, secure by default)
    • insecure (The switch from ‘amqps’ to 'amqp’ to disable tls; optional; default: false)
    • server_name_override (Server name is the value of the Server Name Indication extension sent by the client; optional; default: empty string)
    • insecure_skip_verify (Disables server certificate validation; optional; default: false)
    • ca_file (Path to the User specified trust-store; used for a client to verify the server certificate; if empty uses system root CA; optional, default: empty string)
    • cert_file (Path to the TLS cert for client cert authentication, it is required when authentication sasl_external is chosen; non optional for sasl_external authentication)
    • key_file (Path to the TLS key for client cert authentication, it is required when authentication sasl_external is chosen; non optional for sasl_external authentication)
  • auth (Authentication settings. Permitted sub sub-configurations: sasl_plain, sasl_xauth2, sasl_external)
    • sasl_plain (Enables SASL PLAIN authentication)
      • username (The username to use, required for sasl_plain authentication)
      • password (The password to use; required for sasl_plain authentication)
    • sasl_xauth2 (SASL XOauth2 authentication)
      • username (The username to use; required for sasl_xauth2 authentication)
      • bearer (The bearer token in plain text; required for sasl_xauth2 authentication)
    • sasl_external (SASL External required to be used for TLS client cert authentication. When this authentication type is chosen then tls cert_file and key_file are required)
  • flow_control (Configures the behaviour to use when temporary errors are encountered from the next component)
    • delayed_retry (Default flow control strategy. Sets the flow control strategy to delayed retry which will wait before trying to push the message to the next component again)
      • delay (The delay, e.g. 10ms, to wait before retrying. Default is 10ms)
Examples:

Simple single node configuration with SASL plain authentication (TLS enabled by default)

receivers:
  solace:
    broker: [localhost:5671]
    auth:
      sasl_plain:
        username: otel
        password: otel01$
    queue: queue://#telemetry-profile123

service:
  pipelines:
    traces:
      receivers: [solace]

High availability setup with SASL plain authentication (TLS enabled by default)

receivers:
  solace/primary:
    broker: [myHost-primary:5671]
    auth:
      sasl_plain:
        username: otel
        password: otel01$
    queue: queue://#telemetry-profile123

  solace/backup:
    broker: [myHost-backup:5671]
    auth:
      sasl_plain:
        username: otel
        password: otel01$
    queue: queue://#telemetry-profile123

service:
  pipelines:
    traces/solace:
      receivers: [solace/primary,solace/backup]

Documentation

Overview

Package solacereceiver receives traces from Solace broker using AMQP 1.0 protocol.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFactory

func NewFactory() receiver.Factory

NewFactory creates a factory for Solace receiver.

Types

type Authentication

type Authentication struct {
	PlainText *SaslPlainTextConfig `mapstructure:"sasl_plain"`
	XAuth2    *SaslXAuth2Config    `mapstructure:"sasl_xauth2"`
	External  *SaslExternalConfig  `mapstructure:"sasl_external"`
}

Authentication defines authentication strategies.

type Config

type Config struct {
	// The list of solace brokers (default localhost:5671)
	Broker []string `mapstructure:"broker"`

	// The name of the solace queue to consume from, it is required parameter
	Queue string `mapstructure:"queue"`

	// The maximum number of unacknowledged messages the Solace broker can transmit, to configure AMQP Link
	MaxUnacked int32 `mapstructure:"max_unacknowledged"`

	TLS configtls.ClientConfig `mapstructure:"tls,omitempty"`

	Auth Authentication `mapstructure:"auth"`

	Flow FlowControl `mapstructure:"flow_control"`
}

Config defines configuration for Solace receiver.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate checks the receiver configuration is valid

type FlowControl added in v0.67.0

type FlowControl struct {
	DelayedRetry *FlowControlDelayedRetry `mapstructure:"delayed_retry"`
}

FlowControl defines the configuration for what to do in backpressure scenarios, e.g. memorylimiter errors

type FlowControlDelayedRetry added in v0.67.0

type FlowControlDelayedRetry struct {
	Delay time.Duration `mapstructure:"delay"`
}

FlowControlDelayedRetry represents the strategy of waiting for a defined amount of time (in time.Duration) and attempt redelivery

type SaslExternalConfig

type SaslExternalConfig struct {
}

SaslExternalConfig defines the configuration for the SASL External used in conjunction with TLS client authentication.

type SaslPlainTextConfig

type SaslPlainTextConfig struct {
	Username string              `mapstructure:"username"`
	Password configopaque.String `mapstructure:"password"`
}

SaslPlainTextConfig defines SASL PLAIN authentication.

type SaslXAuth2Config

type SaslXAuth2Config struct {
	Username string `mapstructure:"username"`
	Bearer   string `mapstructure:"bearer"`
}

SaslXAuth2Config defines the configuration for the SASL XAUTH2 authentication.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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