|
@@ -15,8 +15,6 @@ import (
|
|
|
"strings"
|
|
"strings"
|
|
|
"sync"
|
|
"sync"
|
|
|
|
|
|
|
|
- "time"
|
|
|
|
|
-
|
|
|
|
|
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform"
|
|
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform"
|
|
|
tracesdk "go.opentelemetry.io/otel/sdk/trace"
|
|
tracesdk "go.opentelemetry.io/otel/sdk/trace"
|
|
|
tracepb "go.opentelemetry.io/proto/otlp/trace/v1"
|
|
tracepb "go.opentelemetry.io/proto/otlp/trace/v1"
|
|
@@ -135,18 +133,18 @@ var TraceRootMap map[string]*TraceMapT
|
|
|
|
|
|
|
|
func init() {
|
|
func init() {
|
|
|
TraceRootMap = make(map[string]*TraceMapT)
|
|
TraceRootMap = make(map[string]*TraceMapT)
|
|
|
- go func() {
|
|
|
|
|
- for {
|
|
|
|
|
- //fmt.Println(G_sdl)
|
|
|
|
|
- time.Sleep(5 * time.Second)
|
|
|
|
|
- }
|
|
|
|
|
- }()
|
|
|
|
|
|
|
+ //go func() {
|
|
|
|
|
+ // for {
|
|
|
|
|
+ // //fmt.Println(G_sdl)
|
|
|
|
|
+ // time.Sleep(5 * time.Second)
|
|
|
|
|
+ // }
|
|
|
|
|
+ //}()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var G_sdl int
|
|
var G_sdl int
|
|
|
|
|
|
|
|
func tracetransformData(sdl []tracesdk.ReadOnlySpan) map[int][]RootDataT {
|
|
func tracetransformData(sdl []tracesdk.ReadOnlySpan) map[int][]RootDataT {
|
|
|
- G_sdl += len(sdl)
|
|
|
|
|
|
|
+ //G_sdl += len(sdl)
|
|
|
if len(sdl) == 0 {
|
|
if len(sdl) == 0 {
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
@@ -160,7 +158,7 @@ func tracetransformData(sdl []tracesdk.ReadOnlySpan) map[int][]RootDataT {
|
|
|
continue
|
|
continue
|
|
|
}
|
|
}
|
|
|
//traceId := sd.SpanContext().TraceID().String()
|
|
//traceId := sd.SpanContext().TraceID().String()
|
|
|
- fmt.Println("------event_num---- "+sd.Name(), "--->", len(sd.Events())) // 一次请求完整数据
|
|
|
|
|
|
|
+ //fmt.Println("------event_num---- "+sd.Name(), "--->", len(sd.Events())) // 一次请求完整数据
|
|
|
// 构建map *RootDataT
|
|
// 构建map *RootDataT
|
|
|
var rootData RootDataT
|
|
var rootData RootDataT
|
|
|
|
|
|
|
@@ -170,8 +168,8 @@ func tracetransformData(sdl []tracesdk.ReadOnlySpan) map[int][]RootDataT {
|
|
|
code_type := buildAppMapFromEvent(&rootData, sd)
|
|
code_type := buildAppMapFromEvent(&rootData, sd)
|
|
|
// 构建maps
|
|
// 构建maps
|
|
|
for _, event := range sd.Events() {
|
|
for _, event := range sd.Events() {
|
|
|
- aaa, _ := json.Marshal(event)
|
|
|
|
|
- fmt.Println("event.info", string(aaa))
|
|
|
|
|
|
|
+ //aaa, _ := json.Marshal(event)
|
|
|
|
|
+ //fmt.Println("event.info", string(aaa))
|
|
|
mNode := buildMapNodeFromEvent(event)
|
|
mNode := buildMapNodeFromEvent(event)
|
|
|
switch EventType(event.EventType) {
|
|
switch EventType(event.EventType) {
|
|
|
// stack
|
|
// stack
|
|
@@ -196,7 +194,7 @@ func tracetransformData(sdl []tracesdk.ReadOnlySpan) map[int][]RootDataT {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
rootData.Maps = append(rootData.Maps, mNode)
|
|
rootData.Maps = append(rootData.Maps, mNode)
|
|
|
- fmt.Println(event.Name)
|
|
|
|
|
|
|
+ //fmt.Println(event.Name)
|
|
|
//buildAndAssemblyMapFromEvent(event, rootData)
|
|
//buildAndAssemblyMapFromEvent(event, rootData)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -340,7 +338,7 @@ func buildLevelFromEvent(sdl *RootDataT) {
|
|
|
level := 2
|
|
level := 2
|
|
|
|
|
|
|
|
for k, v := range mapSlice {
|
|
for k, v := range mapSlice {
|
|
|
- fmt.Println("SliceSliceindex", k, "value", v.Time, v.Type, v.Map.MethodName, v.Map.Nid)
|
|
|
|
|
|
|
+ klog.Debugln("SliceSliceindex", k, "value", v.Time, v.Type, v.Map.MethodName, v.Map.Nid)
|
|
|
if v.Type == 0 {
|
|
if v.Type == 0 {
|
|
|
// 函数入口
|
|
// 函数入口
|
|
|
funStack = append(funStack, v)
|
|
funStack = append(funStack, v)
|
|
@@ -564,7 +562,7 @@ func buildMapNodeFromEvent(event tracesdk.Event) MapInfoT {
|
|
|
//mNode.StartTime = spanSd.StartTimeUnixNano
|
|
//mNode.StartTime = spanSd.StartTimeUnixNano
|
|
|
//mNode.EndTime = spanSd.EndTimeUnixNano
|
|
//mNode.EndTime = spanSd.EndTimeUnixNano
|
|
|
for _, attr := range event.Attributes {
|
|
for _, attr := range event.Attributes {
|
|
|
- fmt.Println(event.Name, "--->buildMapNodeFromEvent--->", attr.Key, ":", attr.Value.AsInterface())
|
|
|
|
|
|
|
+ //fmt.Println(event.Name, "--->buildMapNodeFromEvent--->", attr.Key, ":", attr.Value.AsInterface())
|
|
|
switch attr.Key {
|
|
switch attr.Key {
|
|
|
case "nid":
|
|
case "nid":
|
|
|
mNode.Nid = int(attr.Value.AsInt64())
|
|
mNode.Nid = int(attr.Value.AsInt64())
|
|
@@ -715,7 +713,7 @@ func buildAppMapFromEvent(traceRoot *RootDataT, sd apmTraceSpan) int {
|
|
|
//traceRoot.RespTime = mNode.PureTimex
|
|
//traceRoot.RespTime = mNode.PureTimex
|
|
|
//traceRoot.CollTime = mNode.StartTime
|
|
//traceRoot.CollTime = mNode.StartTime
|
|
|
for _, attr := range sd.Attributes() {
|
|
for _, attr := range sd.Attributes() {
|
|
|
- fmt.Println("Appmap:", attr.Key, ":", attr.Value.AsInterface())
|
|
|
|
|
|
|
+ klog.Debugln("Appmap:", attr.Key, ":", attr.Value.AsInterface())
|
|
|
switch attr.Key {
|
|
switch attr.Key {
|
|
|
case "http.uri":
|
|
case "http.uri":
|
|
|
traceRoot.Uri, traceRoot.Parameters, _ = parseURIToParams(attr.Value.AsString())
|
|
traceRoot.Uri, traceRoot.Parameters, _ = parseURIToParams(attr.Value.AsString())
|
|
@@ -809,7 +807,7 @@ func buildHttpMapFromEvent(mNode *MapInfoT, event tracesdk.Event) {
|
|
|
//var descAddr string
|
|
//var descAddr string
|
|
|
var method string
|
|
var method string
|
|
|
for _, attr := range event.Attributes {
|
|
for _, attr := range event.Attributes {
|
|
|
- fmt.Println("HTTP--->", attr.Key, ":", attr.Value.AsInterface())
|
|
|
|
|
|
|
+ //fmt.Println("HTTP--->", attr.Key, ":", attr.Value.AsInterface())
|
|
|
switch attr.Key {
|
|
switch attr.Key {
|
|
|
case "http.ip":
|
|
case "http.ip":
|
|
|
mNode.Ip = attr.Value.AsString()
|
|
mNode.Ip = attr.Value.AsString()
|