GO Profile
简介
service_go_profile
input
插件可以采集Golang pprof 性能数据。
配置参数
全局参数
Mode
string,无默认值(必填)
工作类型,目前支持host
与kubernets
2种环境工作。
Config
object,无默认值(必填)
详见不同工作模式子配置。
Interval
int,10
抓取性能数据间隔,单位秒
Timeout
int,15
抓取性能数据超时时间,单位秒
BodyLimitSize
int,10240
抓取性能数据Body最大上限,单位KB
EnabledProfiles
[]string,["cpu", "mem", "goroutines", "mutex", "block"]
抓取性能数据类型。
Labels
map[string]string,{}
性能数据全局追加标签。
host模式子配置
对于静态host模式,需要指定service标签标明归属服务。
子配置
Addresses
[]Address,无默认值(必填)
Address Object 数组
Address 配置
Host
string,无默认值(必填)
实例地址
Port
int,无默认值(必填)
实例端口
InstanceLabels
map[string]string,{}
具体实例性能数据追加标签
kubernetes模式子配置
待采集容器需要先声明ILOGTAIL_PROFILE_PORT={PORT} 环境变量,其后通过下述配置二次过滤。
IncludeContainerLabel
Map,其中LabelKey和LabelValue为String类型
否
容器Label白名单,用于指定待采集的容器。默认为空,表示采集所有容器。如果您要设置容器Label白名单,那么LabelKey必填,LabelValue可选填。
如果LabelValue为空,则容器Label中包含LabelKey的容器都匹配。
如果LabelValue不为空,则容器Label中包含LabelKey=LabelValue的容器才匹配。
LabelValue默认为字符串匹配,即只有LabelValue和容器Label的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配。例如设置LabelKey为io.kubernetes.container.name
,设置LabelValue为`^(nginx\
ExcludeContainerLabel
Map,其中LabelKey和LabelValue为String类型
否
容器Label黑名单,用于排除不采集的容器。默认为空,表示不排除任何容器。如果您要设置容器Label黑名单,那么LabelKey必填,LabelValue可选填。
如果LabelValue为空,则容器Label中包含LabelKey的容器都将被排除。
如果LabelValue不为空,则容器Label中包含LabelKey=LabelValue的容器才会被排除。
LabelValue默认为字符串匹配,即只有LabelValue和容器Label的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配。例如设置LabelKey为io.kubernetes.container.name
,设置LabelValue为`^(nginx\
IncludeEnv
Map,其中EnvKey和EnvValue为String类型
否
设环境变量白名单,用于指定待采集的容器。默认为空,表示采集所有容器。如果您要设置环境变量白名单,那么EnvKey必填,EnvValue可选填。
如果EnvValue为空,则容器环境变量中包含EnvKey的容器都匹配。
如果EnvValue不为空,则容器环境变量中包含EnvKey=EnvValue的容器才匹配。
EnvValue默认为字符串匹配,即只有EnvValue和环境变量的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配,例如设置EnvKey为NGINX_SERVICE_PORT
,设置EnvValue为`^(80
ExcludeEnv
Map,其中EnvKey和EnvValue为String类型
否
环境变量黑名单,用于排除不采集的容器。默认为空,表示不排除任何容器。如果您要设置环境变量黑名单,那么EnvKey必填,EnvValue可选填。
如果EnvValue为空,则容器环境变量中包含EnvKey的容器的日志都将被排除。
如果EnvValue不为空,则容器环境变量中包含EnvKey=EnvValue的容器才会被排除。
EnvValue默认为字符串匹配,即只有EnvValue和环境变量的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配,例如设置EnvKey为NGINX_SERVICE_PORT
,设置EnvValue为`^(80\
IncludeK8sLabel
Map,其中LabelKey和LabelValue为String类型
否
通过Kubernetes Label(定义在template.metadata中)白名单指定待采集的容器。如果您要设置Kubernetes Label白名单,那么LabelKey必填,LabelValue可选填。
如果LabelValue为空,则Kubernetes Label中包含LabelKey的容器都匹配。
如果LabelValue不为空,则Kubernetes Label中包含LabelKey=LabelValue的容器才匹配。
LabelValue默认为字符串匹配,即只有LabelValue和Kubernetes Label的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配。例如设置LabelKey为app
,设置LabelValue为`^(test1\
ExcludeK8sLabel
Map,其中LabelKey和LabelValue为String类型
否
通过Kubernetes Label(定义在template.metadata中)黑名单排除不采集的容器。如果您要设置Kubernetes Label黑名单,那么LabelKey必填,LabelValue可选填。
如果LabelValue为空,则Kubernetes Label中包含LabelKey的容器都被排除。
如果LabelValue不为空,则Kubernetes Label中包含LabelKey=LabelValue的容器才会被排除。
LabelValue默认为字符串匹配,即只有LabelValue和Kubernetes Label的值完全相同才会匹配。如果该值以
^
开头并且以$
结尾,则为正则匹配。例如设置LabelKey为app
,设置LabelValue为`^(test1\
K8sNamespaceRegex
String
否
通过Namespace名称指定采集的容器,支持正则匹配。例如设置为`^(default\
K8sPodRegex
String
否
通过Pod名称指定待采集的容器,支持正则匹配。例如设置为^(nginx-log-demo.*)$
,表示匹配以nginx-log-demo开头的Pod下的所有容器。
K8sContainerRegex
String
否
通过容器名称指定待采集的容器(Kubernetes容器名称是定义在spec.containers中),支持正则匹配。例如设置为^(container-test)$
,表示匹配所有名为container-test的容器。
ExternalK8sLabelTag
Map,其中LabelKey和LabelValue为String类型
否
设置Kubernetes Label(定义在template.metadata中)标签后,iLogtail将在性能数据中新增Kubernetes Label相关字段。
例如设置LabelKey为app,LabelValue为k8s_label_app
,当Pod中包含Label app=serviceA
时,会将该信息iLogtail添加到性能数据中,即添加字段k8s_label_app: serviceA;若不包含名为app的label时,添加空字段k8s_label_app: 。
ExternalEnvTag
Map,其中EnvKey和EnvValue为String类型
否
设置容器环境变量性能数据标签后,iLogtail将在性能数据中新增容器环境变量相关字段。
例如设置EnvKey为VERSION
,EnvValue为env_version
,当容器中包含环境变量VERSION=v1.0.0
时,会将该信息以tag形式添加到性能数据中,即添加字段env_version: v1.0.0;若不包含名为VERSION的环境变量时,添加空字段env_version: 。
样例
采集host模式性能数据
配置样例
采集结果
采集kubernets模式性能数据
采集结果
Last updated