sqlx

package
v1.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2021 License: BSD-3-Clause Imports: 2 Imported by: 0

Documentation

Overview

Package sqlx provides functions to trace the jmoiron/sqlx package (https://github.com/jmoiron/sqlx). To enable tracing, first use one of the "Register*" functions to register the sql driver that you will be using, then continue using the package as you normally would.

For more information on registering and why this needs to happen, please check the github.com/DataDog/dd-trace-go/contrib/database/sql package.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Connect

func Connect(driverName, dataSourceName string) (*sqlx.DB, error)

Connect connects to the data source using the given driver. To get tracing, the driver must be formerly registered using the database/sql integration's Register.

func MustConnect

func MustConnect(driverName, dataSourceName string) *sqlx.DB

MustConnect connects to a database and panics on error. To get tracing, the driver must be formerly registered using the database/sql integration's Register.

func MustOpen

func MustOpen(driverName, dataSourceName string) (*sqlx.DB, error)

MustOpen is the same as Open, but panics on error. To get tracing, the driver must be formerly registered using the database/sql integration's Register.

func Open

func Open(driverName, dataSourceName string) (*sqlx.DB, error)

Open opens a new (traced) connection to the database using the given driver and source. Note that the driver must formerly be registered using database/sql integration's Register.

Example
package main

import (
	"log"

	"github.com/jmoiron/sqlx"
	"github.com/lib/pq"

	sqltrace "github.com/signalfx/signalfx-go-tracing/contrib/database/sql"
	sqlxtrace "github.com/signalfx/signalfx-go-tracing/contrib/jmoiron/sqlx"
)

func main() {
	// Register informs the sqlxtrace package of the driver that we will be using in our program.
	// It uses a default service name, in the below case "postgres.db". To use a custom service
	// name use RegisterWithServiceName.
	sqltrace.Register("postgres", &pq.Driver{}, sqltrace.WithServiceName("my-service"))
	db, err := sqlxtrace.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable")
	if err != nil {
		log.Fatal(err)
	}

	// All calls through sqlx API will then be traced.
	query, args, err := sqlx.In("SELECT * FROM users WHERE level IN (?);", []int{4, 6, 7})
	if err != nil {
		log.Fatal(err)
	}
	query = db.Rebind(query)
	rows, err := db.Queryx(query, args...)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()
}
Output:

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL