Request Tracker

Request Tracker is a small library for managing context between services. For example, setting and retrieving important metadata shared between services, such as user ID's, request ID's, and other important information.

The request tracker wraps around a logger instance, so that you don't have to keep setting the request ID/user ID etc everywhere they're needed. Set it once and forget about it!

Usage

package main

import requestTracker "github.com/pingponglabs/mediamagic-platform/libs/request-tracker"

func main() {
	rt := requestTracker.NewLogger()
	logger := rt.WithUserID("abc123").WithRequestID("xyz789").GetLogger()
}

Example from context

package main

import (
	"context"
	"log"
	
	requestTracker "github.com/pingponglabs/mediamagic-platform/libs/request-tracker"
)

type service struct {}

func (s *service) handler(ctx context.Context, _ *pb.Request) (*pb.Response, error) {
	rt := requestTracker.NewLogger()
	logger := rt.WithRequestIDFromContext(ctx).WithUserIDFromContext(ctx).GetLogger()
	logger.Info("Hello world!")
	return nil, nil
}

Last updated