All Projects → opentracing-contrib → go-grpc

opentracing-contrib / go-grpc

Licence: Apache-2.0 license
Package otgrpc provides OpenTracing support for any gRPC client or server.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-grpc

go-zipkin-demo
Laravel + go-micro + grpc + Zipkin
Stars: ✭ 65 (+14.04%)
Mutual labels:  grpc, opentracing
Hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
Stars: ✭ 4,206 (+7278.95%)
Mutual labels:  grpc, opentracing
gcloud-opentracing
OpenTracing Tracer implementation for GCloud StackDriver in Go.
Stars: ✭ 44 (-22.81%)
Mutual labels:  grpc, opentracing
Go Microservice Helpers
A collection of handy snippets that simplify creation of GRPC servers and clients
Stars: ✭ 400 (+601.75%)
Mutual labels:  grpc, opentracing
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (+503.51%)
Mutual labels:  grpc, opentracing
Csharp Grpc
OpenTracing Instrumentation for gRPC
Stars: ✭ 40 (-29.82%)
Mutual labels:  grpc, opentracing
sisyphus
Sisyphus is the way how we provide backend services.
Stars: ✭ 59 (+3.51%)
Mutual labels:  grpc
grpc-js-typescript
Generate gRPC TypeScript definitions for use with gRPC (@grpc/grpc-js).
Stars: ✭ 113 (+98.25%)
Mutual labels:  grpc
mrcnn serving ready
🛠 Mask R-CNN Keras to Tensorflow and TFX models + Serving models using TFX GRPC & RESTAPI
Stars: ✭ 96 (+68.42%)
Mutual labels:  grpc
agrpc
Async GRPC with C++20 coroutine support
Stars: ✭ 53 (-7.02%)
Mutual labels:  grpc
fm.consulinterop
a lib for build micro-service
Stars: ✭ 33 (-42.11%)
Mutual labels:  grpc
drpc
drpc is a lightweight, drop-in replacement for gRPC
Stars: ✭ 1,014 (+1678.95%)
Mutual labels:  grpc
grpc-getting-started
Guide to get started with gRPC in Cisco IOS XR
Stars: ✭ 32 (-43.86%)
Mutual labels:  grpc
RPC reactive
Examples and explanations of how RPC systems works.
Stars: ✭ 25 (-56.14%)
Mutual labels:  grpc
micro
A simple tool kit for building microservices.
Stars: ✭ 15 (-73.68%)
Mutual labels:  grpc
protoc-gen-grpc-gateway-ts
protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway.
Stars: ✭ 68 (+19.3%)
Mutual labels:  grpc
go-sensor
🚀 Go Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 90 (+57.89%)
Mutual labels:  opentracing
ruby-sensor
💎 Ruby Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 23 (-59.65%)
Mutual labels:  opentracing
run-aspnet-grpc
Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5. See gRPC Microservices and Step by Step Implementation on .NET Course w/ discount->
Stars: ✭ 82 (+43.86%)
Mutual labels:  grpc
go-loadbalance
A well designed loadbalance API with dozens of implementations for go-grpc loadbalance.
Stars: ✭ 37 (-35.09%)
Mutual labels:  grpc

OpenTracing support for gRPC in Go

The otgrpc package makes it easy to add OpenTracing support to gRPC-based systems in Go.

Installation

go get github.com/opentracing-contrib/go-grpc

Documentation

See the basic usage examples below and the package documentation on godoc.org.

Client-side usage example

Wherever you call grpc.Dial:

// You must have some sort of OpenTracing Tracer instance on hand.
var tracer opentracing.Tracer = ...
...

// Set up a connection to the server peer.
conn, err := grpc.Dial(
    address,
    ... // other options
    grpc.WithUnaryInterceptor(
        otgrpc.OpenTracingClientInterceptor(tracer)),
    grpc.WithStreamInterceptor(
        otgrpc.OpenTracingStreamClientInterceptor(tracer)))

// All future RPC activity involving `conn` will be automatically traced.

Server-side usage example

Wherever you call grpc.NewServer:

// You must have some sort of OpenTracing Tracer instance on hand.
var tracer opentracing.Tracer = ...
...

// Initialize the gRPC server.
s := grpc.NewServer(
    ... // other options
    grpc.UnaryInterceptor(
        otgrpc.OpenTracingServerInterceptor(tracer)),
    grpc.StreamInterceptor(
        otgrpc.OpenTracingStreamServerInterceptor(tracer)))

// All future RPC activity involving `s` will be automatically traced.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].