日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過(guò)SkyWalking上報(bào)Java應(yīng)用數(shù)據(jù)

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。

通過(guò)SkyWalking為應(yīng)用埋點(diǎn)并上報(bào)鏈路數(shù)據(jù)至可觀(guān)測(cè)鏈路 OpenTelemetry 版后,可觀(guān)測(cè)鏈路 OpenTelemetry 版即可開(kāi)始監(jiān)控應(yīng)用,您可以查看應(yīng)用拓?fù)洹⒄{(diào)用鏈路、異常事務(wù)、慢事務(wù)和SQL分析等一系列監(jiān)控?cái)?shù)據(jù)。本文介紹如何使用SkyWalking Java Agent進(jìn)行自動(dòng)埋點(diǎn),以及SkyWalking Java Agent可配置屬性的相關(guān)信息。

前提條件

  • 打開(kāi)SkyWalking下載頁(yè)面,下載SkyWalking 6.X.X或以上版本(建議下載最新穩(wěn)定版本),并將解壓后的Agent文件夾放至Java進(jìn)程有訪(fǎng)問(wèn)權(quán)限的目錄。

  • 插件均放置在/plugins目錄中。在啟動(dòng)階段將新的插件放進(jìn)該目錄,即可令插件生效。將插件從該目錄刪除,即可令其失效。另外,日志文件默認(rèn)輸出到/logs目錄中。

警告

日志、插件和配置文件都在A(yíng)gent文件夾中,請(qǐng)不要改變文件夾結(jié)構(gòu)。

獲取接入點(diǎn)信息

  1. 登錄ARMS控制臺(tái),在左側(cè)導(dǎo)航欄單擊接入中心

  2. 服務(wù)端應(yīng)用區(qū)域單擊SkyWalking卡片。

  3. 在彈出的SkyWalking面板中選擇數(shù)據(jù)需要上報(bào)的地域。

    說(shuō)明

    初次接入的地域?qū)?huì)自動(dòng)進(jìn)行資源初始化。

  4. 選擇連接方式,然后復(fù)制接入點(diǎn)信息。

    若您的服務(wù)部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內(nèi)網(wǎng)方式,否則選擇公網(wǎng)方式。

    image.png

背景信息

SkyWalking是一款廣受歡迎的國(guó)產(chǎn)APM(Application Performance Monitoring,應(yīng)用性能監(jiān)控)產(chǎn)品,主要針對(duì)微服務(wù)、Cloud Native和容器化(Docker、Kubernetes、Mesos)架構(gòu)的應(yīng)用。SkyWalking的核心是一個(gè)分布式追蹤系統(tǒng)。

要通過(guò)SkyWalking將Java應(yīng)用數(shù)據(jù)上報(bào)至可觀(guān)測(cè)鏈路 OpenTelemetry 版控制臺(tái),首先需要完成埋點(diǎn)工作。SkyWalking既支持自動(dòng)探針(Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis等),也支持手動(dòng)埋點(diǎn)(OpenTracing)。本文介紹自動(dòng)埋點(diǎn)方法。

示例Demo

示例代碼倉(cāng)庫(kù)地址:SkyWalking Demo

用SkyWalking為Java應(yīng)用自動(dòng)埋點(diǎn)

  1. 打開(kāi)config/agent.config,配置接入點(diǎn)和令牌。

    說(shuō)明

    請(qǐng)將<endpoint><auth-token>分別替換成控制臺(tái)集群配置 > 接入點(diǎn)信息頁(yè)面上SkyWalking客戶(hù)端在相應(yīng)地域的接入點(diǎn)和鑒權(quán)令牌。關(guān)于獲取方法,請(qǐng)參見(jiàn)前提條件。

    collector.backend_service=<endpoint>
    agent.authentication=<auth-token>
  2. 采用以下方法之一配置應(yīng)用名稱(chēng)(Service Name)。

    重要

    請(qǐng)將<ServiceName>替換為您的應(yīng)用名稱(chēng)。如果同時(shí)采用以下兩種方法,則僅第二種方法(在啟動(dòng)命令行中添加參數(shù))生效。

    • 打開(kāi)config/agent.config,配置應(yīng)用名稱(chēng)。

      agent.service_name=<ServiceName>
    • 在應(yīng)用程序的啟動(dòng)命令行中添加-Dskywalking.agent.service_name參數(shù)。

      java -javaagent:<skywalking-agent-path> -Dskywalking.agent.service_name=<ServiceName> -jar yourApp.jar
  3. 根據(jù)應(yīng)用的運(yùn)行環(huán)境,選擇相應(yīng)的方法來(lái)指定SkyWalking Agent的路徑。

    說(shuō)明

    請(qǐng)將以下示例代碼中的<skywalking-agent-path>替換為Agent文件夾中的skywalking-agent.jar的絕對(duì)路徑。

    • Linux Tomcat 7 / Tomcat 8

      tomcat/bin/catalina.sh第一行添加以下內(nèi)容:

      CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS
    • Windows Tomcat 7 / Tomcat 8

      tomcat/bin/catalina.bat第一行添加以下內(nèi)容:

      set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"
    • JAR File或Spring Boot

      在應(yīng)用程序的啟動(dòng)命令行中添加-javaagent參數(shù)。

      重要

      -javaagent參數(shù)一定要在-jar參數(shù)之前。

      java -javaagent:<skywalking-agent-path> -jar yourApp.jar
    • Jetty

      {JETTY_HOME}/start.ini配置文件中添加以下內(nèi)容:

      --exec    # 去掉前面的井號(hào)取消注釋。
      -javaagent:<skywalking-agent-path>
  4. 重新啟動(dòng)應(yīng)用。

