• 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
  • 相关阅读:
    线程池原理和实现
    线程
    ajax、xstream、json
    上传、下载、javamail
    过滤器
    监听器、国际化
    jsp、javabean、el
    jstl、标签
    jsp、cookie、httpsession
    个人觉得比较好用的chrome插件
  • 原文地址:https://www.cnblogs.com/duanxz/p/15602859.html
Copyright © 2020-2023  润新知