Documentation ¶
Index ¶
- Constants
- Variables
- func BackendFactory(bf proxy.BackendFactory) proxy.BackendFactory
- func GetAggregatedPathForBackendMetrics(cfg *config.Backend) func(r *http.Request) string
- func GetAggregatedPathForMetrics(cfg *config.EndpointConfig) func(r *http.Request) string
- func HTTPRequestExecutor(clientFactory transport.HTTPClientFactory) transport.HTTPRequestExecutor
- func HTTPRequestExecutorFromConfig(clientFactory transport.HTTPClientFactory, cfg *config.Backend) transport.HTTPRequestExecutor
- func IsBackendEnabled() bool
- func IsPipeEnabled() bool
- func IsRouterEnabled() bool
- func Middleware(name string) proxy.Middleware
- func NewHTTPClient(ctx context.Context) *http.Client
- func ProxyFactory(pf proxy.Factory) proxy.FactoryFunc
- func Register(ctx context.Context, srvCfg config.ServiceConfig, vs ...*view.View) error
- func RegisterExporterFactories(ef ExporterFactory)
- func RequestAttrs(r *http.Request) []trace.Attribute
- func ResponseAttrs(resp *http.Response) []trace.Attribute
- func SpanNameFromURL(req *http.Request) string
- func TraceStatus(httpStatusCode int, statusLine string) trace.Status
- type Config
- type DataDogConfig
- type EnabledLayers
- type EndpointExtraConfig
- type ExporterFactory
- type Exporters
- type InfluxDBConfig
- type JaegerConfig
- type NewrelicConfig
- type OcagentConfig
- type PrometheusConfig
- type StackdriverConfig
- type Transport
- type XrayConfig
- type ZipkinConfig
Constants ¶
View Source
const ( ContextKey = "opencensus-request-span" Namespace = "github_com/cbr4yan/krakend-opencensus" )
Variables ¶
View Source
var ( DefaultViews = []*view.View{ ochttp.ClientSentBytesDistribution, ochttp.ClientReceivedBytesDistribution, ochttp.ClientRoundtripLatencyDistribution, ochttp.ClientCompletedCount, ochttp.ServerRequestCountView, ochttp.ServerRequestBytesView, ochttp.ServerResponseBytesView, ochttp.ServerLatencyView, ochttp.ServerRequestCountByMethod, ochttp.ServerResponseCountByStatusCode, } ErrNoConfig = errors.New("no extra config defined for the opencensus module") )
Functions ¶
func BackendFactory ¶
func BackendFactory(bf proxy.BackendFactory) proxy.BackendFactory
func GetAggregatedPathForBackendMetrics ¶
GetAggregatedPathForBackendMetrics returns a path aggregator function ready to reduce path cardinality in the metrics
func GetAggregatedPathForMetrics ¶
func GetAggregatedPathForMetrics(cfg *config.EndpointConfig) func(r *http.Request) string
GetAggregatedPathForMetrics returns a path aggregator function ready to reduce path cardinality in the metrics
func HTTPRequestExecutor ¶
func HTTPRequestExecutor(clientFactory transport.HTTPClientFactory) transport.HTTPRequestExecutor
func HTTPRequestExecutorFromConfig ¶
func HTTPRequestExecutorFromConfig(clientFactory transport.HTTPClientFactory, cfg *config.Backend) transport.HTTPRequestExecutor
func IsBackendEnabled ¶
func IsBackendEnabled() bool
func IsPipeEnabled ¶
func IsPipeEnabled() bool
func IsRouterEnabled ¶
func IsRouterEnabled() bool
func Middleware ¶
func Middleware(name string) proxy.Middleware
func ProxyFactory ¶
func ProxyFactory(pf proxy.Factory) proxy.FactoryFunc
func RegisterExporterFactories ¶
func RegisterExporterFactories(ef ExporterFactory)
func SpanNameFromURL ¶
Types ¶
type Config ¶
type Config struct { SampleRate int `json:"sample_rate"` ReportingPeriod int `json:"reporting_period"` EnabledLayers *EnabledLayers `json:"enabled_layers"` Exporters Exporters `json:"exporters"` }
type DataDogConfig ¶
type DataDogConfig struct { Namespace string `json:"namespace"` Service string `json:"service"` TraceAddr string `json:"trace_address"` StatsAddr string `json:"stats_address"` Tags []string `json:"tags"` GlobalTags map[string]interface{} `json:"global_tags"` DisableCountPerBuckets bool `json:"disable_count_per_buckets"` }
type EnabledLayers ¶
type EndpointExtraConfig ¶
type EndpointExtraConfig struct {
PathAggregation string `json:"path_aggregation"`
}
type Exporters ¶
type Exporters struct { InfluxDB *InfluxDBConfig `json:"influxdb"` Zipkin *ZipkinConfig `json:"zipkin"` Jaeger *JaegerConfig `json:"jaeger"` Prometheus *PrometheusConfig `json:"prometheus"` Logger *struct{} `json:"logger"` Xray *XrayConfig `json:"xray"` Stackdriver *StackdriverConfig `json:"stackdriver"` Ocagent *OcagentConfig `json:"ocagent"` DataDog *DataDogConfig `json:"datadog"` Newrelic *NewrelicConfig `json:"newrelic"` ExtraConfig config.ExtraConfig `json:"extra_config"` }
type InfluxDBConfig ¶
type JaegerConfig ¶
type NewrelicConfig ¶
type OcagentConfig ¶
type PrometheusConfig ¶
type StackdriverConfig ¶
type Transport ¶
type Transport struct { // Base may be set to wrap another http.RoundTripper that does the actual // requests. By default http.DefaultTransport is used. // // If base HTTP roundtripper implements CancelRequest, // the returned round tripper will be cancelable. Base http.RoundTripper // Propagation defines how traces are propagated. If unspecified, a default // (currently B3 format) will be used. Propagation propagation.HTTPFormat // StartOptions are applied to the span started by this Transport around each // request. // // StartOptions.SpanKind will always be set to trace.SpanKindClient // for spans started by this transport. StartOptions trace.StartOptions // GetStartOptions allows to set start options per request. If set, // StartOptions is going to be ignored. GetStartOptions func(*http.Request) trace.StartOptions // NameFromRequest holds the function to use for generating the span name // from the information found in the outgoing HTTP Request. By default the // name equals the URL Path. FormatSpanName func(*http.Request) string // NewClientTrace may be set to a function allowing the current *trace.Span // to be annotated with HTTP request event information emitted by the // httptrace package. NewClientTrace func(*http.Request, *trace.Span) *httptrace.ClientTrace // contains filtered or unexported fields }
Transport is an http.RoundTripper that instruments all outgoing requests with OpenCensus stats and tracing.
The zero value is intended to be a useful default, but for now it's recommended that you explicitly set Propagation, since the default for this may change.
func (*Transport) CancelRequest ¶
CancelRequest cancels an in-flight request by closing its connection.
type XrayConfig ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.