Closed yfractal closed 2 years ago
Did you launch your application with the launcher binary as shown in this example yaml? https://github.com/keyval-dev/opentelemetry-go-instrumentation/blob/13805d935d31fe521cec9a4800346e58c057e55c/docs/getting-started/emojivoto-instrumented.yaml#L44-L46
I wrote a simple http server and start it through it's binary. I didn't follow the demo.
I guess /odigos-launcher/launch
or /usr/local/bin/emojivoto-emoji-svc
may create some memory area for the target process.
Yes, please try to invoke your process with the /odigos-launcher/launch /path/to/your/app
Thanks edeNFed, I will try this.
@edeNFed can you tell what this /odigos-launcher/launch is for? What it does?
I guess /odigos-launcher/launch
will allocate an area for the application(emojivoto-emoji-svc
)
And the area is used for eBPF program writing data to user process(emojivoto-emoji-svc
), see alloc.h
.
but it's my guess, not sure it's right :joy:
Yes exactly. As this instrumentation adds trace id / span id to requests we need to allocate some memory so Go can access those before sending the request. The launcher does exactly that - it allocates about 2Mb of memory off heap and then executes the application. Later when the instrumentation generates those ids they will be written to the area allocated by the launcher.
Expected Behavior
Read memory maps.
Actual Behavior
Can't find memory mapping as as all mapping has been filtered out.
Steps to Reproduce the Problem
The maps of the go lang program as below
so no map will be fond as
m.Perms != nil && m.Perms.Read && m.Perms.Write && m.Perms.Execute
required infindKeyvalMmap
.Additional Info
https://app.vagrantup.com/bento/boxes/ubuntu-22.04
operation-system/kernel version:
Output of
awk -F '=' '/PRETTY_NAME/ { print $2 }' /etc/os-release
: Output ofuname -r
: