SkyWalking 的数据采集主要是通过业务探针(Agent)来实现的,针对不同的编程语言 SkyWalking 提供了对应的 Agent 实现。
Java微服务接入SkyWalking的方式
需要Java微服务在部署启动的过程中需要获取 SkyWalking Java Agent 探针包,并在启动参数中通过 --javaagent:xxx 进行参数指定。而具体的集成方式大致有以下三种:
- 使用官方提供的基础镜像;
- 将agent包构建到已存在的基础镜像中;
- 通过 sidecar 模式挂载agent;
sidecar 模式进行接入
这种方式Dockerfile不需要做任何修改
apiVersion: apps/v1
kind: Deployment
metadata:
name: qz-music-song-java
spec:
spec:
initContainers:
- name: agent-container
image: apache/skywalking-java-agent:9.3.0-alpine
volumeMounts:
- name: skywalking-agent
mountPath: /agent
command: ["/bin/sh"]
args: ["-c", "cp -R /skywalking/agent /agent/"]
containers:
- name: qz-music-song-java
image: springio/qz-music-song-java:latest
env:
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=qz-music-song-java -Dskywalking.collector.backend_service=skywalking-oap:11800"
volumeMounts:
- name: skywalking-agent
mountPath: /skywalking
volumes:
- name: skywalking-agent
emptyDir: {}
- emptyDir volume:用于挂载 SkyWalking agent。
- initContainers:用于在启动应用容器之前将 SkyWalking agent 从 sidecar 容器拷贝到 emptyDir volume 中。
- JAVA_TOOL_OPTIONS:在主容器中设置 SkyWalking agent 的配置,指定 agent 路径、服务名称和 OAP 服务地址。
配置完,服务启动就接入成功啦
接入成功后,es会有如下索引
sw_browser_error_log:前端应用的浏览器错误日志。
sw_log:后端应用的业务日志。
sw_management:服务管理元数据。
sw_metrics-all:服务性能指标数据。
sw_segment:分布式追踪片段数据。
sw_zipkin_span:通过 Zipkin 上报的分布式追踪数据。