Documentation ¶
Index ¶
- Constants
- Variables
- func ConsumeError(ctx context.Context, errorInput interface{}, tags ...string)
- func InterceptRequest(r *http.Request) context.Context
- func InterceptRequestWithContext(ctx context.Context, r *http.Request) context.Context
- func MarkBackendSetup(ctx context.Context)
- func RecordMetric(ctx context.Context, name string, value float64)
- func SetDebugMode(l Logger)
- func SetFlushInterval(newFlushInterval time.Duration)
- func SetGraphqlClientAddress(newGraphqlClientAddress string)
- func Start()
- func StartWithContext(ctx context.Context)
- func Stop()
- type BackendErrorObjectInput
- type GraphqlTracer
- type Logger
- type MetricInput
- type Requester
- type Tracer
Constants ¶
const ( Highlight contextKey = "highlight" RequestID = Highlight + "RequestID" SessionSecureID = Highlight + "SessionSecureID" )
Variables ¶
var ( ContextKeys = struct { RequestID contextKey SessionSecureID contextKey }{ RequestID: RequestID, SessionSecureID: SessionSecureID, } )
Functions ¶
func ConsumeError ¶
ConsumeError adds an error to the queue of errors to be sent to our backend. the provided context must have the injected highlight keys from InterceptRequestWithContext.
func InterceptRequest ¶
InterceptRequest calls InterceptRequestWithContext using the request object's context
func InterceptRequestWithContext ¶
InterceptRequestWithContext captures the highlight session and request ID for a particular request from the request headers, adding the values to the provided context.
func MarkBackendSetup ¶ added in v0.5.0
func RecordMetric ¶ added in v0.5.0
RecordMetric is used to record arbitrary metrics in your golang backend. Highlight will process these metrics in the context of your session and expose them through dashboards. For example, you may want to record the latency of a DB query as a metric that you would like to graph and monitor. You'll be able to view the metric in the context of the session and network request and recorded it.
func SetDebugMode ¶ added in v0.4.0
func SetDebugMode(l Logger)
func SetFlushInterval ¶
SetFlushInterval allows you to override the amount of time in which the Highlight client will collect errors before sending them to our backend. - newFlushInterval is an integer representing seconds
func SetGraphqlClientAddress ¶ added in v0.3.0
func SetGraphqlClientAddress(newGraphqlClientAddress string)
SetGraphqlClientAddress allows you to override the graphql client address, in case you are running Highlight on-prem, and need to point to your on-prem instance.
func StartWithContext ¶ added in v0.3.0
StartWithContext is used to start the Highlight client's collection service, but allows the user to pass in their own context.Context. This allows the user kill the highlight worker by canceling their context.CancelFunc.
Types ¶
type BackendErrorObjectInput ¶ added in v0.3.0
type BackendErrorObjectInput struct { SessionSecureID graphql.String `json:"session_secure_id"` RequestID graphql.String `json:"request_id"` Event graphql.String `json:"event"` Type graphql.String `json:"type"` URL graphql.String `json:"url"` Source graphql.String `json:"source"` StackTrace graphql.String `json:"stackTrace"` Timestamp time.Time `json:"timestamp"` Payload *graphql.String `json:"payload"` }
type GraphqlTracer ¶ added in v0.5.1
type GraphqlTracer interface { graphql.HandlerExtension graphql.ResponseInterceptor graphql.FieldInterceptor }
func NewGraphqlTracer ¶ added in v0.5.1
func NewGraphqlTracer(graphName string) GraphqlTracer
type Logger ¶ added in v0.4.0
type Logger interface { Error(v ...interface{}) Errorf(format string, v ...interface{}) }
Logger is an interface that implements Log and Logf
type MetricInput ¶ added in v0.5.0
type Requester ¶ added in v0.3.5
type Requester interface {
// contains filtered or unexported methods
}
Requester is used for making graphql requests in testing, a mock requester with an overwritten trigger function may be used
type Tracer ¶ added in v0.5.1
type Tracer struct {
// contains filtered or unexported fields
}
func (Tracer) ExtensionName ¶ added in v0.5.1
func (Tracer) InterceptField ¶ added in v0.5.1
InterceptField instruments timing of individual fields resolved.
func (Tracer) InterceptResponse ¶ added in v0.5.1
func (t Tracer) InterceptResponse(ctx context.Context, next graphql.ResponseHandler) *graphql.Response
InterceptResponse instruments timing, payload size, and error information of the response handler. The metric is grouped by the corresponding operation name.