zipkin-instrumentation-sql: github.com/jcchavezs/zipkin-instrumentation-sql Index | Files

package zipkinsql

import "github.com/jcchavezs/zipkin-instrumentation-sql"

Index

Package Files

driver.go driver_go1.10.go options.go

Variables

var AllTraceOptions = TraceOptions{
    AllowRootSpan:    true,
    RowsAffectedSpan: true,
    LastInsertIDSpan: true,
    TagQuery:         true,
    TagQueryParams:   true,
    TagAffectedRows:  true,
    RemoteEndpoint:   nil,
}

AllTraceOptions has all tracing options enabled.

func Register Uses

func Register(driverName string, tracer *zipkin.Tracer, options ...TraceOption) (string, error)

Register initializes and registers our zipkinsql wrapped database driver identified by its driverName and using provided TraceOptions. On success it returns the generated driverName to use when calling sql.Open. It is possible to register multiple wrappers for the same database driver if needing different TraceOptions for different connections.

func Wrap Uses

func Wrap(d driver.Driver, t *zipkin.Tracer, options ...TraceOption) driver.Driver

Wrap takes a SQL driver and wraps it with Zipkin instrumentation.

func WrapConn Uses

func WrapConn(c driver.Conn, t *zipkin.Tracer, options ...TraceOption) driver.Conn

WrapConn allows an existing driver.Conn to be wrapped by zipkinsql.

func WrapConnector Uses

func WrapConnector(dc driver.Connector, t *zipkin.Tracer, options ...TraceOption) driver.Connector

WrapConnector allows wrapping a database driver.Connector which eliminates the need to register zipkinsql as an available driver.Driver.

type TraceOption Uses

type TraceOption func(o *TraceOptions)

TraceOption allows for managing zipkinsql configuration using functional options.

func WithAllTraceOptions Uses

func WithAllTraceOptions() TraceOption

WithAllTraceOptions enables all available trace options.

func WithAllowRootSpan Uses

func WithAllowRootSpan(b bool) TraceOption

WithAllowRootSpan if set to true, will allow zipkinsql to create root spans in absence of exisiting spans or even context. Default is to not trace zipkinsql calls if no existing parent span is found in context or when using methods not taking context.

func WithDefaultTags Uses

func WithDefaultTags(tags map[string]string) TraceOption

WithDefaultTags will be set to each span as default.

func WithLastInsertIDSpan Uses

func WithLastInsertIDSpan(b bool) TraceOption

WithLastInsertIDSpan if set to true, will enable the creation of spans on LastInsertId calls.

func WithOptions Uses

func WithOptions(options TraceOptions) TraceOption

WithOptions sets the zipkinsql tracing middleware options through a single TraceOptions object.

func WithRemoteEndpoint Uses

func WithRemoteEndpoint(e model.Endpoint) TraceOption

WithRemoteEndpoint will be set to each client span

func WithRowsAffectedSpan Uses

func WithRowsAffectedSpan(b bool) TraceOption

WithRowsAffectedSpan if set to true, will enable the creation of spans on RowsAffected calls.

func WithTagAffectedRows Uses

func WithTagAffectedRows(b bool) TraceOption

WithTagAffectedRows if set to true, will enable recording of the affected rows number in spans.

func WithTagQuery Uses

func WithTagQuery(b bool) TraceOption

WithTagQuery if set to true, will enable recording of SQL queries in spans. Only allow this if it is safe to have queries recorded with respect to security.

func WithTagQueryParams Uses

func WithTagQueryParams(b bool) TraceOption

WithTagQueryParams if set to true, will enable recording of parameters used with parametrized queries. Only allow this if it is safe to have parameters recorded with respect to security. This setting is a noop if the TagQuery option is set to false.

type TraceOptions Uses

type TraceOptions struct {
    // AllowRoot, if set to true, will allow zipkinsql to create root spans in
    // absence of existing spans or even context.
    // Default is to not trace zipkinsql calls if no existing parent span is found
    // in context or when using methods not taking context.
    AllowRootSpan bool

    // LastInsertIDSpan, if set to true, will enable the creation of spans on
    // LastInsertId calls.
    LastInsertIDSpan bool

    // RowsAffectedSpan, if set to true, will enable the creation of spans on
    // RowsAffectedSpan calls.
    RowsAffectedSpan bool

    // TagQuery, if set to true, will enable recording of sql queries in spans.
    // Only allow this if it is safe to have queries recorded with respect to
    // security.
    TagQuery bool

    // TagQueryParams, if set to true, will enable recording of parameters used
    // with parametrized queries. Only allow this if it is safe to have
    // parameters recorded with respect to security and privacy.
    // This setting is a noop if the TagQuery option is set to false.
    TagQueryParams bool

    // TagAffectedRows, if set to true, will enable the recording of the number of
    // affected rows for the query. Some engines may include this in the response
    // of the query but some require an extra query to obtain the number of affected
    // rows.
    TagAffectedRows bool

    // DefaultTags will be set to each span as default.
    DefaultTags map[string]string

    // RemoteEndpoint will include the remote endpoint information into the client
    // span.
    RemoteEndpoint *model.Endpoint
}

TraceOptions holds configuration of our zipkinsql tracing middleware. By default all boolean options are set to false intentionally when creating a wrapped driver and provide the most sensible default with both performance and security in mind.

Package zipkinsql imports 9 packages (graph). Updated 2019-07-24. Refresh now. Tools for package owners.