go.dedis.ch/onet/v3@v3.2.11-0.20210930124529-e36530bca7ef/tracing/honeycomb_test.go (about)

     1  package tracing
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"go.dedis.ch/onet/v3/log"
     8  
     9  	"github.com/stretchr/testify/require"
    10  	"go.dedis.ch/onet/v3"
    11  )
    12  
    13  func TestLoggingRealHC(t *testing.T) {
    14  	t.Skip("this test is only useful for manual testing with honeycomb")
    15  	log.AddUserUninterestingGoroutine("worker")
    16  	log.AddUserUninterestingGoroutine("poll.runtime_pollWait")
    17  	log.AddUserUninterestingGoroutine("writeLoop")
    18  	log.SetDebugVisible(1)
    19  	var tl *TraceLogger
    20  	switch 0 {
    21  	case 0:
    22  		// Creates an internal simulation logger for manual debugging
    23  		var sc *simulCollector
    24  		sc, tl = newSimulLogger()
    25  		defer sc.waitAndPrint()
    26  	case 1:
    27  		// Creates a honeycomb logger with stdout debug
    28  		tl = NewHoneycombLoggerDebug()
    29  	case 2:
    30  		// Creates a real honeycomb logger - needs HONEYCOMB_API_KEY set to
    31  		// API_KEY:dataset
    32  		var err error
    33  		tl, err = NewHoneycombLoggerFromEnv()
    34  		require.NoError(t, err)
    35  	}
    36  	tl.NoSingleSpans = true
    37  	l := onet.NewLocalTest(tSuite)
    38  	defer l.CloseAll()
    39  	_, err := onet.RegisterNewService(testService, newTService)
    40  	require.NoError(t, err)
    41  	s := l.GenServers(1)[0]
    42  	tl.AddOnetDefaults(s.ServerIdentity)
    43  
    44  	cl := onet.NewClient(tSuite, testService)
    45  	require.NoError(t, cl.SendProtobuf(s.ServerIdentity, &Query{1}, nil))
    46  	require.NoError(t, cl.SendProtobuf(s.ServerIdentity, &Query{1}, nil))
    47  
    48  	time.Sleep(time.Second)
    49  }
    50  
    51  var testService = "testService"
    52  
    53  type tService struct {
    54  	*onet.ServiceProcessor
    55  }
    56  
    57  type Query struct {
    58  	A int
    59  }
    60  
    61  func (t *tService) Reply(q *Query) (*Query, error) {
    62  	testOne()
    63  	testTwo()
    64  	return q, nil
    65  }
    66  
    67  func testOne() {
    68  	log.Lvl2("something")
    69  	testTwo()
    70  }
    71  
    72  func testTwo() {
    73  	log.Lvl2("more")
    74  }
    75  
    76  func newTService(c *onet.Context) (onet.Service, error) {
    77  	t := &tService{
    78  		ServiceProcessor: onet.NewServiceProcessor(c),
    79  	}
    80  	t.RegisterHandlers(t.Reply)
    81  	return t, nil
    82  }