Java Agent可配置屬性

SkyWalking Java Agent支持豐富的用戶(hù)可配置屬性。完整的屬性配置詳情,請(qǐng)參見(jiàn)示例Demo的config/agent.config文件。

屬性列表(部分)

以下屬性以apache-skywalking-java-agent-8.16.0為準(zhǔn)。

展開(kāi)查看屬性列表

屬性名

描述

默認(rèn)值

agent.namespace

命名空間,用于隔離跨進(jìn)程傳播的header。如果進(jìn)行了配置,header將為HeaderName:Namespace。

未設(shè)置

agent.service_name

在SkyWalking UI中展示的服務(wù)名。5.x版本對(duì)應(yīng)Application,6.x版本對(duì)應(yīng)Service。 建議:為每個(gè)服務(wù)設(shè)置唯一的名字,服務(wù)下的多個(gè)實(shí)例使用相同的服務(wù)名。

Your_ApplicationName

agent.sample_n_per_3_secs

負(fù)數(shù)或0表示不采樣,默認(rèn)不采樣。SAMPLE_N_PER_3_SECS表示每3秒采樣N條。

未設(shè)置

agent.authentication

鑒權(quán)是否開(kāi)啟取決于后端的配置,可查看服務(wù)端接入點(diǎn)的鑒權(quán)Token。對(duì)于大多數(shù)的場(chǎng)景,需要后端對(duì)鑒權(quán)進(jìn)行擴(kuò)展。目前僅實(shí)現(xiàn)了基本的鑒權(quán)功能。

未設(shè)置

agent.span_limit_per_segment

單個(gè)segment中span的最大數(shù)量。通過(guò)這個(gè)配置項(xiàng),SkyWalking可評(píng)估應(yīng)用程序內(nèi)存使用量。

未設(shè)置

agent.ignore_suffix

如果這個(gè)集合中包含了第一個(gè)span的操作名,這個(gè)segment將會(huì)被忽略掉。

未設(shè)置

agent.is_open_debugging_class

如果為true,SkyWalking會(huì)將所有經(jīng)Instrument轉(zhuǎn)換過(guò)的類(lèi)文件保存到/debugging文件夾下。SkyWalking團(tuán)隊(duì)會(huì)要求提供這些類(lèi)文件以解決兼容性問(wèn)題。

未設(shè)置

agent.cause_exception_depth

在記錄異常信息的時(shí)候,探針需要記錄的堆棧深度。

5

agent.force_reconnection_period

gRPC的強(qiáng)制重連周期,基于grpc_channel_check_interval。

1

agent.operation_name_threshold

設(shè)置操作名不建議超過(guò)的最大長(zhǎng)度(190)。

150

agent.keep_tracing

如果該值為true,即使后臺(tái)不可用,也要保持跟蹤。

false

osinfo.ipv4_list_size

限制IPv4列表的長(zhǎng)度。

10

collector.grpc_channel_check_interval

檢查gRPC的Channel狀態(tài)的時(shí)間間隔。

30

collector.backend_service

接收SkyWalking Trace數(shù)據(jù)的后端地址。

127.0.0.1:11800

collector.heartbeat_period

探針心跳報(bào)告時(shí)間。單位:秒。

30

collector.grpc_upstream_timeout

