Documentation ¶
Index ¶
- Variables
- func Register(driverName string, tracer *zipkin.Tracer, options ...TraceOption) (string, error)
- func Wrap(d driver.Driver, t *zipkin.Tracer, options ...TraceOption) driver.Driver
- func WrapConn(c driver.Conn, t *zipkin.Tracer, options ...TraceOption) driver.Conn
- func WrapConnector(dc driver.Connector, t *zipkin.Tracer, options ...TraceOption) driver.Connector
- type TraceOption
- func WithAllTraceOptions() TraceOption
- func WithAllowRootSpan(b bool) TraceOption
- func WithDefaultTags(tags map[string]string) TraceOption
- func WithLastInsertIDSpan(b bool) TraceOption
- func WithOptions(options TraceOptions) TraceOption
- func WithRemoteEndpoint(e model.Endpoint) TraceOption
- func WithRowsAffectedSpan(b bool) TraceOption
- func WithTagAffectedRows(b bool) TraceOption
- func WithTagQuery(b bool) TraceOption
- func WithTagQueryParams(b bool) TraceOption
- type TraceOptions
Constants ¶
This section is empty.
Variables ¶
var AllTraceOptions = TraceOptions{ AllowRootSpan: true, RowsAffectedSpan: true, LastInsertIDSpan: true, TagQuery: true, TagQueryParams: true, TagAffectedRows: true, RemoteEndpoint: nil, }
AllTraceOptions has all tracing options enabled.
Functions ¶
func Register ¶
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 WrapConnector ¶
WrapConnector allows wrapping a database driver.Connector which eliminates the need to register zipkinsql as an available driver.Driver.
Types ¶
type TraceOption ¶
type TraceOption func(o *TraceOptions)
TraceOption allows for managing zipkinsql configuration using functional options.
func WithAllTraceOptions ¶
func WithAllTraceOptions() TraceOption
WithAllTraceOptions enables all available trace options.
func WithAllowRootSpan ¶
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 ¶
func WithDefaultTags(tags map[string]string) TraceOption
WithDefaultTags will be set to each span as default.
func WithLastInsertIDSpan ¶
func WithLastInsertIDSpan(b bool) TraceOption
WithLastInsertIDSpan if set to true, will enable the creation of spans on LastInsertId calls.
func WithOptions ¶
func WithOptions(options TraceOptions) TraceOption
WithOptions sets the zipkinsql tracing middleware options through a single TraceOptions object.
func WithRemoteEndpoint ¶
func WithRemoteEndpoint(e model.Endpoint) TraceOption
WithRemoteEndpoint will be set to each client span
func WithRowsAffectedSpan ¶
func WithRowsAffectedSpan(b bool) TraceOption
WithRowsAffectedSpan if set to true, will enable the creation of spans on RowsAffected calls.
func WithTagAffectedRows ¶
func WithTagAffectedRows(b bool) TraceOption
WithTagAffectedRows if set to true, will enable recording of the affected rows number in spans.
func WithTagQuery ¶
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 ¶
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 ¶
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.