https://github.com/itsubaki/tracer
Tracer for Google Cloud Trace
https://github.com/itsubaki/tracer
google-cloud tracer
Last synced: 28 days ago
JSON representation
Tracer for Google Cloud Trace
- Host: GitHub
- URL: https://github.com/itsubaki/tracer
- Owner: itsubaki
- License: mit
- Created: 2022-09-17T10:40:33.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-17T02:27:04.000Z (11 months ago)
- Last Synced: 2025-04-17T16:15:16.739Z (11 months ago)
- Topics: google-cloud, tracer
- Language: Go
- Homepage:
- Size: 180 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tracer
Example of using gin-gonic/gin.
```go
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/itsubaki/tracer"
)
func SetTraceID(c *gin.Context) {
value := c.GetHeader("X-Cloud-Trace-Context")
xc, err := tracer.Parse(value)
if err != nil {
c.AbortWithStatus(http.StatusInternalServerError)
return
}
c.Set("trace_id", xc.TraceID)
c.Set("span_id", xc.SpanID)
c.Set("trace_true", xc.TraceTrue)
c.Next()
}
```
```go
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/itsubaki/tracer"
"go.opentelemetry.io/otel"
)
var tr = otel.Tracer("mypackage/myfunc")
func Func(c *gin.Context) {
traceID := c.GetString("trace_id")
spanID := c.GetString("span_id")
traceTrue := c.GetBool("trace_true")
parent, err := tracer.Context(c.Request.Context(), traceID, spanID, traceTrue)
if err != nil {
c.Status(http.StatusInternalServerError)
return
}
func() {
_, s := tr.Start(parent, "something to do")
defer s.End()
...
}()
...
```