storage

package module
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2021 License: Apache-2.0 Imports: 3 Imported by: 0

README

Storage

A storage extension persists state beyond the collector process. Other components can request a storage client from the storage extension and use it to manage state.

The storage.Extension interface extends component.Extension by adding the following method:

GetClient(context.Context, component.Kind, config.ComponentID, string) (Client, error)

The storage.Client interface contains the following methods:

Get(context.Context, string) ([]byte, error)
Set(context.Context, string, []byte) error
Delete(context.Context, string) error
Close(context.Context) error

Note: All methods should return error only if a problem occurred. (For example, if a file is no longer accessible, or if a remote service is unavailable.)

Note: It is the responsibility of each component to Close a storage client that it has requested.

Documentation

Overview

Package stanzareceiver implements a receiver that can be used by the Opentelemetry collector to receive logs using the stanza log agent

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {

	// Get will retrieve data from storage that corresponds to the
	// specified key. It should return nil, nil if not found
	Get(context.Context, string) ([]byte, error)

	// Set will store data. The data can be retrieved by the same
	// component after a process restart, using the same key
	Set(context.Context, string, []byte) error

	// Delete will delete data associated with the specified key
	Delete(context.Context, string) error

	// Close will release any resources held by the client
	Close(context.Context) error
}

Client is the interface that storage clients must implement All methods should return error only if a problem occurred. This mirrors the behavior of a golang map:

  • Set doesn't error if a key already exists - it just overwrites the value.
  • Get doesn't error if a key is not found - it just returns nil.
  • Delete doesn't error if the key doesn't exist - it just no-ops.

This also provides a way to differentiate data operations

[overwrite | not-found | no-op] from "real" problems

func NewNopClient

func NewNopClient() Client

NewNopClient returns a nop client

type Extension

type Extension interface {
	component.Extension

	// GetClient will create a client for use by the specified component.
	// The component can use the client to manage state
	GetClient(context.Context, component.Kind, config.ComponentID, string) (Client, error)
}

Extension is the interface that storage extensions must implement

Directories

Path Synopsis
dbstorage module
Package stanzareceiver implements a receiver that can be used by the Opentelemetry collector to receive logs using the stanza log agent
Package stanzareceiver implements a receiver that can be used by the Opentelemetry collector to receive logs using the stanza log agent

Jump to

Keyboard shortcuts

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