gRPC客戶(hù)端向上游發(fā)送數(shù)據(jù)時(shí)超時(shí)多長(zhǎng)時(shí)間。單位:秒。

30

collector.get_profile_task_interval

嗅探器獲取配置文件任務(wù)列表間隔。

20

logging.level

日志級(jí)別。默認(rèn)為debug。

DEBUG

logging.file_name

日志文件名。

skywalking-api.log

logging.output

日志輸出方式,默認(rèn)是文件,使用控制臺(tái)默認(rèn)為標(biāo)準(zhǔn)輸出(命令行直接輸出)。

FILE

logging.dir

日志目錄。默認(rèn)為空串,表示使用"system.out"輸出日志。

""

logging.pattern

日志格式。所有的轉(zhuǎn)換說(shuō)明符:

  • %level:日志等級(jí)。

  • %timestamp:現(xiàn)在的時(shí)間,格式: yyyy-MM-dd HH:mm:ss:SSS

  • %thread:當(dāng)前線(xiàn)程的名稱(chēng)。

  • %msg:用戶(hù)記錄的某些消。

  • %class:TargetClass的SimpleName。

  • %throwable:用戶(hù)拋出的異常。

  • %agent_name:agent.service_name。

%level %timestamp %thread %class : %msg %throwable

logging.max_file_size

日志文件的最大大小。當(dāng)日志文件大小超過(guò)該值,歸檔當(dāng)前的日志文件,并將日志寫(xiě)入到新文件中。

300 * 1024 * 1024

logging.max_history_files

最大歷史日志文件數(shù)量。默認(rèn)情況下,負(fù)數(shù)或0表示關(guān)閉。

-1

配置方式

系統(tǒng)屬性

使用-Dskywalking. + agent.config配置文件的key。例如:

# 通過(guò)系統(tǒng)屬性配置agent.service_name
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jar

代理選項(xiàng)

在JVM參數(shù)中的代理路徑之后添加屬性即可。

# 模板
-javaagent:/path/to/skywalking-agent.jar=[key1]=[value1],[key2]=[value2]

# 舉例
java -javaagent:/path/to/skywalking-agent.jar=agent.service_name=<your-service-name>,agent.authentication=<your-token> -jar your-project.jar

系統(tǒng)環(huán)境變量

將屬性配置成系統(tǒng)環(huán)境變量,skywalking-agent會(huì)自動(dòng)獲取。可以在config/agent.config文件中查詢(xún)具體屬性對(duì)應(yīng)的系統(tǒng)環(huán)境變量,例如agent.service_name的系統(tǒng)環(huán)境變量為SW_AGENT_NAME。

agent.service_name=${SW_AGENT_NAME:default_name}

# 配置環(huán)境變量
export SW_AGENT_NAME=<your_service_name>

優(yōu)先級(jí)

以上配置方式的優(yōu)先級(jí)從高到低依次為代理選項(xiàng)、系統(tǒng)屬性、系統(tǒng)環(huán)境變量、配置文件。

Java Agent插件

SkyWalking Java Agent支持多種中間件、框架和庫(kù)。支持的所有插件可在示例Demo的/plugins文件夾下查看。

激活插件

所有在/plugins文件夾下的插件都是已被激活的插件。若從/plugins中移除某個(gè)插件的jar包,則表示插件不可用。

官方已支持插件

官方支持的插件都已在/plugins文件夾下。

可選插件

Java Agent的插件支持可插拔。在A(yíng)gent或第三方倉(cāng)庫(kù)的optional-plugins文件夾下提供了可選的插件。 想要使用可選插件,可以將對(duì)應(yīng)插件移動(dòng)到/plugins文件夾下。image.png

Bootstrap類(lèi)插件

由于意外風(fēng)險(xiǎn),所有Bootstrap插件都是可選的。Bootstrap插件在bootstrap-plugins文件夾中。若需要使用這些插件,可以將目標(biāo)插件的jar文件放入/plugins文件夾下。image.png

支持插件列表

關(guān)于下面的插件,官方認(rèn)為可能存在性能影響或者使用限制,所以只在第三方倉(cāng)庫(kù)發(fā)布。更多信息請(qǐng)參見(jiàn)SkyAPM Java插件擴(kuò)展倉(cāng)庫(kù)

展開(kāi)查看插件列表

框架

插件版本

HTTP Server

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

Spring MVC 3.x, 4.x 5.x with servlet 3.x

Nutz Web Framework 1.x

Struts2 MVC 2.3.x -> 2.5.x

