local connect to skywalking-oap use:
export POD_NAME=$(kubectl get pods --namespace default -l "app=skywalking,release=skywalking,component=oap" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8050 to use your application"
kubectl port-forward $POD_NAME 8050:11800 --namespace default
program connect:
newReporter, err := reporter.NewGRPCReporter("127.0.0.1:8050")
when the connect is not normal
program will log :
panic: send on closed channel
goroutine 746 [running]:
github.com/SkyAPM/go2sky.(segmentSpanImpl).End.func1(0xc00087aa20)
/Users/liuyungen/workspace/pkg/mod/github.com/!sky!a!p!m/go2sky@v0.6.0/segment.go:95 +0x4f
created by github.com/SkyAPM/go2sky.(segmentSpanImpl).End
/Users/liuyungen/workspace/pkg/mod/github.com/!sky!a!p!m/go2sky@v0.6.0/segment.go:94 +0x6e
exit status 2
May be can change segment.go end function like below:
func (s *segmentSpanImpl) End() {
s.defaultSpan.End()
go func() {
defer func(){
err := recover()
if err != nil {
log.Printf("Segment error: %v",err)
}
}()
s.Context().collect <- s
}()
}
version : 0.6.0
use helm install skywalking
skywalking version : 8.3.0
local connect to skywalking-oap use: export POD_NAME=$(kubectl get pods --namespace default -l "app=skywalking,release=skywalking,component=oap" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8050 to use your application" kubectl port-forward $POD_NAME 8050:11800 --namespace default
program connect: newReporter, err := reporter.NewGRPCReporter("127.0.0.1:8050")
when the connect is not normal
program will log :
panic: send on closed channel
goroutine 746 [running]: github.com/SkyAPM/go2sky.(segmentSpanImpl).End.func1(0xc00087aa20) /Users/liuyungen/workspace/pkg/mod/github.com/!sky!a!p!m/go2sky@v0.6.0/segment.go:95 +0x4f created by github.com/SkyAPM/go2sky.(segmentSpanImpl).End /Users/liuyungen/workspace/pkg/mod/github.com/!sky!a!p!m/go2sky@v0.6.0/segment.go:94 +0x6e exit status 2
May be can change segment.go end function like below:
func (s *segmentSpanImpl) End() { s.defaultSpan.End() go func() { defer func(){ err := recover() if err != nil { log.Printf("Segment error: %v",err) } }() s.Context().collect <- s }() }