PitchHut logo
Log in / Sign up
FALKEN-TRACE-GO
by left_pink_aili
Enhancing OpenTelemetry with precise Golang observability.
Pitch

Falken Trace elevates OpenTelemetry and Datadog for Go developers by providing code-level insights. By offering relevant file names, function names, and line numbers for spans, it bridges gaps in default observability. Discover streamlined debugging and enhanced codebase behavior insights with this powerful tool.

Description

Falken Trace is a powerful tool designed to enhance OpenTelemetry and Datadog for Go, providing precise code-level observability by identifying file names, function names, and line numbers that generate spans. This project aims to fill the gaps present in default observability implementations, enabling developers to trace their applications more effectively and derive actionable insights.

With Falken Trace, debugging becomes more streamlined, allowing for a deeper understanding of the behaviors within the codebase. It was developed during the creation of Baz and serves to improve the overall observability experience in Go applications.

Features

  • Pinpoint attributes contributing to spans, namely file and function names along with corresponding line numbers.
  • Integrate easily with existing OpenTelemetry and Datadog setups.

Quick Start

To start utilizing Falken Trace in your Go project, simply substitute your existing span initiation methods from either Datadog or OpenTelemetry with Falken Trace calls. Here’s how to do it:

Integration with Datadog

Replace your tracer.StartSpanFromContext calls with:

import (
    "context"
    falken "github.com/baz-scm/falken-trace-go/tracing/datadog"
)

func doSomething(ctx context.Context) {
    span, _ := falken.StartSpanFromContext(ctx, "doSomething")
    defer span.Finish()
    ...
}

Integration with OpenTelemetry

For OpenTelemetry, switch from:

import (
    "context"
    "go.opentelemetry.io/otel"
)

var (
    tracer = otel.Tracer("tracer")
)

func doSomething(ctx context.Context) {
    _, span := tracer.Start(ctx, "doSomething")
    defer span.End()
    ...
}

To using Falken Tracer as follows:

import (
    "context"
    falken "github.com/baz-scm/falken-trace-go/tracing/opentelemetry"
)

var (
    tracer = falken.Tracer("tracer")
)

func doSomething(ctx context.Context) {
    _, span := falken.Start(ctx, "doSomething")
    defer span.End()
    ...
}

Additional Resources

For developers seeking more options, there is also a Python library available. To gain further insights into the inspiration behind Falken Trace, read the blog post detailing the journey to extend OpenTelemetry for improved code element tracing.

0 comments

No comments yet.

Sign in to be the first to comment.