Skip to content

Commit

Permalink
Tracing (#2831)
Browse files Browse the repository at this point in the history
* saving, switch to linux

* tracing grpc api

* saving, switch to linux

* tracing grpc api

* update tracer.go for test

* small change

* fix comments

* Squashed commit of the following:

commit 77a5a15
Author: dustinxie <dahuaxie@gmail.com>
Date:   Tue Oct 5 23:34:52 2021 -0700

    [api] add cache for ReadContract/State() (#2827)

commit 7d9bf96
Author: Haaai <55118568+Liuhaai@users.noreply.github.com>
Date:   Tue Oct 5 17:31:37 2021 -0700

    bump Go to 1.17 (#2784)

commit 09ef379
Author: dustinxie <dahuaxie@gmail.com>
Date:   Tue Oct 5 16:46:49 2021 -0700

    [ioctl] display chainID and encoding (#2820)

commit c2eab8d
Author: Haaai <55118568+Liuhaai@users.noreply.github.com>
Date:   Tue Oct 5 15:45:45 2021 -0700

    fix ioctl accountDelete test (#2825)

commit 9489b57
Author: dustinxie <dahuaxie@gmail.com>
Date:   Tue Oct 5 15:14:31 2021 -0700

    remove unnecessary WithFeatureCtx() (#2823)

commit 3933ae9
Author: dayuanc <34013965+dayuanc@users.noreply.github.com>
Date:   Tue Oct 5 07:40:32 2021 -0700

    limit the pagination size for all API calls to 5000 -- 2781 (#2800)

    Co-authored-by: dayuanc <wentaicui@WENTAIs-MacBook-Pro.local>
    Co-authored-by: CoderZhi <thecoderzhi@gmail.com>
    Co-authored-by: Raullen Chai <raullenchai@gmail.com>

commit 88d273d
Author: dayuanc <34013965+dayuanc@users.noreply.github.com>
Date:   Mon Oct 4 10:51:54 2021 -0700

    Add unit tests to cover the functions in action/signedaction.go (#2824)

commit ebe895c
Author: dustinxie <dahuaxie@gmail.com>
Date:   Thu Sep 30 15:32:52 2021 -0700

    [reward] extend foundation bonus (#2785)

commit baa0a92
Author: CoderZhi <thecoderzhi@gmail.com>
Date:   Tue Sep 28 14:09:44 2021 -0700

    Fix codecov (#2813)

commit 84f06d3
Author: dayuanc <34013965+dayuanc@users.noreply.github.com>
Date:   Tue Sep 28 12:17:47 2021 -0700

    reduce unnecessary logs for mainnet (#2808)

    * downgrade some unnecessary error and info logs

    * fix comments

    Co-authored-by: Raullen Chai <raullenchai@gmail.com>

commit a245185
Author: dustinxie <dahuaxie@gmail.com>
Date:   Mon Sep 27 15:27:59 2021 -0700

    [evm] panic in AccessList API (#2816)

commit 8eec1b7
Author: dustinxie <dahuaxie@gmail.com>
Date:   Mon Sep 27 11:01:34 2021 -0700

    set Jutland to activate at 10-11-2021 3pm PDT (#2812)

    Co-authored-by: Raullen Chai <raullenchai@gmail.com>

commit e89be88
Author: CoderZhi <thecoderzhi@gmail.com>
Date:   Sat Sep 25 22:51:54 2021 -0700

    set target height (#2807)

    Co-authored-by: dustinxie <dahuaxie@gmail.com>

commit dba4993
Author: CoderZhi <thecoderzhi@gmail.com>
Date:   Thu Sep 23 11:44:26 2021 -0700

    change commit block failure log level to error (#2810)

commit 0459a1f
Author: mas walker <handsome.void@gmail.com>
Date:   Wed Sep 22 20:18:23 2021 +0800

    unbound feature and version/height (#2768)

    * unbound feature and version/height

    Co-authored-by: Raullen Chai <raullenchai@gmail.com>

commit c1cea44
Author: millken <millken@gmail.com>
Date:   Tue Sep 21 06:31:57 2021 +0800

    update circleci config, using golang 1.16.6 #2789 (#2791)

    Co-authored-by: dustinxie <dahuaxie@gmail.com>

commit f245109
Author: Dustin Xie <dahuaxie@gmail.com>
Date:   Mon Sep 20 09:54:38 2021 -0700

    [evm] enable opCall fix at Jutland height

commit 3eea5b7
Author: Dustin Xie <dahuaxie@gmail.com>
Date:   Mon Sep 20 12:11:36 2021 -0700

    [evm] fix datacopy.json for TestIstanbul

commit 0641db0
Author: CoderZhi <thecoderzhi@gmail.com>
Date:   Fri Sep 17 14:37:28 2021 -0700

    [evm] fix snapshot bug (#2802)

    * fix snapshot bug

    * add unit test

    Co-authored-by: Raullen Chai <raullenchai@gmail.com>

commit e0683e8
Author: Haaai <55118568+Liuhaai@users.noreply.github.com>
Date:   Sat Sep 18 01:34:12 2021 +0800

    add datacopy contract test (#2788)

    * add datacopy test

    * modify contract

    * remove debug log

    * update testdata

    * add attack bytecode

    * update datacopy.json

    * correct code format

    * remove printStore() in datacopy.sol

    * update contract test data

    Co-authored-by: dustinxie <dahuaxie@gmail.com>

commit 44e0a68
Author: Haaai <55118568+Liuhaai@users.noreply.github.com>
Date:   Fri Sep 17 15:31:29 2021 +0800

    Allow ioctl to show the list of actions for an account (#2750)

    * [ioctl] allow ioctl to show the list of actions for an account

commit d10dabe
Author: Haaai <55118568+Liuhaai@users.noreply.github.com>
Date:   Fri Sep 17 12:08:33 2021 +0800

    [api] fix gas estimation calc bug (#2786)

    * fixed gas estimation bug in api.go

* Tracing (#2)

* [reward] extend foundation bonus (#2785)

* Add unit tests to cover the functions in action/signedaction.go (#2824)

* limit the pagination size for all API calls to 5000 -- 2781 (#2800)

Co-authored-by: dayuanc <wentaicui@WENTAIs-MacBook-Pro.local>
Co-authored-by: CoderZhi <thecoderzhi@gmail.com>
Co-authored-by: Raullen Chai <raullenchai@gmail.com>

* remove unnecessary WithFeatureCtx() (#2823)

* fix ioctl accountDelete test (#2825)

* [ioctl] display chainID and encoding (#2820)

* bump Go to 1.17 (#2784)

* [api] add cache for ReadContract/State() (#2827)

Co-authored-by: dustinxie <dahuaxie@gmail.com>
Co-authored-by: dayuanc <34013965+dayuanc@users.noreply.github.com>
Co-authored-by: dayuanc <wentaicui@WENTAIs-MacBook-Pro.local>
Co-authored-by: CoderZhi <thecoderzhi@gmail.com>
Co-authored-by: Raullen Chai <raullenchai@gmail.com>
Co-authored-by: Haaai <55118568+Liuhaai@users.noreply.github.com>

Co-authored-by: Raullen Chai <raullenchai@gmail.com>
Co-authored-by: dustinxie <dahuaxie@gmail.com>
Co-authored-by: dayuanc <34013965+dayuanc@users.noreply.github.com>
Co-authored-by: dayuanc <wentaicui@WENTAIs-MacBook-Pro.local>
Co-authored-by: CoderZhi <thecoderzhi@gmail.com>
Co-authored-by: Haaai <55118568+Liuhaai@users.noreply.github.com>
  • Loading branch information
7 people committed Oct 8, 2021
1 parent 9bbf5e5 commit dc8d512
Show file tree
Hide file tree
Showing 8 changed files with 185 additions and 11 deletions.
12 changes: 10 additions & 2 deletions api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ import (
"time"

"github.com/golang/protobuf/ptypes"
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
"github.com/pkg/errors"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.uber.org/zap"
"google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/grpc"
Expand Down Expand Up @@ -164,8 +166,14 @@ func NewServer(
svr.hasActionIndex = true
}
svr.grpcServer = grpc.NewServer(
grpc.StreamInterceptor(grpc_prometheus.StreamServerInterceptor),
grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor),
grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
grpc_prometheus.StreamServerInterceptor,
otelgrpc.StreamServerInterceptor(),
)),
grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
grpc_prometheus.UnaryServerInterceptor,
otelgrpc.UnaryServerInterceptor(),
)),
)
iotexapi.RegisterAPIServiceServer(svr.grpcServer, svr)
grpc_prometheus.Register(svr.grpcServer)
Expand Down
9 changes: 9 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,14 @@ type (
RangeBloomFilterNumHash uint64 `yaml:"rangeBloomFilterNumHash"`
}

// Tracer is the config for tracer
Tracer struct {
// EndPoint the jaeger endpoint
EndPoint string `yaml:"endpoint"`
// InstanceID MUST be unique for each instance of the same
InstanceID string `yaml:"instanceID"`
}

// Config is the root config struct, each package's config should be put as its sub struct
Config struct {
Plugins map[int]interface{} `ymal:"plugins"`
Expand All @@ -370,6 +378,7 @@ type (
Log log.GlobalConfig `yaml:"log"`
SubLogs map[string]log.GlobalConfig `yaml:"subLogs"`
Genesis genesis.Genesis `yaml:"genesis"`
Tracer Tracer `yaml:"tracer"`
}

// Validate is the interface of validating the config
Expand Down
12 changes: 8 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ require (
github.com/go-stack/stack v1.8.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/mock v1.4.4
github.com/golang/protobuf v1.4.3
github.com/golang/protobuf v1.5.2
github.com/golang/snappy v0.0.3
github.com/google/gopacket v1.1.19 // indirect
github.com/google/uuid v1.1.5 // indirect
Expand Down Expand Up @@ -144,6 +144,11 @@ require (
go.etcd.io/bbolt v1.3.5
go.opencensus.io v0.23.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0
go.opentelemetry.io/otel v1.0.0-RC3
go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC3
go.opentelemetry.io/otel/sdk v1.0.0-RC3
go.opentelemetry.io/otel/trace v1.0.0-RC3
go.uber.org/automaxprocs v1.2.0
go.uber.org/config v1.3.1
go.uber.org/multierr v1.6.0 // indirect
Expand All @@ -157,9 +162,8 @@ require (
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect
google.golang.org/appengine v1.6.5 // indirect
google.golang.org/genproto v0.0.0-20201211151036-40ec1c210f7a
google.golang.org/grpc v1.33.2
google.golang.org/protobuf v1.25.0
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
google.golang.org/grpc v1.39.0
google.golang.org/protobuf v1.26.0
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
)
Expand Down
44 changes: 39 additions & 5 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxK
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
cloud.google.com/go v0.51.0 h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM=
cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
Expand Down Expand Up @@ -145,6 +146,8 @@ github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ=
Expand Down Expand Up @@ -208,6 +211,8 @@ github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4s
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a h1:yDWHCSQ40h88yih2JAcL6Ls/kVkSE8GFACTGVnMPruw=
github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40egUymuWXxAe151lTNnCv97MddSOVsjpPPkityA=
Expand Down Expand Up @@ -293,8 +298,10 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
Expand All @@ -310,8 +317,10 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
Expand Down Expand Up @@ -1105,6 +1114,7 @@ github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3
github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
Expand Down Expand Up @@ -1175,6 +1185,23 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opentelemetry.io/contrib v0.22.0 h1:0F7gDEjgb1WGn4ODIjaCAg75hmqF+UN0LiVgwxsCodc=
go.opentelemetry.io/contrib v0.22.0/go.mod h1:EH4yDYeNoaTqn/8yCWQmfNB78VHfGX2Jt2bvnvzBlGM=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0 h1:TjqELdtCtlOJQrTnXd2y+RP6wXKZUnnJer0HR0CSo18=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.22.0/go.mod h1:KjqwX4uJNaj479ZjFpADOMJKOM4rBXq4kN7nbeuGKrY=
go.opentelemetry.io/otel v1.0.0-RC2/go.mod h1:w1thVQ7qbAy8MHb0IFj8a5Q2QU0l2ksf8u/CN8m3NOM=
go.opentelemetry.io/otel v1.0.0-RC3 h1:kvwiyEkiUT/JaadXzVLI/R1wDO934A7r3Bs2wEe6wqA=
go.opentelemetry.io/otel v1.0.0-RC3/go.mod h1:Ka5j3ua8tZs4Rkq4Ex3hwgBgOchyPVq5S6P2lz//nKQ=
go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC3 h1:pKXuRvOc+5NgM0vv05PVIUetreuM57mcC6QQAKkcqZA=
go.opentelemetry.io/otel/exporters/jaeger v1.0.0-RC3/go.mod h1:UbP19Xlhk9tcRZ+A3PfvyN5ld4X4YrSnzXaYzx1yNLc=
go.opentelemetry.io/otel/oteltest v1.0.0-RC2 h1:xNKqMhlZYkASSyvF4JwObZFMq0jhFN3c3SP+2rCzVPk=
go.opentelemetry.io/otel/oteltest v1.0.0-RC2/go.mod h1:kiQ4tw5tAL4JLTbcOYwK1CWI1HkT5aiLzHovgOVnz/A=
go.opentelemetry.io/otel/sdk v1.0.0-RC3 h1:iRMkET+EmJUn5mW0hJzygBraXRmrUwzbOtNvTCh/oKs=
go.opentelemetry.io/otel/sdk v1.0.0-RC3/go.mod h1:78H6hyg2fka0NYT9fqGuFLvly2yCxiBXDJAgLKo/2Us=
go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4=
go.opentelemetry.io/otel/trace v1.0.0-RC3 h1:9F0ayEvlxv8BmNmPbU005WK7hC+7KbOazCPZjNa1yME=
go.opentelemetry.io/otel/trace v1.0.0-RC3/go.mod h1:VUt2TUYd8S2/ZRX09ZDFZQwn2RqfMB5MzO17jBojGxo=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
Expand All @@ -1185,8 +1212,9 @@ go.uber.org/automaxprocs v1.2.0 h1:+RUihKM+nmYUoB9w0D0Ov5TJ2PpFO2FgenTxMJiZBZA=
go.uber.org/automaxprocs v1.2.0/go.mod h1:YfO3fm683kQpzETxlTGZhGIVmXAhaw3gxeBADbpZtnU=
go.uber.org/config v1.3.1 h1:XlXqnaD0HTGVq5Ad+sfxA/18XVG1v4mfEelYOkbKwcY=
go.uber.org/config v1.3.1/go.mod h1:6gdxX5xKDFII45TlqT2TubO4PvJggfUOxdnmsbrimwg=
go.uber.org/goleak v1.0.0 h1:qsup4IcBdlmsnGfqyLl4Ntn3C2XCCuKAE7DwHpScyUo=
go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
Expand Down Expand Up @@ -1314,6 +1342,7 @@ golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAG
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down Expand Up @@ -1389,6 +1418,7 @@ golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912 h1:uCLL3g5wH2xjxVREVuAbP9JM5PPKjRbXKRa6IBjkzmU=
golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down Expand Up @@ -1520,8 +1550,10 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.39.0 h1:Klz8I9kdtkIN6EpHHUOMLCYhTn/2WAe5a0s1hcBkdTI=
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
Expand All @@ -1531,8 +1563,10 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
Expand Down
84 changes: 84 additions & 0 deletions pkg/tracer/tracer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package tracer

import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/exporters/jaeger"
"go.opentelemetry.io/otel/sdk/resource"
tracesdk "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"

"github.com/iotexproject/iotex-core/pkg/version"
)

const (
_service = "iotex-tracer"
)

// Option the tracer provider option
type Option func(ops *optionParams) error

type optionParams struct {
endpoint string //the jaeger endpoint
instanceID string //Note: MUST be unique for each instance of the same
}

// WithEndpoint defines the full URL to the Jaeger HTTP Thrift collector
func WithEndpoint(endpoint string) Option {
return func(ops *optionParams) error {
ops.endpoint = endpoint
return nil
}
}

// WithInstanceID defines the instance id
func WithInstanceID(instanceID string) Option {
return func(ops *optionParams) error {
ops.instanceID = instanceID
return nil
}
}

// NewProvider create an instance of tracer provider
func NewProvider(opts ...Option) (*tracesdk.TracerProvider, error) {
var (
err error
ops optionParams
trackerTracerProviderOption []tracesdk.TracerProviderOption
jaegerCollectorEndpointOption []jaeger.CollectorEndpointOption
)
for _, opt := range opts {
if err = opt(&ops); err != nil {
return nil, err
}
}
if ops.endpoint != "" {
jaegerCollectorEndpointOption = append(jaegerCollectorEndpointOption, jaeger.WithEndpoint(ops.endpoint))
} else {
trackerTracerProviderOption = append(trackerTracerProviderOption, tracesdk.WithSampler(tracesdk.ParentBased(tracesdk.TraceIDRatioBased(-1))))
}
kv := []attribute.KeyValue{
semconv.ServiceVersionKey.String(version.PackageVersion),
semconv.ServiceNameKey.String(_service),
}
if ops.instanceID != "" {
kv = append(kv, semconv.ServiceInstanceIDKey.String(ops.instanceID))
}
// Record information about this application in an Resource.
resources := tracesdk.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
kv...,
))
trackerTracerProviderOption = append(trackerTracerProviderOption, resources)
// Create the Jaeger exporter
exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaegerCollectorEndpointOption...))
if err != nil {
return nil, err
}
// Always be sure to batch in production.
trackerTracerProviderOption = append(trackerTracerProviderOption, tracesdk.WithBatcher(exp))
tp := tracesdk.NewTracerProvider(trackerTracerProviderOption...)
//set global provider
otel.SetTracerProvider(tp)
return tp, nil
}
14 changes: 14 additions & 0 deletions pkg/tracer/tracer_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package tracer

import (
"testing"

"github.com/stretchr/testify/require"
)

func TestTracer(t *testing.T) {
require := require.New(t)
prv, err := NewProvider()
require.NoError(err)
require.NotNil(prv)
}
4 changes: 4 additions & 0 deletions server/itx/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"sync"

"github.com/pkg/errors"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"

"github.com/iotexproject/iotex-core/chainservice"
Expand Down Expand Up @@ -170,6 +171,9 @@ func (s *Server) Dispatcher() dispatcher.Dispatcher {

// StartServer starts a node server
func StartServer(ctx context.Context, svr *Server, probeSvr *probe.Server, cfg config.Config) {
span := trace.SpanFromContext(ctx)
span.AddEvent("start server")
defer span.End()
if err := svr.Start(ctx); err != nil {
log.L().Fatal("Failed to start server.", zap.Error(err))
return
Expand Down
Loading

0 comments on commit dc8d512

Please sign in to comment.