jaegertracing / jaeger-client-go Goto Github PK
View Code? Open in Web Editor NEW🛑 This library is DEPRECATED!
Home Page: https://jaegertracing.io/
License: Apache License 2.0
🛑 This library is DEPRECATED!
Home Page: https://jaegertracing.io/
License: Apache License 2.0
Does the Jaeger client support baggage headers set by an openzipkin agent? Namely:
'X-B3-TraceId',
'X-B3-SpanId',
'X-B3-ParentSpanId',
'X-B3-Sampled',
'X-B3-Flags'
When I want to expose metrics at client side, I found this doc:
https://github.com/jaegertracing/jaeger-client-go#metrics--monitoring
But according to #83 , the documented code was ripped out, and at the same time, no docs was found for lib jaeger-lib
The jaeger tracer defines a jaeger logger interface here https://github.com/uber/jaeger-client-go/blob/master/logger.go#L29.
Is there a plan to replace this with zap logger directly? For UberFx, I have a wrapper for jaeger logger that calls zap under the hood https://github.com/uber-go/fx/blob/master/tracing/tracer.go#L69. This also gets a bit messy because zap expects even arguments to the log message so I ended up appending a key string just to make it even.
@akshayjshah @sectioneight @anuptalwalkar @yurishkuro
In YARPC we need the ability to test whether the tracer obtained from a span implements jager.tracer, so that we can be sure that tchannel.InjectOutboundSpan will not panic when called, as opposed to NoopTracer or another.
Currently maxAnnotationLength is fixed to 256, but would it be possible to be configurable by the client.
thank you
Hey,
when I got started with this go lib I couldn't find any examples on how to create a new Tracer.
To get started I basically want to sample everything and send all traces to localhost.
I hope to achieve that with this code now:
tracerTransport, err := jaeger.NewUDPTransport("", 0)
if err != nil {
return err
}
tracer, traceCloser := jaeger.NewTracer("api", jaeger.NewConstSampler(false), jaeger.NewRemoteReporter(tracerTransport))
I'm not really sure if that's correct.
I really dig Jaeger so far! Thanks!
Use SetGlobalTracer instead.
We should configure travis build to only submit coverage stats for one of the builds, e.g. 1.7
Hi,I have some doubt with jaeger.SpanID. See
package main
import (
"fmt"
"github.com/uber/jaeger-client-go"
)
type MySpanId uint64
func main() {
var i uint64
i = 9871623611823
fmt.Printf("jaeger.SpanID %+v \n", jaeger.SpanID(i))
fmt.Printf("MySpanId %+v \n", MySpanId(i))
}
result :
jaeger.SpanID 8fa6a9e65af
MySpanId 9871623611823
Result is different.
How it work ? I want to know it and implementation with php.
I development php client for jaeger Jaeger-php and want tracing each other with go .
thinks.
thrift.TProcessorFunction
has added a context parameter (https://github.com/apache/thrift/blob/master/lib/go/thrift/processor_go17.go#L32-L34)
type TProcessorFunction interface {
Process(ctx context.Context, seqId int32, in, out TProtocol) (bool, TException)
}
As a result, builds with jaeger-client-go are failing.
i.e. https://github.com/jaegertracing/jaeger-client-go/blob/master/header.go#L20
Also fix upper-case first letter in https://github.com/jaegertracing/jaeger-client-go/blob/master/header.go#L34
~/.../github.com/jaegertracing/jaeger-client-go [jaeger-client-go:master]$ go build
baggage_setter.go:20:2: use of internal package not allowed
zipkin_thrift_span.go:24:2: use of internal package not allowed
~/.../github.com/jaegertracing/jaeger-client-go [jaeger-client-go:master]$
...because the import is still based on github.com/uber/jaeger-client-go
For the sake of consistency, it would be useful if tags could be aggregated via JAEGER_TAGS
environment variable like in the Java client.
We need to port this from https://github.com/uber/jaeger make file.
https://github.com/uber/jaeger-client-go/blob/master/sampler.go#L310
AdaptiveSampler.IsSampled() is called by RemotelyControlledSampler.IsSampled(); however, the read lock doesn't prevent AdaptiveSampler from creating more samplers. Either change it to use a write lock or add more granular locking.
Hi,
I want to use textMapPropagator to propagate span by HTTP call.
I can find "uber-trace-id" for present "trace-id" in opentracing-api,
but no available for "span-id".
Add a HTTP reporter that reports spans to the endpoint added in https://github.com/uber/jaeger/pull/156
Placeholder to leverage the work from described here: opentracing/specification#36 (comment)
Cf. opentracing/basictracer-go#39
// MaxLogsPerSpan limits the number of Logs in a span if set to a non-zero
// value. If a span has more logs than this value, logs in the middle of the
// span timeline are dropped as necessary and replaced with a log describing
// how many were dropped.
//
// About half of the MaxLogPerSpan logs kept are the oldest logs, and about
// half are the newest logs.
func (tracerOptions) MaxLogsPerSpan(maxLogsPerSpan int) TracerOption {
return func(tracer *tracer) {
tracer.options.maxLogsPerSpan = maxLogsPerSpan
}
}
Hello,
Right now, it requires API reading to figure out how to initialize jaeger with metrics and logging. I'm guessing this is a pretty common use case. Can you provide docs in the README on how to do this?
Thanks,
Madhu
I'd like us to be more careful when making changes and cutting releases as minor releases. Version 2.6 contained the following change:
#129
This change contains a renaming of ClientOptions
to Options
. I think the renaming was a good step, but when we make changes like this, we should bump the major version.
Can we enforce this in reviews @black-adder and @yurishkuro?
Noticed in jaegertracing/jaeger-ui#149
In the hotrod example, the root span HTTP GET /dispatch
is reported with an invalid reference {"refType":"CHILD_OF","traceIdLow":0,"traceIdHigh":0,"spanId":0}
.
The whole section of the code (tracer.startSpanWithOptions) could use some simplification/refactoring and unit tests of various permutations of baggage/debug-id.
When I try to glide get
it's returns Error looking for github.com/apache/thrift/lib/go/thrift: Unable to retrieve checked out version
Hi,
'FollowsFrom' is defined in opentracing's specification, but Jaeger-client only implemented 'ChildOf'.
I suggess the reason is zipkin's trace system do not support the reference.
Will it be implemented in future?
It is currently possible to use yab to submit baggage.
#!/bin/bash
TRACE=$(xxd -ps -l 8 < /dev/urandom)
SPAN=$(xxd -ps -l 8 < /dev/urandom)
PARENT=$(xxd -ps -l 8 < /dev/zero)
TRACEID="$TRACE:$SPAN:$PARENT:1"
UUID=$1
TENANCY=$2
yab yarpc-prober Prober::probe \
-t /usr/share/uber-idl/code.uber.internal/infra/yarpc-prober/prober.thrift \
--body '{"UUID":"'"$UUID"'"}' \
--headers '{"$tracing$context-tenancy":"'"$TENANCY"'","$tracing$trace-id":"'"$TRACEID"'"}' \
| jq .
For tools like yab, and even simply curl for simple HTTP services, it should be simpler to submit baggage.
#!/bin/bash
UUID=$1
TENANCY=$2
yab yarpc-prober Prober::probe \
-t /usr/share/uber-idl/code.uber.internal/infra/yarpc-prober/prober.thrift \
--body '{"UUID":"'"$UUID"'"}' \
--headers '{"$tracing$context-tenancy":"'"$TENANCY"'"}' \
| jq .
#!/bin/bash
UUID=$1
TENANCY=$2
curl hostport
-H "Rpc-Procedure: Prober::probe" \
-H "Rpc-Service: prober" \
-H "Rpc-Caller: "$USER:curl" \
-H "Context-TTL-MS: 100" \
-H "Context-Tenancy: $TENANCY" \
-d '{"UUID":"'"$UUID"'"}' \
| jq .
Started in #108
While writing crossdock tests for the C++ client, I came across this crash in the Go client:
✗ [trace] go→ (s1name=cpp s2name=cpp s2transport=http s3name=cpp s3transport=http sampled=false) ⇒ runtime error: invalid memory address or nil pointer dereference
goroutine 17 [running]:
runtime/debug.Stack(0xc42005fc38, 0x748460, 0xc42000a030)
/home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/debug/stack.go:24 +0x79
github.com/uber/jaeger-client-go/vendor/github.com/crossdock/crossdock-go.Run.func1.1(0xc42010e100, 0xc420138060)
/home/travis/gopath/src/github.com/uber/jaeger-client-go/vendor/github.com/crossdock/crossdock-go/run.go:48 +0x78
panic(0x748460, 0xc42000a030)
/home/travis/.gimme/versions/go1.7.linux.amd64/src/runtime/panic.go:458 +0x243
github.com/uber/jaeger-client-go/crossdock/client.(*Client).trace(0xc42011c050, 0x9557e0, 0xc42010e100)
/home/travis/gopath/src/github.com/uber/jaeger-client-go/crossdock/client/trace.go:72 +0x738
We currently use random uuid as baggage value, but all its characters are safe for url-encoding. We need tests that use unsafe characters.
See here: jaegertracing/jaeger-client-cpp#6. This should affect Go as well, not just C++.
This does not conform to HTTP 1.1: https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
See T1379899 for an example issue caused by this non-conformance.
I suggest storing baggage keys as all lowercase letters.
Simply importing the library causes this:
Go 1.9, Fedora 25.
# github.com/uber/jaeger-client-go/thrift-gen/sampling
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/sampling/samplingmanager.go:101:15: cannot assign 1 values to 2 variables
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/sampling/samplingmanager.go:147:44: cannot use samplingManagerProcessorGetSamplingStrategy literal (type *samplingManagerProcessorGetSamplingStrategy) as type thrift.TProcessorFunction in assignment:
*samplingManagerProcessorGetSamplingStrategy does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/sampling/samplingmanager.go:157:27: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
# github.com/uber/jaeger-client-go/thrift-gen/jaeger
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/jaeger/agent.go:101:34: cannot use agentProcessorEmitBatch literal (type *agentProcessorEmitBatch) as type thrift.TProcessorFunction in assignment:
*agentProcessorEmitBatch does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/jaeger/agent.go:111:27: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
# github.com/uber/jaeger-client-go/thrift-gen/zipkincore
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincollector.go:101:15: cannot assign 1 values to 2 variables
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincollector.go:147:42: cannot use zipkinCollectorProcessorSubmitZipkinBatch literal (type *zipkinCollectorProcessorSubmitZipkinBatch) as type thrift.TProcessorFunction in assignment:
*zipkinCollectorProcessorSubmitZipkinBatch does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
../../../gopath/src/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincollector.go:157:27: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
I have the problem with getting the package using glide get
. It has some issues with VCS.
Using
go get`` instead also doesn't work because there are compilation errors.
$ glide get github.com/uber/jaeger-client-go
[INFO] Preparing to install 1 package.
[INFO] Attempting to get package github.com/uber/jaeger-client-go
[INFO] --> Gathering release information for github.com/uber/jaeger-client-go
[INFO] The package github.com/uber/jaeger-client-go appears to have Semantic Version releases (http://semver.org).
[INFO] The latest release is v2.9.0. You are currently not using a release. Would you like
[INFO] to use this release? Yes (Y) or No (N)
y
[INFO] The package github.com/uber/jaeger-client-go appears to use semantic versions (http://semver.org).
[INFO] Would you like to track the latest minor or patch releases (major.minor.patch)?
[INFO] Tracking minor version releases would use '>= 2.9.0, < 3.0.0' ('^2.9.0'). Tracking patch version
[INFO] releases would use '>= 2.9.0, < 2.10.0' ('~2.9.0'). For more information on Glide versions
[INFO] and ranges see https://glide.sh/docs/versions
[INFO] Minor (M), Patch (P), or Skip Ranges (S)?
p
[INFO] --> Adding github.com/uber/jaeger-client-go to your configuration with the version ~2.9.0
[INFO] Downloading dependencies. Please wait...
[INFO] --> Fetching updates for github.com/uber/jaeger-client-go.
[INFO] --> Fetching updates for github.com/koding/websocketproxy.
[INFO] --> Fetching updates for bazil.org/fuse.
[INFO] --> Fetching updates for github.com/pborman/uuid.
[INFO] --> Fetching updates for github.com/olekukonko/ts.
[INFO] --> Fetching updates for github.com/visionect/gotk3.
[INFO] --> Fetching updates for github.com/gorilla/mux.
[INFO] --> Fetching updates for golang.org/x/net.
[INFO] --> Fetching updates for gopkg.in/check.v1.
[INFO] --> Fetching updates for github.com/gorilla/websocket.
[INFO] --> Fetching updates for github.com/ugorji/go.
[INFO] --> Fetching updates for gopkg.in/v1/yaml.
[INFO] --> Fetching updates for github.com/smartystreets/goconvey.
[INFO] --> Fetching updates for launchpad.net/gocheck.
[INFO] --> Fetching updates for github.com/ugorji/go-msgpack.
[INFO] --> Fetching updates for github.com/stretchr/testify.
[INFO] Resolving imports
[INFO] --> Fetching updates for golang.org/x/sys.
[INFO] --> Fetching updates for golang.org/x/text.
[INFO] --> Fetching updates for github.com/alecthomas/units.
[INFO] --> Fetching updates for github.com/nicksnyder/go-i18n.
[INFO] Found Godeps.json file in /home/miha/.glide/cache/src/https-github.com-stretchr-testify
[INFO] --> Parsing Godeps metadata...
[INFO] --> Fetching updates for github.com/davecgh/go-spew.
[INFO] --> Setting version for github.com/davecgh/go-spew to 6d212800a42e8ab5c146b8ace3490ee17e5225f9.
[INFO] --> Fetching updates for github.com/pmezard/go-difflib.
[INFO] --> Setting version for github.com/pmezard/go-difflib to d8ed2627bdf02c080bf22230dbb337003b7aba2d.
[INFO] --> Fetching thrift.
[WARN] Unable to checkout thrift
[ERROR] Error looking for thrift: Cannot detect VCS
[INFO] --> Fetching thrifttest.
[WARN] Unable to checkout thrifttest
[ERROR] Error looking for thrifttest: Cannot detect VCS
[INFO] --> Fetching gen/stress.
[WARN] Unable to checkout gen/stress
[ERROR] Error looking for gen/stress: Cannot detect VCS
[INFO] --> Fetching gen/thrifttest.
[WARN] Unable to checkout gen/thrifttest
[ERROR] Error looking for gen/thrifttest: Cannot detect VCS
[INFO] --> Fetching shared.
[WARN] Unable to checkout shared
[ERROR] Error looking for shared: Cannot detect VCS
[INFO] --> Fetching tutorial.
[WARN] Unable to checkout tutorial
[ERROR] Error looking for tutorial: Cannot detect VCS
[INFO] --> Fetching updates for github.com/mattn/go-isatty.
[INFO] --> Fetching updates for golang.org/x/tools.
[INFO] --> Fetching updates for honnef.co/go/tools.
[INFO] --> Fetching updates for github.com/kisielk/gotool.
[INFO] --> Fetching container/vector.
[WARN] Unable to checkout container/vector
[ERROR] Error looking for container/vector: Cannot detect VCS
[INFO] --> Fetching github.com/kless/freecrypto.
Username for 'https://github.com': ^C
Enviorment:
$ uname -a
Linux miha-work2 4.4.0-77-generic #98-Ubuntu SMP Wed Apr 26 08:34:02 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ go version
go version go1.9.1 linux/amd64
$ glide -v
glide version v0.12.3
@kriskowal ran into an issue where Jaeger panics with "send on closed channel"
because the span.Finish() -> tracer.Report() -> reporter.Report()
chain is invoked after the tracer has been closed (due to async nature of tchannel handlers).
We could use a lock in the Tracer to avoid sending spans to the reporter once the reporter is closed. But it's rather an unfortunate performance hit for an issue that in practice only occurs in tests.
https://github.com/uber/jaeger-client-go/blob/master/config/config.go#L163
and sets is as global OpenTracing Tracer
should be and sets it as global OpenTracing Tracer
Currently, there is little visibility into an Span, even from a Reporter which ought to be able to report/persist a span in it's entirety.
The over all changes required to make reporters more useful (for example, make it possible to write a custom log reporter for use in development), the BuildJaegerThrift
func should be possible outside of the jaeger package, in other words, all the information about a span that is required to make BuildJaegerThrift
happen is most often needed in reporters and should be somehow exported.
I believe, BuildJaegerThrift
should exist on it's own transport/thrift
package, and that would dictate other design considerations.
Thoughts?
hello,
reading the readme at https://github.com/uber/jaeger-client-go,
it looks like after getting the library , the first thing to do is to write initializing code.
the readme links to examples at https://godoc.org/github.com/uber/jaeger-client-go/config#pkg-examples
note that those examples refer to imported packages like jaegerlog, jaegercfg, metrics. there is some friction here to get started with this example code as it's not clear where those imported packages come from, i resorted to go grepping around in the hotrod & jaeger repos to find out which packages contain the referenced things, so that I know which things to import and using which alias
e.g. it turns out something like:
jaeger "github.com/uber/jaeger-client-go" // perhaps this one should be obvious
jaegercfg "github.com/uber/jaeger-client-go/config" // not obvious
jaegerlog "github.com/uber/jaeger-client-go/log" // not obvious
perhaps this can be streamlined to make onboarding of new users smoother.
../github.com/jaegertracing/jaeger-client-go/config/config.go:27:2: use of internal package not allowed
Specifically https://github.com/uber/jaeger-client-java/blob/master/jaeger-core/README.md#configuration-via-environment
There is still references to uber repository even repository is now located in github.com/jaegertracing/. This will cause go get github.com/jaegertracing/jaeger-client-go
to fail due to
jaeger-client-go/baggage_setter.go:20:2: use of internal package not allowed
jaeger-client-go/zipkin_thrift_span.go:24:2: use of internal package not allowed
As they still reference to github.com/uber/jaeger-client-go/internal/baggage
and github.com/uber/jaeger-client-go/internal/spanlog
.
Also at least README.md
and CONTRIBUTING.md
references still to github.com/uber
.
I was try to migrate from the zipkin backend to jaeger, so everything I need is to swap the tracer.
To init the tracer:
// Sample configuration for testing. Use constant sampling to sample every trace
// and enable LogSpan to log every span via configured Logger.
config := jaegercfg.Configuration{
Sampler: &jaegercfg.SamplerConfig{
Type: jaeger.SamplerTypeConst,
Param: 1,
},
Reporter: &jaegercfg.ReporterConfig{
LogSpans: true,
LocalAgentHostPort: "jaeger-all-in-one-agent.fission:5775",
},
}
// Example logger and metrics factory. Use github.com/uber/jaeger-client-go/log
// and github.com/uber/jaeger-lib/metrics respectively to bind to real logging and metrics
// frameworks.
jLogger := jaegerlog.StdLogger
jMetricsFactory := metrics.NullFactory
// Initialize tracer with a logger and a metrics factory
closer, err := config.InitGlobalTracer(
"router",
jaegercfg.Logger(jLogger),
jaegercfg.Metrics(jMetricsFactory),
)
if err != nil {
log.Printf("Could not initialize jaeger tracer: %s", err.Error())
return
}
defer closer.Close()
And then error occured:
2017-05-31T04:36:39.214604075Z panic: runtime error: invalid memory address or nil pointer dereference
2017-05-31T04:36:39.214734078Z [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x80492cc]
2017-05-31T04:36:39.214753293Z
2017-05-31T04:36:39.214814925Z goroutine 16 [running]:
2017-05-31T04:36:39.214944289Z sync/atomic.AddUint64(0x19f3a424, 0xffffffff, 0xffffffff, 0x19b1c700, 0x1)
2017-05-31T04:36:39.215025990Z /home/yqf/bin/go/src/sync/atomic/asm_386.s:112 +0xc
2017-05-31T04:36:39.215083702Z github.com/fission/fission/vendor/github.com/uber/jaeger-client-go.(*remoteReporter).processQueue(0x19f3a400)
2017-05-31T04:36:39.215193739Z /home/yqf/dev/mygo/src/github.com/fission/fission/vendor/github.com/uber/jaeger-client-go/reporter.go:234 +0x107
2017-05-31T04:36:39.215252715Z created by github.com/fission/fission/vendor/github.com/uber/jaeger-client-go.NewRemoteReporter
2017-05-31T04:36:39.215361183Z /home/yqf/dev/mygo/src/github.com/fission/fission/vendor/github.com/uber/jaeger-client-go/reporter.go:200
When the error occured, r.queueLength
is 0.
Appreciate any helps.
Lines 182 to 186 in b7bacc4
Sometimes, we try to use OnSetTag
to check whether we should do something.
If yes, we would get some logs to help doing in OnFinish
.
So why not append FinishOptions.LogRecords
with span.logs
.
And there is no public method to get the span's logs.
Maybe public a method is the best choice.
Please, allow to users configure tracing HTTP headers & rpc tracing fields.
Now them are hardcoded in constants, for example "uber-trace-id"
~ ❯❯❯ go version ⏎
go version go1.8.3 linux/amd64
~ ❯❯❯ go get -u github.com/uber/jaeger-client-go/
# github.com/uber/jaeger-client-go/thrift-gen/jaeger
go/src/github.com/uber/jaeger-client-go/thrift-gen/jaeger/agent.go:101: cannot use agentProcessorEmitBatch literal (type *agentProcessorEmitBatch) as type thrift.TProcessorFunction in assignment:
*agentProcessorEmitBatch does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
go/src/github.com/uber/jaeger-client-go/thrift-gen/jaeger/agent.go:111: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
# github.com/uber/jaeger-client-go/thrift-gen/sampling
go/src/github.com/uber/jaeger-client-go/thrift-gen/sampling/samplingmanager.go:147: cannot use samplingManagerProcessorGetSamplingStrategy literal (type *samplingManagerProcessorGetSamplingStrategy) as type thrift.TProcessorFunction in assignment:
*samplingManagerProcessorGetSamplingStrategy does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
go/src/github.com/uber/jaeger-client-go/thrift-gen/sampling/samplingmanager.go:157: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
# github.com/uber/jaeger-client-go/thrift-gen/zipkincore
go/src/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincollector.go:147: cannot use zipkinCollectorProcessorSubmitZipkinBatch literal (type *zipkinCollectorProcessorSubmitZipkinBatch) as type thrift.TProcessorFunction in assignment:
*zipkinCollectorProcessorSubmitZipkinBatch does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
go/src/github.com/uber/jaeger-client-go/thrift-gen/zipkincore/zipkincollector.go:157: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
Would you accept a PR implementing a log wrapper around go-kit's Logger interface?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.