From c9363efb1f8c09a85aef51ffa6a369cd0fe62297 Mon Sep 17 00:00:00 2001 From: mackjmr Date: Fri, 18 Mar 2022 10:37:59 +0100 Subject: [PATCH 1/4] Add gorm context example --- contrib/gorm.io/gorm.v1/example_test.go | 40 ++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/contrib/gorm.io/gorm.v1/example_test.go b/contrib/gorm.io/gorm.v1/example_test.go index ccd4cdfd44..780ccb7cbe 100644 --- a/contrib/gorm.io/gorm.v1/example_test.go +++ b/contrib/gorm.io/gorm.v1/example_test.go @@ -6,16 +6,24 @@ package gorm_test import ( + "context" "log" sqltrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/database/sql" gormtrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/gorm.io/gorm.v1" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext" + "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "github.com/jackc/pgx/v4/stdlib" "gorm.io/driver/postgres" "gorm.io/gorm" ) +type User struct { + gorm.Model + Name string +} + func ExampleOpen() { // Register augments the provided driver with tracing, enabling it to be loaded by gormtrace.Open. sqltrace.Register("pgx", &stdlib.Driver{}, sqltrace.WithServiceName("my-service")) @@ -29,11 +37,35 @@ func ExampleOpen() { log.Fatal(err) } - user := struct { - gorm.Model - Name string - }{} + user := User{} // All calls through gorm.DB are now traced. db.Where("name = ?", "jinzhu").First(&user) } + +func Example_context() { + // Register augments the provided driver with tracing, enabling it to be loaded by gormtrace.Open. + sqltrace.Register("pgx", &stdlib.Driver{}, sqltrace.WithServiceName("my-service")) + sqlDb, err := sqltrace.Open("pgx", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable") + if err != nil { + log.Fatal(err) + } + + db, err := gormtrace.Open(postgres.New(postgres.Config{Conn: sqlDb}), &gorm.Config{}) + if err != nil { + log.Fatal(err) + } + + user := User{} + + // Create a root span, giving name, server and resource. + span, ctx := tracer.StartSpanFromContext(context.Background(), "my-query", + tracer.SpanType(ext.SpanTypeSQL), + tracer.ServiceName("my-db"), + tracer.ResourceName("initial-access"), + ) + defer span.Finish() + + // Subsequent spans inherit their parent from context. + db.WithContext(ctx).Where("name = ?", "jinzhu").First(&user) +} From e40c7ce18de2ecf5faf3048bde90fc965accd647 Mon Sep 17 00:00:00 2001 From: mackjmr <63265430+mackjmr@users.noreply.github.com> Date: Fri, 25 Mar 2022 13:36:17 +0100 Subject: [PATCH 2/4] Update contrib/gorm.io/gorm.v1/example_test.go Co-authored-by: Gabriel Aszalos --- contrib/gorm.io/gorm.v1/example_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/gorm.io/gorm.v1/example_test.go b/contrib/gorm.io/gorm.v1/example_test.go index 780ccb7cbe..82850f3d73 100644 --- a/contrib/gorm.io/gorm.v1/example_test.go +++ b/contrib/gorm.io/gorm.v1/example_test.go @@ -56,7 +56,7 @@ func Example_context() { log.Fatal(err) } - user := User{} + var user User // Create a root span, giving name, server and resource. span, ctx := tracer.StartSpanFromContext(context.Background(), "my-query", From 1372eb1e5c2fefe77bde77d990f9dc6820c6a59e Mon Sep 17 00:00:00 2001 From: mackjmr Date: Fri, 25 Mar 2022 13:38:58 +0100 Subject: [PATCH 3/4] Make changes based on review --- contrib/gorm.io/gorm.v1/example_test.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/contrib/gorm.io/gorm.v1/example_test.go b/contrib/gorm.io/gorm.v1/example_test.go index 82850f3d73..fc0539d5b4 100644 --- a/contrib/gorm.io/gorm.v1/example_test.go +++ b/contrib/gorm.io/gorm.v1/example_test.go @@ -31,13 +31,11 @@ func ExampleOpen() { if err != nil { log.Fatal(err) } - db, err := gormtrace.Open(postgres.New(postgres.Config{Conn: sqlDb}), &gorm.Config{}) if err != nil { log.Fatal(err) } - - user := User{} + var user User // All calls through gorm.DB are now traced. db.Where("name = ?", "jinzhu").First(&user) @@ -50,12 +48,10 @@ func Example_context() { if err != nil { log.Fatal(err) } - db, err := gormtrace.Open(postgres.New(postgres.Config{Conn: sqlDb}), &gorm.Config{}) if err != nil { log.Fatal(err) } - var user User // Create a root span, giving name, server and resource. From 566dc609745b87911c6adbea9b18b2803e26841d Mon Sep 17 00:00:00 2001 From: Andrew Glaude Date: Fri, 15 Apr 2022 14:43:55 -0400 Subject: [PATCH 4/4] Update contrib/gorm.io/gorm.v1/example_test.go --- contrib/gorm.io/gorm.v1/example_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/gorm.io/gorm.v1/example_test.go b/contrib/gorm.io/gorm.v1/example_test.go index fc0539d5b4..98ca73f62c 100644 --- a/contrib/gorm.io/gorm.v1/example_test.go +++ b/contrib/gorm.io/gorm.v1/example_test.go @@ -41,7 +41,7 @@ func ExampleOpen() { db.Where("name = ?", "jinzhu").First(&user) } -func Example_context() { +func ExampleContext() { // Register augments the provided driver with tracing, enabling it to be loaded by gormtrace.Open. sqltrace.Register("pgx", &stdlib.Driver{}, sqltrace.WithServiceName("my-service")) sqlDb, err := sqltrace.Open("pgx", "postgres://pqgotest:password@localhost/pqgotest?sslmode=disable")