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.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Connect ¶
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 ¶
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 ¶
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 ¶
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 "git.proto.group/protoobp/pobp-trace-go/contrib/database/sql"
sqlxtrace "git.proto.group/protoobp/pobp-trace-go/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.