Documentation ¶
Index ¶
- Constants
- Variables
- func NewDatumValue(val *com_signalfx_metrics_protobuf.Datum) datapoint.Value
- func NewProtobufDataPointWithType(dp *com_signalfx_metrics_protobuf.DataPoint, ...) (*datapoint.Datapoint, error)
- func NewProtobufEvent(e *com_signalfx_metrics_protobuf.Event) (*event.Event, error)
- func PropertyAsRawType(p *com_signalfx_metrics_protobuf.PropertyValue) interface{}
- func SetupChain(ctx context.Context, sink Sink, chainType string, ...) (http.Handler, sfxclient.Collector)
- func SetupJSONByPaths(r *mux.Router, handler http.Handler, endpoint string)
- func SetupJSONByPathsN(r *mux.Router, handler http.Handler, endpoints ...string)
- func SetupJSONV1Paths(r *mux.Router, handler http.Handler)
- func SetupJSONV2DatapointPaths(r *mux.Router, handler http.Handler)
- func SetupJSONV2EventPaths(r *mux.Router, handler http.Handler)
- func SetupProtobufV1Paths(r *mux.Router, handler http.Handler)
- func SetupProtobufV2ByPaths(r *mux.Router, handler http.Handler, path string)
- func SetupProtobufV2DatapointPaths(r *mux.Router, handler http.Handler)
- func SetupProtobufV2EventPaths(r *mux.Router, handler http.Handler)
- func SetupThriftByPaths(r *mux.Router, handler http.Handler, endpoint string)
- func ValueToValue(v ValueToSend) (datapoint.Value, error)
- type BodySendFormatV2
- type ErrorReader
- type ErrorTrackerHandler
- type Forwarder
- func (connector *Forwarder) AddDatapoints(ctx context.Context, datapoints []*datapoint.Datapoint) error
- func (connector *Forwarder) AddEvents(ctx context.Context, events []*event.Event) error
- func (connector *Forwarder) AddSpans(ctx context.Context, spans []*trace.Span) error
- func (connector *Forwarder) Close() error
- func (connector *Forwarder) Datapoints() []*datapoint.Datapoint
- func (connector *Forwarder) DebugDatapoints() []*datapoint.Datapoint
- func (connector *Forwarder) DebugEndpoints() map[string]http.Handler
- func (connector *Forwarder) DefaultDatapoints() []*datapoint.Datapoint
- func (connector *Forwarder) Pipeline() int64
- func (connector *Forwarder) StartupFinished() error
- type ForwarderConfig
- type InputSpan
- type JSONDatapointV1
- type JSONDatapointV2
- type JSONDecoderV1
- type JSONDecoderV2
- type JSONEventDecoderV2
- type JSONTraceDecoderV1
- type JaegerThriftTraceDecoderV1
- type ListenerConfig
- type ListenerServer
- func (streamer *ListenerServer) Addr() net.Addr
- func (streamer *ListenerServer) Close() error
- func (streamer *ListenerServer) Datapoints() []*datapoint.Datapoint
- func (streamer *ListenerServer) DebugDatapoints() []*datapoint.Datapoint
- func (streamer *ListenerServer) DefaultDatapoints() []*datapoint.Datapoint
- type MericTypeGetter
- type MetricCreationResponse
- type MetricCreationStruct
- type MiddlewareConstructor
- type NextSink
- type ProtobufDecoderV1
- type ProtobufDecoderV2
- type ProtobufEventDecoderV2
- type Sink
- type ValueToSend
- type WithDimensions
Constants ¶
const ( // DefaultTracePathV1 is the default listen path DefaultTracePathV1 = "/v1/trace" // ZipkinTracePathV1 adds /api/v1/spans endpoint ZipkinTracePathV1 = "/api/v1/spans" // ZipkinTracePathV2 adds /api/vw/spans endpoint ZipkinTracePathV2 = "/api/v2/spans" // ZipkinV1 is a constant used for protocol naming ZipkinV1 = "zipkin_json_v1" )
const (
// JaegerV1 binary thrift protocol
JaegerV1 = "jaeger_thrift_v1"
)
const TokenHeaderName = "X-SF-TOKEN"
TokenHeaderName is the header key for the auth token in the HTTP request
Variables ¶
var ( ClientKind = "CLIENT" ServerKind = "SERVER" ProducerKind = "PRODUCER" ConsumerKind = "CONSUMER" )
Constants as variables so it is easy to get a pointer to them
Functions ¶
func NewDatumValue ¶
func NewDatumValue(val *com_signalfx_metrics_protobuf.Datum) datapoint.Value
NewDatumValue creates new datapoint value referenced from a value of the datum protobuf
func NewProtobufDataPointWithType ¶
func NewProtobufDataPointWithType(dp *com_signalfx_metrics_protobuf.DataPoint, mType com_signalfx_metrics_protobuf.MetricType) (*datapoint.Datapoint, error)
NewProtobufDataPointWithType creates a new datapoint from SignalFx's protobuf definition (backwards compatable with old API)
func NewProtobufEvent ¶ added in v0.8.0
func NewProtobufEvent(e *com_signalfx_metrics_protobuf.Event) (*event.Event, error)
NewProtobufEvent creates a new event from SignalFx's protobuf definition
func PropertyAsRawType ¶ added in v0.9.14
func PropertyAsRawType(p *com_signalfx_metrics_protobuf.PropertyValue) interface{}
PropertyAsRawType converts a protobuf property to a native Go type
func SetupChain ¶ added in v0.10.12
func SetupChain(ctx context.Context, sink Sink, chainType string, getReader func(Sink) ErrorReader, httpChain web.NextConstructor, logger log.Logger, counter *dpsink.Counter, moreConstructors ...web.Constructor) (http.Handler, sfxclient.Collector)
SetupChain wraps the reader returned by getReader in an http.Handler along with some middleware that calculates internal metrics about requests.
func SetupJSONByPaths ¶ added in v0.8.0
SetupJSONByPaths tells the router which paths the given handler (which should handle the given endpoint) should see
func SetupJSONByPathsN ¶ added in v1.2.19
SetupJSONByPathsN tells the router which paths the given handler (which should handle the given endpoint) should see
func SetupJSONV1Paths ¶
SetupJSONV1Paths routes to R paths that should handle V1 JSON datapoints
func SetupJSONV2DatapointPaths ¶ added in v0.8.0
SetupJSONV2DatapointPaths tells the router which paths the given handler (which should handle v2 protobufs)
func SetupJSONV2EventPaths ¶ added in v0.8.0
SetupJSONV2EventPaths tells the router which paths the given handler (which should handle v2 protobufs)
func SetupProtobufV1Paths ¶
SetupProtobufV1Paths routes to R paths that should handle V1 Protobuf datapoints
func SetupProtobufV2ByPaths ¶ added in v0.8.0
SetupProtobufV2ByPaths tells the router which paths the given handler (which should handle v2 protobufs)
func SetupProtobufV2DatapointPaths ¶ added in v0.8.0
SetupProtobufV2DatapointPaths tells the router which paths the given handler (which should handle v2 protobufs)
func SetupProtobufV2EventPaths ¶ added in v0.8.0
SetupProtobufV2EventPaths tells the router which paths the given handler (which should handle v2 protobufs)
func SetupThriftByPaths ¶ added in v0.10.11
SetupThriftByPaths tells the router which paths the given handler (which should handle the given endpoint) should see
func ValueToValue ¶
func ValueToValue(v ValueToSend) (datapoint.Value, error)
ValueToValue converts the v2 JSON value to a core api Value
Types ¶
type BodySendFormatV2 ¶
type BodySendFormatV2 signalfxformat.BodySendFormatV2
BodySendFormatV2 is an alias
type ErrorReader ¶
ErrorReader are datapoint streamers that read from a HTTP request and return errors if the stream is invalid
type ErrorTrackerHandler ¶
type ErrorTrackerHandler struct { TotalErrors int64 Logger log.Logger // contains filtered or unexported fields }
ErrorTrackerHandler behaves like a http handler, but tracks error returns from a ErrorReader
func (*ErrorTrackerHandler) Datapoints ¶ added in v0.9.0
func (e *ErrorTrackerHandler) Datapoints() []*datapoint.Datapoint
Datapoints gets TotalErrors stats
func (*ErrorTrackerHandler) ServeHTTPC ¶
func (e *ErrorTrackerHandler) ServeHTTPC(ctx context.Context, rw http.ResponseWriter, req *http.Request)
ServeHTTPC will serve the wrapped ErrorReader and return the error (if any) to rw if ErrorReader fails
type Forwarder ¶
type Forwarder struct { filtering.FilteredForwarder Logger log.Logger // contains filtered or unexported fields }
Forwarder controls forwarding datapoints to SignalFx
func NewForwarder ¶ added in v0.9.0
func NewForwarder(conf *ForwarderConfig) (ret *Forwarder, err error)
NewForwarder creates a new JSON forwarder
func (*Forwarder) AddDatapoints ¶
func (connector *Forwarder) AddDatapoints(ctx context.Context, datapoints []*datapoint.Datapoint) error
AddDatapoints forwards datapoints to SignalFx
func (*Forwarder) AddSpans ¶ added in v0.10.6
AddSpans forwards traces to SignalFx, optionally through the sampler
func (*Forwarder) Datapoints ¶ added in v0.9.0
Datapoints implements the sfxclient.Collector interface and returns all datapoints
func (*Forwarder) DebugDatapoints ¶ added in v1.2.11
DebugDatapoints returns datapoints that are used for debugging
func (*Forwarder) DebugEndpoints ¶ added in v1.0.9
DebugEndpoints returns the httphandlers of the sampler
func (*Forwarder) DefaultDatapoints ¶ added in v1.2.11
DefaultDatapoints returns a set of default datapoints about the forwarder
func (*Forwarder) StartupFinished ¶ added in v0.10.13
StartupFinished calls the same interface on the sampler as a hook called by run() after the gateway is up and running
type ForwarderConfig ¶ added in v0.9.0
type ForwarderConfig struct { Filters *filtering.FilterObj DatapointURL *string EventURL *string TraceURL *string Timeout *time.Duration SourceDimensions *string GatewayVersion *string MaxIdleConns *int64 AuthToken *string ProtoMarshal func(pb proto.Message) ([]byte, error) JSONMarshal func(v interface{}) ([]byte, error) Logger log.Logger DisableCompression *bool TraceSample *sampling.SmartSampleConfig }
ForwarderConfig controls optional parameters for a signalfx forwarder
type JSONDatapointV1 ¶
type JSONDatapointV1 signalfxformat.JSONDatapointV1
JSONDatapointV1 is an alias
type JSONDatapointV2 ¶
type JSONDatapointV2 signalfxformat.JSONDatapointV2
JSONDatapointV2 is an alias
type JSONDecoderV1 ¶
type JSONDecoderV1 struct { TypeGetter MericTypeGetter Sink dpsink.DSink Logger log.Logger }
JSONDecoderV1 creates datapoints out of the v1 JSON definition
type JSONDecoderV2 ¶
type JSONDecoderV2 struct { Sink dpsink.Sink Logger log.Logger // contains filtered or unexported fields }
JSONDecoderV2 decodes v2 json data for signalfx and sends it to Sink
func (*JSONDecoderV2) Datapoints ¶ added in v0.9.16
func (decoder *JSONDecoderV2) Datapoints() []*datapoint.Datapoint
Datapoints returns datapoints for json decoder v2
type JSONEventDecoderV2 ¶ added in v0.8.0
JSONEventDecoderV2 decodes v2 json data for signalfx events and sends it to Sink
type JSONTraceDecoderV1 ¶ added in v0.10.6
JSONTraceDecoderV1 decodes json to structs
type JaegerThriftTraceDecoderV1 ¶ added in v0.10.11
type JaegerThriftTraceDecoderV1 struct { Logger log.Logger Sink trace.Sink // contains filtered or unexported fields }
JaegerThriftTraceDecoderV1 decodes Jaeger thrift spans to structs
func NewJaegerThriftTraceDecoderV1 ¶ added in v0.10.11
func NewJaegerThriftTraceDecoderV1(logger log.Logger, sink trace.Sink) *JaegerThriftTraceDecoderV1
NewJaegerThriftTraceDecoderV1 creates a new decoder for Jaeger Thrift spans
func (*JaegerThriftTraceDecoderV1) Read ¶ added in v0.10.11
Code inspired by https://github.com/jaegertracing/jaeger/blob/89f3ccaef21d256728f02ec9d73b31f9c3bde71a/cmd/collector/app/http_handler.go#L61
type ListenerConfig ¶ added in v0.9.0
type ListenerConfig struct { ListenAddr *string HealthCheck *string Timeout *time.Duration Logger log.Logger RootContext context.Context JSONMarshal func(v interface{}) ([]byte, error) DebugContext *web.HeaderCtxFlag HTTPChain web.NextConstructor SpanNameReplacementRules []string SpanNameReplacementBreakAfterMatch *bool AdditionalSpanTags map[string]string RemoveSpanTags []*spanobfuscation.TagMatchRuleConfig ObfuscateSpanTags []*spanobfuscation.TagMatchRuleConfig Counter *dpsink.Counter }
ListenerConfig controls optional parameters for the listener
type ListenerServer ¶
type ListenerServer struct { protocol.CloseableHealthCheck // contains filtered or unexported fields }
ListenerServer controls listening on a socket for SignalFx connections
func NewListener ¶ added in v0.9.0
func NewListener(sink Sink, conf *ListenerConfig) (*ListenerServer, error)
NewListener servers http requests for Signalfx datapoints
func (*ListenerServer) Addr ¶ added in v0.9.13
func (streamer *ListenerServer) Addr() net.Addr
Addr returns the currently listening address
func (*ListenerServer) Close ¶
func (streamer *ListenerServer) Close() error
Close the exposed socket listening for new connections
func (*ListenerServer) Datapoints ¶ added in v0.9.0
func (streamer *ListenerServer) Datapoints() []*datapoint.Datapoint
Datapoints returns the datapoints about various internal endpoints
func (*ListenerServer) DebugDatapoints ¶ added in v1.2.11
func (streamer *ListenerServer) DebugDatapoints() []*datapoint.Datapoint
DebugDatapoints returns datapoints that are used for debugging the listener
func (*ListenerServer) DefaultDatapoints ¶ added in v1.2.11
func (streamer *ListenerServer) DefaultDatapoints() []*datapoint.Datapoint
DefaultDatapoints returns datapoints that should always be reported from the listener
type MericTypeGetter ¶
type MericTypeGetter interface {
GetMetricTypeFromMap(metricName string) com_signalfx_metrics_protobuf.MetricType
}
MericTypeGetter is an old metric interface that returns the type of a metric name
type MetricCreationResponse ¶
type MetricCreationResponse struct { Code int `json:"code,omitempty"` Error bool `json:"error,omitempty"` Message string `json:"message,omitempty"` }
MetricCreationResponse is the API response for /v1/metric POST
type MetricCreationStruct ¶
type MetricCreationStruct struct { MetricName string `json:"sf_metric"` MetricType string `json:"sf_metricType"` }
MetricCreationStruct is the API format for /v1/metric POST
type MiddlewareConstructor ¶ added in v0.10.6
A MiddlewareConstructor is used by FromChain to chain together a bunch of sinks that forward to each other
func NextWrap ¶ added in v0.10.6
func NextWrap(wrapping NextSink) MiddlewareConstructor
NextWrap wraps a NextSink to make it usable by MiddlewareConstructor
type NextSink ¶ added in v0.10.6
type NextSink interface { AddDatapoints(ctx context.Context, points []*datapoint.Datapoint, next Sink) error AddEvents(ctx context.Context, events []*event.Event, next Sink) error AddSpans(ctx context.Context, spans []*trace.Span, next Sink) error }
NextSink is a special case of a sink that forwards to another sink
func UnifyNextSinkWrap ¶ added in v0.10.6
func UnifyNextSinkWrap(s almostNextSink) NextSink
UnifyNextSinkWrap converts the combination of a dpsink.NextSink and a trace.NextSink into a signalfx.NextSink
type ProtobufDecoderV1 ¶
type ProtobufDecoderV1 struct { Sink dpsink.DSink TypeGetter MericTypeGetter Logger log.Logger }
ProtobufDecoderV1 creates datapoints out of the V1 protobuf definition
type ProtobufDecoderV2 ¶
ProtobufDecoderV2 decodes protocol buffers in signalfx's v2 format and sends them to Sink
type ProtobufEventDecoderV2 ¶ added in v0.8.0
ProtobufEventDecoderV2 decodes protocol buffers in signalfx's v2 format and sends them to Sink
type Sink ¶ added in v0.10.6
Sink is a dpsink and trace.sink
func FromChain ¶ added in v0.10.6
func FromChain(endSink Sink, sinks ...MiddlewareConstructor) Sink
FromChain creates an endpoint Sink that sends calls between multiple middlewares for things like counting points in between.
type WithDimensions ¶ added in v0.10.6
WithDimensions adds dimensions on top of the datapoints of a collector
func (*WithDimensions) AddDatapoints ¶ added in v0.10.6
func (w *WithDimensions) AddDatapoints(ctx context.Context, points []*datapoint.Datapoint, next Sink) error
AddDatapoints calls next() including the wrapped dimensions on each point