K8s 方式采集
前置条件
前置条件
- 需要安装好 light-agent,具体安装步骤查看 Lighthouse 平台【数据采集】
- 区分 light-agent 是否安装在 Kubernetes 集群中
- 如果 light-agent 安装在 Kubernetes 集群中,在安装 light-agent 的时候,已经将镜像导入到 Kubernetes 可以访问的仓库
- 如果 light-agent 安装在 Kubernetes 集群外,需要将 kube-state-metrics 的镜像导入到 Kubernetes 可以访问的仓库。具体步骤查看 Lighthouse 平台【数据采集】-> 【Kubernetes】-> 推送镜像到 Kubernetes 的镜像仓库
- 需要安装好 k8s-operator ,具体安装步骤查看 Kubenetes 安装 k8s-operator
1. 添加 Java 的 Automatic Instrumentation
kubectl apply -f automatic-instrumentation-java.yaml
automatic-instrumentation-java.yaml
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
name: auto-instr
namespace: default
spec:
propagators:
- tracecontext
- baggage
- b3
sampler:
type: parentbased_traceidratio
argument: "1"
java:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java:1.33.5
env:
- name: OTEL_INSTRUMENTATION_KAFKA_ENABLED
value: "false"
- name: OTEL_INSTRUMENTATION_REDISCALA_ENABLED
value: "false"
- name: OTEL_BSP_MAX_EXPORT_BATCH_SIZE
value: "512"
- name: OTEL_EXPORTER_OTLP_COMPRESSION
value: "gzip"
- name: OTEL_BSP_SCHEDULE_DELAY
value: "5000"
- name: OTEL_EXPORTER_OTLP_PROTOCOL
value: "http/protobuf"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://light-agent.light-agent.svc.cluster.local:54318"
操作过程
[root@master tpls]# kubectl apply -f automatic-instrumentation-java.yaml
instrumentation.opentelemetry.io/auto-instr created
[root@master tpls]# kubectl get instrumentation
NAME AGE ENDPOINT SAMPLER SAMPLER ARG
auto-instr 22s http://light-agent.monitoring.svc.cluster.local:54318 parentbased_traceidratio 1
[root@master tpls]#