Documentation
¶
Overview ¶
Example (NewTracer) ¶
package main
import (
"strings"
semconv "go.opentelemetry.io/otel/semconv/v1.30.0"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/noop"
"github.com/piusalfred/pgxotel"
)
func main() {
noOpTraceProvider := noop.NewTracerProvider()
options := []pgxotel.Option{
pgxotel.WithMeter(nil),
pgxotel.WithMeterProvider("noop", nil),
pgxotel.WithConfigTimeKey("query_latency"),
pgxotel.WithSpanNameFunc(func(s string) string {
return strings.ToUpper(s)
}),
pgxotel.WithConfig(nil),
pgxotel.WithTraceProvider("awesome-tracer", noOpTraceProvider, trace.WithSchemaURL(semconv.SchemaURL)),
pgxotel.WithTracer(noOpTraceProvider.Tracer("noop")),
}
pgxTracer, err := pgxotel.NewTracer(options...)
if err != nil {
panic(err)
}
_ = pgxTracer
}
Output:
Index ¶
- Constants
- type Client
- func (client *Client) RegisterMeterCallbackConn(ctx context.Context, conn *pgx.Conn, ...) error
- func (client *Client) RegisterMeterCallbackPool(ctx context.Context, pool *pgxpool.Pool, ...) error
- func (client *Client) TraceAcquireEnd(ctx context.Context, _ *pgxpool.Pool, data pgxpool.TraceAcquireEndData)
- func (client *Client) TraceAcquireStart(ctx context.Context, pool *pgxpool.Pool, _ pgxpool.TraceAcquireStartData) context.Context
- func (client *Client) TraceBatchEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchEndData)
- func (client *Client) TraceBatchQuery(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchQueryData)
- func (client *Client) TraceBatchStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceBatchStartData) context.Context
- func (client *Client) TraceConnectEnd(ctx context.Context, data pgx.TraceConnectEndData)
- func (client *Client) TraceConnectStart(ctx context.Context, data pgx.TraceConnectStartData) context.Context
- func (client *Client) TraceCopyFromEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromEndData)
- func (client *Client) TraceCopyFromStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceCopyFromStartData) context.Context
- func (client *Client) TracePrepareEnd(ctx context.Context, conn *pgx.Conn, data pgx.TracePrepareEndData)
- func (client *Client) TracePrepareStart(ctx context.Context, conn *pgx.Conn, data pgx.TracePrepareStartData) context.Context
- func (client *Client) TraceQueryEnd(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryEndData)
- func (client *Client) TraceQueryStart(ctx context.Context, conn *pgx.Conn, data pgx.TraceQueryStartData) context.Context
- func (client *Client) TraceRelease(_ *pgxpool.Pool, data pgxpool.TraceReleaseData)
- type Config
- type LogAttributes
- type LogAttributesFilterFunc
- type Option
- type OptionFunc
- func WithConfig(config *Config) OptionFunc
- func WithConfigTimeKey(timeKey string) OptionFunc
- func WithMeter(meter metric.Meter) OptionFunc
- func WithMeterProvider(name string, provider metric.MeterProvider, options ...metric.MeterOption) OptionFunc
- func WithSpanNameFunc(spanNameFunc func(string) string) OptionFunc
- func WithTraceProvider(name string, tp trace.TracerProvider, options ...trace.TracerOption) OptionFunc
- func WithTracer(tracer trace.Tracer) OptionFunc
Examples ¶
Constants ¶
View Source
const ( OperationQuery = "query" OperationCopyFromEnd = "copy_from_end" OperationCopyFromStart = "copy_from_start" OperationConnect = "connect" OperationPrepare = "prepare" OperationAcquire = "conn_acquire" OperationBatchStart = "batch_start" OperationBatchQuery = "batch_query" OperationBatchClose = "batch_close" )
View Source
const ( DBClientOperationErrorsDescription = "The count of database client operation errors" DBClientOperationErrorsName = "db.client.operation.errors" )
View Source
const ( DBMaxConnLifetimeKey = attribute.Key("db.max_conn_lifetime") DBMaxConnIdleTimeKey = attribute.Key("db.max_conn_idle_time") DBMaxConnsKey = attribute.Key("db.max_conns") DBMinConnsKey = attribute.Key("db.min_conns") DBHealthCheckPeriodKey = attribute.Key("db.health_check_period") DBStatementCacheCapacityKey = attribute.Key("db.statement_cache_capacity") DBDescriptionCacheCapacityKey = attribute.Key("db.description_cache_capacity") DBHostKey = attribute.Key("db.host") DBPortKey = attribute.Key("db.port") DBUserKey = attribute.Key("db.user") DBConnectTimeoutKey = attribute.Key("db.connect_timeout") DBKerberosSrvNameKey = attribute.Key("db.kerberos_srv_name") DBKerberosSpnKey = attribute.Key("db.kerberos_spn") DBRowsAffectedKey = attribute.Key("db.rows_affected") DBPrepareStmtNameKey = attribute.Key("db.prepare.statement.name") DBOperationBatchSizeKey = attribute.Key("db.operation.batch.size") DBSQLStateKey = attribute.Key("db.sql.state") DBQueryParametersKey = attribute.Key("db.query.parameters") DBOperationKey = attribute.Key("db.operation.type") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) RegisterMeterCallbackConn ¶
func (*Client) RegisterMeterCallbackPool ¶
func (*Client) TraceAcquireEnd ¶
func (client *Client) TraceAcquireEnd(ctx context.Context, _ *pgxpool.Pool, data pgxpool.TraceAcquireEndData)
TraceAcquireEnd is called when a connection has been acquired.
func (*Client) TraceAcquireStart ¶
func (*Client) TraceBatchEnd ¶
func (*Client) TraceBatchQuery ¶
func (*Client) TraceBatchStart ¶
func (*Client) TraceConnectEnd ¶
func (client *Client) TraceConnectEnd(ctx context.Context, data pgx.TraceConnectEndData)
func (*Client) TraceConnectStart ¶
func (*Client) TraceCopyFromEnd ¶
func (*Client) TraceCopyFromStart ¶
func (*Client) TracePrepareEnd ¶
func (*Client) TracePrepareStart ¶
func (*Client) TraceQueryEnd ¶
func (*Client) TraceQueryStart ¶
func (*Client) TraceRelease ¶
func (client *Client) TraceRelease(_ *pgxpool.Pool, data pgxpool.TraceReleaseData)
type LogAttributes ¶
type LogAttributes struct {
PID int
TraceID string
SpanID string
SQL string
Args []any
Operation string
Duration time.Duration
RowsAffected int64
BatchSize int
TableName string
ColumnNames []string
RowCount int64
Error error
SQLState string
Custom map[string]any
CommandTag string
AlreadyPrepared bool
Name string
DBHost string
DBPort uint16
DBDatabase string
DBUser string
// contains filtered or unexported fields
}
LogAttributes holds structured log and span data
type LogAttributesFilterFunc ¶
type LogAttributesFilterFunc func(data *LogAttributes)
type OptionFunc ¶
func WithConfig ¶
func WithConfig(config *Config) OptionFunc
func WithConfigTimeKey ¶
func WithConfigTimeKey(timeKey string) OptionFunc
func WithMeter ¶
func WithMeter(meter metric.Meter) OptionFunc
func WithMeterProvider ¶
func WithMeterProvider(name string, provider metric.MeterProvider, options ...metric.MeterOption) OptionFunc
func WithSpanNameFunc ¶
func WithSpanNameFunc(spanNameFunc func(string) string) OptionFunc
func WithTraceProvider ¶
func WithTraceProvider(name string, tp trace.TracerProvider, options ...trace.TracerOption) OptionFunc
func WithTracer ¶
func WithTracer(tracer trace.Tracer) OptionFunc
Click to show internal directories.
Click to hide internal directories.