Skywalking agent配置,微服務接入


文件准備
 
將apache-skywalking-apm-bin-es7/agent文件夾拷貝到發布容器中,位置可以根據情況調整。
 
cp -r ./agent/* /opt/skywalkingAgent
 
文件說明
 
  • config/agent.config:為客戶端代理配置文件,可以根據系統情況進行響應調整,這里就不詳細說明。
  • logs:SW agent相關運行情況日志。
  • activations: 插件包
  • bootstrap-plugins:插件包
  • optional-plugins:插件包
  • optional-reporter-plugins:插件包
  • skywalking-agent.jar:agent代理jar包。
使用方式
 
優先級:探針 > JVM配置 > 系統環境變量 > agent.config
 
一般都使用探針方式,其他方式就不介紹了,配置方式如下:
 
格式1(推薦):-javaagent:/path/to/skywalking-agent.jar={config1}={value1},{config2}={value2}
 
-javaagent:../skywalking-agent.jar=agent.service_name=fw-gateway,collector.backend_service=127.0.0.1:11800
 
格式2:-Dskywalking.[option1]=[value2]
 
-javaagent:../skywalking-agent.jar -Dskywalking.agent.service_name=fw-gateway -Dskywalking.collector.backend_service=127.0.0.1:11800
 
一般配置下面兩項即可:
 
agent.service_name:客戶端服務名,在apm系統中顯示的服務名稱。
collector.backend_service:SW上傳的服務地址。
效果
微服務加入了SW Agent配置后啟動日志如下:
Connected to the target VM, address: '127.0.0.1:61863', transport: 'socket' 
DEBUG 2020-07-22 17:53:35:179 main AgentPackagePath : The beacon class location is jar:file:/Users/lizz/Documents/workspace/skywalking8/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class. 
INFO 2020-07-22 17:53:35:184 main SnifferConfigInitializer : Config file found in /Users/lizz/Documents/workspace/skywalking8/config/agent.config. 
INFO 2020-07-22 17:53:35:534 main SnifferConfigInitializer : Agent options is agent.service_name=fw-gateway,collector.backend_service=10.2.20.12:11800. 
17:53:41.327 [SkywalkingAgent-5-GRPCChannelManager-0] DEBUG org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent - Platform: MacOS 
17:53:41.334 [SkywalkingAgent-5-GRPCChannelManager-0] DEBUG org.apache.skywalking.apm.dependencies.io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false 
... 
詳細配置:
# 命名空間,用於隔離跨進程傳播的header。如果進行了配置,header將為HeaderName:Namespace. 
# agent.namespace=${SW_AGENT_NAMESPACE:default-namespace} 
 
# 展示界面中現實服務名稱 
agent.service_name=${SW_AGENT_NAME:lizz-gw}
 
# 每3秒采樣道數默認情況下,負或零表示關閉 
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}
 
# 鑒權是否開啟取決於后端的配置,可查看application.yml的詳細描述。對於大多數的場景,需要后端對鑒權進行擴展。目前僅實現了基本的鑒權功能。 
# agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx} 
 
# 單個線段中的最大跨距量。 
# 通過這個配置項,SkyWalking可以估計應用程序內存開銷。 
# agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:150} 
 
# 如果段的操作名稱以這些后綴結尾,則忽略這些段。 
# agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg} 
 
# 如果為true,則SkyWalking代理將在“/debugging”文件夾中保存所有檢測到的類文件。 
# SkyWalking可能會要求這些文件,以解決兼容問題。 
# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true} 
 
# 如果為true,SkyWalking代理將把所有檢測到的類文件緩存到內存或磁盤文件中(由類緩存模式決定), 
# 允許其他javaagent增強那些由SkyWalking agent增強的類。 
# agent.is_cache_enhanced_class = ${SW_AGENT_CACHE_CLASS:false} 
 
# 插入指令的類緩存模式:內存或文件 
# 內存:將類字節緩存到內存中,如果插入指令的類太多或太大,則可能會占用更多內存 
# 文件:在“/class cache”文件夾中緩存類字節,當應用程序退出時自動清理緩存的類文件 
# agent.class_cache_mode = ${SW_AGENT_CLASS_CACHE_MODE:MEMORY} 
 
# 操作名稱最大長度 
# 注意,在目前的實踐中,我們不建議長度超過190。 
# agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:150} 
 
# The agent use gRPC plain text in default. 
# If true, SkyWalking agent uses TLS even no CA file detected. 
# agent.force_tls=${SW_AGENT_FORCE_TLS:false} 
 
# 如果為true,則當用戶創建新的配置文件任務時,skywalking代理將啟用配置文件。否則禁用配置文件。 
# profile.active=${SW_AGENT_PROFILE_ACTIVE:true} 
 
# 並行監視器段計數 
# profile.max_parallel=${SW_AGENT_PROFILE_MAX_PARALLEL:5} 
 
# 最大監視段時間(分鍾),如果當前段監視時間超出限制,則停止它。 
# profile.duration=${SW_AGENT_PROFILE_DURATION:10} 
 
# 最大轉儲線程堆棧深度 
# profile.dump_max_stack_depth=${SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH:500} 
 
# 快照傳輸到后端緩沖區的大小 
# profile.snapshot_transport_buffer_size=${SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE:50} 
 
# skywalking后端服務地址。 
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
 
# 日志文件名 
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}
 
# 日志記錄級別 
logging.level=${SW_LOGGING_LEVEL:WARN}
 
# 日志文件存儲目錄 
# logging.dir=${SW_LOGGING_DIR:""} 
 
# 日志文件最大值, default: 300 * 1024 * 1024 = 314572800 
# logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800} 
 
# 最大歷史記錄日志文件。當發生滾動時,如果日志文件超過這個數字, 
# 然后刪除最舊的文件。默認情況下,負數或零表示禁用。 
# 如果不限制個數可能到只日志文件過大,磁盤爆滿。 
logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES:5}
 
# 忽略異常,有些異常屬於業務需要,不用在sw中標示出來 
# statuscheck.ignored_exceptions=${SW_STATUSCHECK_IGNORED_EXCEPTIONS:} 
 
# 異常鏈路的跟蹤深度,最好不要高於10,對性能有影響 
# statuscheck.max_recursive_depth=${SW_STATUSCHECK_MAX_RECURSIVE_DEPTH:1} 
 
# 增加agent下特定文件夾下的支持插件 
plugin.mount=${SW_MOUNT_FOLDERS:plugins,activations,bootstrap-plugins}
 
# 不加載某些支持插件,名稱參考Plugin-list.md 
plugin.exclude_plugins=${SW_EXCLUDE_PLUGINS:dubbo,motan}
 
# 是否獲取mysql操作sql的參數 
# plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS:false} 
 
# Kafka producer configuration 
# plugin.kafka.bootstrap_servers=${SW_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
 
# 跟蹤Spring中的bean,需要耗費更多的資源 
plugin.springannotation.classname_match_regex=${SW_SPRINGANNOTATION_CLASSNAME_MATCH_REGEX:}
windos環境--在IDEA中配置SkyWalking
在運行的程序配置jvm參數,如下圖所示:
0
配置:
-javaagent:D:\soft\worksoft\skywalking\agent\skywalking-agent.jar -DSW_AGENT_NAME=tag -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=10.200.60.63:11800
-javaagent:D:\soft\worksoft\skywalking\skywalking-agent.jar -Dskywalking.collector.backend_service=10.200.60.63:11800 -Dskywalking.agent.service_name=tag
結果:
我的skywalking安裝在centos7上,ide在windows上,ide配置如上內容后,也無法啟動成功。
INFO 2021-11-25 20:19:51:137 main AgentClassLoader : D:\soft\worksoft\skywalking\agent\activations\apm-toolkit-trace-activation-8.4.0.jar loaded. 
ERROR 2021-11-25 20:19:51:139 main SkyWalkingAgent : Enhance class org.springframework.beans.BeanWrapperImpl error. org.apache.skywalking.apm.agent.core.plugin.PluginException: Can't create InstanceMethodsAroundInterceptor.
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.<init>(InstMethodsInterWithOverrideArgs.java:53) at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassEnhancePluginDefine.enhanceInstance(ClassEnhancePluginDefine.java:170)
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassEnhancePluginDefine.enhance(ClassEnhancePluginDefine.java:74) at org.apache.skywalking.apm.agent.core.plugin.AbstractClassEnhancePluginDefine.define(AbstractClassEnhancePluginDefine.java:89)
at org.apache.skywalking.apm.agent.SkyWalkingAgent$Transformer.transform(SkyWalkingAgent.java:156)
改用jar形式,可以啟動成功。
java -javaagent:D:\soft\worksoft\skywalking\agent\skywalking-agent.jar -DSW_AGENT_NAME=tag -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=10.200.60.63:11800 -jar tag-202111261002.jar
0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM