Skip to content

Commit 34e32a5

Browse files
committed
feat: bridge target and hook func with go:linkname
1 parent c4879cf commit 34e32a5

File tree

85 files changed

+1047
-1646
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+1047
-1646
lines changed

.gitignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,7 @@ test/golog/test_glog
3434
test/grpc/v1.44.0/test_grpc_basic
3535
test/fasthttp/v1.45.0/test_basic_http
3636
test/hertz/v0.9.0/test_hertz_basic
37-
test/world/world
37+
test/world/world
38+
example/extension/nethttp/demo
39+
example/log/test
40+
test/build/cmd/cmd

example/log/conf.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[{
2+
"Version": "[1.20.0,1.27.1)",
3+
"ImportPath": "go.uber.org/zap/zapcore",
4+
"Function": "Write",
5+
"ReceiverType": "*CheckedEntry",
6+
"OnEnter": "zapLogWriteOnEnter",
7+
"Path": "/home/qingfeng.yy/opentelemetry-go-auto-instrumentation/pkg/rules/zap"
8+
}]

example/log/go.mod

+174-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,191 @@
11
module test
22

3-
go 1.22
3+
go 1.23.0
4+
5+
toolchain go1.23.7
46

57
replace github.com/alibaba/opentelemetry-go-auto-instrumentation => ../../../opentelemetry-go-auto-instrumentation
68

9+
replace github.com/alibaba/opentelemetry-go-auto-instrumentation/pkg => ../../../opentelemetry-go-auto-instrumentation/pkg
10+
711
replace github.com/alibaba/opentelemetry-go-auto-instrumentation/test/verifier => ../../../opentelemetry-go-auto-instrumentation/test/verifier
812

913
require (
10-
go.opentelemetry.io/otel/sdk v1.30.0
14+
github.com/alibaba/opentelemetry-go-auto-instrumentation/pkg v0.0.0-00010101000000-000000000000
15+
go.opentelemetry.io/otel/sdk v1.35.0
1116
go.uber.org/zap v1.27.0
1217
)
1318

1419
require (
20+
filippo.io/edwards25519 v1.1.0 // indirect
21+
github.com/BurntSushi/toml v1.3.2 // indirect
22+
github.com/Shopify/goreferrer v0.0.0-20220729165902-8cddb4f5de06 // indirect
23+
github.com/alibaba/opentelemetry-go-auto-instrumentation/test/verifier v0.0.0-20250318103225-c4879cfb1fb0 // indirect
24+
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect
25+
github.com/andybalholm/brotli v1.1.1 // indirect
26+
github.com/aymerick/douceur v0.2.0 // indirect
27+
github.com/beorn7/perks v1.0.1 // indirect
28+
github.com/bitly/go-simplejson v0.5.0 // indirect
29+
github.com/buger/jsonparser v1.1.1 // indirect
30+
github.com/bytedance/gopkg v0.1.1 // indirect
31+
github.com/bytedance/sonic v1.12.7 // indirect
32+
github.com/bytedance/sonic/loader v0.2.2 // indirect
33+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
34+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
35+
github.com/cloudwego/base64x v0.1.4 // indirect
36+
github.com/cloudwego/configmanager v0.2.2 // indirect
37+
github.com/cloudwego/dynamicgo v0.5.2 // indirect
38+
github.com/cloudwego/fastpb v0.0.5 // indirect
39+
github.com/cloudwego/frugal v0.2.3 // indirect
40+
github.com/cloudwego/gopkg v0.1.4 // indirect
41+
github.com/cloudwego/hertz v0.9.6 // indirect
42+
github.com/cloudwego/iasm v0.2.0 // indirect
43+
github.com/cloudwego/kitex v0.12.3 // indirect
44+
github.com/cloudwego/localsession v0.1.2 // indirect
45+
github.com/cloudwego/netpoll v0.6.5 // indirect
46+
github.com/cloudwego/runtimex v0.1.1 // indirect
47+
github.com/cloudwego/thriftgo v0.3.18 // indirect
48+
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
49+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
50+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
51+
github.com/elastic/elastic-transport-go/v8 v8.6.1 // indirect
52+
github.com/elastic/go-elasticsearch/v8 v8.17.1 // indirect
53+
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
54+
github.com/fatih/structs v1.1.0 // indirect
55+
github.com/fatih/structtag v1.2.0 // indirect
56+
github.com/fsnotify/fsnotify v1.7.0 // indirect
57+
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
58+
github.com/gin-contrib/sse v0.1.0 // indirect
59+
github.com/gin-gonic/gin v1.10.0 // indirect
60+
github.com/go-kratos/aegis v0.2.0 // indirect
61+
github.com/go-kratos/kratos/v2 v2.8.4 // indirect
1562
github.com/go-logr/logr v1.4.2 // indirect
1663
github.com/go-logr/stdr v1.2.2 // indirect
64+
github.com/go-playground/form/v4 v4.2.0 // indirect
65+
github.com/go-playground/locales v0.14.1 // indirect
66+
github.com/go-playground/universal-translator v0.18.1 // indirect
67+
github.com/go-playground/validator/v10 v10.20.0 // indirect
68+
github.com/go-redis/redis/v8 v8.11.0 // indirect
69+
github.com/go-sql-driver/mysql v1.9.0 // indirect
70+
github.com/goccy/go-json v0.10.2 // indirect
71+
github.com/gofiber/fiber/v2 v2.52.6 // indirect
72+
github.com/golang/mock v1.6.0 // indirect
73+
github.com/golang/protobuf v1.5.4 // indirect
74+
github.com/golang/snappy v0.0.4 // indirect
75+
github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0 // indirect
76+
github.com/gomodule/redigo v2.0.0+incompatible // indirect
77+
github.com/google/flatbuffers v2.0.0+incompatible // indirect
78+
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect
1779
github.com/google/uuid v1.6.0 // indirect
18-
go.opentelemetry.io/otel v1.30.0 // indirect
19-
go.opentelemetry.io/otel/metric v1.30.0 // indirect
20-
go.opentelemetry.io/otel/trace v1.30.0 // indirect
80+
github.com/gorilla/css v1.0.0 // indirect
81+
github.com/gorilla/mux v1.8.1 // indirect
82+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
83+
github.com/hashicorp/errwrap v1.1.0 // indirect
84+
github.com/hashicorp/go-multierror v1.1.1 // indirect
85+
github.com/iancoleman/strcase v0.2.0 // indirect
86+
github.com/imdario/mergo v0.3.12 // indirect
87+
github.com/iris-contrib/schema v0.0.6 // indirect
88+
github.com/jhump/protoreflect v1.8.2 // indirect
89+
github.com/jinzhu/inflection v1.0.0 // indirect
90+
github.com/jinzhu/now v1.1.5 // indirect
91+
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect
92+
github.com/josharian/intern v1.0.0 // indirect
93+
github.com/json-iterator/go v1.1.12 // indirect
94+
github.com/kataras/golog v0.1.11 // indirect
95+
github.com/kataras/iris/v12 v12.2.11 // indirect
96+
github.com/kataras/pio v0.0.13 // indirect
97+
github.com/klauspost/compress v1.17.11 // indirect
98+
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
99+
github.com/labstack/echo/v4 v4.13.3 // indirect
100+
github.com/labstack/gommon v0.4.2 // indirect
101+
github.com/leodido/go-urn v1.4.0 // indirect
102+
github.com/lestrrat-go/strftime v1.0.6 // indirect
103+
github.com/mailru/easyjson v0.7.7 // indirect
104+
github.com/mattn/go-colorable v0.1.13 // indirect
105+
github.com/mattn/go-isatty v0.0.20 // indirect
106+
github.com/mattn/go-runewidth v0.0.16 // indirect
107+
github.com/microcosm-cc/bluemonday v1.0.26 // indirect
108+
github.com/miekg/dns v1.1.43 // indirect
109+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
110+
github.com/modern-go/reflect2 v1.0.2 // indirect
111+
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
112+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
113+
github.com/nacos-group/nacos-sdk-go/v2 v2.1.1 // indirect
114+
github.com/nyaruka/phonenumbers v1.0.55 // indirect
115+
github.com/openzipkin/zipkin-go v0.4.3 // indirect
116+
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect
117+
github.com/panjf2000/ants/v2 v2.4.6 // indirect
118+
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
119+
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
120+
github.com/pkg/errors v0.9.1 // indirect
121+
github.com/pmezard/go-difflib v1.0.0 // indirect
122+
github.com/prometheus/client_golang v1.20.5 // indirect
123+
github.com/prometheus/client_model v0.6.1 // indirect
124+
github.com/prometheus/common v0.62.0 // indirect
125+
github.com/prometheus/procfs v0.15.1 // indirect
126+
github.com/redis/go-redis/v9 v9.5.1 // indirect
127+
github.com/rivo/uniseg v0.2.0 // indirect
128+
github.com/rs/zerolog v1.33.0 // indirect
129+
github.com/russross/blackfriday/v2 v2.1.0 // indirect
130+
github.com/sirupsen/logrus v1.9.3 // indirect
131+
github.com/spf13/cast v1.3.1 // indirect
132+
github.com/stretchr/testify v1.10.0 // indirect
133+
github.com/tdewolff/minify/v2 v2.20.19 // indirect
134+
github.com/tdewolff/parse/v2 v2.7.12 // indirect
135+
github.com/tidwall/gjson v1.17.3 // indirect
136+
github.com/tidwall/match v1.1.1 // indirect
137+
github.com/tidwall/pretty v1.2.0 // indirect
138+
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
139+
github.com/ugorji/go/codec v1.2.12 // indirect
140+
github.com/urfave/cli/v2 v2.25.7 // indirect
141+
github.com/valyala/bytebufferpool v1.0.0 // indirect
142+
github.com/valyala/fasthttp v1.59.0 // indirect
143+
github.com/valyala/fasttemplate v1.2.2 // indirect
144+
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
145+
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
146+
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
147+
github.com/xdg-go/scram v1.1.2 // indirect
148+
github.com/xdg-go/stringprep v1.0.4 // indirect
149+
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
150+
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
151+
go-micro.dev/v5 v5.3.0 // indirect
152+
go.mongodb.org/mongo-driver v1.17.3 // indirect
153+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
154+
go.opentelemetry.io/contrib/instrumentation/runtime v0.60.0 // indirect
155+
go.opentelemetry.io/otel v1.35.0 // indirect
156+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 // indirect
157+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 // indirect
158+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
159+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect
160+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 // indirect
161+
go.opentelemetry.io/otel/exporters/prometheus v0.57.0 // indirect
162+
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.35.0 // indirect
163+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.35.0 // indirect
164+
go.opentelemetry.io/otel/exporters/zipkin v1.35.0 // indirect
165+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
166+
go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect
167+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
168+
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
169+
go.uber.org/atomic v1.9.0 // indirect
21170
go.uber.org/multierr v1.10.0 // indirect
22-
golang.org/x/sys v0.25.0 // indirect
171+
golang.org/x/arch v0.8.0 // indirect
172+
golang.org/x/crypto v0.33.0 // indirect
173+
golang.org/x/net v0.35.0 // indirect
174+
golang.org/x/sync v0.11.0 // indirect
175+
golang.org/x/sys v0.30.0 // indirect
176+
golang.org/x/text v0.22.0 // indirect
177+
golang.org/x/time v0.8.0 // indirect
178+
google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect
179+
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
180+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
181+
google.golang.org/grpc v1.71.0 // indirect
182+
google.golang.org/protobuf v1.36.5 // indirect
183+
gopkg.in/ini.v1 v1.67.0 // indirect
184+
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
185+
gopkg.in/yaml.v3 v3.0.1 // indirect
186+
gorm.io/driver/mysql v1.5.7 // indirect
187+
gorm.io/gorm v1.25.12 // indirect
188+
trpc.group/trpc-go/tnet v1.0.1 // indirect
189+
trpc.group/trpc-go/trpc-go v1.0.3 // indirect
190+
trpc.group/trpc/trpc-protocol/pb/go/trpc v1.0.0 // indirect
23191
)

example/log/main.go

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package main
1717
import (
1818
"net/http"
1919

20+
_ "github.com/alibaba/opentelemetry-go-auto-instrumentation/pkg"
2021
"go.opentelemetry.io/otel/sdk/trace"
2122
"go.uber.org/zap"
2223
)

0 commit comments

Comments
 (0)