Resin 3

Resin 4

Jetty Server 9

Spring Webflux 5.x

Undertow 2.0.0.Final -> 2.0.13.Final

RESTEasy 3.1.0.Final -> 3.7.0.Final

Play Framework 2.6.x -> 2.8.x

Light4J Microservices Framework 1.6.x -> 2.x

Netty SocketIO 1.x

HTTP Client

Feign 9.x

Netflix Spring Cloud Feign 1.1.x, 1.2.x, 1.3.x

Okhttp 3.x

Apache httpcomponent HttpClient 4.2, 4.3

Spring RestTemplete 4.x

Jetty Client 9

Apache httpcomponent AsyncClient 4.x

HTTP Gateway

Spring Cloud Gateway 2.1.x.RELEASE

JDBC

Mysql Driver 5.x, 6.x, 8.x

Oracle Driver

H2 Driver 1.3.x -> 1.4.x

Sharding-JDBC 1.5.x

ShardingSphere 3.0.0

ShardingSphere 3.0.0, 4.0.0-RC1

PostgreSQL Driver 8.x, 9.x, 42.x

Mariadb Driver 2.x, 1.8

RPC框架

Dubbo 2.5.4 -> 2.6.0

Dubbox 2.8.4

Apache Dubbo 2.7.0

Motan 0.2.x -> 1.1.0

gRPC 1.x

Apache ServiceComb Java Chassis 0.1 -> 0.5,1.0.x

SOFARPC 5.4.0

Armeria 0.63.0 -> 0.98.0

Apache Avro 1.7.0 - 1.8.x

Finagle 6.25.0 -> 20.1.0

MQ

RocketMQ 4.x

Kafka 0.11.0.0 -> 1.0

ActiveMQ 5.x

RabbitMQ 5.x

Pulsar 2.2.x -> 2.4.x

NoSQL

Redis

Jedis 2.x

Redisson Easy Java Redis client 3.5.2+

Lettuce 5.x

MongoDB

MongoDB Java Driver 2.13-2.14,3.3+

Memcached Client

Spymemcached 2.x

Xmemcached 2.x

Elasticsearch

transport-client 5.2.x-5.6.x

transport-client 6.7.1-6.8.4

rest-high-level-client 6.7.1-6.8.4

SolrJ 7.0.0-7.7.1

SolrJ 7.x

Cassandra 3.x

cassandra-java-driver 3.7.0-3.7.2

服務(wù)發(fā)現(xiàn)

Netflix Eureka

分布式協(xié)調(diào)

Zookeeper 3.4.x (3.4.4除外)

Spring生態(tài)系統(tǒng)

Spring Bean annotations(@Bean, @Service, @Component, @Repository) 3.x and 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

Hystrix: 分布式系統(tǒng)延時(shí)和故障容錯(cuò) 1.4.20 -> 1.5.12

調(diào)度器

Elastic Job 2.x

OpenTracing社區(qū)支持

Canal: 阿里巴巴的基于MySQL binlog的增量訂閱與消費(fèi)組件 1.0.25 -> 1.1.2

JSON

GSON 2.8.x

Vert.x 生態(tài)

Vert.x Eventbus 3.2+

Vert.x Web 3.x

線(xiàn)程調(diào)度框架

Spring @Async 4.x and 5.x

緩存

Ehcache 2.x

Kotlin

Coroutine 1.0.1 -> 1.3.x

插件開(kāi)發(fā)

您可以參考官方文檔自定義開(kāi)發(fā)一個(gè)SkyWalking Java Agent Plugin。

可觀(guān)測(cè)鏈路 OpenTelemetry 版支持Trace上報(bào),您可以參考官方文檔開(kāi)發(fā)一個(gè)自定義的Trace Plugin。

常見(jiàn)問(wèn)題

問(wèn):SkyWalking正常連接服務(wù)端后,無(wú)法創(chuàng)建應(yīng)用?

答:可能是由于鏈路追蹤的數(shù)據(jù)未上報(bào)。您需要檢查是否有鏈路追蹤的數(shù)據(jù)上報(bào),可以查看{skywalking agent path}/logs/skywalking-api.log內(nèi)容。如果有數(shù)據(jù)上報(bào),則顯示如下圖所示。pg_xtrace_skywalking

如果未產(chǎn)生數(shù)據(jù)上報(bào),則可能原因是:開(kāi)啟采樣、設(shè)置過(guò)濾或未觸發(fā)生成鏈路追蹤的請(qǐng)求。