cloudlog

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 18, 2017 License: MIT Imports: 12 Imported by: 2

README

go-cloudlog

GoDoc Build Status codecov Go Report Card

go-cloudlog is a client library for Anexia CloudLog.

Currently it only provides to push events to CloudLog. Querying is possible in a future release.

Install

With a correctly configured Go toolchain:

go get -u github.com/anexia-it/go-cloudlog

Examples

You can find examples located in the examples directory

Quickstart

package main

import cloudlog "github.com/anexia-it/go-cloudlog"

func main() {

  // Init CloudLog client
  client, err := cloudlog.InitCloudLog("index", "ca.pem", "cert.pem", "cert.key")
  if err != nil {
    panic(err)
  }
  
  // Push simple message
  client.PushEvent("message")
  
  // Push document
  client.PushEvent(`{
    "timestamp": 1495024205123,
    "user": "test",
    "severity": 1,
    "message": "My first CloudLog event"
  }`)
}

Documentation

Overview

Package cloudlog provides a CloudLog client library

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrCACertificateInvalid indicates that the supplied CA certificate is invalid
	ErrCACertificateInvalid = errors.New("CA certificate is invalid")

	// ErrCertificateMissing indicates that the client certificate is missing
	ErrCertificateMissing = errors.New("Client certificate is missing")

	// ErrIndexNotDefined indicates that the target index has not been defined
	ErrIndexNotDefined = errors.New("Target index is not defined")
)

Functions

func GetDefaultSaramaConfig

func GetDefaultSaramaConfig() sarama.Config

GetDefaultSaramaConfig returns a copy of the default sarama config. The configuration returned by this function should be used as a basline configuration for modifications and changes.

func IsEventEncodingError

func IsEventEncodingError(err error) (ok bool, event interface{})

IsEventEncodingError checks if a supplied error is an EventEncodingError and returns a boolean flag and the event that caused the error

Types

type CloudLog

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

CloudLog is the CloudLog object to send logs

func InitCloudLog

func InitCloudLog(index string, ca string, cert string, key string) (*CloudLog, error)

InitCloudLog validates and initializes the CloudLog client

func NewCloudLog

func NewCloudLog(indexName string, options ...Option) (cl *CloudLog, err error)

NewCloudLog initializes a new CloudLog instance

func (*CloudLog) Close

func (cl *CloudLog) Close() (err error)

Close closes the connection

func (*CloudLog) PushEvent

func (cl *CloudLog) PushEvent(event interface{}) error

PushEvent sends an event to CloudLog

func (*CloudLog) PushEvents

func (cl *CloudLog) PushEvents(event interface{}, events ...interface{}) (err error)

PushEvents sends the supplied events to CloudLog

type Event

type Event interface {
	// Encode encodes the given event to a map[string]interface{}
	Encode() map[string]interface{}
}

Event defines the interface events may optionally implement to provide their own encoding logic

type EventEncoder

type EventEncoder interface {
	// EncodeEvent encodes the given event
	EncodeEvent(event interface{}) (map[string]interface{}, error)
}

EventEncoder defines the interface for encoding events

type EventEncodingError

type EventEncodingError struct {
	Message string
	Event   interface{}
}

EventEncodingError indicates that an event could not be encoded

func NewUnsupportedEventType

func NewUnsupportedEventType(event interface{}) *EventEncodingError

NewUnsupportedEventType constructs a new EventEncodingError that indicates that the supplied event type is unsupported

func (*EventEncodingError) Error

func (e *EventEncodingError) Error() string

type MarshalError

type MarshalError struct {
	// EventMap contains the events data map
	EventMap map[string]interface{}
	// Parent contains the parent error
	Parent error
}

MarshalError represents a marshalling error

func NewMarshalError

func NewMarshalError(eventMap map[string]interface{}, parent error) *MarshalError

NewMarshalError returns a new MarshalError

func (*MarshalError) Error

func (e *MarshalError) Error() string

func (*MarshalError) WrappedErrors

func (e *MarshalError) WrappedErrors() []error

WrappedErrors returns the wrapped parent error

type Option

type Option func(*CloudLog) error

Option defines the type used for applying options to CloudLog

func OptionBrokers

func OptionBrokers(broker string, brokers ...string) Option

OptionBrokers defines the list of event brokers to use

func OptionCACertificate

func OptionCACertificate(pemBlock []byte) Option

OptionCACertificate sets the CA certificate CloudLog uses

func OptionCACertificateFile

func OptionCACertificateFile(path string) Option

OptionCACertificateFile loads the CA certificate from the supplied paths and configures CloudLog to use this CA certificate

func OptionClientCertificateFile

func OptionClientCertificateFile(certFile, keyFile string) Option

OptionClientCertificateFile configures CloudLog to use the certificate and key contained in the supplied paths as client certificate

func OptionClientCertificates

func OptionClientCertificates(certs []tls.Certificate) Option

OptionClientCertificates configures CloudLog to use the supplied tls.Certificates as client certificates

func OptionEventEncoder

func OptionEventEncoder(encoder EventEncoder) Option

OptionEventEncoder configures the EventEncoder to use for encoding events

func OptionSaramaConfig

func OptionSaramaConfig(config sarama.Config) Option

OptionSaramaConfig sets the sarama configuration

func OptionSourceHost

func OptionSourceHost(hostname string) Option

OptionSourceHost configures the sources' hostname

func OptionTLSConfig

func OptionTLSConfig(tlsConfig *tls.Config) Option

OptionTLSConfig defines the TLS configuration CloudLog uses

type SimpleEventEncoder

type SimpleEventEncoder struct {
}

SimpleEventEncoder implements a simple event encoder This encoder only supports map[string]interface{}, string and []byte events. A more sophisticated encoder providing support for encoding structs as well is available from the structencoder sub-package.

func (*SimpleEventEncoder) EncodeEvent

func (e *SimpleEventEncoder) EncodeEvent(event interface{}) (map[string]interface{}, error)

EncodeEvent encodes the given event

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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