SkyWalking 的數(shù)據(jù)采集主要是通過(guò)業(yè)務(wù)探針(Agent)來(lái)實(shí)現(xiàn)的鸥诽,針對(duì)不同的編程語(yǔ)言 SkyWalking 提供了對(duì)應(yīng)的 Agent 實(shí)現(xiàn)欢顷。
Java微服務(wù)接入SkyWalking的方式
需要Java微服務(wù)在部署啟動(dòng)的過(guò)程中需要獲取 SkyWalking Java Agent 探針包,并在啟動(dòng)參數(shù)中通過(guò) --javaagent:xxx 進(jìn)行參數(shù)指定踩萎。而具體的集成方式大致有以下三種:
- 使用官方提供的基礎(chǔ)鏡像;
- 將agent包構(gòu)建到已存在的基礎(chǔ)鏡像中钮科;
- 通過(guò) sidecar 模式掛載agent蝠引;
sidecar 模式進(jìn)行接入
這種方式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:用于在啟動(dòng)應(yīng)用容器之前將 SkyWalking agent 從 sidecar 容器拷貝到 emptyDir volume 中采记。
- JAVA_TOOL_OPTIONS:在主容器中設(shè)置 SkyWalking agent 的配置佣耐,指定 agent 路徑政勃、服務(wù)名稱(chēng)和 OAP 服務(wù)地址。
配置完兼砖,服務(wù)啟動(dòng)就接入成功啦
接入成功后奸远,es會(huì)有如下索引
sw_browser_error_log:前端應(yīng)用的瀏覽器錯(cuò)誤日志。
sw_log:后端應(yīng)用的業(yè)務(wù)日志讽挟。
sw_management:服務(wù)管理元數(shù)據(jù)懒叛。
sw_metrics-all:服務(wù)性能指標(biāo)數(shù)據(jù)。
sw_segment:分布式追蹤片段數(shù)據(jù)耽梅。
sw_zipkin_span:通過(guò) Zipkin 上報(bào)的分布式追蹤數(shù)據(jù)薛窥。