go应用https服务的AutoTracing如何配置 #4378
Replies: 1 comment
-
配置方法: ## Regex for Process Name
## Note: The name of the process where each feature of ebpf uprobe takes effect,
## which is configured using regular expressions
#uprobe-process-name-regexs:
## Process name to enable Golang-specific symbol table parsing.
## Default: "", which means that this feature is not enabled for any process.
## Note: This feature acts on Golang processes that have trimmed the standard symbol
## table. When this feature is enabled, for processes with Golang
## version >= 1.13 and < 1.18, when the standard symbol table is missing, the
## Golang-specific symbol table will be parsed to complete uprobe data collection.
## Note that enabling this feature may cause the eBPF initialization process to
## take ten minutes. The `golang-symbol` configuration item depends on the `golang`
## configuration item, the `golang-symbol` is a subset of the `golang` configuration item.
## Example:
## - Ensure that the regular expression matching for the 'golang' configuration
## item is enabled, for example: `golang: .*`
## - You've encountered the following warning log:
## ```
## [eBPF] WARNING: func resolve_bin_file() [user/go_tracer.c:558] Go process pid 1946
## [path: /proc/1946/root/usr/local/bin/kube-controller-manager] (version: go1.16). Not find any symbols!
## ```
## Suppose there is a Golang process with a process ID of '1946.'
## - To initially confirm whether the executable file for this process has a symbol table:
## - Retrieve the executable file's path using the process ID:
## ```
## # ls -al /proc/1946/exe
## /proc/1946/exe -> /usr/local/bin/kube-controller-manager
## ```
## - Check if there is a symbol table:
## ```
## # nm /proc/1946/root/usr/local/bin/kube-controller-manager
## nm: /proc/1946/root/usr/local/bin/kube-controller-manager: no symbols
## ```
## - If "no symbols" is encountered, it indicates the absence of a symbol table. In such a
## scenario, we need to configure the "golang-symbol" setting. To configure this:
## ```
## golang-symbol: ^(kube-controller-.*)$
## ```
## Explanation: Configure a regular expression for the trailing part 'kube-controller-manager'
## following the executable file path of the process. It can also be a regular expression for
## the process name (obtained through `/proc/<PID>/status` to extract the process `Name`).
## - During the agent startup process, you will observe the following log information: (The entry
## address for the function `crypto/tls.(*Conn).Write` has already been resolved, i.e., entry:0x25fca0).
## ```
## [eBPF] INFO Uprobe [/proc/1946/root/usr/local/bin/kube-controller-manager] pid:1946 go1.16.0
## entry:0x25fca0 size:1952 symname:crypto/tls.(*Conn).Write probe_func:uprobe_go_tls_write_enter rets_count:0
## ```
## The logs indicate that the Golang program has been successfully hooked.
##
#golang-symbol: ""
## Note: The name of the Golang process that enables HTTP2/HTTPS protocol data collection
## and auto-tracing. go auto-tracing also dependent go-tracing-timeout.
## The default value is "", which means it is disabled for all Golang processes.
#golang: "" |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
看文档中介绍AutoTracing中就两个demo的配置,一个java的,一个 Java、Python、Ruby、Node.js 混合的,想问go的web应用如何配置?我看文档里说了是支持的。
Beta Was this translation helpful? Give feedback.
All reactions