在 Kubernetes 上部署¶
安装 DataKit 采集器¶
进行系统和应用程序的链路数据分析之前,需要在每个目标主机上部署观测云 DataKit 采集器,以收集必要的链路数据。
选择语言¶
Java¶
安装依赖:
运行应用:
在 Kubernetes 中,可以通过 Datakit Operator 来注入 trace agent,也可以手动挂载 trace agent 到应用容器中:
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
参数配置:
service.name
:服务名;env
:应用服务的环境信息;version
:版本号;- 自定义 DataKit 监听地址,若不设置则跟随默认地址;
- 设置采样率:开启后,可降低实际产生的数据量;数字范围从 0.0(0%) ~ 1.0(100%);
- 收集 Profiling 数据:开启后可以看到更多应用程序运行时的信息;
- 开启 JVM 指标采集:需要同步开启 statsd 采集器。
更多参数配置,参考 这里。
Python¶
安装依赖:
运行应用:
可以通过多种途径运行你的 Java Code,如 IDE,Maven,Gradle 或直接通过 java -jar
命令,以下通过 java
命令启动应用:
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
参数配置:
service.name
:服务名;env
:应用服务的环境信息;version
:版本号;- 自定义 DataKit 监听地址,若不设置则跟随默认地址;
- 为服务设置采样率:开启后,可降低实际产生的数据量;数字范围从 0.0(0%) ~ 1.0(100%);
- 收集 Profiling 数据:开启后可以看到更多应用程序运行时的信息;
- 开启 Python 指标采集:需要同步开启 statsd 采集器。
更多参数配置,参考 这里。
Golang¶
安装依赖:
运行应用:
可以通过多种途径运行你的 Java Code,如 IDE,Maven,Gradle 或直接通过 java -jar
命令,以下通过 java
命令启动应用:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
template:
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
volumes:
- hostPath:
path: /var/run/datadog/
name: apmsocketpath
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
volumeMounts:
- name: apmsocketpath
mountPath: /var/run/datadog
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/version']
参数配置:
service.name
:服务名;env
:应用服务的环境信息;version
:版本号;- 自定义 DataKit 监听地址,若不设置则跟随默认地址;
- 设置采样率:开启后,可降低实际产生的数据量;数字范围从 0.0(0%) ~ 1.0(100%)。
更多参数配置,参考 这里。
Node.JS¶
运行应用:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
template:
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
env:
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/version']
参数配置:
service.name
:服务名;env
:应用服务的环境信息;version
:版本号;- 自定义 DataKit 监听地址,若不设置则跟随默认地址;
- 设置采样率:开启后,可降低实际产生的数据量;数字范围从 0.0(0%) ~ 1.0(100%)。
C++¶
PHP¶
运行应用:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
template:
metadata:
labels:
tags.datadoghq.com/env: <env>
tags.datadoghq.com/service: <service>
tags.datadoghq.com/version: <version>
spec:
volumes:
- hostPath:
path: /var/run/datadog/
name: apmsocketpath
containers:
- name: <CONTAINER_NAME>
image: <CONTAINER_IMAGE>/<TAG>
volumeMounts:
- name: apmsocketpath
mountPath: /var/run/datadog
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath:
metadata.labels['tags.datadoghq.com/version']
参数配置:
service.name
:服务名;env
:应用服务的环境信息;version
:版本号;- 自定义 DataKit 监听地址,若不设置则跟随默认地址;
- 为服务设置采样率:开启后,可降低实际产生的数据量;数字范围从 0.0(0%) ~ 1.0(100%);
- 收集 Profiling 数据:开启后可以看到更多应用程序运行时的信息。