convert

package
v0.0.0-...-1215978 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TransactionType = "transaction.type"

	TransactionCategory    = "transaction.category"
	TransactionSubCategory = "transaction.sub_category"
	Language               = "language"
)

Variables

View Source
var (
	ErrInvalidContentType = OTLPError{"unsupported content-type, valid types are: " + strings.Join(GetSupportedContentTypes(), ", "), http.StatusUnsupportedMediaType, codes.Unimplemented}
	ErrFailedParseBody    = OTLPError{"failed to parse OTLP request body", http.StatusBadRequest, codes.Internal}
	//	ErrMissingAPIKeyHeader  = OTLPError{"missing 'x-opsramp-team' header", http.StatusUnauthorized, codes.Unauthenticated}
	ErrMissingDatasetHeader = OTLPError{"missing 'x-opsramp-dataset' header", http.StatusUnauthorized, codes.Unauthenticated}
)

Functions

func AsGRPCError

func AsGRPCError(e error) error

func AsJson

func AsJson(e error) string

func BytesToTraceID

func BytesToTraceID(traceID []byte) string

BytesToTraceID returns an ID suitable for use for spans and traces. Before encoding the bytes as a hex string, we want to handle cases where we are given 128-bit IDs with zero padding, e.g. 0000000000000000f798a1e7f33c8af6. There are many ways to achieve this, but careful benchmarking and testing showed the below as the most performant, avoiding memory allocations and the use of flexible but expensive library functions. As this is hot code, it seemed worthwhile to do it this way.

func DetermineClassification

func DetermineClassification(args ...[]*commonpb.KeyValue) map[string]string

DetermineClassification returns a map of labels classifying the type of the span based on the predefined attributes in the span

func GetSupportedContentEncodings

func GetSupportedContentEncodings() []string

List of HTTP Content Encodings supported for OTLP ingest.

func GetSupportedContentTypes

func GetSupportedContentTypes() []string

List of HTTP Content Types supported for OTLP ingest.

func IsContentTypeSupported

func IsContentTypeSupported(contentType string) bool

Check whether we support a given HTTP Content Type for OTLP.

func NormalizeClassification

func NormalizeClassification(m map[string]string, args ...[]*commonpb.KeyValue) map[string]string

Types

type Batch

type Batch struct {
	Dataset   string
	SizeBytes int
	Events    []Event
}

Batch represents Honeycomb events grouped by their target dataset SizeBytes is the total byte size of the OTLP structure that represents this batch

type Event

type Event struct {
	Attributes map[string]interface{}
	Timestamp  time.Time
	SampleRate int32
	SpanEvents []SpanEvent
}

Event represents a single Honeycomb event

type OTLPError

type OTLPError struct {
	Message        string
	HTTPStatusCode int
	GRPCStatusCode codes.Code
}

func (OTLPError) Error

func (e OTLPError) Error() string

type RequestInfo

type RequestInfo struct {
	Dataset            string
	ContentType        string
	ContentEncoding    string
	GRPCAcceptEncoding string

	ApiToken    string
	ApiTenantId string
}

RequestInfo represents information parsed from either HTTP headers or gRPC metadata

func GetRequestInfoFromGrpcMetadata

func GetRequestInfoFromGrpcMetadata(ctx context.Context) RequestInfo

GetRequestInfoFromGrpcMetadata parses relevant gRPC metadata from an incoming request context

func GetRequestInfoFromHttpHeaders

func GetRequestInfoFromHttpHeaders(header http.Header) RequestInfo

GetRequestInfoFromHttpHeaders parses relevant incoming HTTP headers

func (*RequestInfo) ValidateLogsHeaders

func (ri *RequestInfo) ValidateLogsHeaders() error

ValidateLogsHeaders validates required headers/metadata for a logs OTLP request

type SpanEvent

type SpanEvent struct {
	Attributes map[string]interface{}
	Timestamp  uint64
	Name       string
}

type TranslateOTLPRequestResult

type TranslateOTLPRequestResult struct {
	RequestSize int
	Batches     []Batch
}

TranslateOTLPRequestResult represents an OTLP request translated into Honeycomb-friendly structure RequestSize is total byte size of the entire OTLP request Batches represent events grouped by their target dataset

func TranslateTraceRequest

func TranslateTraceRequest(request *coltracepb.ExportTraceServiceRequest, ri RequestInfo, additionalResAttr map[string]string, sendEvents bool) (*TranslateOTLPRequestResult, error)

TranslateTraceRequest translates an OTLP/gRPC request into OpsRamp-friendly structure RequestInfo is the parsed information from the gRPC metadata

func TranslateTraceRequestFromReader

func TranslateTraceRequestFromReader(body io.ReadCloser, ri RequestInfo, additionalAttr map[string]string, sendEvents bool) (*TranslateOTLPRequestResult, error)

TranslateTraceRequestFromReader translates an OTLP/HTTP request into Honeycomb-friendly structure RequestInfo is the parsed information from the HTTP headers

type TranslateTraceRequestResult

type TranslateTraceRequestResult struct {
	RequestSize int
	Batches     []Batch
}

TranslateTraceRequestResult represents an OTLP trace request translated into Opsramp-friendly structure RequestSize is total byte size of the entire OTLP request Batches represent events grouped by their target dataset

Jump to

Keyboard shortcuts

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