SkyWalking for Java

2023-05-19 20:52:15 732

Skywalking的性能损耗接近3%

一. Docker配置

  1. docker pull apache/skywalking-oap-server:9.4.0-java17
  2. docker pull apache/skywalking-ui:v9.4.0-java17
  3. docker pull elasticsearch:8.7.1
  4. docker pull kibana:8.7.1
  5. docker run --name elasticsearch --network rootnet --ip 172.19.0.8 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx512m" -e xpack.security.enabled=false -d elasticsearch:8.7.1. 存储oap收集的数据
  6. docker run --name skywalking-oap --network rootnet --ip 172.19.0.9 --restart always -d -p 11800:11800 -p 12800:12800 --privileged=true -e TZ=Asia/Shanghai -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=172.19.0.8:9200 -e SW_CLUSTER_INTERNAL_COM_HOST=172.19.0.9 -e SW_CLUSTER_INTERNAL_COM_PORT=11800 -e SW_CLUSTER=nacos -e SW_CLUSTER_NACOS_HOST_PORT=172.19.0.5:8848 -e SW_CLUSTER_NACOS_NAMESPACE=19a0fa32-ed2e-40f1-a1e1-aae8c81d8cf8 -e SW_CLUSTER_NACOS_USERNAME=nacos -e SW_CLUSTER_NACOS_PASSWORD=nacos -v /etc/localtime:/etc/localtime:ro apache/skywalking-oap-server:9.4.0-java17. (负责收集和处理来自Agent的数据,并将其存储到可选的存储系统中(例如Elasticsearch或TiDB)。因此,SkyWalking OAP可以看作是SkyWalking的数据集中器)
  7. docker run --name skywalking-ui --network rootnet --ip 172.19.0.10 --restart always -p 7099:8080 -d --privileged=true -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=[http://172.19.0.9:12800](http://172.19.0.9:12800) -v /etc/localtime:/etc/localtime:ro apache/skywalking-ui:v9.4.0-java17.
  8. docker run --name kibana -d --network rootnet --ip 172.19.0.11 -p 5601:5601 -v /usr/local/kibana/config/:/usr/share/kibana/config/ kibana:8.7.1. /usr/local/kibana/config下有两个配置文件
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://172.19.0.8:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
## Node command line options
## See `node --help` and `node --v8-options` for available options
## Please note you should specify one option per line

## max size of old space in megabytes
#--max-old-space-size=4096

## do not terminate process on unhandled promise rejection
 --unhandled-rejections=warn
  1. kibana中, 点击 discover, 点击 Create a data view. Index pattern 输入 sw_log

二. Java配置

  1. 配置agent. -javaagent:/path/skywalking-agent.jar -Dskywalking.agent.service_name=user-api -Dskywalking.collector.backend_service=192.168.222.129:11800. user-api是当前服务的名称. 192.168.222.129:11800是oap服务grpc地址
  2. 配置日志传输.

添加依赖

<dependency>
   <groupId>org.apache.skywalking</groupId>
   <artifactId>apm-toolkit-logback-1.x</artifactId>
   <version>{project.release.version}</version>
</dependency>

logback-spring.xml如下

<!-- 传输到skywalking -->
<appender name="skywalking-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
  <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
    <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</pattern>
    </layout>
  </encoder>
</appender>

<root level="info">
    <appender-ref ref="skywalking-log"/>
</root>

效果图

1.png

2.png

3.png

4.png

性能剖析模块被删除了

https://github.com/apache/skywalking/discussions/8246

不支持添加log字段. 日志模块完全可以使用ELK代替, 将TraceID复制出来后放在ELK中再查询. 将日志再传输至skywalking也会带来一定的损耗

https://github.com/apache/skywalking/discussions/9242

ref:

https://skywalking.apache.org/docs/skywalking-java/v8.15.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

https://juejin.cn/post/7049920780569673736





Kubernetes Cloud Native 实践 ( 四 ) 中间件上云

全文目录Kubernetes Cloud Native 实践 ( 一 ) 安装Kubernetes Cloud Native 实践 ( 二 ) 简单使用Kubernetes Cloud Native 实践 ( 三 ) NFS/PV/PVCKubernetes Cloud Native 实践 ( 四
2023-06-13

Kubernetes Cloud Native 实践 ( 一 ) 安装

全文目录Kubernetes Cloud Native 实践 ( 一 ) 安装Kubernetes Cloud Native 实践 ( 二 ) 简单使用Kubernetes Cloud Native 实践 ( 三 ) NFS/PV/PVCKubernetes Cloud Native 实践 ( 四
2023-06-13
ELK: Elasticsearch + Logstash + Kibana

ELK: Elasticsearch + Logstash + Kibana

接上文Elasticsearch和Kibana的安装https://blog.22xcode.com/post/182这里安装最后一个组件Logstashdocker pull logstash:8.7.1docker run -d --name=logstash logstash:8.7.1把容器
2023-05-21
SkyWalking for Java

SkyWalking for Java

Skywalking的性能损耗接近3%一. Docker配置docker pull apache/skywalking-oap-server:9.4.0-java17docker pull apache/skywalking-ui:v9.4.0-java17docker pull elasticse
2023-05-19

Docker Graceful Shutdown

有几个前提操作系统层面: 提供了 kill -9 (SIGKILL)和 kill -15(SIGTERM) 两种停机策略. SIGKILL 信号是一个不能被阻塞、处理或忽略的信号,它会立即终止目标进程. SIGTERM 信号是一个可以被阻塞、处理或忽略的信号,它也可以通知目标进程终止,但是它相对于
2023-05-17

Docker启动容器出现No Such File Or Directory排查

dockerfile如下FROM alpine ADD test-backend /test-backend RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/time
2023-03-22

Ubuntu Golang 编译 + Docker部署

配置Golang编译环境下载go环境 https://studygolang.com/dl 选择go1.20.2.linux-amd64.tar.gztar -zxvf go1.20.2.linux-amd64.tar.gz 解压到 /usr/local/go创建 /usr/local/go-pat
2023-03-22

Nginx+Frp+Docker实现HTTPS内网穿透

内网穿透实用性非常强, 例如支付回调/访问内网数据库域名dns需要解析到服务器地址frp下载地址https://github.com/fatedier/frp/releases下载这两个文件frp_0.38.0_linux_amd64.tar.gzfrp_0.38.0_windows_amd64.z
2021-10-29

Docker 安装 MongoDB

docker pull mongo docker run -itd --name mongo -p 27017:27017 mongo --auth -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mo
2021-01-13

Jenkins + Gitee 持续集成

接上文/article/537098261463302145 Jenkins安装JDK安装将jdk-8u171-linux-x64.rpm(oracle官网下载)上传至服务器执行安装命令rpm -ivh jdk-8u171-linux‐x64.rpm RPM方式安装JDK,其根目录为:/usr/ja
2020-12-04

Maven插件自动构建项目镜像

搭建docker私有仓库docker pull registry 启动容器docker run ‐di --name=registry -p 5000:5000 registry 打开浏览器 输入地址http://localhost:5000/v2/_catalog看到{"repositories"
2020-11-22

Docker 部署 详细全过程 附代码

Docker 部署本站 全过程环境:CentOS7.61. 安装Docker其他版本CentOS可以参考这个https://help.aliyun.com/document_detail/187598.html查看本机内核版本,内核版本需高于 3.10uname -r 确保 yum 包最新yum u
2020-03-28

freemarker 时间显示不正常 设置时区

项目在本地开发的时候显示正常,部署上服务器就一直差8个小时,最后发现freemarker官方文档有这样的说明time_zone:时区的名称来显示并格式化时间。 默认情况下,使用JVM的时区。 也可以是 Java 时区 API 接受的值,或者 "JVM default" (从 FreeMarker 2
2020-03-28
IDEA 2019.1 xml 不高亮

IDEA 2019.1 xml 不高亮

前几天更新了idea后,发现xml里的代码都没有了高亮,变得跟记事本一个德性了打开setting ,搜索 File Types,找到xml项, 查看下方的匹配格式,果然没有xml,(idea真是厉害)点击右方的+,输入*.xml,点击ok,解决问题
2020-03-28

npm install 淘宝镜像

npm install --registry=https://registry.npm.taobao.org
2020-03-28
Java中方法的参数传递机制

Java中方法的参数传递机制

来看一段代码 public class Man { private String name; private Integer age; public String getName() { return name; } publi
2020-03-28
基于自定义注解手写权限控制

基于自定义注解手写权限控制

方法一: AOP 方法二: 拦截器项目结构项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w
2020-03-28

Docker 部署 详细全过程 附代码

Docker 部署本站 全过程环境:CentOS7.61. 安装Docker其他版本CentOS可以参考这个https://help.aliyun.com/document_detail/187598.html查看本机内核版本,内核版本需高于 3.10uname -r 确保 yum 包最新yum u
2020-03-28

SpringBoot 启动普通java工程

引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>
2020-03-28

Vue.js DOM操作

<template> <input type="button" @click="reply($event)" value="回复"> </template> export default { methods: { replyFun(e) {
2020-03-29
CentOS7编译调试OpenJDK12

CentOS7编译调试OpenJDK12

1. 下载源码https://hg.openjdk.java.net/jdk/jdk12点击左侧的browse,再点击zip,就可以下载zip格式的源码压缩包。unzip xxx.zip 解压文件2. 安装jdkyum install java-11-openjdk-devel -y3. 运行con
2020-04-23
编写自己的Spring Boot Starter

编写自己的Spring Boot Starter

1.新建一个maven项目命名规则统一是xxx-spring-boot-starter完整pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
2020-06-29