1、有什么用
1、观测接口性能
2、查看请求调用链路情况
2、部署
docker-compose.yml 如下(这个是根据官方提供的yml修改的)
version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2
container_name: elasticsearch
ports:
- "9200:9200"
networks:
- demo
healthcheck:
test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
oap:
image: ghcr.io/apache/skywalking/oap:latest
container_name: oap
ports:
- "11800:11800"
- "12800:12800"
networks:
- demo
depends_on:
elasticsearch:
condition: service_healthy
healthcheck:
test: [ "CMD-SHELL", "curl http://localhost:12800/internal/l7check" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
environment:
- SW_STORAGE=elasticsearch
- SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200
- SW_HEALTH_CHECKER=default
- SW_TELEMETRY=prometheus
- JAVA_OPTS=-Xms2048m -Xmx2048m
ui:
image: ghcr.io/apache/skywalking/ui:latest
container_name: ui
ports:
- "8080:8080"
networks:
- demo
depends_on:
oap:
condition: service_healthy
environment:
- SW_OAP_ADDRESS=http://oap:12800
- SW_ZIPKIN_ADDRESS=http://oap:9412
networks:
demo:
docker-compose up -d
访问WEB UI http://127.0.0.1:8080
3、java接入
1、下载agent包
wget https://dlcdn.apache.org/skywalking/java-agent/9.3.0/apache-skywalking-java-agent-9.3.0.tgz
tar xf apache-skywalking-java-agent-9.3.0.tgz
2、启动时指定-javaagent
1 先下载一个java demo
wget http://static.iocoder.cn/lab-39-demo-2.2.2.RELEASE.jar
2 编写启动文件 java.sh
cat > java.sh <<EOF
# SkyWalking Agent 配置
export SW_AGENT_NAME=demo-application # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 # 配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
export JAVA_AGENT=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # SkyWalking Agent jar 地址。
# Jar 启动
java -jar $JAVA_AGENT -jar lab-39-demo-2.2.2.RELEASE.jar
EOF
3 启动
bash java.sh
4、发起请求
curl http://127.0.0.1:8079/demo/echo
4、观察web界面
4、python接入
1.依赖下载
pip install fastapi uvicorn apache-skywalking
2.用fastapi编写一个demo
app.py
from fastapi import FastAPI
import os
from skywalking import agent,config
config.init(agent_collector_backend_services='127.0.0.1:11800', agent_name='fastchat')
agent.start()
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello, SkyWalking!"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, query: str = None):
return {"item_id": item_id, "query": query}
start.sh
uvicorn app:app --host 0.0.0.0 --port 8000
运行
bash start.sh
访问测试
curl http://127.0.0.1:8000/
查看web