当前位置: 首页 > news >正文

SpringBoot应用原生或docker镜像容器集成Skywalking

相关组件及版本

序号

组件

版本

备注

1

skywalking-oap-server

8.9.1

2

elasticsearch

7.17.6

3

skywalking-ui

8.9.1

4

apache-skywalking-java-agent

8.15.0

一、JAR包方式部署服务

下载apache-skywalking-java-agent jar文件

使用如下名称执行

java \
-javaagent:/agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=${service_name} \
-Dskywalking.collector.backend_service=${IP}:11800 \
-jar ${spring-project}.jar
  • ${service_name}:应用服务名称
  • ${IP}:Skywalking服务所在服务器IP
  • ${spring-project}:jar文件名称

二、docker方式部署服务

1、构建基础镜像,将skywalking-agent文件夹下的文件包含在内

1)修改apache-skywalking-java-agent下的配置文件agent.config

# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

修改为分配(指定)的服务名称和对应后端服务地址

2)编辑Dockerfile文件

FROM openjdk:8
LABEL maintainer="creator"
ENV TZ=Asia/Shanghai
EXPOSE 8080
COPY skywalking-agent/* skywalking-agent/
# 别名 将bds-admin 改名为app,与docker-compose.yml中对应
ADD bds-admin.jar app.jar
# 修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN sh -c 'touch /app.jar'
#ENTRYPOINT ["java","-jar","/app.jar"]
ENTRYPOINT ["java","-javaagent:/skywalking-agent/skywalking-agent.jar","-jar","/app.jar"]

2、构建容器,使用-v或者volumes 将skywalking-agent文件夹挂载到容器

1)编辑Dockerfile文件

FROM openjdk:8
LABEL maintainer="creator"
ENV TZ=Asia/Shanghai
EXPOSE 8080# 别名 将bds-admin 改名为app,与docker-compose.yml中对应
ADD bds-admin.jar app.jar
# 修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN sh -c 'touch /app.jar'
#ENTRYPOINT ["java","-jar","/app.jar"] 修改为下面的语句
ENTRYPOINT ["java","-javaagent:/skywalking-agent/skywalking-agent.jar","-jar","/app.jar"]

2)编辑docker-compose.yml文件

version: "3"
services:app-dev:restart: alwayscontainer_name: app-devimage: app:1.0build: . # 表示以当前目录下的Dockerfile开始构建镜像ports:- "8080:8080"volumes:- ./app/logs:/app/logs- ./app/uploadPath:/app/uploadPath- ./skywalking-agent:/skywalking-agent

3)启动应用服务

docker-compose up -d --build
http://www.xdnf.cn/news/193231.html

相关文章:

  • 数据要素与居民就业的深层联结 数字化转型下的劳动力市场变革
  • 项目上线流程梳理(Linux宝塔面板)
  • 基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统
  • Web基础与HTTP协议
  • 第二章、Isaaclab强化学习包装器(1)
  • 研究:大模型输出一致性:确定性与随机性的场景化平衡
  • 【Android】SettingsPreferenceService
  • (002)Excel 使用图表,统计
  • conda和bash主环境的清理
  • 【优秀三方库研读】【性能优化点滴】odygrd/quill 解决伪共享
  • AcWing 885:求组合数 I ← 杨辉三角
  • vs2022解决 此项目需要MFC库。从visual studio安装程序(单个组件选项卡)为正在使用的任何工具和体系结构安装他们问题
  • JQ6500语音模块详解(STM32)
  • C++ 之 【模拟实现 list(节点、迭代器、常见接口)】(将三个模板放在同一个命名空间就实现 list 啦)
  • 电子电器架构 -- 汽车零部件DV试验与PV试验的定义及关键差异
  • [ 问题解决 ] sqlite3.ProgrammingError: SQLite objects created in a thread can ...
  • mybatis的xml ${item}总是更新失败
  • npm init、换源问题踩坑
  • 【Python数据驱动决策】数据分析与可视化全流程实战指南
  • 论文导读 - 基于边缘计算、集成学习与传感器集群的便携式电子鼻系统
  • Vue基础(7)_计算属性
  • C++核心编程:类与对象全面解析
  • Infrared Finance:Berachain 生态的流动性支柱
  • 车载软件架构 --- AUTOSAR的方法论
  • SwiftUI 8.List介绍和使用
  • 零基础制作Freertos智能小车(教程非常简易)持续更新中....
  • DeepSeek创始人梁文峰是个什么样的人?
  • LLM - Large Language Model
  • Android Studio 中使用 SQLite 数据库开发完整指南(Kotlin版本)
  • Redis最佳实践