FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Add new localstack tracer to return tracing headers set by invoke by dfangl · Pull Request #31 · localstack/lambda-runtime-init · GitHub

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .go  (2) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
4 changes: 3 additions & 1 deletion cmd/localstack/main.go
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ func main() {

logCollector := NewLogCollector()
localStackLogsEgressApi := NewLocalStackLogsEgressAPI(logCollector)
tracer := NewLocalStackTracer()

// build sandbox
sandbox := rapidcore.
Expand All @@ -191,7 +192,8 @@ func main() {
}).
SetExtensionsFlag(true).
SetInitCachingFlag(true).
SetLogsEgressAPI(localStackLogsEgressApi)
SetLogsEgressAPI(localStackLogsEgressApi).
SetTracer(tracer)

// xray daemon
endpoint := "http://" + lsOpts.LocalstackIP + ":" + lsOpts.EdgePort
Expand Down
63 changes: 63 additions & 0 deletions cmd/localstack/tracer.go
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package main

import (
"context"
"encoding/json"
"go.amzn.com/lambda/appctx"
"go.amzn.com/lambda/interop"
)

type LocalStackTracer struct {
invoke *interop.Invoke
}

func (t *LocalStackTracer) Configure(invoke *interop.Invoke) {
t.invoke = invoke
}

func (t *LocalStackTracer) CaptureInvokeSegment(ctx context.Context, criticalFunction func(context.Context) error) error {
return criticalFunction(ctx)
}

func (t *LocalStackTracer) CaptureInitSubsegment(ctx context.Context, criticalFunction func(context.Context) error) error {
return criticalFunction(ctx)
}

func (t *LocalStackTracer) CaptureInvokeSubsegment(ctx context.Context, criticalFunction func(context.Context) error) error {
return criticalFunction(ctx)
}

func (t *LocalStackTracer) CaptureOverheadSubsegment(ctx context.Context, criticalFunction func(context.Context) error) error {
return criticalFunction(ctx)
}

func (t *LocalStackTracer) RecordInitStartTime() {}
func (t *LocalStackTracer) RecordInitEndTime() {}
func (t *LocalStackTracer) SendInitSubsegmentWithRecordedTimesOnce(ctx context.Context) {}
func (t *LocalStackTracer) SendRestoreSubsegmentWithRecordedTimesOnce(ctx context.Context) {}
func (t *LocalStackTracer) MarkError(ctx context.Context) {}
func (t *LocalStackTracer) AttachErrorCause(ctx context.Context, errorCause json.RawMessage) {}

func (t *LocalStackTracer) WithErrorCause(ctx context.Context, appCtx appctx.ApplicationContext, criticalFunction func(ctx context.Context) error) func(ctx context.Context) error {
return criticalFunction
}
func (t *LocalStackTracer) WithError(ctx context.Context, appCtx appctx.ApplicationContext, criticalFunction func(ctx context.Context) error) func(ctx context.Context) error {
return criticalFunction
}
func (t *LocalStackTracer) BuildTracingHeader() func(context.Context) string {
// extract root trace ID and parent from context and build the tracing header
return func(ctx context.Context) string {
return t.invoke.TraceID
Comment thread
dfangl marked this conversation as resolved.
}
}

func (t *LocalStackTracer) BuildTracingCtxForStart() *interop.TracingCtx {
return nil
}
func (t *LocalStackTracer) BuildTracingCtxAfterInvokeComplete() *interop.TracingCtx {
return nil
}

func NewLocalStackTracer() *LocalStackTracer {
return &LocalStackTracer{}
}

Back | FazBrowse Home | New Git URL