Documentation
¶
Index ¶
- Constants
- Variables
- func Build(options ...BuildOption) func(w http.ResponseWriter, r *http.Request)
- func ErrorHandler(w http.ResponseWriter, r *http.Request, err error)
- func OTLPLogsV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func OTLPPushV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushCfDatadogV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushDatadogMetricsV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushDatadogV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushInfluxV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushProfileV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushStreamV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func PushV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func TargetBulkV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func TargetDocV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- func WriteStreamProbeV2(w http.ResponseWriter, r *http.Request)
- func WriteStreamV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
- type BuildOption
- type MiddlewareConfig
- type Parser
- type PusherCtx
- type Requester
- type TempoController
Constants ¶
View Source
const MaxRetries = 10
View Source
const RetrySleepTimeS = 30
Variables ¶
View Source
var ClickhousePushV2 = PushV2
View Source
var Config = Build(withOkStatusAndBody(200, []byte("Not supported")))
View Source
var DbClient chwrapper.IChClient
View Source
var FPCache numbercache.ICache[uint64]
View Source
var HealthInflux = Build(withOkStatusAndBody(200, nil))
View Source
var PromHealthStub = Build(withOkStatusAndBody(200, nil))
View Source
var Ready = Build(withOkStatusAndBody(200, []byte("ok")))
View Source
var Registry registry.ServiceRegistry
View Source
var WithExtraMiddlewareDefault = []BuildOption{ WithOverallContextMiddleware, }
View Source
var WithExtraMiddlewareTempo = []BuildOption{ WithOverallContextMiddleware, }
View Source
var WithOverallContextMiddleware = WithPreRequest(func(w http.ResponseWriter, r *http.Request) error { dsn := strings.Clone(r.Header.Get("X-CH-DSN")) meta := strings.Clone(r.Header.Get("X-Scope-Meta")) strTTLDays := strings.Clone(r.Header.Get("X-Ttl-Days")) async := getAsyncMode(r) TTLDays := uint16(0) if strTTLDays != "" { iTTLDays, err := strconv.ParseUint(strTTLDays, 10, 16) if err == nil { TTLDays = uint16(iTTLDays) } } switch r.Header.Get("Content-Encoding") { case "": case "gzip": reader, err := gzip.NewReader(r.Body) if err != nil { return err } r.Body = readColser{reader} case "snappy": bBody, err := io.ReadAll(r.Body) if err != nil { return err } uncompressed, err := snappy.Decode(nil, bBody) if err != nil { uncompressed = bBody } reader := bytes.NewReader(uncompressed) r.Body = readColser{reader} default: return errors.New400Error(fmt.Sprintf("%s encoding not supported", r.Header.Get("Content-Encoding"))) } ctx := r.Context() ctx = context.WithValue(ctx, utils.ContextKeyDSN, dsn) ctx = context.WithValue(ctx, utils.ContextKeyMeta, meta) ctx = context.WithValue(ctx, utils.ContextKeyTTLDays, TTLDays) ctx = context.WithValue(ctx, utils.ContextKeyAsync, async) *r = *r.WithContext(ctx) return nil })
Functions ¶
func Build ¶
func Build(options ...BuildOption) func(w http.ResponseWriter, r *http.Request)
func ErrorHandler ¶
func ErrorHandler(w http.ResponseWriter, r *http.Request, err error)
func OTLPLogsV2 ¶
func OTLPLogsV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func OTLPPushV2 ¶
func OTLPPushV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushCfDatadogV2 ¶
func PushCfDatadogV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushDatadogMetricsV2 ¶
func PushDatadogMetricsV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushDatadogV2 ¶
func PushDatadogV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushInfluxV2 ¶
func PushInfluxV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushProfileV2 ¶
func PushProfileV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushStreamV2 ¶
func PushStreamV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func PushV2 ¶
func PushV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func TargetBulkV2 ¶
func TargetBulkV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func TargetDocV2 ¶
func TargetDocV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
func WriteStreamProbeV2 ¶
func WriteStreamProbeV2(w http.ResponseWriter, r *http.Request)
func WriteStreamV2 ¶
func WriteStreamV2(cfg MiddlewareConfig) func(w http.ResponseWriter, r *http.Request)
Types ¶
type BuildOption ¶
func WithPreRequest ¶
func WithPreRequest(preRequest Requester) BuildOption
type MiddlewareConfig ¶
type MiddlewareConfig struct {
ExtraMiddleware []BuildOption
}
func NewMiddlewareConfig ¶
func NewMiddlewareConfig(middlewares ...BuildOption) MiddlewareConfig
NewMiddlewareConfig generates a MiddlewareConfig from given middleware constructors.
type Parser ¶
type Parser func(ctx context.Context, body io.Reader, fpCache numbercache.ICache[uint64]) chan *model.ParserResponse
type PusherCtx ¶
type TempoController ¶
type TempoController struct {
}
Click to show internal directories.
Click to hide internal directories.