gomongowrapper

所属分类:MongoDB
开发工具:GO
文件大小:568KB
下载次数:0
上传日期:2020-05-22 00:03:42
上 传 者sh-1993
说明:  MongoDB Go包装器源代码
(MongoDB Go wrapper source code)

文件列表:
LICENSE (559, 2020-04-14)
example_test.go (2605, 2020-04-14)
go.mod (658, 2020-04-14)
go.sum (23482, 2020-04-14)
images (0, 2020-04-14)
images\gomongowrapper-metrics.png (358493, 2020-04-14)
images\gomongowrapper-traces.png (341523, 2020-04-14)
mongo.go (1130, 2020-04-14)
observability.go (3011, 2020-04-14)
observability_test.go (5711, 2020-04-14)
wrapped_client.go (3398, 2020-04-14)
wrapped_client_ecryption.go (2530, 2020-04-14)
wrapped_collection.go (8589, 2020-04-14)
wrapped_database.go (2786, 2020-04-14)
wrapped_session.go (2248, 2020-04-14)

# gomongowrapper MongoDB Go wrapper source code ## Table of contents - [End to end example](https://github.com/opencensus-integrations/gomongowrapper/blob/master/#end-to-end-example) - [Traces](https://github.com/opencensus-integrations/gomongowrapper/blob/master/#traces) - [Metrics](https://github.com/opencensus-integrations/gomongowrapper/blob/master/#metrics) ## End to end example With a MongoDB server running at "localhost:27017" and running this example with Go ```go package main import ( "context" "log" "time" "go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/bson" mongowrapper "github.com/opencensus-integrations/gomongowrapper" "contrib.go.opencensus.io/exporter/stackdriver" "go.opencensus.io/stats/view" "go.opencensus.io/trace" ) func main() { // Enabling the OpenCensus exporter. // Just using Stackdriver since it has both Tracing and Metrics // and is easy to whip up. Add your desired one here. sde, err := stackdriver.NewExporter(stackdriver.Options{ ProjectID: "census-demos", MetricPrefix: "mongosample", }) if err != nil { log.Fatalf("Failed to create Stackdriver exporter: %v", err) } view.RegisterExporter(sde) trace.RegisterExporter(sde) if err := mongowrapper.RegisterAllViews(); err != nil { log.Fatalf("Failed to register all views: %v\n", err) } defer func() { <-time.After(2 * time.Minute) }() // Start a span like your application would start one. ctx, span := trace.StartSpan(context.Background(), "Fetch", trace.WithSampler(trace.AlwaysSample())) defer span.End() // Now for the mongo connections, using the context // with the span in it for continuity. client, err := mongowrapper.NewClient(options.Client().ApplyURI("mongodb://localhost:27017")) if err != nil { log.Fatalf("Failed to create the new client: %v", err) } if err := client.Connect(ctx); err != nil { log.Fatalf("Failed to open client connection: %v", err) } defer client.Disconnect(ctx) coll := client.Database("the_db").Collection("music") q := bson.M{"name": "Examples"} cur, err := coll.Find(ctx, q) if err != nil { log.Fatalf("Find error: %v", err) } for cur.Next(ctx) { elem := make(map[string]int) if err := cur.Decode(elem); err != nil { log.Printf("Decode error: %v", err) continue } log.Printf("Got result: %v\n", elem) } log.Print("Done iterating") _, err = coll.DeleteMany(ctx, q) if err != nil { log.Fatalf("Failed to delete: %v", err) } } ``` ## Traces ![](https://github.com/opencensus-integrations/gomongowrapper/blob/master//images/gomongowrapper-traces.png) ## Metrics ![](https://github.com/opencensus-integrations/gomongowrapper/blob/master//images/gomongowrapper-metrics.png)

近期下载者

相关文件


收藏者